diff --git a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
index ee184a5..28a0f53 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltFlowService.java
@@ -533,7 +533,7 @@
 
         // NOTE createMeters will return if the meters are not installed
         if (!oltMeterService.createMeters(sub.device.id(),
-                sub.subscriberAndDeviceInformation)) {
+                sub.subscriberAndDeviceInformation, multicastServiceName)) {
             return false;
         }
 
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java b/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java
index be04449..f1f5605 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltMeterService.java
@@ -241,7 +241,7 @@
     }
 
     @Override
-    public boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si) {
+    public boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si, String multicastServiceName) {
         // Each UniTagInformation has up to 4 meters,
         // check and/or create all of them
         AtomicBoolean waitingOnMeter = new AtomicBoolean();
@@ -249,6 +249,14 @@
         Map<String, List<String>> pendingMeters = new HashMap<>();
         si.uniTagList().forEach(uniTagInfo -> {
             String serviceName = uniTagInfo.getServiceName();
+
+            if (multicastServiceName.equals(uniTagInfo.getServiceName())) {
+                log.debug("This is the multicast service ({}) for subscriber {} on {}, " +
+                                "meters are not needed",
+                        uniTagInfo.getServiceName(), si.id(), deviceId);
+                return;
+            }
+
             pendingMeters.put(serviceName, new LinkedList<>());
             String usBp = uniTagInfo.getUpstreamBandwidthProfile();
             String dsBp = uniTagInfo.getDownstreamBandwidthProfile();
diff --git a/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java b/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java
index a10455b..16d78ef 100644
--- a/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java
+++ b/impl/src/main/java/org/opencord/olt/impl/OltMeterServiceInterface.java
@@ -40,9 +40,10 @@
      * if not present it will create them and return false.
      * @param deviceId DeviceId
      * @param si SubscriberAndDeviceInformation
+     * @param multicastServiceName The multicast service name
      * @return boolean
      */
-    boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si);
+    boolean createMeters(DeviceId deviceId, SubscriberAndDeviceInformation si, String multicastServiceName);
 
     /**
      * Checks if a meter for the specified bandwidthProfile exists
