Index: includes/install.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/install.inc,v
retrieving revision 1.136
diff -u -p -r1.136 install.inc
--- includes/install.inc        21 Jun 2010 02:27:47 -0000      1.136
+++ includes/install.inc        15 Jul 2010 15:13:35 -0000
@@ -230,14 +230,17 @@ function drupal_detect_database_types()
   $databases = array();

   // We define a driver as a directory in /includes/database that in turn
-  // contains a database.inc file. That allows us to drop in additional drivers
-  // without modifying the installer.
+  // contains a database.inc and install.inc files. That allows us to drop in
+  // additional drivers without modifying the installer.
   // Because we have no registry yet, we need to also include the install.inc
   // file for the driver explicitly.
-  require_once DRUPAL_ROOT . '/includes/database/database.inc';
+  $db_folder = DRUPAL_ROOT . '/includes/database';
+  require_once $db_folder . '/database.inc';
   spl_autoload_register('db_autoload');
-  foreach (file_scan_directory(DRUPAL_ROOT . '/includes/database', '/^[a-z]*$/i', array('recurse' => FALSE)) as $file) {
-    $drivers[$file->filename] = $file->uri;
+  foreach (file_scan_directory($db_folder, '/^[a-z]*$/i', array('recurse' => FALSE)) as $file) {
+    if (file_exists($file->filename . '/install.inc') && file_exists($file->filename . '/database.inc')) {
+      $drivers[$file->filename] = $file->uri;
+    }
   }

   foreach ($drivers as $driver => $file) {
