diff --git a/app/app.py b/app/app.py
index 03f63f4c0aac3568b9157189942eef40000c88d1..7b42c98158434e00e7c94f2cd1f885ddfcad38bf 100644
--- a/app/app.py
+++ b/app/app.py
@@ -102,7 +102,7 @@ def create_app(args):
 
     boot(args.load_only)
 
-    from app.language import languages
+    from app.language import load_languages
 
     app = Flask(__name__)
 
@@ -111,6 +111,7 @@ def create_app(args):
 
     if not args.disable_files_translation:
         remove_translated_files.setup(get_upload_dir())
+    languages = load_languages()
 
     # Map userdefined frontend languages to argos language object.
     if args.frontend_language_source == "auto":
diff --git a/app/language.py b/app/language.py
index 868eab8e2e0c9f377c48f2a508ad8ef36865d07a..cabdfc55d417ecbd25d4d78f52c89a654ee300cc 100644
--- a/app/language.py
+++ b/app/language.py
@@ -4,11 +4,11 @@ from argostranslate import translate
 from polyglot.detect.base import Detector, UnknownLanguage
 from polyglot.transliteration.base import Transliterator
 
-languages = translate.load_installed_languages()
 
 
-__lang_codes = [l.code for l in languages]
-
+def load_languages():
+    languages = translate.load_installed_languages()
+    return languages
 
 def detect_languages(text):
     # detect batch processing
@@ -32,6 +32,10 @@ def detect_languages(text):
     # total read bytes of the provided text
     text_length_total = sum(c.text_length for c in candidates)
 
+    # Load language codes
+    languages = load_languages()
+    __lang_codes = [l.code for l in languages]
+
     # only use candidates that are supported by argostranslate
     candidate_langs = list(
         filter(lambda l: l.text_length != 0 and l.code in __lang_codes, candidates)