diff --git a/loop/src/frag_db.cc b/loop/src/frag_db.cc
index 91369cdd88656caaa654b93069c4b4ee56e2cc6f..e69cf20f6d8930accd32e9a86b7e0c4f6c5fb3a1 100644
--- a/loop/src/frag_db.cc
+++ b/loop/src/frag_db.cc
@@ -289,10 +289,17 @@ void FragDB::SearchDB(const StemCoordPair& stems,
                       std::vector<FragmentInfo>& fragments,
                       uint extra_bins) {
 
-  std::vector<StemPairGeom> stem_pairs = MakeStemPairGeom(stems.first,
-                                                          stems.second, 
-                                                          frag_size,
-                                                          extra_bins);
+  std::vector<StemPairGeom> stem_pairs;
+  try {
+    stem_pairs = MakeStemPairGeom(stems.first, stems.second, frag_size,
+                                  extra_bins);
+  } catch (const promod3::Error&) {
+    // MakeStemPairGeom can fail if distance bin is out of bounds
+    // -> this is ok here as it simply means that we have no fitting fragments
+    //    in this FragDB
+    // => silently ignore and keep fragments vector unchanged
+    return;
+  }
 
   for(std::vector<StemPairGeom>::iterator it = stem_pairs.begin();
       it != stem_pairs.end(); ++it){