diff --git a/install.php b/install.php
index 815ff134517acef6a1bded910c017089b1a609d4..987bfd3ab9ff6640671cb192369a68b9157c5856 100644
--- a/install.php
+++ b/install.php
@@ -159,9 +159,9 @@ function install_change_settings($profile = 'default', $install_locale = '') {
   global $db_url, $db_type, $db_prefix;
 
   $url = parse_url(is_array($db_url) ? $db_url['default'] : $db_url);
-  $db_user = urldecode($url['user']);
-  $db_pass = urldecode($url['pass']);
-  $db_host = urldecode($url['host']);
+  $db_user = isset($url['user']) ? urldecode($url['user']) : '';
+  $db_pass = isset($url['pass']) ? urldecode($url['pass']) : '';
+  $db_host = isset($url['host']) ? urldecode($url['host']) : '';
   $db_port = isset($url['port']) ? urldecode($url['port']) : '';
   $db_path = ltrim(urldecode($url['path']), '/');
   $conf_path = './'. conf_path();
@@ -600,7 +600,7 @@ function install_tasks($profile, $task) {
   $output = '';
 
   // Bootstrap newly installed Drupal, while preserving existing messages.
-  $messages = $_SESSION['messages'];
+  $messages = isset($_SESSION['messages']) ? $_SESSION['messages'] : '';
   drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
   $_SESSION['messages'] = $messages;