diff --git a/modules/gfx/src/impl/backbone_trace.cc b/modules/gfx/src/impl/backbone_trace.cc
index 2a0315380b75dfe55ef774155d60416c59f07fe9..e3a14b7a7106414d3fb98cdfbab962b8a0a34c95 100644
--- a/modules/gfx/src/impl/backbone_trace.cc
+++ b/modules/gfx/src/impl/backbone_trace.cc
@@ -38,6 +38,8 @@ bool in_sequence(const mol::ResidueHandle& r1, const mol::ResidueHandle& r2)
   if(n2.GetInsCode()!='\0') {
     if(n1.NextInsertionCode()==n2) return true;
   }
+  if(mol::InSequence(r1,r2)) return true;
+  // perhaps this fallback is not so good...
   if(n1.GetNum()+1==n2.GetNum()) return true;
   return false;
 }
diff --git a/modules/io/src/mol/dcd_io.cc b/modules/io/src/mol/dcd_io.cc
index bc36cb93f9237ba3494266cb4adbe97d39c9df48..15e056daff29fbf3f294a8a4f8f809e80b748b6a 100644
--- a/modules/io/src/mol/dcd_io.cc
+++ b/modules/io/src/mol/dcd_io.cc
@@ -188,12 +188,18 @@ mol::CoordGroupHandle load_dcd(const mol::AtomHandleList& alist2,
                                const String& trj_fn,
                                unsigned int stride)
 {
+  std::ifstream istream(trj_fn.c_str(), std::ios::binary);
+  if(!istream) {
+    std::ostringstream msg;
+    msg << "LoadCHARMMTraj: cannot open " << trj_fn;
+    throw(IOException(msg.str()));
+  }
   Profile profile_load("LoadCHARMMTraj");
 
   mol::AtomHandleList alist(alist2);
   std::sort(alist.begin(),alist.end(),less_index);
   
-  std::ifstream istream(trj_fn.c_str(), std::ios::binary);
+  
   DCDHeader header; 
   bool swap_flag=false, skip_flag=false, gap_flag=false;
   read_dcd_header(istream, header, swap_flag, skip_flag, gap_flag);
@@ -315,7 +321,7 @@ mol::CoordGroupHandle LoadCHARMMTraj(const mol::EntityHandle& ent,
     DCDCoordSource* source=new DCDCoordSource(alist, trj_fn, stride);
     return mol::CoordGroupHandle(DCDCoordSourcePtr(source));
   }
-    LOG_INFO("Importing CHARMM trajectory with lazy_load=false");  
+  LOG_INFO("Importing CHARMM trajectory with lazy_load=false");  
   return load_dcd(alist, trj_fn, stride);
 }