diff --git a/domain_user/domain_user.module b/domain_user/domain_user.module
index c4d5e96..f550ed1 100644
--- a/domain_user/domain_user.module
+++ b/domain_user/domain_user.module
@@ -113,11 +113,21 @@ function domain_user_disable() {
 function domain_user_domainload(&$domain) {
   // Zero is the default domain, and we don't want to invalidate it.
   if ($domain['domain_id'] > 0) {
-    $data = db_fetch_array(db_query("SELECT du.uid, u.status FROM {domain_user} du
-      INNER JOIN {users} u ON du.uid = u.uid
-      WHERE du.domain_id = %d", $domain['domain_id']));
-    if ($data['uid']) {
-      $domain['uid'] = $data['uid'];
+    static $domains;
+
+    // No static cache set, let's get it.
+    if (empty($domains)) {
+      // Load all Domain + User information.
+      $domain_users_all = db_query("SELECT domain_id, uid FROM {domain_user} du");
+      // Fetch to domain_id => user-id keypairs.
+      while ($result = db_fetch_array($domain_users_all)) {
+        $domains[$result['domain_id']] = array('uid' => $result['uid']);
+      }
+    }
+
+    // User ID found, update the domain.
+    if ($domains[$domain['domain_id']]['uid']) {
+      $domain['uid'] = $domains[$domain['domain_id']]['uid'];
     }
   }
 }
