diff --git a/src/core/SetupMolInfo.cpp b/src/core/SetupMolInfo.cpp
index f6b13781f5f5d4f38829d5f52c9eafe1883903d0..9136a095f63114b1c2f18aa613deb7855d06d2e2 100644
--- a/src/core/SetupMolInfo.cpp
+++ b/src/core/SetupMolInfo.cpp
@@ -72,7 +72,10 @@ pdb(*new(PDB))
   }
   if( read_backbone.size()==0 ){
     std::string reference; parse("STRUCTURE",reference);
-    pdb.read(reference,plumed.getAtoms().usingNaturalUnits(),0.1/plumed.getAtoms().getUnits().getLength());
+
+
+    if( ! pdb.read(reference,plumed.getAtoms().usingNaturalUnits(),0.1/plumed.getAtoms().getUnits().getLength()),
+        error("missing input file " + reference ));
     std::vector<std::string> chains; pdb.getChainNames( chains );
     log.printf("  pdb file named %s contains %d chains \n",reference.c_str(), chains.size() );
     for(unsigned i=0;i<chains.size();++i){