diff --git a/python_payload/st3m/application.py b/python_payload/st3m/application.py
index 38c1550b2fc25681f92d50c73b646f6f1ef3705d..0c449d026e229ff0d96ffcbf66bf1caab93cdf01 100644
--- a/python_payload/st3m/application.py
+++ b/python_payload/st3m/application.py
@@ -8,6 +8,7 @@ from st3m.input import InputState
 import st3m.wifi
 from st3m.goose import Optional, List, Dict
 from st3m.logging import Log
+from st3m.utils import is_simulator
 from st3m import settings
 from ctx import Context
 from st3m.ui import led_patterns
@@ -179,11 +180,13 @@ class BundleMetadata:
         containing_path = os.path.dirname(self.path)
         package_name = os.path.basename(self.path)
 
-        if sys.path[1].endswith("python_payload"):
+        if is_simulator():
             # We are in the simulator. Hack around to get this to work.
             prefix = "/flash/sys"
-            assert containing_path.startswith(prefix)
-            containing_path = containing_path.replace(prefix, sys.path[1])
+            if containing_path.startswith(prefix):
+                containing_path = containing_path.replace(prefix, sys.path[1])
+            else:
+                containing_path = containing_path.replace("/flash", "/tmp/flow3r-sim")
 
         new_sys_path = old_sys_path + [containing_path]
         self._sys_path_set(new_sys_path)
diff --git a/python_payload/st3m/utils.py b/python_payload/st3m/utils.py
index f6747b5058e1ea7b5991ea20547f2ec8c3fca53d..f16295eb23ccd960bfcf2d090b254f8b3dd3e090 100644
--- a/python_payload/st3m/utils.py
+++ b/python_payload/st3m/utils.py
@@ -1,5 +1,6 @@
 import math
 import os
+import sys_kernel
 
 try:
     import inspect
@@ -146,4 +147,8 @@ def sd_card_plugged() -> bool:
         return False
 
 
+def is_simulator() -> bool:
+    return sys_kernel.hardware_version() == "simulator"
+
+
 tau = math.pi * 2