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 b49ec74..084e969 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
@@ -477,6 +477,7 @@
     private void setArpRule(NetFloatingIP fip, MacAddress targetMac,
                             OpenstackNode gateway, boolean install) {
         TrafficSelector selector = DefaultTrafficSelector.builder()
+                .matchInPort(gateway.uplinkPortNum())
                 .matchEthType(EthType.EtherType.ARP.ethType().toShort())
                 .matchArpOp(ARP.OP_REQUEST)
                 .matchArpTpa(Ip4Address.valueOf(fip.getFloatingIpAddress()))
@@ -584,7 +585,8 @@
             // do not allow to proceed without leadership
             NodeId leader = leadershipService.getLeader(appId.name());
             return Objects.equals(localNodeId, leader) &&
-                    DEVICE_OWNER_ROUTER_GW.equals(osPort.getDeviceOwner());
+                    DEVICE_OWNER_ROUTER_GW.equals(osPort.getDeviceOwner()) &&
+                        ARP_BROADCAST_MODE.equals(getArpMode());
         }
 
         @Override
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
index beaa1f1..cbe22e0 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingFloatingIpHandler.java
@@ -894,8 +894,7 @@
                     if (fip != null) {
                         instancePortService.updateInstancePort(
                                             instPort.updateState(REMOVE_PENDING));
-                        eventExecutor.execute(() ->
-                                updateFipStore(instancePortService.instancePort(event.port().getId())));
+                        eventExecutor.execute(() -> updateFipStore(event.port().getId()));
                     } else {
                         // FIXME: we have dependency with security group, need to
                         // find a better way to remove this dependency
@@ -909,9 +908,9 @@
             }
         }
 
-        private void updateFipStore(InstancePort port) {
+        private void updateFipStore(String portId) {
 
-            if (port == null) {
+            if (portId == null) {
                 return;
             }
 
@@ -923,7 +922,7 @@
                 if (Strings.isNullOrEmpty(fip.getFloatingIpAddress())) {
                     continue;
                 }
-                if (fip.getFixedIpAddress().equals(port.ipAddress().toString())) {
+                if (fip.getPortId().equals(portId)) {
                     NeutronFloatingIP neutronFip = (NeutronFloatingIP) fip;
                     // invalidate bound fixed IP and port
                     neutronFip.setFixedIpAddress(null);
