diff --git a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params
index 65dca1f..8730ce6 100644
--- a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params
+++ b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.params
@@ -1,5 +1,5 @@
 <PARAMS>
-    <testcases>1,2,3,21,31,41,4,5,6,7</testcases>
+    <testcases>1,2,3,31,41,4,5,6,7</testcases>
     <FLOWDEF>~/flowdef_files/Center_Triangle/flowdef_20.txt</FLOWDEF>
     <CASE1>       
         <destination>h6</destination>
@@ -28,21 +28,21 @@
 	<sw1>s1</sw1>
     </PLUG>
     <CTRL>
-        <ip1>10.128.100.1</ip1>
+        <ip1>10.128.4.151</ip1>
         <port1>6633</port1>
-        <ip2>10.128.100.4</ip2>
+        <ip2>10.128.4.152</ip2>
         <port2>6633</port2>
-        <ip3>10.128.100.5</ip3>
+        <ip3>10.128.4.153</ip3>
         <port3>6633</port3>
-        <ip4>10.128.100.6</ip4>
+        <ip4>10.128.4.154</ip4>
         <port4>6633</port4>
     </CTRL>
-    <RestIP>10.128.100.1</RestIP>
+    <RestIP>10.128.4.151</RestIP>
     <NR_Switches>25</NR_Switches>
     <NR_Links>50</NR_Links>
     <RESTCALL>
-	<restIP1>10.128.100.1</restIP1>
-	<restIP2>10.128.100.4</restIP2>
+	<restIP1>10.128.4.151</restIP1>
+	<restIP2>10.128.4.152</restIP2>
 	<restPort>8080</restPort>
 	<restURL>/wm/onos/ng/switches/json</restURL>
     </RESTCALL>
diff --git a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py
index e2a3705..52e2635 100644
--- a/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py
+++ b/TestON/tests/RCOnosSanity4nodesJ/RCOnosSanity4nodesJ.py
@@ -10,10 +10,24 @@
     def CASE1(self,main) :  #Check to be sure ZK, Cass, and ONOS are up, then get ONOS version
         import time
         main.log.report("Pulling latest code from github to all nodes")
-        main.ONOS1.git_pull()
-        main.ONOS2.git_pull()
-        main.ONOS3.git_pull()
-        main.ONOS4.git_pull()
+        for i in range(2):
+            uptodate = main.ONOS1.git_pull()
+            main.ONOS2.git_pull()
+            main.ONOS3.git_pull()
+            main.ONOS4.git_pull()
+            ver1 = main.ONOS1.get_version()
+            ver2 = main.ONOS4.get_version()
+            if ver1==ver2:
+                break
+            elif i==1:
+                main.ONOS2.git_pull("ONOS1 master")
+                main.ONOS3.git_pull("ONOS1 master")
+                main.ONOS4.git_pull("ONOS1 master")
+        if uptodate==0:
+            main.ONOS1.git_compile()
+            main.ONOS2.git_compile()
+            main.ONOS3.git_compile()
+            main.ONOS4.git_compile()
        # main.RamCloud1.git_pull()
        # main.RamCloud2.git_pull()
        # main.RamCloud3.git_pull()
