diff --git a/modules/io/src/mol/sdf_reader.cc b/modules/io/src/mol/sdf_reader.cc
index 3c28e279cb71a3f89575d5fe3bca70ce621c6c6f..72488aa989ec1bc26e690d211fb39ae25cad4b06 100644
--- a/modules/io/src/mol/sdf_reader.cc
+++ b/modules/io/src/mol/sdf_reader.cc
@@ -159,6 +159,11 @@ void SDFReader::ParseAndAddHeader(const String& line, int line_num,
       break;
     case 4:  // counts line
     {
+      if (line.length() < 39) {
+        String msg="Bad counts line %d: Not correct number of characters on "
+                   "the line: %i (should be at least 39)";
+        throw IOException(str(format(msg) % line_num % line.length()));
+      }
       String version_str=line.substr(34, 5);
       if (version_str != "V2000") {
         String msg="Unsupported SDF version: %s.";