diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
index 69b5789..dcebaff 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -180,12 +180,6 @@
           pluginName, c.id));
       return;
     }
-    if (c.currentRevision == null) {
-      log.warn(String.format(
-          "[%s] Change %s has no current revision.",
-          pluginName, c.id));
-      return;
-    }
 
     replayRevisionsFactory.create(repo, rw, change, c).replay(api);
     upsertChange(resumeChange, change, c);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
index f13d4d3..ab9c061 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
@@ -130,7 +130,7 @@
         ps.setDraft(r.draft != null && r.draft);
 
         info = patchSetInfoFactory.get(commit, ps.getId());
-        if (changeInfo.currentRevision.equals(info.getRevId())) {
+        if (info.getRevId().equals(changeInfo.currentRevision)) {
           change.setCurrentPatchSet(info);
         }
 
@@ -140,11 +140,18 @@
       }
 
       if (change.currentPatchSetId() == null) {
-        log.warn(String.format(
-            "[%s] Current revision %s of change %s not found."
-            + " Setting lastest revision %s as current patch set.",
-            pluginName, changeInfo.currentRevision, changeInfo.id,
-            info.getRevId()));
+        if (changeInfo.currentRevision != null) {
+          log.warn(String.format(
+              "[%s] Current revision %s of change %s not found."
+              + " Setting lastest revision %s as current patch set.",
+              pluginName, changeInfo.currentRevision, changeInfo.id,
+              info.getRevId()));
+        } else {
+          log.warn(String.format(
+              "[%s] Change %s has no current revision."
+              + " Setting lastest revision %s as current patch set.",
+              pluginName, changeInfo.id, info.getRevId()));
+        }
         change.setCurrentPatchSet(info);
       }
 
