diff --git a/modules/mol/alg/pymod/superpose.py b/modules/mol/alg/pymod/superpose.py
index 96ad881b0e045f8ded7af3ff745ef00a712a0ff4..76d4afe98d53178bba1cf357e2e4f827ccef7f01 100644
--- a/modules/mol/alg/pymod/superpose.py
+++ b/modules/mol/alg/pymod/superpose.py
@@ -112,10 +112,11 @@ def MatchResidueByNum(ent_a, ent_b, atoms='all'):
         while True:
           r_a=residues_a.next()
           r_b=residues_b.next()
-          while r_a.number<r_b.number:
-            r_a=residues_a.next()
-          while r_b.number<r_a.number:
-            r_b=residues_b.next()
+          while r_a.number!=r_b.number:
+            while r_a.number<r_b.number:
+              r_a=residues_a.next()
+            while r_b.number<r_a.number:
+              r_b=residues_b.next()
           assert r_a.number==r_b.number
           result_a,result_b=_fetch_atoms(r_a, r_b, result_a, result_b, atmset)
       except StopIteration: