diff --git a/modules/mol/alg/src/distance_rmsd_test.cc b/modules/mol/alg/src/distance_rmsd_test.cc
index 6417548ec8c7baaf97a51cba7c093246345be25d..af874421af463d63aae9e8072fa6f2599dd852aa 100644
--- a/modules/mol/alg/src/distance_rmsd_test.cc
+++ b/modules/mol/alg/src/distance_rmsd_test.cc
@@ -58,6 +58,9 @@ std::pair<Real, long int> calc_rmsd(const ResidueRDMap& res_distance_list, const
     }
     Real mdl_dist=geom::Length(av1.GetPos()-av2.GetPos());
     Real diff = mdl_dist-values.first;
+    if (diff > cap_distance) {
+        diff = cap_distance;
+    }
     if (log) {
 //      LOG_VERBOSE("drmsd:" << " " << av1.GetResidue().GetChain() << " " << av1.GetResidue().GetName() << " " << av1.GetResidue().GetNumber() << " " << av1.GetName()
 //                  << " " << av2.GetResidue().GetChain() << " " << av2.GetResidue().GetName() << " " << av2.GetResidue().GetNumber() << " " << av2.GetName() << " "