diff --git a/src/main/java/net/floodlightcontroller/core/IOF13Switch.java b/src/main/java/net/floodlightcontroller/core/IOF13Switch.java
index 71a14e7..846197c 100644
--- a/src/main/java/net/floodlightcontroller/core/IOF13Switch.java
+++ b/src/main/java/net/floodlightcontroller/core/IOF13Switch.java
@@ -134,12 +134,12 @@
     public void removePortFromGroups(PortNumber port);
 
     public void addPortToGroups(PortNumber port);
+
     /**
      * give string tableType (ip, mpls, acl)
      * @param tableType  String equal to only one of (ip, mpls, acl)
      * @return TableId
      */
-
     public TableId getTableId(String tableType);
 
     public int createTunnel(int tunnelId, List<String> route, NeighborSet ns);
diff --git a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java
index 236ed06..a610c0d 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImplBase.java
@@ -1332,10 +1332,10 @@
                 .buildBarrierRequest()
                 .setXid(xid)
                 .build();
-        write(Collections.singletonList(br));
         OFBarrierReplyFuture future = new OFBarrierReplyFuture(threadPool, this,
                 (int) xid);
         barrierFutureMap.put(xid, future);
+        write(Collections.singletonList(br));
         return future;
     }
 
@@ -1344,6 +1344,10 @@
         if (f != null) {
             f.deliverFuture(this, br);
             barrierFutureMap.remove(br.getXid());
+        } else {
+            log.warn("Rcvd unknown barrier reply xid: {} from sw: {}",
+                    br.getXid(), getStringId());
+
         }
     }
 }
