diff --git a/src/tools/PDB.cpp b/src/tools/PDB.cpp
index f3df3d7a2e6b1435d176dcd044a129a51f61445a..3ba327843c2052d3e40dd57de3a202706fe8a30d 100644
--- a/src/tools/PDB.cpp
+++ b/src/tools/PDB.cpp
@@ -532,6 +532,7 @@ bool PDB::readFromFilepointer(FILE *fp,bool naturalUnits,double scale) {
         int result;
         auto trimmed=serial;
         Tools::trim(trimmed);
+        while(trimmed.length()<5) trimmed = std::string(" ") + trimmed;
         const char* errmsg = h36::hy36decode(5, trimmed.c_str(),trimmed.length(), &result);
         if(errmsg) {
           std::string msg(errmsg);