diff --git a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
index 9795363ae6d5ec7903b509518c8a81e3acaaf2f3..a7268fa10b370481439b6cfa2034de8495d01449 100755
--- a/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
+++ b/src/main/java/net/floodlightcontroller/devicemanager/internal/Device.java
@@ -260,6 +260,8 @@ public class Device implements IDevice {
             Integer port = cur.getSwitchPort();
             if (dpid == null || port == null ||
                 !deviceManager.isValidAttachmentPoint(dpid, port) ||
+                cur.getLastSeenTimestamp().
+                    before(topology.getLastUpdateTime()) ||
                 (prev != null && 
                 topology.isConsistent(prev.getSwitchDPID().longValue(),
                                       prev.getSwitchPort().shortValue(),
diff --git a/src/main/java/net/floodlightcontroller/topology/ITopologyService.java b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java
index 6b38f60befd56cbe304719e23c574e147ae7a70b..90f8450a8b69aba9178be652cdf5131f4dee7094 100644
--- a/src/main/java/net/floodlightcontroller/topology/ITopologyService.java
+++ b/src/main/java/net/floodlightcontroller/topology/ITopologyService.java
@@ -1,5 +1,6 @@
 package net.floodlightcontroller.topology;
 
+import java.util.Date;
 import java.util.Set;
 
 import net.floodlightcontroller.core.module.IFloodlightService;
@@ -9,6 +10,8 @@ public interface ITopologyService extends IFloodlightService  {
 
     public void addListener(ITopologyListener listener);
 
+    public Date getLastUpdateTime();
+
     /**
      * Query to determine if devices must be learned on a given switch port.
      */
diff --git a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
index 26374bf6855ff89c29abe846c375216ceb9f951b..1b8e93495a5f3be5f2732a231a43439e6a66f8d0 100644
--- a/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
+++ b/src/main/java/net/floodlightcontroller/topology/TopologyManager.java
@@ -3,6 +3,7 @@ package net.floodlightcontroller.topology;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -94,6 +95,8 @@ public class TopologyManager implements
     protected TopologyInstance currentInstanceWithoutTunnels;
     protected SingletonTask newInstanceTask;
 
+    private Date lastUpdateTime;
+
     /**
      * Thread for recomputing topology.  The thread is always running, 
      * however the function applyUpdates() has a blocking call.
@@ -104,6 +107,7 @@ public class TopologyManager implements
             try {
 	            applyUpdates();
 	            createNewInstance();
+	            lastUpdateTime = new Date();
 	            informListeners();
             }
             catch (Exception e) {
@@ -141,6 +145,10 @@ public class TopologyManager implements
     //
     // ITopologyService interface methods
     //
+    @Override
+    public Date getLastUpdateTime() {
+        return lastUpdateTime;
+    }
 
     @Override
     public void addListener(ITopologyListener listener) {
@@ -593,6 +601,8 @@ public class TopologyManager implements
         topologyAware = new ArrayList<ITopologyListener>();
         ldUpdates = new LinkedBlockingQueue<LDUpdate>();
         appliedUpdates = new HashSet<LDUpdate>();
+
+        lastUpdateTime = new Date();
     }
 
     @Override