diff --git a/TestON/tests/SingleFunc/SingleFunc.params b/TestON/tests/SingleFunc/SingleFunc.params
index c4321dd..58427cc 100755
--- a/TestON/tests/SingleFunc/SingleFunc.params
+++ b/TestON/tests/SingleFunc/SingleFunc.params
@@ -1,6 +1,6 @@
 <PARAMS>
 
-    <testcases>10</testcases>
+    <testcases>10,11</testcases>
     <ENV>
         <cellName>single_func</cellName>
     </ENV>
diff --git a/TestON/tests/SingleFunc/SingleFunc.py b/TestON/tests/SingleFunc/SingleFunc.py
index 7799254..b971d8c 100644
--- a/TestON/tests/SingleFunc/SingleFunc.py
+++ b/TestON/tests/SingleFunc/SingleFunc.py
@@ -138,20 +138,21 @@
         """
         Assign mastership to controllers
         """
+        import re
         main.log.report( "Assigning switches to controllers" )
         main.log.case( "Assigning swithes to controllers" )
 
         main.step( "Assigning switches to controllers" )
         assignResult = main.TRUE
-        for i in range( 1, 8 ):
+        for i in range( 1, ( main.numSwitch + 1 ) ):
             main.Mininet1.assignSwController( sw=str( i ),
                                               count=1,
-                                              ip1=ONOS1ip,
-                                              port1=ONOS1port )
-        for i in range( 1, ( main.numSwitches + 1 ) ):
+                                              ip1=main.ONOS1ip,
+                                              port1=main.ONOS1port )
+        for i in range( 1, ( main.numSwitch + 1 ) ):
             response = main.Mininet1.getSwController( "s" + str( i ) )
             print( "Response is " + str( response ) )
-            if re.search( "tcp:" + main.ONOS1cli, response ):
+            if re.search( "tcp:" + main.ONOS1ip, response ):
                 assignResult = assignResult and main.TRUE
             else:
                 assignResult = main.FALSE
@@ -163,4 +164,3 @@
                                  onfail="Failed to assign switches to " +
                                         "controller" )
 
-
