Index: domain_user_default.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.module,v
retrieving revision 1.1.2.9
diff -u -r1.1.2.9 domain_user_default.module
--- domain_user_default.module	3 Oct 2008 19:56:26 -0000	1.1.2.9
+++ domain_user_default.module	24 Nov 2008 03:52:55 -0000
@@ -60,47 +60,55 @@
 function domain_user_default_init() {
   global $user, $_domain;
 
-  // never redirect on these pages
-  if (_domain_user_default_no_redirect()) {
-    if ($user->default_domain != $_domain['domain_id']
-      && module_exists('domain_geolocalization')
-      && variable_get('domain_geolocalization_update_default_on_link', FALSE)) {
-      // Modify the user object to match current domain, if not on default
-      // domain, and admin has the module configured to do so.
-      $user = user_load($user->uid);
-      $user->default_domain = $_domain['domain_id'];
-      _domain_geolocalization_map_domain_to_user($user, $_domain);
+  // Must load full user object.
+  $user = user_load($user->uid);
+  // Do nothing to $user object on domain_geolocalization and domain_user_default paths.
+  $internal_paths = "domain-geolocalization/*\nsearch/domain/*\ndomain-user-default/set/*\ndomains\ndomains/*";
+  $init_path = drupal_get_path_alias($_GET['q']);
+  $internal_match = drupal_match_path($init_path, $internal_paths);
+  if(!$internal_match) {
+    // never redirect on these pages
+    if (_domain_user_default_no_redirect()) {
+      if ($user->default_domain != $_domain['domain_id']
+        && module_exists('domain_geolocalization')
+        && variable_get('domain_geolocalization_update_default_on_link', FALSE)) {
+        // Modify the user object to match current domain, if not on default
+        // domain, and admin has the module configured to do so.
+        $user = user_load($user->uid);
+        $user->default_domain = $_domain['domain_id'];
+        _domain_geolocalization_map_domain_to_user($user, $_domain);
+      }
+      return;
     }
-    return;
-  }
 
-  // must load full user object
-  $user = user_load($user->uid);
+    // must load full user object
+    $user = user_load($user->uid);
 
-  switch (variable_get('domain_user_default_force_subdomain_redirect', DOMAIN_USER_DEFAULT_REDIRECT_PRIMARY)) {
-    case DOMAIN_USER_DEFAULT_REDIRECT_PRIMARY:
-      $redirect = $_domain['domain_id'] == 0;
-      break;
-    case DOMAIN_USER_DEFAULT_REDIRECT_ALWAYS:
-      $redirect = TRUE;
-      break;
-    case DOMAIN_USER_DEFAULT_REDIRECT_NEVER:
-    default:
-      $redirect = FALSE;
-  }
+    switch (variable_get('domain_user_default_force_subdomain_redirect', DOMAIN_USER_DEFAULT_REDIRECT_PRIMARY)) {
+      case DOMAIN_USER_DEFAULT_REDIRECT_PRIMARY:
+        $redirect = $_domain['domain_id'] == 0;
+        break;
+      case DOMAIN_USER_DEFAULT_REDIRECT_ALWAYS:
+        $redirect = TRUE;
+        break;
+      case DOMAIN_USER_DEFAULT_REDIRECT_NEVER:
+      default:
+        $redirect = FALSE;
+    }
 
-  if (isset($user->default_domain)) {
-    if ($user->default_domain != $_domain['domain_id']) {
-      $domain = domain_lookup($user->default_domain);
-
-      if (is_array($domain)  && $redirect) {
-        // @todo: check if page exists on other domain, then use
-        // domain_get_uri($domain) instead
-        drupal_goto(domain_get_path($domain));
-      }
-      elseif ($domain && variable_get('domain_user_default_display_redirect_message', TRUE)) {
-        // if no redirect, display message
-        drupal_set_message(t('Your default domain is <a href="!url">@link</a>', array('!url' => domain_get_uri($domain), '@link' => $domain['sitename'])));
+    if (isset($user->default_domain)) {
+      if ($user->default_domain != $_domain['domain_id']) {
+        $domain = domain_lookup($user->default_domain);
+
+        if (is_array($domain)  && $redirect) {
+          // @todo: check if page exists on other domain, then use
+          // domain_get_uri($domain) instead
+          drupal_goto(domain_get_path($domain));
+        }
+        elseif ($domain && variable_get('domain_user_default_display_redirect_message', TRUE)) {
+          // if no redirect, display message
+          drupal_set_message(t('Your default domain is <a href="!url">@link</a>', array('!url' => domain_get_uri($domain), '@link' => $domain['sitename'])));
+        }
       }
     }
   }
@@ -305,7 +313,7 @@
     // authenticated user
     return user_access('set own domain default');
   }
-  
+
   // unauthenticated user must have permissions, and sessions enabled, and the
   // Domain Session Default module must be enabled.
   return module_exists('domain_session_default') && user_access('set own domain default') && session_api_available();

