diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index 5efca8f88fb2d5f9b176abdf3013d572cda72cde..980bd22c940fb20aac3ff30f3975f2c5830e4aef 100644
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -121,10 +121,6 @@ class setup implements FusionDirectoryDialog
 
   public function update (): bool
   {
-    if (!$this->selectable_step($this->i_current)) {
-      $this->i_current = $this->i_previous;
-    }
-
     $this->o_steps[$this->i_previous]->update();
 
     /* Get attributes from setup step */
@@ -155,9 +151,14 @@ class setup implements FusionDirectoryDialog
       }
     }
 
+    if (!$this->selectable_step($this->i_current)) {
+      $this->i_current = $this->i_previous;
+    }
+
     if ($this->i_current != $this->i_previous) {
       $this->o_steps[$this->i_current]->update();
     }
+
     return TRUE;
   }
 
@@ -267,12 +268,11 @@ class setup implements FusionDirectoryDialog
   }
 
   /* Called when LDAP is configured */
-  function read_ldap_config ()
+  public function read_ldap_config (array $captured_values)
   {
     global $config;
-    /* Get attributes from current ldap step */
-    $tmp = $this->o_steps[$this->i_current]->get_attributes();
-    foreach ($tmp as $name => $value) {
+    /* Get attributes from ldap step */
+    foreach ($captured_values as $name => $value) {
       $this->captured_values[$name] = $value;
     }
     $smarty = get_smarty();
diff --git a/setup/class_setupStep.inc b/setup/class_setupStep.inc
index 6e0907924534e79ca63588ff76b86a660cd015c5..a357213aa4e53bf1a3e729a4a6bcd90cc02866de 100644
--- a/setup/class_setupStep.inc
+++ b/setup/class_setupStep.inc
@@ -93,7 +93,7 @@ class setupStep extends simplePlugin
   }
 
   /* Return attributes handled by this setup step */
-  function get_attributes ()
+  public function get_attributes (): array
   {
     $tmp = [];
     foreach (array_keys($this->attributesAccess) as $attr) {
diff --git a/setup/class_setupStepLdap.inc b/setup/class_setupStepLdap.inc
index 1745b6b48697a1262b577377229a029b94c21ac9..92fe043539ad2f6e605b3cf9ffcc262f9a3d88e7 100644
--- a/setup/class_setupStepLdap.inc
+++ b/setup/class_setupStepLdap.inc
@@ -152,7 +152,7 @@ class setupStepLdap extends setupStep
     $this->status = $this->get_connection_status();
     if ($this->bind_id && !empty($this->admin) && !empty($this->base)) {
       $this->is_completed = TRUE;
-      $this->parent->read_ldap_config();
+      $this->parent->read_ldap_config($this->get_attributes());
     } else {
       $this->is_completed = FALSE;
     }
diff --git a/setup/class_setupStepMigrate.inc b/setup/class_setupStepMigrate.inc
index a6c3faa391f515215cc49a935f3ff5134d7d9634..882982888b3dc6231137326768a646576a09e731 100644
--- a/setup/class_setupStepMigrate.inc
+++ b/setup/class_setupStepMigrate.inc
@@ -131,7 +131,7 @@ class StepMigrateCheck
   public $fnc;
   private $step;
 
-  public function __construct ($step, $name, $title)
+  public function __construct (setupStepMigrate $step, string $name, string $title)
   {
     $this->name   = $name;
     $this->title  = $title;
@@ -434,7 +434,7 @@ class setupStepMigrate extends setupStep
         $mods['ou'] = $val;
       }
 
-      /*Append description, it is required by gosaDepartment too */
+      /* Append description, it is required by gosaDepartment too */
       if (!isset($attrs['description'])) {
         $val = "GOsa";
         if (isset($attrs[$dep_infos['mainAttr']][0])) {
@@ -447,7 +447,7 @@ class setupStepMigrate extends setupStep
       $this->rootOC_details['target'] = $str;
       $this->rootOC_details['mods']   = $mods;
 
-      /*  Add button that allows to open the migration details */
+      /* Add button that allows to open the migration details */
       throw new CheckFailedException(
         _('Failed'),
         ' '.$checkobj->submit()
@@ -460,6 +460,8 @@ class setupStepMigrate extends setupStep
 
   function check_baseOC_migrate (&$checkobj)
   {
+    /* Refresh $this->rootOC_details */
+    $checkobj->run();
     $this->openDialog(new StepMigrateDialog($checkobj, 'setup_migrate_baseOC.tpl', $this->rootOC_details));
   }
 
@@ -894,16 +896,15 @@ class setupStepMigrate extends setupStep
     }
 
     /* Creating user */
-    $infos      = $checkobj->getInfos();
     $tabObject  = objects::create('user');
     $baseObject = $tabObject->getBaseObject();
     $baseObject->givenName    = 'System';
     $baseObject->sn           = 'Administrator';
-    $baseObject->uid          = $infos['uid'];
+    $baseObject->uid          = $_POST['uid'];
     $baseObject->userPassword = [
       '',
-      $infos['password'],
-      $infos['password2'],
+      $_POST['userPassword_password'],
+      $_POST['userPassword_password2'],
       '',
       FALSE
     ];