--- db_maintenance.module	2008-10-01 07:43:02.000000000 +0200
+++ db_maintenance_new.module	2009-01-13 17:42:07.000000000 +0200
@@ -88,10 +88,10 @@ function _db_maintenance_list_tables($db
   $table_names = array();
   // Set the database to query.
   $previous = db_set_active($db);
-  if (_db_maintenance_determine_software() == 'mysql') {
+  if (_db_maintenance_determine_software($db) == 'mysql') {
     $result = db_query('SHOW TABLES');
   }
-  elseif (_db_maintenance_determine_software() == 'pgsql') {
+  elseif (_db_maintenance_determine_software($db) == 'pgsql') {
     $result = db_query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name");
   }
   // Return to the previously set database.
@@ -163,7 +163,7 @@ function db_maintenance_optimize_tables(
         // Set the database to query.
         $previous = db_set_active($db);
         if (db_table_exists($table_name)) {
-          if (_db_maintenance_determine_software() == 'mysql') {
+          if (_db_maintenance_determine_software($db) == 'mysql') {
             $result = db_query('OPTIMIZE TABLE %s', $table_name);
             $status = db_fetch_array($result);
             while($status[] = db_fetch_array($result)) {
@@ -171,7 +171,7 @@ function db_maintenance_optimize_tables(
             }
             db_maintenance_check_status($status, 'OPTIMIZE');
           }
-          elseif (_db_maintenance_determine_software() == 'pgsql') {
+          elseif (_db_maintenance_determine_software($db) == 'pgsql') {
             db_query('VACUUM ANALYZE %s', $table_name);
           }
         }
@@ -358,18 +358,20 @@ function db_maintenance_admin_settings_v
 /**
  * Determine which database software is in use
  */
-function _db_maintenance_determine_software() {
+function _db_maintenance_determine_software($db=NULL) {
   global $db_url;
-  static $db_type;
 
-  if (!empty($db_type)) {
-    return $db_type;
+  if (is_array($db_url)) { // multiple DB definitions
+    $db_url_str = $db_url[$db];
+  } else {
+    $db_url_str = $db_url;
   }
-  elseif (strpos($db_url, 'mysql://') === 0 || strpos($db_url, 'mysqli://') === 0) {
+
+  if (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;
   }
