diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc
index 595ae05d2da1192c34502e99ef856e13eb4d99ad..b6446f6664f22eee8baeac49ae1a6d31ef59dc4d 100644
--- a/modules/io/src/mol/mmcif_reader.cc
+++ b/modules/io/src/mol/mmcif_reader.cc
@@ -650,8 +650,10 @@ void MMCifParser::ParseCitation(const std::vector<StringRef>& columns)
     cit.SetDOI(columns[indices_[PDBX_DATABASE_ID_DOI]].str());
   }
   if (indices_[PDBX_DATABASE_ID_PUBMED] != -1) {
-    cit.SetPubMed(this->TryGetInt(columns[indices_[PDBX_DATABASE_ID_PUBMED]],
-                                  "citation.pdbx_database_id_PubMed"));
+    if (columns[indices_[PDBX_DATABASE_ID_PUBMED]][0]!='?') {
+      cit.SetPubMed(this->TryGetInt(columns[indices_[PDBX_DATABASE_ID_PUBMED]],
+                                    "citation.pdbx_database_id_PubMed"));
+    }
   }
   if (indices_[YEAR] != -1) {
     cit.SetPubMed(this->TryGetInt(columns[indices_[YEAR]], "citation.year"));