diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index f1821e5b66978c3c9a219ec6d6e335b4b1bb498e..3c3892b506ea107e8c10e8d460d4671397afe43a 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -31,6 +31,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -62,6 +63,7 @@ import net.floodlightcontroller.core.RoleInfo;
 import net.floodlightcontroller.core.annotations.LogMessageDoc;
 import net.floodlightcontroller.core.annotations.LogMessageDocs;
 import net.floodlightcontroller.core.internal.OFChannelState.HandshakeState;
+import net.floodlightcontroller.core.internal.RoleChanger.PendingRoleRequestEntry;
 import net.floodlightcontroller.core.util.ListenerDispatcher;
 import net.floodlightcontroller.core.util.SingletonTask;
 import net.floodlightcontroller.core.web.CoreWebRoutable;
@@ -1017,7 +1019,9 @@ public class Controller implements IFloodlightProviderService,
                         // the master to someone else.
                         // Only send if there are no pending requests.
                         synchronized(roleChanger) {
-                            if (roleChanger.pendingRequestMap.get(sw) == null) {
+                            LinkedList<PendingRoleRequestEntry> list =
+                                    roleChanger.pendingRequestMap.get(sw);
+                            if (list == null || list.isEmpty()) {
                                 log.info("Tell switch {} who is the master", sw);
                                 roleChanger.submitRequest(Collections.singleton(sw), role);
                             }