diff -ruaN db_maintenance-6.x-1.2/db_maintenance.module db_maintenance/db_maintenance.module
--- db_maintenance-6.x-1.2/db_maintenance.module	2009-12-23 21:42:22.000000000 +0200
+++ db_maintenance/db_maintenance.module	2010-12-23 11:40:06.217647252 +0200
@@ -88,11 +88,14 @@
   $table_names = array();
   // Set the database to query.
   $previous = db_set_active($db);
-  if (_db_maintenance_determine_software() == 'mysql') {
-    $result = db_query('SHOW TABLES');
-  }
-  elseif (_db_maintenance_determine_software() == 'pgsql') {
-    $result = db_query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name");
+
+  switch(_db_maintenance_determine_software($db)){
+    case 'mysql':
+        $result = db_query('SHOW TABLES');
+      break;
+    case 'pgsql':
+        $result = db_query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name");
+      break;
   }
   // Return to the previously set database.
   db_set_active($previous);
@@ -143,10 +146,10 @@
         $previous = db_set_active($db);
         $table_check_name = $is_prefixed ? str_replace($db_prefix, '', $table_name) : $table_name;
         if (db_table_exists($table_check_name)) {
-          if (_db_maintenance_determine_software() == 'mysql') {
+          if (_db_maintenance_determine_software($db) == 'mysql') {
             db_query('OPTIMIZE TABLE %s', $table_name);
           }
-          elseif (_db_maintenance_determine_software() == 'pgsql') {
+          elseif (_db_maintenance_determine_software($db) == 'pgsql') {
             db_query('VACUUM ANALYZE %s', $table_name);
           }
         }
@@ -231,18 +234,26 @@
 /**
  * Determine which database software is in use
  */
-function _db_maintenance_determine_software() {
+function _db_maintenance_determine_software($db = 'default') {
   global $db_url;
   static $db_type;
 
+  // Set the databases array if not already set in $db_url.
+  if (is_array($db_url)) {
+    $db_url_str = $db_url[$db];
+  }
+  else {
+    $db_url_str = $db_url;
+  }
+
   if (!empty($db_type)) {
     return $db_type;
   }
-  elseif (strpos($db_url, 'mysql://') === 0 || strpos($db_url, 'mysqli://') === 0) {
+  elseif (strpos($db_url_str, 'mysql://') === 0 || strpos($db_url_str, 'mysqli://') === 0) {
     $db_type = 'mysql';
     return $db_type;
   }
-  elseif (strpos($db_url, 'pgsql://') === 0) {
+  elseif (strpos($db_url_str, 'pgsql://') === 0) {
     $db_type = 'pgsql';
     return $db_type;
   }
