Index: includes/sitealias.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drush/includes/sitealias.inc,v
retrieving revision 1.8
diff -u -p -r1.8 sitealias.inc
--- includes/sitealias.inc	10 Dec 2009 20:21:46 -0000	1.8
+++ includes/sitealias.inc	25 Dec 2009 07:35:22 -0000
@@ -163,7 +163,7 @@ function _drush_sitealias_add_static_def
   // build 'databases' from 'db-url' so that drush commands that use aliases
   // can always count on using a uniform 'databases' array.
   if (isset($alias_record['db-url']) && !isset($alias_record['databases'])) {
-    $alias_record['databases'] = array('default' => array('default' => drush_convert_db_from_db_url($alias_record['db-url'])));
+    $alias_record['databases'] = drush_sitealias_convert_db_from_db_url($alias_record['db-url']);
   }
   // If there is a 'root' entry, then copy it to the '!root'
   // path alias
@@ -366,7 +366,12 @@ function drush_sitealias_uri_to_site_dir
  *   An array of database values.
  */
 function drush_convert_db_from_db_url($db_url) {
-  $url = parse_url($db_url);
+  if (is_array($db_url)) {
+    $url = parse_url($db_url['default']);
+  }
+  else {
+    $url = parse_url($db_url);
+  }
   // Fill in defaults to prevent notices.
   $url += array(
     'driver' => NULL,
@@ -386,6 +391,25 @@ function drush_convert_db_from_db_url($d
   );
 }
 
+function drush_sitealias_convert_db_from_db_url($db_url) {
+  $result = array();
+  
+  if (is_array($db_url)) {
+    $default_db = array();
+    
+    foreach ($db_url as $db_name => $db_urlstr) {
+      $default_db[$db_name] = drush_convert_db_from_db_url($db_urlstr);
+    }
+    
+    $result['default'] = $default_db;
+  }
+  else {
+    $result = array('default' => array('default' => drush_convert_db_from_db_url($alias_record['db-url'])));
+  }
+  
+  return $result;
+}
+
 /**
  * Utility function used by drush_get_alias; keys that start with
  * '!' are path aliases, the rest are entries in the alias record.
