diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java
index cf3df33..7afc841 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java
@@ -245,6 +245,7 @@
             if (device != null) {
                 ip = device.annotations().value("ipaddress");
                 port = Integer.parseInt(device.annotations().value("port"));
+                path = device.annotations().value("path");
             } else {
                 Triple<String, Integer, Optional<String>> info = extractIpPortPath(deviceId);
                 ip = info.getLeft();
@@ -296,8 +297,10 @@
     }
 
     private void stopDevice(DeviceId deviceId, boolean remove) {
-        netconfDeviceMap.get(deviceId).disconnect();
-        netconfDeviceMap.remove(deviceId);
+        NetconfDevice nc = netconfDeviceMap.remove(deviceId);
+        if (nc != null) {
+            nc.disconnect();
+        }
         if (remove) {
             for (NetconfDeviceListener l : netconfDeviceListeners) {
                 l.deviceRemoved(deviceId);
diff --git a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
index 36341d5..e60c8e5 100644
--- a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
+++ b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
@@ -411,12 +411,13 @@
 
     private void connectDevice(NetconfDeviceConfig config) {
         if (config == null) {
+            log.warn("connect device invoked with null config");
             return;
         }
         DeviceId deviceId = config.subject();
         if (!deviceId.uri().getScheme().equals(SCHEME_NAME)) {
             // not under my scheme, skipping
-            log.trace("{} not my scheme, skipping", deviceId);
+            log.debug("{} not of schema {}, skipping", deviceId, SCHEME_NAME);
             return;
         }
         DeviceDescription deviceDescription = createDeviceRepresentation(deviceId, config);
@@ -427,9 +428,11 @@
         storeDeviceKey(config.sshKey(), config.username(), config.password(), deviceId);
         retriedPortDiscoveryMap.put(deviceId, new AtomicInteger(0));
         if (deviceService.getDevice(deviceId) == null) {
+            log.debug("device connected {}", deviceId);
             providerService.deviceConnected(deviceId, deviceDescription);
         }
         try {
+            log.debug("check and update {}", deviceId);
             checkAndUpdateDevice(deviceId, deviceDescription, true);
         } catch (Exception e) {
             log.error("Unhandled exception checking {}", deviceId, e);
