diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java
index 205602d..94669ed 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java
@@ -442,12 +442,12 @@
         try {
             externalPeerRouterMap.computeIfPresent(ipAddress.toString(), (id, existing) ->
                 new DefaultExternalPeerRouter(ipAddress, macAddress, existing.externalPeerRouterVlanId()));
+
+            log.info("Updated external peer router map {}",
+                    externalPeerRouterMap.get(ipAddress.toString()).value().toString());
         } catch (Exception e) {
             log.error("Exception occurred because of {}", e.toString());
         }
-
-        log.info("Updated external peer router map {}",
-                externalPeerRouterMap.get(ipAddress.toString()).value().toString());
     }
 
 
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
index 5736e88..2919072 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
@@ -278,11 +278,11 @@
 
             try {
 
-                Set<String> fipSet = osRouterService.floatingIps().stream()
-                        .map(NetFloatingIP::getFloatingIpAddress).collect(Collectors.toSet());
+                Set<String> extRouterIps = osNetworkService.externalPeerRouters().
+                        stream().map(r -> r.externalPeerRouterIp().toString()).collect(Collectors.toSet());
 
-                // if the SPA is floating IP, we simply ignores it
-                if (fipSet.contains(spa.toString())) {
+                // if SPA is NOT contained in existing external router IP set, we ignore it
+                if (!extRouterIps.contains(spa.toString())) {
                     return;
                 }
 
