diff --git a/modules/io/src/mol/mmcif_reader.cc b/modules/io/src/mol/mmcif_reader.cc
index 9d0fac1940bfc0e8cb700fa7c70d75947ce5489f..0fba6dc01f416b4406cf9be28f015cc3172fb99a 100644
--- a/modules/io/src/mol/mmcif_reader.cc
+++ b/modules/io/src/mol/mmcif_reader.cc
@@ -87,8 +87,6 @@ void MMCifReader::ClearState()
   bu_assemblies_.clear();
   helix_list_.clear();
   strand_list_.clear();
-  his_revision_ordinal_avail_ = false;
-  det_revision_ordinal_avail_ = false;
   revision_dates_.clear();
   revision_types_.clear();
   database_PDB_rev_added_ = false;
@@ -352,27 +350,18 @@ bool MMCifReader::OnBeginLoop(const StarLoopDesc& header)
     // THIS IS FOR mmCIF versions >= 5
     category_ = PDBX_AUDIT_REVISION_HISTORY;
     // mandatory items
+    this->TryStoreIdx(PARH_ORDINAL, "ordinal", header);
     this->TryStoreIdx(PARH_REVISION_DATE, "revision_date", header);
-    // optional items
-    indices_[PARH_ORDINAL] = header.GetIndex("ordinal");
-    // TOCHECK: shouldn't ordinal be mandatory??
-    his_revision_ordinal_avail_ = (indices_[PARH_ORDINAL] != -1);
-    if (!his_revision_ordinal_avail_) {
-      LOG_WARNING("No 'pdbx_audit_revision_history.ordinal' items "
-                  "found! The revision history will not have status entries!");
-    }
     cat_available = true;
   } else if (header.GetCategory()=="pdbx_audit_revision_details") {
     // THIS IS FOR mmCIF versions >= 5
     category_ = PDBX_AUDIT_REVISION_DETAILS;
     // mandatory items
-    this->TryStoreIdx(PARD_TYPE, "type", header);
+    this->TryStoreIdx(PARD_REVISION_ORDINAL, "revision_ordinal", header);
     // optional items
-    indices_[PARD_REVISION_ORDINAL] = header.GetIndex("revision_ordinal");
-    // TOCHECK: shouldn't ordinal be mandatory??
-    det_revision_ordinal_avail_ = (indices_[PARD_REVISION_ORDINAL] != -1);
-    if (!det_revision_ordinal_avail_) {
-      LOG_WARNING("No 'pdbx_audit_revision_details.revision_ordinal' items "
+    indices_[PARD_TYPE] = header.GetIndex("type");
+    if (indices_[PARD_TYPE] == -1) {
+      LOG_WARNING("No 'pdbx_audit_revision_details.type' items "
                   "found! The revision history will not have status entries!");
     }
     cat_available = true;
@@ -1412,40 +1401,24 @@ void MMCifReader::ParseDatabasePDBRev(const std::vector<StringRef>& columns)
 
 void MMCifReader::ParsePdbxAuditRevisionHistory(
                                        const std::vector<StringRef>& columns) {
-  int num;
-  StringRef date;
-  // get ordinal (or count)
-  if (his_revision_ordinal_avail_) {
-    num = this->TryGetInt(columns[indices_[PARH_ORDINAL]],
-                          "pdbx_audit_revision_history.ordinal");
-  } else if (revision_dates_.empty()) {
-    num = 0;
-  } else {
-    num = revision_dates_.rbegin()->first + 1;
-  }
-  // get date
-  date = columns[indices_[PARH_REVISION_DATE]];
+  // get ordinal and date
+  int num = this->TryGetInt(columns[indices_[PARH_ORDINAL]],
+                            "pdbx_audit_revision_history.ordinal");
+  StringRef date = columns[indices_[PARH_REVISION_DATE]];
   // add to map
   revision_dates_[num] = date.str();
 }
 
 void MMCifReader::ParsePdbxAuditRevisionDetails(
                                        const std::vector<StringRef>& columns) {
-  int num;
-  StringRef type;
-  // get ordinal (or count)
-  if (det_revision_ordinal_avail_) {
-    num = this->TryGetInt(columns[indices_[PARD_REVISION_ORDINAL]],
-                          "pdbx_audit_revision_details.revision_ordinal");
-  } else if (revision_types_.empty()) {
-    num = 0;
-  } else {
-    num = revision_types_.rbegin()->first + 1;
+  // get ordinal
+  int num = this->TryGetInt(columns[indices_[PARD_REVISION_ORDINAL]],
+                            "pdbx_audit_revision_details.revision_ordinal");
+  // add type to map if available
+  if (indices_[PARD_TYPE] != -1) {
+    StringRef type = columns[indices_[PARD_TYPE]];
+    revision_types_[num] = type.str();
   }
-  // get type
-  type = columns[indices_[PARD_TYPE]];
-  // add to map
-  revision_types_[num] = type.str();
 }
 
 void MMCifReader::ParsePdbxDatabaseStatus(
@@ -1811,9 +1784,9 @@ void MMCifReader::OnEndData()
       // look for status
       const int num = rd_it->first;
       const String& date = rd_it->second;
-      if (   his_revision_ordinal_avail_ && det_revision_ordinal_avail_
-          && revision_types_.find(num) != revision_types_.end()) {
-        info_.AddRevision(num, date, revision_types_[num]);
+      std::map<int, String>::const_iterator rt_it = revision_types_.find(num);
+      if (rt_it != revision_types_.end()) {
+        info_.AddRevision(num, date, rt_it->second);
       } else {
         info_.AddRevision(num, date, "?");
       }
diff --git a/modules/io/src/mol/mmcif_reader.hh b/modules/io/src/mol/mmcif_reader.hh
index 3503223eb5e543088b93b44749cdd2edd508c494..edd249f38755077ac6b4669cec838de3d69e04c0 100644
--- a/modules/io/src/mol/mmcif_reader.hh
+++ b/modules/io/src/mol/mmcif_reader.hh
@@ -659,8 +659,6 @@ private:
   MMCifHSVector strand_list_; ///< for storing struct_conf sec.struct. data
   MMCifInfoStructRefs struct_refs_;
   // for storing revisions 
-  bool his_revision_ordinal_avail_;
-  bool det_revision_ordinal_avail_;
   std::map<int, String> revision_dates_;
   std::map<int, String> revision_types_;
   bool database_PDB_rev_added_;