diff --git a/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java b/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java
index 8998472cfc808bbcf5dac4e8b4f1c08f953626d4..409200cd96059391fef8ed97b3112df1f5975e70 100644
--- a/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java
+++ b/src/main/java/net/floodlightcontroller/core/OFSwitchBase.java
@@ -186,6 +186,12 @@ public abstract class OFSwitchBase implements IOFSwitch {
     }
     
     @Override
+    @LogMessageDoc(level="WARN",
+    message="Sending OF message that modifies switch " +
+            "state while in the slave role: {switch}",
+    explanation="An application has sent a message to a switch " +
+            "that is not valid when the switch is in a slave role",
+    recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG)
     public void write(OFMessage m, FloodlightContext bc)
             throws IOException {
         Map<IOFSwitch,List<OFMessage>> msg_buffer_map = local_msg_buffer.get();
@@ -195,6 +201,20 @@ public abstract class OFSwitchBase implements IOFSwitch {
             msg_buffer_map.put(this, msg_buffer);
         }
 
+        if (role == Role.SLAVE) {
+            switch (m.getType()) {
+                case PACKET_OUT:
+                case FLOW_MOD:
+                case PORT_MOD:
+                    log.warn("Sending OF message that modifies switch " +
+                             "state while in the slave role: {}", 
+                             m.getType().name());
+                    break;
+                default:
+                    break;
+            }
+        }
+
         this.floodlightProvider.handleOutgoingMessage(this, m, bc);
         msg_buffer.add(m);
 
@@ -206,31 +226,10 @@ public abstract class OFSwitchBase implements IOFSwitch {
     }
 
     @Override
-    @LogMessageDoc(level="WARN",
-                   message="Sending OF message that modifies switch " +
-                           "state while in the slave role: {switch}",
-                   explanation="An application has sent a message to a switch " +
-                           "that is not valid when the switch is in a slave role",
-                   recommendation=LogMessageDoc.REPORT_CONTROLLER_BUG)
     public void write(List<OFMessage> msglist, 
                       FloodlightContext bc) throws IOException {
-        for (OFMessage m : msglist) {
-            if (role == Role.SLAVE) {
-                switch (m.getType()) {
-                    case PACKET_OUT:
-                    case FLOW_MOD:
-                    case PORT_MOD:
-                        log.warn("Sending OF message that modifies switch " +
-                                 "state while in the slave role: {}", 
-                                 m.getType().name());
-                        break;
-                    default:
-                        break;
-                }
-            }
-            this.floodlightProvider.handleOutgoingMessage(this, m, bc);
-        }
-        this.write(msglist);
+        for (OFMessage m : msglist)
+        	this.write(m, bc);
     }
 
     private void write(List<OFMessage> msglist) throws IOException {