diff --git a/html/setup.php b/html/setup.php
index 11205caa76b2a7314c910b54b963beac2ec84d81..f8afdd83f191ffa8c6b40593ed2fa3460e69da62 100755
--- a/html/setup.php
+++ b/html/setup.php
@@ -59,11 +59,7 @@ ini_set("session.gc_maxlifetime", 24 * 60 * 60);
 session::start();
 session::set('DEBUGLEVEL', 0);
 
-try {
-  CSRFProtection::check();
-} catch (FusionDirectoryException $e) {
-
-}
+CSRFProtection::check();
 
 /* Attribute initialization, reset errors */
 reset_errors();
diff --git a/setup/class_setupStep.inc b/setup/class_setupStep.inc
index a357213aa4e53bf1a3e729a4a6bcd90cc02866de..6c9222bbe849bc381748d14b9f61eaf8bd4322e3 100755
--- a/setup/class_setupStep.inc
+++ b/setup/class_setupStep.inc
@@ -42,6 +42,30 @@ class setupStep extends simplePlugin
     $this->update_strings();
   }
 
+  public function __serialize(): array
+  {
+    return [
+      's_short_name'   => $this->s_short_name,
+      's_title'        => $this->s_title,
+      's_description'  => $this->s_description,
+      'is_active'      => $this->is_active,
+      'is_enabled'     => $this->is_enabled,
+      'is_completed'   => $this->is_completed,
+      'header_image'   => $this->header_image,
+    ];
+  }
+
+  public function __unserialize(array $data): void
+  {
+    $this->s_short_name   = $data['s_short_name'] ?? 'Still undefined';
+    $this->s_title        = $data['s_title'] ?? 'Still undefined';
+    $this->s_description  = $data['s_description'] ?? 'Still undefined';
+    $this->is_active      = $data['is_active'] ?? FALSE;
+    $this->is_enabled     = $data['is_enabled'] ?? FALSE;
+    $this->is_completed   = $data['is_completed'] ?? FALSE;
+    $this->header_image   = $data['header_image'] ?? '';
+  }
+
   function update_strings ()
   {
     die('abstract method');