diff --git a/impl/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java b/impl/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java
index 76ca8b7..7920e67 100644
--- a/impl/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java
+++ b/impl/src/main/java/org/onosproject/segmentrouting/grouphandler/DefaultGroupHandler.java
@@ -1784,10 +1784,8 @@
                                         deviceId, nid, port, edgeLabel,
                                         dstDev, neighbor);
                                 nextObjBuilder
-                                    .addTreatment(treatmentBuilder(port,
-                                                                   neighborMac,
-                                                                   dsKey.destinationSet().swap(),
-                                                                   edgeLabel));
+                                    .addTreatment(treatmentBuilder(port, neighborMac, dsKey.destinationSet().swap(),
+                                            edgeLabel, popVlanInHashGroup(dsKey.destinationSet())));
                             });
                         });
                     });
@@ -1802,12 +1800,17 @@
         }
 
         TrafficTreatment treatmentBuilder(PortNumber outport, MacAddress dstMac,
-                                          boolean swap, int edgeLabel) {
+                                          boolean swap, int edgeLabel, boolean popVlan) {
             TrafficTreatment.Builder tBuilder =
                     DefaultTrafficTreatment.builder();
             tBuilder.setOutput(outport)
-                .setEthDst(dstMac)
-                .setEthSrc(nodeMacAddr);
+                    .setEthDst(dstMac)
+                    .setEthSrc(nodeMacAddr);
+
+            if (popVlan) {
+                tBuilder.popVlan();
+            }
+
             if (edgeLabel != DestinationSet.NO_EDGE_LABEL) {
                 if (swap) {
                     // swap label case
