diff --git a/preload/menu.py b/preload/menu.py
index 890b888403cfc618aaacb18ccc21490febfaf5b8..0a100a8f7adc7ad62b2e6899510ee5c7fef926eb 100644
--- a/preload/menu.py
+++ b/preload/menu.py
@@ -70,7 +70,12 @@ def list_apps():
     # with or without metadata.json
     for appFolder in dirlist:
         if not (appFolder.endswith(".py") or appFolder.endswith(".elf")):
-            apps.append(["/apps/%s/__init__.py" % appFolder, read_metadata(appFolder)])
+            metadata = read_metadata(appFolder)
+            if not metadata.get("bin", None):
+                fileName = "/apps/%s/__init__.py" % appFolder
+            else:
+                fileName = "/apps/%s/%s" % (appFolder, metadata["bin"])
+            apps.append([fileName, metadata])
 
     # list simple python scripts
     for pyFile in dirlist: