diff --git a/db-backends.php b/db-backends.php
index af791645d30e4c4d427e4c16e89162d652f5db3d..d7eafc9777ae0e824ced54fb59e768b5b921da74 100644
--- a/db-backends.php
+++ b/db-backends.php
@@ -1,6 +1,6 @@
 <?php
 
-function noblogs_load_backends($db_config_file, &$hashptr) {
+function noblogs_load_backends($db_config_file, $hashptr) {
   global $wpdb;
 
   $backend_map = array();
diff --git a/db-hash.php b/db-hash.php
index 2c14ce2573ad0c02dd4366ba2b98ea57a2fe80db..6f69aaf002eadcf096242e89d463c025fb0420d4 100644
--- a/db-hash.php
+++ b/db-hash.php
@@ -1,15 +1,15 @@
 <?php
 
-require_once('flexihash.php');
+require_once(dirname(__FILE__) . '/flexihash.php');
 
-$wpdb_hash = new Flexihash();
+$wpdb->hash_map = new Flexihash();
 
 /* Hashing function to map blogs to databases.
  *
  * Implements a consistent hashing scheme using Flexihash.
  */
 function noblogs_db_callback($query, $wpdb) {
-  global $wpdb_hash;
+  $wpdb_hash = $wpdb->hash_map;
   if (preg_match("/^{$wpdb->base_prefix}(\d+)_/", $wpdb->table, $matches)) {
     $blog_id = $matches[1];
     return $wpdb_hash->lookup($blog_id);
diff --git a/tools/db-migrate-to-new-schema.php b/tools/db-migrate-to-new-schema.php
index e393de01981a75c4e2a7307d27da0a9ce25cd677..b1083e725bf3f540b4a783505aaf5f87b4240676 100755
--- a/tools/db-migrate-to-new-schema.php
+++ b/tools/db-migrate-to-new-schema.php
@@ -5,7 +5,7 @@
 define('WP_CACHE',false);
 /** Setup WordPress environment */
 require_once('wp-load.php');
-require_once('db-config-new.php');
+require_once('db-config.php');
 
 
 function old_hash($dbid) {
@@ -24,11 +24,10 @@ function old_hash($dbid) {
   }
 }
 
-function new_hash($dbid) {
-  global $wpdb_hash;
-  global $wpdb_reverse_backend_map;
-  $lookup = $wpdb_hash->lookup($dbid);
-  $backend = $wpdb_reverse_backend_map[$lookup];
+function new_hash($dbid, $reversemap) {
+  global $wpdb;
+  $lookup = $wpdb->hash_map->lookup($dbid);
+  $backend = $reversemap[$lookup];
   $result = array();
   if (preg_match('/^(.*):([0-9]*)$/', $backend['host'], $matches)) {
     $result['host'] = $matches[1];
@@ -54,11 +53,15 @@ function get_all_blogs()
 {
   global $wpdb;
 
-  $sql = "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE public = 1 AND deleted = 0 AND archived = '0' ORDER BY domain, path";
+//  $sql = "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE public = 1 AND deleted = 0 AND archived = '0' ORDER BY domain, path";
+  $sql = "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE public = 0 ORDER BY domain, path";
   $result = $wpdb->get_results($sql);
   return ($result);
 }
 
+$hashmap = new Flexihash();
+$reverse_backend_map = noblogs_load_backends(NOBLOGS_BACKEND_CONFIG, $hashmap);
+
 $new_counts = array();
 $moved_count = 0;
 $blogs = get_all_blogs();
@@ -67,7 +70,7 @@ foreach ($blogs as $blog) {
 
   $old_params = old_hash($blog_id);
   $old_dburi = mysqlurl($old_params);
-  $new_params = new_hash($blog_id);
+  $new_params = new_hash($blog_id, $reverse_backend_map);
   $new_dburi = mysqlurl($new_params);
 
   if ($new_counts[$new_params['host']]) {