diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
index 52232b9..16f3b94 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/mcast/McastUtils.java
@@ -123,8 +123,8 @@
         try {
             routerMac = srManager.deviceConfiguration().getDeviceMac(deviceId);
         } catch (DeviceConfigNotFoundException dcnfe) {
-            log.warn("Fail to push filtering objective since device is not configured. Abort");
-            return MacAddress.NONE;
+            log.warn("Failed to get device MAC since the device {} is not configured", deviceId);
+            return null;
         }
         return routerMac;
     }
@@ -142,7 +142,8 @@
                            IpAddress mcastIp, McastRole mcastRole) {
 
         MacAddress routerMac = getRouterMac(deviceId, port);
-        if (routerMac.equals(MacAddress.NONE)) {
+
+        if (MacAddress.NONE.equals(routerMac)) {
             return;
         }
 
@@ -170,7 +171,8 @@
                               IpAddress mcastIp, McastRole mcastRole) {
 
         MacAddress routerMac = getRouterMac(deviceId, port);
-        if (routerMac.equals(MacAddress.NONE)) {
+
+        if (MacAddress.NONE.equals(routerMac)) {
             return;
         }
 
@@ -412,11 +414,14 @@
                                                                 MacAddress.IPV6_MULTICAST_MASK));
         }
         // We finally build the meta treatment
-        TrafficTreatment tt = DefaultTrafficTreatment.builder()
-                .pushVlan().setVlanId(assignedVlan)
-                .setEthDst(routerMac)
-                .build();
-        filtBuilder.withMeta(tt);
+        TrafficTreatment.Builder tBuilder = DefaultTrafficTreatment.builder();
+        tBuilder.pushVlan().setVlanId(assignedVlan);
+
+        if (routerMac != null && !routerMac.equals(MacAddress.NONE)) {
+            tBuilder.setEthDst(routerMac);
+        }
+
+        filtBuilder.withMeta(tBuilder.build());
         // Done, we return a permit filtering objective
         return filtBuilder.permit().fromApp(srManager.appId());
     }
