diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
index be2ef26721f53f5f9e2f4f9c3b1322ef4eb17d99..a5e855738f834513a3245840a9cb73c9282b5ceb 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
@@ -329,6 +329,7 @@ entity.getLastSeenTimestamp().getTime());
         ITopologyService topology = deviceManager.topology;
         List<AttachmentPoint> oldAPList;
         List<AttachmentPoint> apList;
+        boolean oldAPFlag = false;
 
         if (!deviceManager.isValidAttachmentPoint(sw, port)) return false;
         AttachmentPoint newAP = new AttachmentPoint(sw, port, lastSeen);
@@ -346,6 +347,7 @@ entity.getLastSeenTimestamp().getTime());
             newAP = oldAPList.remove(index);
             newAP.setLastSeen(lastSeen);
             this.oldAPs = oldAPList;
+            oldAPFlag = true;
             log.debug("DEVICE_MOVE: OldAPs changed for device: {}", oldAPList);
         }
 
@@ -404,7 +406,8 @@ entity.getLastSeenTimestamp().getTime());
             // possible duplicates.
             oldAPList = new ArrayList<AttachmentPoint>();
             if (oldAPs != null) oldAPList.addAll(oldAPs);
-            oldAPList.add(newAP);
+	    // Add ot oldAPList only if it was picked up from the oldAPList
+            if (oldAPFlag) oldAPList.add(newAP);
             log.debug("DEVICE_MOVED: New attachment point {} does not" +
                     " replace already existing one {}.", newAP, oldAP);
             this.oldAPs = oldAPList;