diff --git a/sams_classes/sams_hub.py b/sams_classes/sams_hub.py
index 920428c9de5c1233592889c9fdd61230804fa6bc..fa727debbd58595bd976561b5cc49e4663463729 100644
--- a/sams_classes/sams_hub.py
+++ b/sams_classes/sams_hub.py
@@ -33,12 +33,13 @@ class SAMSHub:
   def addApp(self, app: SAMSApp = None, alias = None):
     if not isinstance(app, SAMSApp):
       raise TypeError('Argument app has to be a SAMSApp.')
-    self._apps[app.name] = app
-    self._appList.append(app)
+    appDict = {'app': app, 'urlPrefix': (alias or app.name)}
+    self._apps[app.name] = appDict
+    self._appList.append(appDict)
     if app.name == self._config.get('main_app'):
       self._flaskApp.register_blueprint(app.blueprint)
     self._flaskApp.register_blueprint(
-      app.blueprint, url_prefix = '/' + (alias or app.name))
+      app.blueprint, url_prefix = '/' + appDict['urlPrefix'])
   
   @property
   def appKeys(self):
@@ -50,7 +51,7 @@ class SAMSHub:
   
   def app(self, name):
     try:
-      return self._apps[name]
+      return self._apps[name]['app']
     except:
       raise AppNotExist
   
@@ -76,11 +77,12 @@ class SAMSHub:
   
   def menu(self, langCode):
     menu = []
-    for app in self._appList:
-      if self._config.get('main_app') == app.name:
-        menu.extend(app.menu(langCode = langCode))
+    for appDict in self._appList:
+      if self._config.get('main_app') == appDict['app'].name:
+        menu.extend(appDict['app'].menu(langCode = langCode))
       else:
-        menu.extend(app.menu(langCode = langCode, urlPrefix = app.name))
+        menu.extend(appDict['app'].menu(langCode = langCode,
+          urlPrefix = appDict['urlPrefix']))
     return menu
   
   @staticmethod
diff --git a/test/test_sams_hub.py b/test/test_sams_hub.py
index 673b5338b0e35413b8d2922cc555f74e83386572..eed5b4d5f06846756b0fad48bb72626afe28c884 100644
--- a/test/test_sams_hub.py
+++ b/test/test_sams_hub.py
@@ -18,12 +18,12 @@ class CaseSAMSHubWithThreadedAPI(unittest.TestCase):
     apiApp.config['TESTING'] = True
     thApi = FlaskInThread(apiApp, host="localhost", port=4711)
     thApi.start()
-    time.sleep(0.01)
+    time.sleep(1)
  
   def tearDown(self):
     response = requests.get('http://localhost:4711/shutdown')
     print(response.content.decode('utf-8'))
-    time.sleep(0.01)
+    time.sleep(1)
   
   def test_hub_provides_apps_with_proxies(self):
     manifest = {
@@ -223,14 +223,7 @@ class CaseMinimalSAMSHub(unittest.TestCase):
     ]
     urls = ['1/1', '2/1', '1/2']
     name_vars = ['1_1', '2_1', '1_2']
-    expected = ''.join((
-      "<ul>\n\n<li><a href='/", name, '/', urls[0], "'>", expected_names[0],
-      "</a>\n\n<ul>\n\n<li><a href='/", name, '/', urls[1], "'>", expected_names[1],
-      "</a>\n\n</li>\n\n</ul>\n\n</li>\n\n<li><a href='/", name, '/', urls[2], "'>",
-      expected_names[2], '</a>\n\n</li>\n\n</ul>'
-    ))
-    self.hub.addApp(
-      SAMSApp(
+    testSamsApp = SAMSApp(
         name = name, manifest = {
           'default_language': 'de',
           'views': [{'url': 'test-menu','function': 'views.menu_test'}],
@@ -242,13 +235,25 @@ class CaseMinimalSAMSHub(unittest.TestCase):
           ]
         }
         , langDict = {'de': dict(zip(name_vars, expected_names))}
-      )
     )
-    self.hub.flaskApp.config['DEBUG'] = True
-    with self.hub.flaskApp.test_client(self) as client:
-      response = client.get('/test/test-menu')
-      self.assertIs(response.status_code, 200)
-      self.assertEquals(response.data.decode('utf-8'), expected)
+    for addAppParams in (
+        {'app': testSamsApp}, {'app': testSamsApp, 'alias': 'testAlias'}):
+      hub = SAMSHub(name = 'test', config = {'default_language': 'de'})
+      effectiveName = addAppParams.get('alias', name)
+      expected = ''.join((
+        "<ul>\n\n<li><a href='/", effectiveName, '/', urls[0], "'>",
+        expected_names[0], "</a>\n\n<ul>\n\n<li><a href='/", effectiveName,
+        '/', urls[1], "'>", expected_names[1],
+        "</a>\n\n</li>\n\n</ul>\n\n</li>\n\n<li><a href='/", effectiveName, '/',
+        urls[2], "'>", expected_names[2], '</a>\n\n</li>\n\n</ul>'
+      ))
+      hub.addApp(**addAppParams)
+      hub.flaskApp.config['DEBUG'] = True
+      with hub.flaskApp.test_client(self) as client:
+        response = client.get('/' + effectiveName + '/test-menu')
+        with self.subTest(addAppParams):
+          self.assertIs(response.status_code, 200)
+          self.assertEquals(response.data.decode('utf-8'), expected)
   
   def test_hub_default_language_used(self):
     """The hub default_language is prefered instead of app default_language"""