diff --git a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
index caa7f82..d1aa771 100644
--- a/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
+++ b/providers/host/src/main/java/org/onosproject/provider/host/impl/HostLocationProvider.java
@@ -462,7 +462,9 @@
     // Signals host vanish for all specified hosts.
     private void removeHosts(Set<Host> hosts) {
         for (Host host : hosts) {
-            providerService.hostVanished(host.id());
+            if (host.providerId().equals(HostLocationProvider.this.id())) {
+                providerService.hostVanished(host.id());
+            }
         }
     }
 
diff --git a/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java b/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java
index 79ad4d5..4b260c7 100644
--- a/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java
+++ b/providers/host/src/test/java/org/onosproject/provider/host/impl/HostLocationProviderTest.java
@@ -86,6 +86,9 @@
 import static org.onosproject.net.device.DeviceEvent.Type.*;
 
 public class HostLocationProviderTest {
+    private static final ProviderId PROVIDER_ID =
+            new ProviderId("of", "org.onosproject.provider.host");
+
     private static final Integer INPORT = 10;
     private static final String DEV1 = "of:1";
     private static final String DEV2 = "of:2";
@@ -105,7 +108,7 @@
     private static final HostLocation LOCATION =
             new HostLocation(deviceId(DEV1), portNumber(INPORT), 0L);
     private static final DefaultHost HOST =
-            new DefaultHost(ProviderId.NONE, hostId(MAC), MAC,
+            new DefaultHost(PROVIDER_ID, hostId(MAC), MAC,
                             vlanId(VlanId.UNTAGGED), LOCATION,
                             ImmutableSet.of(IP_ADDRESS));
 
@@ -118,7 +121,7 @@
     private static final HostLocation LOCATION2 =
             new HostLocation(deviceId(DEV4), portNumber(INPORT), 0L);
     private static final DefaultHost HOST2 =
-            new DefaultHost(ProviderId.NONE, hostId(MAC2), MAC2,
+            new DefaultHost(PROVIDER_ID, hostId(MAC2), MAC2,
                             vlanId(VlanId.UNTAGGED), LOCATION2,
                             ImmutableSet.of(IP_ADDRESS2));
 
