diff --git a/TestON/tests/FUNCintent/Dependency/FuncIntentFunction.py b/TestON/tests/FUNCintent/Dependency/FuncIntentFunction.py
index 377fd20..9efe5d0 100644
--- a/TestON/tests/FUNCintent/Dependency/FuncIntentFunction.py
+++ b/TestON/tests/FUNCintent/Dependency/FuncIntentFunction.py
@@ -1468,6 +1468,7 @@
         main.log.info( itemName + ": Intents are installed correctly" )
     else:
         # Wait for at least 5 second before checking the intents again
+        main.log.error( "Intents are not installed correctly. Waiting 5 sec" )
         time.sleep( 5 )
         results = []
         # Second check of intents since some of the intents may be in
@@ -1478,6 +1479,7 @@
             results.append( tempResult )
         if all( result == main.TRUE for result in results ):
             main.log.info( itemName + ": Intents are installed correctly" )
+            intentResult = main.TRUE
         else:
             main.log.error( itemName + ": Intents are NOT installed correctly" )
             intentResult = main.FALSE
diff --git a/TestON/tests/FUNCintentRest/FUNCintentRest.params b/TestON/tests/FUNCintentRest/FUNCintentRest.params
index 4158f33..058b57a 100644
--- a/TestON/tests/FUNCintentRest/FUNCintentRest.params
+++ b/TestON/tests/FUNCintentRest/FUNCintentRest.params
@@ -3,7 +3,8 @@
     # 1 - Variable initialization and optional pull and build ONOS package
     # 2 - Install ONOS
     # 9 - Report logs
-    # 11 - Start Mininet
+    # 10 - Start Mininet with Openflow 1.0
+    # 11 - Start Mininet with Openflow 1.3
     # 12 - Assign switch to controller
     # 13 - Create a data of hosts information
     # 14 - Stop Mininet
@@ -11,11 +12,12 @@
     # 2000 - Test point intents
     # 3000 - Test single to multi point intents
     # 4000 - Test multi to single point intents
+    # 5000 - Test host mobility
 
-    <testcases>1,2,10,12,13,1000,2000</testcases>
+    <testcases>1,[2,10,12,13,1000,2000,14],[2,11,12,13,1000,2000,14]</testcases>
 
     <SCALE>
-        <size>1,3</size>
+        <size>1,1</size>
     </SCALE>
 
     <DEPENDENCY>
diff --git a/TestON/tests/SCPFintentRerouteLat/SCPFintentRerouteLat.py b/TestON/tests/SCPFintentRerouteLat/SCPFintentRerouteLat.py
index 3b74dcf..e62c633 100644
--- a/TestON/tests/SCPFintentRerouteLat/SCPFintentRerouteLat.py
+++ b/TestON/tests/SCPFintentRerouteLat/SCPFintentRerouteLat.py
@@ -258,13 +258,28 @@
                         break
                     time.sleep(2)
 
-                temp = raw.splitlines()
+                if debug: main.log.debug("raw: " + raw)
+
+                try:
+                    temp = raw.splitlines()
+                except ValueError:
+                    main.log.error("Exception at line 264: cannot split lines")
+                    continue
+
+                if debug: main.log.debug("temp (after splitlines): " + str(temp))
+
                 for line in temp:
                     if str(date) in line:
                         temp = line
                         break
 
-                cutTimestamp = (temp.split(" "))[0] + " " + (temp.split(" "))[1]
+                if debug: main.log.debug("temp (checking for date): " + str(temp))
+
+                try:
+                    cutTimestamp = (temp.split(" "))[0] + " " + (temp.split(" "))[1]
+                except ValueError:
+                    main.log.error("Exception at line 279: cannot split on spaces")
+
                 if debug: main.log.info("Cut timestamp: " + cutTimestamp)
 
                 #validate link count and flow count
