diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java
index 84c9b21..6af8e1d 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/api/OpenstackNetworkEvent.java
@@ -46,6 +46,11 @@
         OPENSTACK_NETWORK_UPDATED,
 
         /**
+         * Signifies that the OpenStack network is pre-removed.
+         */
+        OPENSTACK_NETWORK_PRE_REMOVED,
+
+        /**
          * Signifies that the OpenStack network is removed.
          */
         OPENSTACK_NETWORK_REMOVED,
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackNetworkStore.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackNetworkStore.java
index 2cebd2f..474e6d1 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackNetworkStore.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/DistributedOpenstackNetworkStore.java
@@ -74,6 +74,7 @@
 import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.EXTERNAL_PEER_ROUTER_REMOVED;
 import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.EXTERNAL_PEER_ROUTER_UPDATED;
 import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.OPENSTACK_NETWORK_CREATED;
+import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.OPENSTACK_NETWORK_PRE_REMOVED;
 import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.OPENSTACK_NETWORK_REMOVED;
 import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.OPENSTACK_NETWORK_UPDATED;
 import static org.onosproject.openstacknetworking.api.OpenstackNetworkEvent.Type.OPENSTACK_PORT_CREATED;
@@ -373,6 +374,20 @@
             notifyDelegate(new OpenstackNetworkEvent(
                     OPENSTACK_NETWORK_UPDATED,
                     event.newValue().value()));
+
+            Network oldValue = event.oldValue().value();
+            Network newValue = event.newValue().value();
+
+            // FIXME: before the network get removed eventually, neutron always
+            // issue network update event with removed (empty) segmentation ID
+            // this might be a bug of openstack or openstack4j, need to revisit later
+            if (oldValue.getProviderSegID() != null &&
+                    newValue.getProviderSegID() == null) {
+                log.debug("OpenStack network pre-removed");
+                notifyDelegate(new OpenstackNetworkEvent(
+                        OPENSTACK_NETWORK_PRE_REMOVED,
+                        event.oldValue().value()));
+            }
         }
 
         private void processNetworkMapInsertion(MapEvent<String, Network> event) {
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java
index 68fe4df..6eb882e 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingArpHandler.java
@@ -872,7 +872,7 @@
             Network network = event.subject();
 
             if (network == null) {
-                log.warn("Network is not specified.");
+                log.debug("Network is not specified.");
                 return false;
             } else {
                 return network.getProviderSegID() != null;
@@ -897,9 +897,10 @@
                 case OPENSTACK_NETWORK_UPDATED:
                     eventExecutor.execute(() -> processNetworkCreation(event));
                     break;
-                case OPENSTACK_NETWORK_REMOVED:
+                case OPENSTACK_NETWORK_PRE_REMOVED:
                     eventExecutor.execute(() -> processNetworkRemoval(event));
                     break;
+                case OPENSTACK_NETWORK_REMOVED:
                 case OPENSTACK_PORT_CREATED:
                 case OPENSTACK_PORT_UPDATED:
                 case OPENSTACK_PORT_REMOVED:
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHandler.java
index c406990..c30ea73 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackSwitchingHandler.java
@@ -822,7 +822,7 @@
                 case OPENSTACK_NETWORK_UPDATED:
                     eventExecutor.execute(() -> processNetworkAddition(event));
                     break;
-                case OPENSTACK_NETWORK_REMOVED:
+                case OPENSTACK_NETWORK_PRE_REMOVED:
                     eventExecutor.execute(() -> processNetworkRemoval(event));
                     break;
                 case OPENSTACK_PORT_CREATED:
