diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
index b1cb6d4575b57237b8b54b8039c19c3ee0ffa0b7..7606532bad1b7484f4a70172ce6be6ed5946bc81 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImpl.java
@@ -901,6 +901,9 @@ IFlowReconcileListener, IInfoProvider, IHAListener {
             // entity. Look up the entity in the returned class'
             // class entity index.
             entityClass = entityClassifier.classifyEntity(entity);
+            if (entityClass == null) {
+                return null;
+            }
             ClassState classState = getClassState(entityClass);
 
             if (classState.classIndex != null) {
@@ -993,6 +996,10 @@ IFlowReconcileListener, IInfoProvider, IHAListener {
                 // entity. Look up the entity in the returned class'
                 // class entity index.
                 entityClass = entityClassifier.classifyEntity(entity);
+                if (entityClass == null) {
+                    // could not classify entity. No device
+                    return null;
+                }
                 ClassState classState = getClassState(entityClass);
 
                 if (classState.classIndex != null) {
diff --git a/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
index 2bafa6d32a5551aa35d9ac4163d13d5d422fe3a4..f0bc0cdbde2db152c04be08504a4019ebeea6001 100644
--- a/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
+++ b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
@@ -193,7 +193,7 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
                     .setTargetHardwareAddress(Ethernet.toMACAddress("00:11:22:33:44:55"))
                     .setTargetProtocolAddress(IPv4.toIPv4AddressBytes("192.168.1.2")));
         this.testARPReplyPacket_3_Serialized = testARPReplyPacket_3.serialize();
-
+        
         // Build the PacketIn
         this.packetIn_1 = ((OFPacketIn) mockFloodlightProvider.
                 getOFMessageFactory().getMessage(OFType.PACKET_IN))
@@ -391,7 +391,19 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
 
         assertEquals(4, deviceManager.getAllDevices().size());
         verify(mockListener);
+        
+        
+        reset(mockListener);
+        replay(mockListener);
+        
+        deviceManager.entityClassifier = new MockEntityClassifierMac();
+        deviceManager.startUp(null);
+        Entity entityNoClass = new Entity(5L, (short)1, 5, -1L, 1, new Date());
+        assertEquals(null, deviceManager.learnDeviceByEntity(entityNoClass));
+        
+        verify(mockListener);
     }
+    
 
     @Test
     public void testAttachmentPointLearning() throws Exception {
@@ -1177,6 +1189,7 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         Entity entity4 = new Entity(4L, (short)2, 4, 2L, 2, new Date());
         
         Entity entity5 = new Entity(5L, (short)1, 5, 3L, 1, new Date());
+        
 
         IDevice d1 = deviceManager.learnDeviceByEntity(entity1);
         IDevice d2 = deviceManager.learnDeviceByEntity(entity2);
@@ -1259,6 +1272,11 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         if (!exceptionCaught)
             fail("findDevice() did not throw IllegalArgumentException");
         
+        
+        Entity entityNoClass = new Entity(5L, (short)1, 5, -1L, 1, new Date());
+        assertEquals(null, deviceManager.findDeviceByEntity(entityNoClass));
+        
+        
         // Now look up destination devices
         assertEquals(d1, deviceManager.findDestDevice(d2, 
                                                   entity1.getMacAddress(), 
diff --git a/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java b/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java
index 768cc503e6795095df69923d95b995c2b49fdfd0..398b6c0e74c7403e71f0d523d1b9fb670b5f836e 100644
--- a/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java
+++ b/src/test/java/net/floodlightcontroller/devicemanager/test/MockEntityClassifierMac.java
@@ -44,6 +44,8 @@ public class MockEntityClassifierMac extends DefaultEntityClassifier {
             return testECMac1;
         } else if (entity.getSwitchDPID() == 2L) {
             return testECMac2;
+        } else if (entity.getSwitchDPID() == -1L) {
+            return null;
         }
         return DefaultEntityClassifier.entityClass;
     }