diff --git a/TestON/drivers/common/cli/emulator/lincoedriver.py b/TestON/drivers/common/cli/emulator/lincoedriver.py
index a82cfa4..82179a5 100644
--- a/TestON/drivers/common/cli/emulator/lincoedriver.py
+++ b/TestON/drivers/common/cli/emulator/lincoedriver.py
@@ -329,7 +329,11 @@
             cmd = "sudo kill -9 `pgrep -f linc`"
             self.handle.sendline( cmd )
             self.handle.expect( "\$" )
-
+            # Close the ssh connection
+            self.handle.sendline( "" )
+            self.handle.expect( "\$" )
+            self.handle.sendline( "exit" )
+            self.handle.expect( "closed" )
         except pexpect.EOF:
             main.log.error( self.name + ": EOF exception" )
             main.log.error( self.name + ":    " + self.handle.before )
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index cd64fd0..b7dc847 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -97,9 +97,18 @@
             main.cleanup()
             main.exit()
 
+<<<<<<< HEAD
 
     def startNet( self, topoFile = '', args = '', timeout = 120 ):
+=======
+>>>>>>> 42efbd8869b8e52ac17c3f0966cdf12979e41e0f
 
+    def startNet( self, topoFile = '', args = '', timeout = 120 ):
+        """
+        Starts Mininet accepts a topology(.py) file and/or an optional
+        arguement ,to start the mininet, as a parameter.
+        Returns true if the mininet starts successfully
+        """
         if self.handle:
             main.log.info(
                 self.name +
@@ -1236,7 +1245,12 @@
 
     def disconnect( self ):
         """
+<<<<<<< HEAD
         Called at the end of the test to disconnect the handle.
+=======
+        Called at the end of the test to stop the mininet and
+        disconnect the handle.
+>>>>>>> 42efbd8869b8e52ac17c3f0966cdf12979e41e0f
         """
         self.handle.sendline('')
         i = 1
@@ -1250,7 +1264,11 @@
             self.handle.expect( "exit" )
             self.handle.expect( "(.*)" )
             main.log.info( "Mininet CLI is successfully disconnected" )
+<<<<<<< HEAD
             response = self.handle.before
+=======
+            response = main.TRUE
+>>>>>>> 42efbd8869b8e52ac17c3f0966cdf12979e41e0f
         else:
             main.log.error( "Connection failed to the host" )
             response = main.FALSE
@@ -1258,6 +1276,13 @@
         return response
 
     def stopNet( self ):
+<<<<<<< HEAD
+=======
+        """
+        Stops mininet. returns true if the mininet succesfully stops.
+        """
+        
+>>>>>>> 42efbd8869b8e52ac17c3f0966cdf12979e41e0f
         main.log.info( self.name + ": Disconnecting mininet..." )
         response = ''
         if self.handle:
diff --git a/TestON/drivers/common/cli/emulator/remotemininetdriver.py b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
index e15e53c..3d91a20 100644
--- a/TestON/drivers/common/cli/emulator/remotemininetdriver.py
+++ b/TestON/drivers/common/cli/emulator/remotemininetdriver.py
@@ -380,12 +380,13 @@
             self.handle.sendline( "exit" )
             self.handle.expect( "exit" )
             self.handle.expect( "(.*)" )
-            response = self.handle.before
-
+            # Close the ssh connection
+            self.handle.sendline( "" )
+            self.handle.expect( "\$" )
+            self.handle.sendline( "exit" )
+            self.handle.expect( "closed" )
         else:
             main.log.error( "Connection failed to the host" )
-            response = main.FALSE
-        return response
 
     def getFlowTable( self, protoVersion, sw ):
         """
