diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc
index 213187e258882f3e30a37003b6e295e2cd4fdf46..1c2ae5a2d8e8924c7f69967685d99f12be374bc5 100644
--- a/modules/io/src/mol/mmcif_reader.cc
+++ b/modules/io/src/mol/mmcif_reader.cc
@@ -647,10 +647,15 @@ String MMCifParser::ConvertSEQRES(const String& seqres,
           LOG_WARNING("unknown residue '" << tlc << "' in SEQRES record. "
                       "Setting one-letter-code to '?'");
         }
-        can_seqres.push_back('?');
+        can_seqres.push_back('X');
         continue;
       }
-      can_seqres.push_back(compound->GetOneLetterCode());
+      if (compound->GetOneLetterCode()=='?') {
+        can_seqres.push_back('X');
+      } else {
+        can_seqres.push_back(compound->GetOneLetterCode());
+      }
+
     } else {
       can_seqres.push_back(*i);
     }