diff --git a/lib/functions.php b/lib/functions.php
index 20066c1cc3b25599f44b8f7e1ac68798f0e01b73..5f7cf8cdddfb56deff13e2884a7e02b09d349224 100644
--- a/lib/functions.php
+++ b/lib/functions.php
@@ -1521,6 +1521,13 @@ function studip_default_exception_handler($exception) {
 
 
     try {
+        if (!isset($GLOBALS['user'])) {
+            $GLOBALS['user'] = new Seminar_User('nobody');
+            $GLOBALS['perm'] = new Seminar_Perm();
+        }
+        if (empty($_SESSION['_language'])) {
+            $_SESSION['_language'] = 'de_DE';
+        }
         $args = compact('exception', 'status');
         ob_start();
         echo $GLOBALS['template_factory']->render($template, $args, $layout);
diff --git a/lib/navigation/CalendarNavigation.php b/lib/navigation/CalendarNavigation.php
index badb47953aabaee1fc83b19d2c323d21022da9e8..972f3f840e999a43cb65232556ccf82fe6697728 100644
--- a/lib/navigation/CalendarNavigation.php
+++ b/lib/navigation/CalendarNavigation.php
@@ -24,7 +24,11 @@ class CalendarNavigation extends Navigation
 
         parent::__construct(_('Planer'));
 
-        if (!$perm->have_perm('admin') && Config::get()->SCHEDULE_ENABLE) {
+        if (
+            isset($perm)
+            && !$perm->have_perm('admin')
+            && Config::get()->SCHEDULE_ENABLE
+        ) {
             $planerinfo = _('Stundenplan');
         } else {
             $planerinfo = _('Termine');
diff --git a/lib/navigation/StudipNavigation.php b/lib/navigation/StudipNavigation.php
index 5f73f288bc2212a0adadd287e2182763130ef85d..ff74dccbcacd06354bc31bfa53a4aa6d632bfdc8 100644
--- a/lib/navigation/StudipNavigation.php
+++ b/lib/navigation/StudipNavigation.php
@@ -127,7 +127,7 @@ class StudipNavigation extends Navigation
         }
 
         // admin page
-        if ($perm->have_perm('admin')) {
+        if (isset($perm) && $perm->have_perm('admin')) {
             $this->addSubNavigation('admin', new AdminNavigation());
         }