diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc
index 9ab20c5e2b28aab42bebb473be96f8dcc5017ab2..932d065ab57dc2ee5edfe4d88134f1f787d6f75e 100644
--- a/modules/io/src/mol/mmcif_reader.cc
+++ b/modules/io/src/mol/mmcif_reader.cc
@@ -1702,12 +1702,15 @@ void MMCifReader::ParseStructRefSeqDif(const std::vector<StringRef>& columns)
  	 	         "pdbx_seq_db_seq_num");
  	 	 return;
   }
+
   std::pair<bool,int> seq_rnum;
   if (indices_[SRSD_SEQ_RNUM] != -1) {
-    seq_rnum=this->TryGetInt(columns[indices_[SRSD_SEQ_RNUM]],
-                             "_struct_ref_seq_dif.seq_num",
-                             profile_.fault_tolerant);
-    
+    StringRef col = columns[indices_[SRSD_SEQ_RNUM]];
+    if (col.size()!=1 || (col[0]!='?' && col[0]!='.')) {
+      seq_rnum=this->TryGetInt(col,
+                               "_struct_ref_seq_dif.seq_num",
+                               profile_.fault_tolerant);
+    }
   }
   if (!seq_rnum.first) {
  	 	LOG_INFO("Ignoring struct_ref_seq_dif with missing data item "