diff --git a/core/lib/Drupal/Core/Wizard/WizardFormController.php b/core/lib/Drupal/Core/Wizard/WizardFormController.php
index 38171af..65c8f54 100644
--- a/core/lib/Drupal/Core/Wizard/WizardFormController.php
+++ b/core/lib/Drupal/Core/Wizard/WizardFormController.php
@@ -15,15 +15,11 @@
  */
 class WizardFormController extends EntityFormController {
 
-  /**
-   * Overrides Drupal\Core\Entity\EntityFormController::form().
-   *
-   * Sets the current step's title as the page title.
-   */
-  public function form(array $form, array &$form_state, EntityInterface $entity) {
-    $definition = $entity->entityInfo();
-    drupal_set_title($definition['steps'][$this->getOperation()]);
-    return parent::form($form, $form_state, $entity);
+  protected $entity_info;
+
+  protected function init(array &$form_state, EntityInterface $entity) {
+    parent::init($form_state, $entity);
+    $this->entity_info = $entity->entityInfo();
   }
 
   /**
@@ -36,10 +32,14 @@ public function form(array $form, array &$form_state, EntityInterface $entity) {
   protected function actions(array $form, array &$form_state) {
     $actions = parent::actions($form, $form_state);
     $entity = $this->buildEntity($form, $form_state += array('values' => array()));
-    $definition = $entity->entityInfo();
-    $steps = array_keys($definition['steps']);
-    $before = array_slice($definition['steps'], 0, array_search($this->getOperation(), $steps));
-    $after = array_slice($definition['steps'], array_search($this->getOperation(), $steps) + 1);
+    $this->entity_info = $entity->entityInfo();
+    // Get the steps of the wizard from the entity definition.
+    $steps = array_keys($this->entity_info['steps']);
+    // Slice to find the operations that occur before the current operation.
+    $before = array_slice($this->entity_info['steps'], 0, array_search($this->getOperation(), $steps));
+    // Slice to find the operations that occur after the current operation.
+    $after = array_slice($this->entity_info['steps'], array_search($this->getOperation(), $steps) + 1);
+
     // If there are steps after this one, label the button "Next" otherwise
     // label it "Finish".
     if ($after) {
@@ -75,12 +75,13 @@ protected function actions(array $form, array &$form_state) {
   public function submit(array $form, array &$form_state) {
     if ($form_state['values']['op'] == 'Next') {
       $entity = $this->buildEntity($form, $form_state);
-      $definition = $entity->entityInfo();
-      drupal_container()->get('user.tempstore')->get($definition['id'])->set($entity->id(), $entity);
-      $steps = array_keys($definition['steps']);
-      $after = array_slice($definition['steps'], array_search($this->getOperation(), $steps) + 1);
+      drupal_container()->get('user.tempstore')->get($entity->entityType())->set($entity->id(), $entity);
+      // Get the steps by key.
+      $steps = array_keys($this->entity_info['steps']);
+      // Get the steps after the current step.
+      $after = array_slice($this->entity_info['steps'], array_search($this->getOperation(), $steps) + 1);
+      // Get the steps after the current step by key.
       $after = array_keys($after);
-      $after = array_reverse($after);
 
       $form_state['redirect'] = 'admin/config/system/conditions/' . $entity->id() . '/' . $after[0];
     }
@@ -98,10 +99,13 @@ public function submit(array $form, array &$form_state) {
    */
   public function previous(array $form, array &$form_state) {
     $entity = $this->buildEntity($form, $form_state);
-    $definition = $entity->entityInfo();
-    $steps = array_keys($definition['steps']);
-    $before = array_slice($definition['steps'], 0, array_search($this->getOperation(), $steps));
+    // Get the steps by key.
+    $steps = array_keys($this->entity_info['steps']);
+    // Get the steps before the current step.
+    $before = array_slice($this->entity_info['steps'], 0, array_search($this->getOperation(), $steps));
+    // Get the steps before the current step by key.
     $before = array_keys($before);
+    // Reverse the steps for easy access to the next step.
     $before = array_reverse($before);
 
     $form_state['redirect'] = 'admin/config/system/conditions/' . $entity->id() . '/' . $before[0];
@@ -119,9 +123,8 @@ public function previous(array $form, array &$form_state) {
    */
   public function finish(array $form, array &$form_state) {
     $entity = parent::submit($form, $form_state);
-    $definition = $entity->entityInfo();
     $entity->save();
-    drupal_container()->get('user.tempstore')->get($definition['id'])->delete($entity->id());
+    drupal_container()->get('user.tempstore')->get($entity->entityType())->delete($entity->id());
     $form_state['redirect'] = 'admin/config/system/conditions';
   }
 }
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index b129070..6434f9e 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -1173,6 +1173,12 @@ function system_wizard_form($entity_type, $step, $id = NULL) {
       $entity = entity_load($entity_type, $id);
     }
   }
+  $definition = $entity->entityInfo();
+  // This could be any entity form controller and is not necessarily documented
+  // in the steps. If it is not in the steps, it will not have a title.
+  if (isset($definition['steps'][$step])) {
+    drupal_set_title($definition['steps'][$step]);
+  }
   return entity_get_form($entity, $step);
 }
 
