diff --git a/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java b/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
index 21f00df..220d3f2 100644
--- a/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
+++ b/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
@@ -145,22 +145,22 @@
 
         Ip4Address destIpAddress = Ip4Address.valueOf(icmpReplyIpv4.getDestinationAddress());
         Ip4Address destRouterAddress = config.getRouterIpAddressForASubnetHost(destIpAddress);
-        int sid = config.getSegmentId(destRouterAddress);
-        if (sid < 0) {
+        int destSid = config.getSegmentId(destRouterAddress);
+        if (destSid < 0) {
             log.warn("Cannot find the Segment ID for {}", destAddress);
             return;
         }
 
-        sendPacketOut(outport, icmpReplyEth, sid);
+        sendPacketOut(outport, icmpReplyEth, destSid);
 
     }
 
-    private void sendPacketOut(ConnectPoint outport, Ethernet payload, int sid) {
+    private void sendPacketOut(ConnectPoint outport, Ethernet payload, int destSid) {
 
         IPv4 ipPacket = (IPv4) payload.getPayload();
         Ip4Address destIpAddress = Ip4Address.valueOf(ipPacket.getDestinationAddress());
 
-        if (sid == -1 || config.getSegmentId(payload.getDestinationMAC()) == sid ||
+        if (destSid == -1 || config.getSegmentId(payload.getDestinationMAC()) == destSid ||
                 config.inSameSubnet(outport.deviceId(), destIpAddress)) {
             TrafficTreatment treatment = DefaultTrafficTreatment.builder().
                     setOutput(outport.port()).build();
@@ -175,7 +175,7 @@
 
             payload.setEtherType(Ethernet.MPLS_UNICAST);
             MPLS mplsPkt = new MPLS();
-            mplsPkt.setLabel(sid);
+            mplsPkt.setLabel(destSid);
             mplsPkt.setTtl(((IPv4) payload.getPayload()).getTtl());
             mplsPkt.setPayload(payload.getPayload());
             payload.setPayload(mplsPkt);
