diff --git a/TestON/tests/HAclusterRestart/dependencies/Counters.py b/TestON/tests/HAclusterRestart/dependencies/Counters.py
index 7abd73a..21308c2 100644
--- a/TestON/tests/HAclusterRestart/dependencies/Counters.py
+++ b/TestON/tests/HAclusterRestart/dependencies/Counters.py
@@ -35,6 +35,7 @@
             main.log.error( "Could not parse counters response from ONOS" +
                             str( i + 1 ) )
             main.log.warn( repr( onosCounters[ i ] ) )
+            return main.FALSE
         onosValue = None
         try:
             for database in current:
diff --git a/TestON/tests/HAminorityRestart/dependencies/Counters.py b/TestON/tests/HAminorityRestart/dependencies/Counters.py
index 7abd73a..21308c2 100644
--- a/TestON/tests/HAminorityRestart/dependencies/Counters.py
+++ b/TestON/tests/HAminorityRestart/dependencies/Counters.py
@@ -35,6 +35,7 @@
             main.log.error( "Could not parse counters response from ONOS" +
                             str( i + 1 ) )
             main.log.warn( repr( onosCounters[ i ] ) )
+            return main.FALSE
         onosValue = None
         try:
             for database in current:
diff --git a/TestON/tests/HAsanity/dependencies/Counters.py b/TestON/tests/HAsanity/dependencies/Counters.py
index 7abd73a..21308c2 100644
--- a/TestON/tests/HAsanity/dependencies/Counters.py
+++ b/TestON/tests/HAsanity/dependencies/Counters.py
@@ -35,6 +35,7 @@
             main.log.error( "Could not parse counters response from ONOS" +
                             str( i + 1 ) )
             main.log.warn( repr( onosCounters[ i ] ) )
+            return main.FALSE
         onosValue = None
         try:
             for database in current:
diff --git a/TestON/tests/HAsingleInstanceRestart/dependencies/Counters.py b/TestON/tests/HAsingleInstanceRestart/dependencies/Counters.py
index 7abd73a..21308c2 100644
--- a/TestON/tests/HAsingleInstanceRestart/dependencies/Counters.py
+++ b/TestON/tests/HAsingleInstanceRestart/dependencies/Counters.py
@@ -35,6 +35,7 @@
             main.log.error( "Could not parse counters response from ONOS" +
                             str( i + 1 ) )
             main.log.warn( repr( onosCounters[ i ] ) )
+            return main.FALSE
         onosValue = None
         try:
             for database in current:
diff --git a/TestON/tests/SCPFmaxIntents/SCPFmaxIntents.py b/TestON/tests/SCPFmaxIntents/SCPFmaxIntents.py
index e18d746..762f6fd 100644
--- a/TestON/tests/SCPFmaxIntents/SCPFmaxIntents.py
+++ b/TestON/tests/SCPFmaxIntents/SCPFmaxIntents.py
@@ -343,8 +343,12 @@
         offset = 0
         # the number of intents we expect to be in the installed state
         expectedIntents = 0
+        # keeps track of how many intents have been installed
+        maxIntents = 0
         # the number of flows we expect to be in the added state
         expectedFlows = main.defaultFlows
+        # keeps track of how many flows have been installed
+        maxFlows = main.defaultFlows
         # limit for the number of intents that can be installed
         limit = main.maxIntents / main.batchSize
 
@@ -371,6 +375,9 @@
             expectedIntents = offset
             expectedFlows += main.batchSize*2
 
+            maxIntents = main.intentFunctions.getIntents( main )
+            maxFlows = main.intentFunctions.getFlows( main )
+
             if offset >= main.minIntents and offset % main.checkInterval == 0 or expectedIntents == main.maxIntents:
                 # Verifying intents
                 main.log.step("Verifying intents")
@@ -403,9 +410,6 @@
                 if stepResult == main.FALSE:
                     break
 
-        maxIntents = main.intentFunctions.getIntents( main )
-        maxFlows = main.intentFunctions.getFlows( main )
-
         main.log.report("Done pushing intents")
         main.log.info("Summary: Intents=" + str(expectedIntents) + " Flows=" + str(expectedFlows))
         main.log.info("Installed intents: " + str(maxIntents) +
@@ -437,8 +441,12 @@
         offset = 0
         # the number of intents we expect to be in the installed state
         expectedIntents = 0
+        # keeps track of how many intents have been installed
+        maxIntents = 0
         # the number of flows we expect to be in the added state
         expectedFlows = main.defaultFlows
+        # keeps track of how many flows have been installed
+        maxFlows = main.defaultFlows
         # limit for the number of intents that can be installed
         limit = main.maxIntents / main.batchSize
 
@@ -461,6 +469,9 @@
             if stepResult == main.FALSE:
                 break
 
+            maxIntents = main.intentFunctions.getIntents( main )
+            maxFlows = main.intentFunctions.getFlows( main )
+
             offset += main.batchSize
             expectedIntents = offset
             expectedFlows += main.batchSize*2
@@ -537,9 +548,6 @@
                 main.CLIs[0].handle.expect('onos>')
             time.sleep(main.rerouteSleep)
 
-        maxIntents = main.intentFunctions.getIntents( main )
-        maxFlows = main.intentFunctions.getFlows( main )
-
         main.log.report("Done pushing intents")
         main.log.info("Summary: Intents=" + str(expectedIntents) + " Flows=" + str(expectedFlows))
         main.log.info("Installed intents: " + str(maxIntents) +
