Simplified port state.
diff --git a/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
index 81d05f6..c05d9fb 100644
--- a/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -44,6 +44,8 @@
 
     private DeviceProviderService providerService;
 
+    private OpenFlowSwitchListener listener = new InternalDeviceProvider();
+
     /**
      * Creates an OpenFlow device provider.
      */
@@ -54,13 +56,14 @@
     @Activate
     public void activate() {
         providerService = providerRegistry.register(this);
-        controller.addListener(new InternalDeviceProvider());
+        controller.addListener(listener);
         log.info("Started");
     }
 
     @Deactivate
     public void deactivate() {
         providerRegistry.unregister(this);
+        controller.removeListener(listener);
         providerService = null;
         log.info("Stopped");
     }