diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 5a46c8c..f79d69b 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -1152,6 +1152,11 @@ function install_settings_form($form, &$form_state, &$install_state) {
  */
 function install_settings_form_validate($form, &$form_state) {
   $driver = $form_state['values']['driver'];
+
+  // @todo Remove when PIFR submits 'prefix' instead of 'db_prefix'.
+#  if (!empty($form_state['input'][$driver]['db_prefix'])) {
+#    $form_state['values'][$driver]['prefix'] = $form_state['input'][$driver]['db_prefix'];
+#  }
   $database = $form_state['values'][$driver];
   // When testing the interactive installer, copy the database password and
   // the test prefix.
@@ -1166,13 +1171,6 @@ function install_settings_form_validate($form, &$form_state) {
   $database['namespace'] = substr($install_namespace, 0, strrpos($install_namespace, '\\'));
   $database['driver'] = $driver;
 
-  // @todo PIFR uses 'db_prefix' instead of 'prefix'. Remove this when it gets
-  //   fixed.
-  if (!$test_prefix) {
-    $database['prefix'] = $database['db_prefix'];
-  }
-  unset($database['db_prefix']);
-
   $form_state['storage']['database'] = $database;
   $errors = install_database_errors($database, $form_state['values']['settings_file']);
   foreach ($errors as $name => $message) {
diff --git a/core/lib/Drupal/Core/Database/Install/Tasks.php b/core/lib/Drupal/Core/Database/Install/Tasks.php
index e80dd86..f950647 100644
--- a/core/lib/Drupal/Core/Database/Install/Tasks.php
+++ b/core/lib/Drupal/Core/Database/Install/Tasks.php
@@ -251,14 +251,14 @@ public function getFormOptions(array $database) {
       '#weight' => 10,
     );
 
-    $profile = drupal_get_profile();
-    $db_prefix = ($profile == 'standard') ? 'drupal_' : $profile . '_';
-    $form['advanced_options']['db_prefix'] = array(
+    $form['advanced_options']['prefix'] = array(
       '#type' => 'textfield',
       '#title' => t('Table name prefix'),
       '#default_value' => '',
       '#size' => 45,
-      '#description' => t('If more than one application will be sharing this database, a unique table name prefix–such as %prefix–will prevent collisions.', array('%prefix' => $db_prefix)),
+      '#description' => t('If more than one application will be sharing this database, a unique table name prefix–such as %prefix–will prevent collisions.', array(
+        '%prefix' => preg_replace('@[^a-z0-9]@', '_', strtolower(drupal_install_profile_distribution_name())) . '_',
+      )),
       '#weight' => 10,
     );
 
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
index 265012e..3a6f872 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
@@ -864,6 +864,11 @@ protected function setUp() {
    */
   protected function installParameters() {
     $connection_info = Database::getConnectionInfo();
+    $driver = $connection_info['default']['driver'];
+    unset($connection_info['default']['driver']);
+    unset($connection_info['default']['namespace']);
+    unset($connection_info['default']['pdo']);
+    unset($connection_info['default']['init_commands']);
     $parameters = array(
       'interactive' => FALSE,
       'parameters' => array(
@@ -871,7 +876,10 @@ protected function installParameters() {
         'langcode' => 'en',
       ),
       'forms' => array(
-        'install_settings_form' => $connection_info['default'],
+        'install_settings_form' => array(
+          'driver' => $driver,
+          $driver => $connection_info['default'],
+        ),
         'install_configure_form' => array(
           'site_name' => 'Drupal',
           'site_mail' => 'simpletest@example.com',
