diff --git a/tools/test/bin/onos-set-up-minimal-apps b/tools/test/bin/onos-set-up-minimal-apps
index 666c96c..1d450eb 100755
--- a/tools/test/bin/onos-set-up-minimal-apps
+++ b/tools/test/bin/onos-set-up-minimal-apps
@@ -1,14 +1,15 @@
 #!/usr/bin/env python
 
-import subprocess, sys, json, os
+import subprocess
+import sys
+import json
+import os
 
 REQUIRED_APPS = ["org.onosproject.drivers"]
 
 
 def _main():
     # Get the ONOS node address
-    onos_node = ""
-
     if len(sys.argv) > 1:
         onos_node = sys.argv[1]
     else:
@@ -22,23 +23,18 @@
     config = json.loads(current_apps_json)
 
     for app_description in config:
-        apps_to_deactivate.append(app_description["name"])
+        app_name = app_description["name"]
+        if app_name not in REQUIRED_APPS:
+            apps_to_deactivate.append(app_name)
 
     # Deactivate all apps
     if len(apps_to_deactivate) > 0:
         deactivate_command = ["onos", onos_node, "onos:app", "deactivate"]
         for app_to_deactivate in apps_to_deactivate:
-            deactivate_command.append(app_to_deactivate)
+
+                deactivate_command.append(app_to_deactivate)
         subprocess.check_output(deactivate_command)
 
-    # Activate apps that are part of the base set
-    if len(REQUIRED_APPS) > 0:
-        activate_command = ["onos", onos_node, "onos:app", "activate"]
-        for app_to_activate in REQUIRED_APPS:
-            activate_command.append(app_to_activate)
-        subprocess.check_output(activate_command)
-
-
 
 if __name__ == "__main__":
     _main()
