diff --git a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
index 35bb730..f3dd6e0 100644
--- a/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/openflow/device/src/main/java/org/onosproject/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -75,6 +75,7 @@
 import org.projectfloodlight.openflow.protocol.OFCalientPortDescProp;
 import org.projectfloodlight.openflow.protocol.OFCalientPortDescPropOptical;
 import org.projectfloodlight.openflow.protocol.OFCalientPortDescStatsEntry;
+import org.projectfloodlight.openflow.protocol.OFCapabilities;
 import org.projectfloodlight.openflow.protocol.OFErrorMsg;
 import org.projectfloodlight.openflow.protocol.OFErrorType;
 import org.projectfloodlight.openflow.protocol.OFExpPort;
@@ -640,9 +641,11 @@
             providerService.deviceConnected(did, description);
             providerService.updatePorts(did, buildPortDescriptions(sw));
 
-            PortStatsCollector psc = new PortStatsCollector(timer, sw, portStatsPollFrequency);
-            stopCollectorIfNeeded(collectors.put(dpid, psc));
-            psc.start();
+            if (sw.features().getCapabilities().contains(OFCapabilities.PORT_STATS)) {
+                PortStatsCollector psc = new PortStatsCollector(timer, sw, portStatsPollFrequency);
+                stopCollectorIfNeeded(collectors.put(dpid, psc));
+                psc.start();
+            }
 
             //figure out race condition for collectors.remove() and collectors.put()
             if (controller.getSwitch(dpid) == null) {
diff --git a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
index ef013b59..8ee8cb0 100644
--- a/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onosproject/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -243,16 +243,18 @@
         if (sw == null) {
             return;
         }
-        if (adaptiveFlowSampling) {
-            // NewAdaptiveFlowStatsCollector Constructor
-            NewAdaptiveFlowStatsCollector fsc =
-                    new NewAdaptiveFlowStatsCollector(driverService, sw, flowPollFrequency);
-            stopCollectorIfNeeded(afsCollectors.put(new Dpid(sw.getId()), fsc));
-            fsc.start();
-        } else {
-            FlowStatsCollector fsc = new FlowStatsCollector(timer, sw, flowPollFrequency);
-            stopCollectorIfNeeded(simpleCollectors.put(new Dpid(sw.getId()), fsc));
-            fsc.start();
+        if (sw.features().getCapabilities().contains(OFCapabilities.FLOW_STATS)) {
+            if (adaptiveFlowSampling) {
+                // NewAdaptiveFlowStatsCollector Constructor
+                NewAdaptiveFlowStatsCollector fsc =
+                        new NewAdaptiveFlowStatsCollector(driverService, sw, flowPollFrequency);
+                stopCollectorIfNeeded(afsCollectors.put(new Dpid(sw.getId()), fsc));
+                fsc.start();
+            } else {
+                FlowStatsCollector fsc = new FlowStatsCollector(timer, sw, flowPollFrequency);
+                stopCollectorIfNeeded(simpleCollectors.put(new Dpid(sw.getId()), fsc));
+                fsc.start();
+            }
         }
         if (sw.features().getCapabilities().contains(OFCapabilities.TABLE_STATS)) {
             TableStatisticsCollector tsc = new TableStatisticsCollector(timer, sw, flowPollFrequency);
