diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java
index 0699715..747007e 100644
--- a/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java
+++ b/incubator/store/src/main/java/org/onosproject/incubator/store/routing/impl/RouteStoreImpl.java
@@ -44,6 +44,8 @@
 import java.util.Map;
 import java.util.Set;
 
+import static com.google.common.base.Preconditions.checkState;
+
 /**
  * An implementation of RouteStore that is backed by either LocalRouteStore or
  * DistributedRouteStore according to configuration.
@@ -101,12 +103,14 @@
                 }
                 currentRouteStore = new DistributedRouteStore(storageService);
                 ((DistributedRouteStore) currentRouteStore).activate();
+                ((DistributedRouteStore) currentRouteStore).setDelegate(delegate);
             } else {
                 if (currentRouteStore != null) {
                     ((DistributedRouteStore) currentRouteStore).deactivate();
                 }
                 currentRouteStore = new LocalRouteStore();
                 ((LocalRouteStore) currentRouteStore).activate();
+                ((LocalRouteStore) currentRouteStore).setDelegate(delegate);
             }
 
             this.distributed = expectDistributed;
@@ -116,6 +120,26 @@
     }
 
     @Override
+    public void setDelegate(RouteStoreDelegate delegate) {
+        checkState(this.delegate == null || this.delegate == delegate,
+                "Store delegate already set");
+        this.delegate = delegate;
+
+        // Set the delegate of underlying route store implementation
+        currentRouteStore.setDelegate(delegate);
+    }
+
+    @Override
+    public void unsetDelegate(RouteStoreDelegate delegate) {
+        if (this.delegate == delegate) {
+            this.delegate = null;
+        }
+
+        // Unset the delegate of underlying route store implementation
+        currentRouteStore.unsetDelegate(delegate);
+    }
+
+    @Override
     public void updateRoute(Route route) {
         currentRouteStore.updateRoute(route);
     }
