diff --git a/modules/mol/alg/src/ldt.cc b/modules/mol/alg/src/ldt.cc
index a4e5f15e603bdf0d34d821119c9a1f913750294c..bca98880b69569e4ba9bbd7ded0e8dbbc258c16c 100644
--- a/modules/mol/alg/src/ldt.cc
+++ b/modules/mol/alg/src/ldt.cc
@@ -98,7 +98,7 @@ std::pair<int,int> compute_coverage (const EntityView& v,const GlobalRDMap& glob
 
 int main (int argc, char **argv)
 {
-  String version = "Beta - 2012-05-21";
+  String version = "Beta - 2012-06-13";
   Real bond_tolerance = 8.0;
   Real angle_tolerance = 8.0;
   Real radius=15.0;
@@ -136,7 +136,12 @@ int main (int argc, char **argv)
   }
   std::vector<String> files;
   if (vm.count("files")) {
-    files=vm["files"].as<std::vector<String> >();
+    try {  
+      files=vm["files"].as<std::vector<String> >();
+    } catch (io::IOException& e) {
+      std::cerr << "ERROR: Problem with file list. " << e.what() << std::endl;
+      exit(-1);
+    }
   } else {
     usage();
     exit(-1);
@@ -152,7 +157,12 @@ int main (int argc, char **argv)
   }
   String parameter_filename;
   if (vm.count("parameter-file")) {
-    parameter_filename=vm["parameter-file"].as<String>();
+    try {
+      parameter_filename=vm["parameter-file"].as<String>();
+    } catch (io::IOException& e) {
+      std::cerr << "ERROR: Problem with parameter file name. " << e.what() << std::endl;
+      exit(-1);
+    }
   } else if (structural_checks==true) {
     std::cout << "Please specify a stereo-chemical parameter file" << std::endl;
     exit(-1);
@@ -297,7 +307,9 @@ int main (int argc, char **argv)
       if (ritv.HasProp("localldt")) {
           ldt_local=ritv.GetFloatProp("localldt");
       }
-      std::cout << ritv.GetChain() << "\t" << ritv.GetName() << "\t" << ritv.GetNumber() << '\t' << ldt_local << std::endl;
+      if (ldt_local!=0) {
+        std::cout << ritv.GetChain() << "\t" << ritv.GetName() << "\t" << ritv.GetNumber() << '\t' << ldt_local << std::endl;
+      }
     }
     std::cout << std::endl;
   }
diff --git a/modules/mol/alg/src/local_dist_test.cc b/modules/mol/alg/src/local_dist_test.cc
index 7d2e83db1ad2a040584bc6e173fe5043d55b8543..c15d6392797a08d70b84ad296d10956ebfa61767 100644
--- a/modules/mol/alg/src/local_dist_test.cc
+++ b/modules/mol/alg/src/local_dist_test.cc
@@ -91,17 +91,26 @@ std::pair<Real, Real> calc_overlap1(const ResidueRDMap& res_distance_list, const
     AtomView av1=mdl_res ? mdl_res.FindAtom(name) : AtomView();
  
     if (only_fixed) {
+       if (first_atom.GetResNum()==second_atom.GetResNum()) {
+          continue;
+        }
       if (swappable(second_atom.GetResidueName(), second_atom.GetAtomName())) {
           continue;
       }
-    }    
+    }
+    if (!only_fixed) {   
+      if (first_atom.GetResNum()<=second_atom.GetResNum()) {
+        continue;
+      }    
+    }
+
     AtomView av2=mdl_chain.FindAtom(second_atom.GetResNum(),second_atom.GetAtomName());
     overlap.second+=tol_list.size();
     if (av1) {
-      overlap_list[av1.GetResidue().GetIndex()].second+=1.0;
+      overlap_list[av1.GetResidue().GetIndex()].second+=tol_list.size();
     }
     if (av2) {
-      overlap_list[av2.GetResidue().GetIndex()].second+=1.0;
+      overlap_list[av2.GetResidue().GetIndex()].second+=tol_list.size();
     }  
     if (!(av1 && av2)) {
       continue;
@@ -441,12 +450,10 @@ GlobalRDMap CreateDistanceList(const EntityView& ref,Real max_dist)
              aj->GetResidue().GetChain()!=ai->GetResidue().GetChain()) {
              continue;
          }
-         if (aj->GetResidue().GetNumber()>i->GetNumber()) {
-           Real dist=geom::Length(ai->GetPos()-aj->GetPos());
-           UAtomIdentifiers atoms = std::make_pair<UniqueAtomIdentifier,UniqueAtomIdentifier>(first_atom,second_atom); 
-           std::pair<Real,Real> values = std::make_pair<Real,Real>(dist,dist);  
-           res_dist_list[atoms]=values;
-         }
+         Real dist=geom::Length(ai->GetPos()-aj->GetPos());
+         UAtomIdentifiers atoms = std::make_pair<UniqueAtomIdentifier,UniqueAtomIdentifier>(first_atom,second_atom); 
+         std::pair<Real,Real> values = std::make_pair<Real,Real>(dist,dist);  
+         res_dist_list[atoms]=values;
        }
      }   
      dist_list[rnum]=res_dist_list;