diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java b/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java
index 1e74d9a..3747009 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java
@@ -77,13 +77,9 @@
   private void reloadIfNeeded() {
     if (isAutoReload()) {
       ReplicationQueue queue = replicationQueue.get();
-
       long lastModified = getLastModified(currentConfig);
       try {
-        if (lastModified > currentConfigTs
-            && lastModified > lastFailedConfigTs
-            && queue.isRunning()
-            && !queue.isReplaying()) {
+        if (lastModified > currentConfigTs && lastModified > lastFailedConfigTs) {
           queue.stop();
           currentConfig = loadConfig();
           currentConfigTs = lastModified;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
index a728bf3..541a595 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java
@@ -70,7 +70,6 @@
   private final ReplicationState.Factory replicationStateFactory;
   private final EventsStorage eventsStorage;
   private volatile boolean running;
-  private volatile boolean replaying;
 
   @Inject
   ReplicationQueue(
@@ -108,14 +107,6 @@
     }
   }
 
-  public boolean isRunning() {
-    return running;
-  }
-
-  public boolean isReplaying() {
-    return replaying;
-  }
-
   void scheduleFullSync(Project.NameKey project, String urlMatch, ReplicationState state) {
     scheduleFullSync(project, urlMatch, state, false);
   }
@@ -163,14 +154,9 @@
   }
 
   private void firePendingEvents() {
-    replaying = true;
-    try {
-      for (EventsStorage.ReplicateRefUpdate e : eventsStorage.list()) {
-        repLog.info("Firing pending event {}", e);
-        onGitReferenceUpdated(e.project, e.ref);
-      }
-    } finally {
-      replaying = false;
+    for (EventsStorage.ReplicateRefUpdate e : eventsStorage.list()) {
+      repLog.info("Firing pending event {}", e);
+      onGitReferenceUpdated(e.project, e.ref);
     }
   }
 
