diff --git a/modules/io/src/mol/pdb_reader.cc b/modules/io/src/mol/pdb_reader.cc
index 938fc23f78527c74786c0b964583ff8db7775333..909a4ec754a87c82598ff18cfbf2a85ea4c215b4 100644
--- a/modules/io/src/mol/pdb_reader.cc
+++ b/modules/io/src/mol/pdb_reader.cc
@@ -321,10 +321,10 @@ bool PDBReader::ParseAtomIdent(const StringRef& line, int line_num,
 
   std::pair<bool, int> a_num=line.substr(6, 5).ltrim().to_int();
   if (!a_num.first) {
-    if (PDB::Flags() & PDB::SKIP_FAULTY_RECORDS) {
-      return false;
+    if (!(PDB::Flags() & PDB::SKIP_FAULTY_RECORDS)) {
+      throw IOException(str(format("invalid atom number on line %d") %line_num));      
     }
-    throw IOException(str(format("invalid atom number on line %d") %line_num));
+    LOG_WARNING("invalid atom number on line " << line_num);
   }
   atom_name=line.substr(12, 4).trim();
   alt_loc=line[16];