diff --git a/apps/mcast/impl/src/main/java/org/onosproject/mcast/impl/DistributedMcastRoutesStore.java b/apps/mcast/impl/src/main/java/org/onosproject/mcast/impl/DistributedMcastRoutesStore.java
index 8c90a1d..84e2131 100644
--- a/apps/mcast/impl/src/main/java/org/onosproject/mcast/impl/DistributedMcastRoutesStore.java
+++ b/apps/mcast/impl/src/main/java/org/onosproject/mcast/impl/DistributedMcastRoutesStore.java
@@ -103,7 +103,7 @@
 
     @Override
     public void storeRoute(McastRoute route) {
-        mcastRoutes.put(route, McastRouteData.empty());
+        mcastRoutes.putIfAbsent(route, McastRouteData.empty());
     }
 
     @Override
@@ -123,7 +123,8 @@
     public void removeSources(McastRoute route) {
         mcastRoutes.compute(route, (k, v) -> {
             v.removeSources();
-            return v;
+            // Since we have cleared the sources, we should remove the route
+            return null;
         });
     }
 
@@ -131,9 +132,9 @@
     public void removeSources(McastRoute route, Set<ConnectPoint> sources) {
         mcastRoutes.compute(route, (k, v) -> {
             v.removeSources(sources);
-            return v;
+            // Since there are no sources, we should remove the route
+            return v.sources().isEmpty() ? null : v;
         });
-
     }
 
     @Override
@@ -256,7 +257,6 @@
                                 mcastRouteUpdate(route, oldData.sources(), oldData.sinks()),
                                 mcastRouteUpdate(route, newData.sources(), newData.sinks())));
                     } else if (newData.allSinks().size() < oldData.allSinks().size()) {
-                        log.info("Removed");
                         notifyDelegate(new McastEvent(McastEvent.Type.SINKS_REMOVED,
                                 mcastRouteUpdate(route, oldData.sources(), oldData.sinks()),
                                 mcastRouteUpdate(route, newData.sources(), newData.sinks())));
