diff --git a/modules/bindings/pymod/clustalw.py b/modules/bindings/pymod/clustalw.py
index 084fe8d3337acd235fcd6fe9453ac56af63292aa..e5400d1ac58d9d621ff27fa1b403b7e6421a7f57 100644
--- a/modules/bindings/pymod/clustalw.py
+++ b/modules/bindings/pymod/clustalw.py
@@ -92,6 +92,13 @@ def ClustalW(seq1, seq2=None, clustalw=None, keep_files=False, nopgap=False,
     LogError("WARNING: Specify either two SequenceHandles or one SequenceList")
     return
 
+  sequence_names = set()
+  for s in seq_list:
+    sequence_names.add(s.GetName())
+  if len(sequence_names) < len(seq_list):
+    raise ValueError("ClustalW can only process sequences with unique identifiers!")
+
+
   new_list = seq.CreateSequenceList()
   for s in seq_list:
     ss = s.Copy()
@@ -101,6 +108,7 @@ def ClustalW(seq1, seq2=None, clustalw=None, keep_files=False, nopgap=False,
     new_list.AddSequence(ss)
 
   seq_list = new_list
+
   
   temp_dir=utils.TempDirWithFiles((seq_list,))
   out=os.path.join(temp_dir.dirname, 'out.fasta')
diff --git a/modules/bindings/tests/test_clustalw.py b/modules/bindings/tests/test_clustalw.py
index 9aaf210f8be644f2126b7a1bff6e859c43ce3fe0..f5625ce9bc4636aa7e98071bad5021c3d22dc256 100644
--- a/modules/bindings/tests/test_clustalw.py
+++ b/modules/bindings/tests/test_clustalw.py
@@ -62,6 +62,13 @@ class TestClustalWBindings(unittest.TestCase):
     assert self.seq1_seq2_alignment_options_changed.ToString(80) == aln.ToString(80), \
            "Pairwise alignment with modified gap penalties differs from precomputed one"
 
+  def testUniqueIdentifier(self):
+    seq1 = seq.CreateSequence('heelloo','AWESOME')
+    seq2 = seq.CreateSequence('heelloo','AWESOME')
+
+    self.assertRaises(ValueError,clustalw.ClustalW,seq1,seq2)
+
+
 if __name__ == "__main__":
   # test if clustalw package is available on system, otherwise ignore tests
   try: