diff --git a/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java b/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java
index 8331a12..46fa997 100644
--- a/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java
+++ b/protocols/netconf/api/src/main/java/org/onosproject/netconf/NetconfDeviceInfo.java
@@ -40,6 +40,7 @@
     private IpAddress ipAddress;
     private int port;
     private File keyFile;
+    private DeviceId deviceId;
 
 
     /**
@@ -143,13 +144,14 @@
      * @return DeviceId
      */
     public DeviceId getDeviceId() {
-
-        try {
-            return DeviceId.deviceId(new URI(this.toString()));
-        } catch (URISyntaxException e) {
-            log.debug("Unable to build deviceID for device {} ", this, e);
+        if (deviceId == null) {
+            try {
+                deviceId = DeviceId.deviceId(new URI("netconf", ipAddress.toString() + ":" + port, null));
+            } catch (URISyntaxException e) {
+                throw new IllegalArgumentException("Unable to build deviceID for device " + toString(), e);
+            }
         }
-        return null;
+        return deviceId;
     }
 
     @Override
diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfControllerImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfControllerImpl.java
index 251a74b..0d83978 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfControllerImpl.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/NetconfControllerImpl.java
@@ -81,8 +81,7 @@
     @Override
     public NetconfDevice getNetconfDevice(IpAddress ip, int port) {
         for (DeviceId info : netconfDeviceMap.keySet()) {
-            if (IpAddress.valueOf(info.uri().getHost()).equals(ip) &&
-                    info.uri().getPort() == port) {
+            if (info.uri().getSchemeSpecificPart().equals(ip.toString() + ":" + port)) {
                 return netconfDeviceMap.get(info);
             }
         }
@@ -102,7 +101,7 @@
 
     @Override
     public void removeDevice(NetconfDeviceInfo deviceInfo) {
-        if (netconfDeviceMap.containsKey(deviceInfo.getDeviceId())) {
+        if (!netconfDeviceMap.containsKey(deviceInfo.getDeviceId())) {
             log.warn("Device {} is not present", deviceInfo);
         } else {
             stopDevice(deviceInfo);
diff --git a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
index aa1b959..57da2e5 100644
--- a/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
+++ b/protocols/rest/api/src/main/java/org/onosproject/protocol/rest/DefaultRestSBDevice.java
@@ -22,6 +22,8 @@
 import org.onlab.packet.IpAddress;
 import org.onosproject.net.DeviceId;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.Objects;
 
 /**
@@ -74,7 +76,13 @@
 
     @Override
     public DeviceId deviceId() {
-        return DeviceId.deviceId(REST + COLON + ip + COLON + port);
+        try {
+            return DeviceId.deviceId(new URI(REST, ip + COLON + port, null));
+        } catch (URISyntaxException e) {
+            throw new IllegalArgumentException("Cannot create deviceID " +
+                                                       REST + COLON + ip +
+                                                       COLON + port, e);
+        }
     }
 
     @Override
diff --git a/tools/test/configs/netconf-cfg.json b/tools/test/configs/netconf-cfg.json
index 3397cd1..29bdb46 100644
--- a/tools/test/configs/netconf-cfg.json
+++ b/tools/test/configs/netconf-cfg.json
@@ -1,6 +1,6 @@
 {
   "devices":{
-    "netconf:mininet@10.1.9.24:830":{
+    "netconf:10.1.9.24:830":{
       "basic":{
         "driver":"ovs-netconf"
       }
