diff --git versioncontrol.install versioncontrol.install
index 857a1cf..48b7df2 100644
--- versioncontrol.install
+++ versioncontrol.install
@@ -288,6 +288,7 @@ function versioncontrol_schema() {
     // So instead, we roll two separate indexes.
     'indexes' => array(
       'repo_id_path' => array('repo_id', 'path'),
+      'vc_op_id' => array('vc_op_id'),
       'revision' => array('revision'),
       'source_item_revision_id' => array('source_item_revision_id'),
     ),
@@ -1198,3 +1199,13 @@ function versioncontrol_update_6315() {
   db_query('UPDATE {versioncontrol_repositories} SET locked = %d WHERE locked = 1', time());
   return $ret;
 }
+
+/**
+ * Index on {versioncontrol_item_revisions}.vc_op_id required to avoid a full
+ * table scan on item_revisions
+ */
+function versioncontrol_update_6316() {
+ $ret = array();
+  db_add_index($ret, 'versioncontrol_item_revisions','vc_op_id', array('vc_op_id'));
+  return $ret;
+}
\ No newline at end of file
