diff --git a/VERSION b/VERSION
index 488130a..2710b19 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1,2 @@
-2.0.2.dev0
+2.0.2.dev1
+
diff --git a/src/test/cordSubscriber/cordSubscriberTest.py b/src/test/cordSubscriber/cordSubscriberTest.py
index 99f5a88..4fcd590 100644
--- a/src/test/cordSubscriber/cordSubscriberTest.py
+++ b/src/test/cordSubscriber/cordSubscriberTest.py
@@ -345,7 +345,7 @@
             cls.device_dict = { "devices" : {
                         "{}".format(did) : {
                               "basic" : {
-                                    "driver" : "pmc-olt"
+                                    "driver" : "voltha"
                                     }
                               }
                         },
diff --git a/src/test/dhcpl2relay/dhcpl2relayTest.py b/src/test/dhcpl2relay/dhcpl2relayTest.py
index f947fe7..8de431c 100644
--- a/src/test/dhcpl2relay/dhcpl2relayTest.py
+++ b/src/test/dhcpl2relay/dhcpl2relayTest.py
@@ -170,7 +170,7 @@
         device_details = OnosCtrl.get_devices()
         if device_details is not None:
            for device in device_details:
-               if device['available'] is True and device['driver'] == 'pmc-olt':
+               if device['available'] is True and device['driver'] == 'voltha':
                   cls.olt_serial_id = "{}".format(device['serial'])
                   break
                else:
@@ -499,7 +499,7 @@
         if device_details is not None:
            for device in device_details:
              ## Assuming only one OVS is detected on ONOS and its for external DHCP server connect point...
-             if device['available'] is True and device['driver'] == 'pmc-olt':
+             if device['available'] is True and device['driver'] == 'voltha':
                 cls.olt_serial_id = "{}".format(device['serial'])
              else:
                 cls.olt_serial_id = " "
diff --git a/src/test/utils/Cluster.py b/src/test/utils/Cluster.py
index 1b3a05c..4f762ea 100644
--- a/src/test/utils/Cluster.py
+++ b/src/test/utils/Cluster.py
@@ -1697,7 +1697,7 @@
             cls.device_dict = { "devices" : {
                         "{}".format(did) : {
                               "basic" : {
-                                    "driver" : "pmc-olt"
+                                    "driver" : "voltha"
                                     }
                               }
                         },
@@ -1712,7 +1712,7 @@
           network_cfg = { "devices" : {
                   "{}".format(did) : {
                         "basic" : {
-                              "driver" : "pmc-olt"
+                              "driver" : "voltha"
                               }
                         }
                   },
diff --git a/src/test/utils/OnosCtrl.py b/src/test/utils/OnosCtrl.py
index 3aa09ba..dc4f05c 100644
--- a/src/test/utils/OnosCtrl.py
+++ b/src/test/utils/OnosCtrl.py
@@ -277,7 +277,7 @@
         return False, 400
 
     @classmethod
-    def config_device_driver(cls, controller = None, dids = None, driver = 'pmc-olt'):
+    def config_device_driver(cls, controller = None, dids = None, driver = 'voltha'):
         driver_apps = ('org.onosproject.drivers', 'org.onosproject.openflow-base',)
         if dids is None:
             dids = cls.get_device_ids(controller = controller)
diff --git a/src/test/utils/Scale.py b/src/test/utils/Scale.py
index 3fd4e4b..6c14872 100644
--- a/src/test/utils/Scale.py
+++ b/src/test/utils/Scale.py
@@ -720,7 +720,7 @@
         #dids = OnosCtrl.get_device_ids()
         #device_map = {}
         #for did in dids:
-        #      device_map[did] = { 'basic' : { 'driver' : 'pmc-olt' } }
+        #      device_map[did] = { 'basic' : { 'driver' : 'voltha' } }
         #network_cfg = {}
         #network_cfg = { 'devices' : device_map }
         #Restart ONOS with cpqd driver config for OVS
diff --git a/src/test/utils/VolthaCtrl.py b/src/test/utils/VolthaCtrl.py
index 5d9993a..0a73551 100644
--- a/src/test/utils/VolthaCtrl.py
+++ b/src/test/utils/VolthaCtrl.py
@@ -279,7 +279,7 @@
                                               names = onu_names,
                                               macs = onu_macs)
             device_config['devices'][device_id] = {}
-            device_config['devices'][device_id]['basic'] = dict(driver='pmc-olt')
+            device_config['devices'][device_id]['basic'] = dict(driver='voltha')
             device_config['devices'][device_id]['accessDevice'] = dict(uplink=nni_ports[0]['port'],
                                                                        vlan = uplink_vlan,
                                                                        defaultVlan=str(onu_ports[0])
@@ -424,7 +424,7 @@
                  uplink_vlan_start = VolthaCtrl.UPLINK_VLAN_START,
                  config_fake = False, olt_app = None, teardown = True):
     devices = OnosCtrl.get_devices()
-    olt_devices = filter(lambda d: not d['mfr'].startswith('Nicira') and d['driver'] == 'pmc-olt', devices)
+    olt_devices = filter(lambda d: not d['mfr'].startswith('Nicira') and d['driver'] == 'voltha', devices)
     voltha = VolthaCtrl(host, rest_port = rest_port,
                         uplink_vlan_map = uplink_vlan_map,
                         uplink_vlan_start = uplink_vlan_start)
