diff --git a/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java b/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
index 8dae594..20c1b41 100644
--- a/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
+++ b/src/main/java/net/onrc/onos/apps/segmentrouting/SegmentRoutingManager.java
@@ -818,9 +818,9 @@
             CopyTtlOutAction copyTtlOutAction = new CopyTtlOutAction();
             DecMplsTtlAction decMplsTtlAction = new DecMplsTtlAction(1);
 
-            actions.add(pushMplsAction);
-            actions.add(copyTtlOutAction);
-            actions.add(decMplsTtlAction);
+            //actions.add(pushMplsAction);
+            //actions.add(copyTtlOutAction);
+            //actions.add(decMplsTtlAction);
             actions.add(setIdAction);
         }
         else {
@@ -836,9 +836,9 @@
                 CopyTtlOutAction copyTtlOutAction = new CopyTtlOutAction();
                 DecMplsTtlAction decMplsTtlAction = new DecMplsTtlAction(1);
 
-                actions.add(pushMplsAction);
-                actions.add(copyTtlOutAction);
-                actions.add(decMplsTtlAction);
+                //actions.add(pushMplsAction);
+                //actions.add(copyTtlOutAction);
+                //actions.add(decMplsTtlAction);
                 actions.add(setIdAction);
             }
         }
@@ -848,6 +848,7 @@
 
         for (String fwdSw : fwdToSws) {
             groupAction.addSwitch(new Dpid(fwdSw));
+            groupAction.setEdgeLabel(Integer.parseInt(mplsLabel));
 
         }
         actions.add(groupAction);
diff --git a/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java b/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
index 9a4519d..5a57b86 100644
--- a/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
+++ b/src/main/java/net/onrc/onos/core/drivermanager/OFSwitchImplCPqD13.java
@@ -874,8 +874,10 @@
             if (b.mplsLabel != -1) {
                 OFAction pushLabel = factory.actions().buildPushMpls()
                         .setEthertype(EthType.MPLS_UNICAST).build();
-                OFAction setLabel = factory.actions().buildSetMplsLabel()
-                        .setMplsLabel(b.mplsLabel).build();
+                OFOxmMplsLabel lid = factory.oxms()
+                        .mplsLabel(U32.of(b.mplsLabel));
+                OFAction setLabel = factory.actions().buildSetField()
+                        .setField(lid).build();
                 OFAction copyTtl = factory.actions().copyTtlOut();
                 OFAction decrTtl = factory.actions().decMplsTtl();
                 actions.add(pushLabel);
