diff --git a/TestON/drivers/common/cli/onosdriver.py b/TestON/drivers/common/cli/onosdriver.py
index d7d7299..8bb32da 100644
--- a/TestON/drivers/common/cli/onosdriver.py
+++ b/TestON/drivers/common/cli/onosdriver.py
@@ -75,25 +75,14 @@
         
         try:
             self.handle.sendline("onos-package")
-            self.handle.expect("\$")
+            self.handle.expect("tar.gz",timeout=10)
             handle = str(self.handle.before)
             main.log.info("onos-package command returned: "+
                     handle)
-          
-            #Create list out of the handle by partitioning 
-            #spaces. 
-            #NOTE: The last element of the list at the time
-            #      of writing this function is the filepath
-            #save this filepath for comparison later on
-            temp_list = handle.split(" ")
-            file_path = handle[-1:]
-           
-            #If last string contains the filepath, return
-            # as success. 
-            if "/tmp" in file_path:
-                return main.TRUE
-            else:
-                return main.FALSE
+            #As long as the sendline does not time out, 
+            #return true. However, be careful to interpret
+            #the results of the onos-package command return
+            return main.TRUE
 
         except pexpect.EOF:
             main.log.error(self.name + ": EOF exception found")
diff --git a/TestON/tests/ONOSNextTest/ONOSNextTest.py b/TestON/tests/ONOSNextTest/ONOSNextTest.py
index cc38a8c..4345525 100755
--- a/TestON/tests/ONOSNextTest/ONOSNextTest.py
+++ b/TestON/tests/ONOSNextTest/ONOSNextTest.py
@@ -23,12 +23,15 @@
         '''
         
         
-        install_result = main.ONOSbench.clean_install()
+        #install_result = main.ONOSbench.clean_install()
+        install_result = main.TRUE
         package_result = main.ONOSbench.onos_package()
 
-        print install_result
-        print package_result
-        print (install_result and package_result)
-        
+
+
+        case1_result = (install_result and package_result)
+        utilities.assert_equals(expect=main.TRUE, actual=case1_result,
+                onpass="Test startup successful",
+                onfail="Test startup NOT successful")
 
 
