Index: domain_session_default/domain_session_default.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_session_default/domain_session_default.module,v
retrieving revision 1.2.2.3
diff -u -r1.2.2.3 domain_session_default.module
--- domain_session_default/domain_session_default.module	17 Jul 2008 17:57:35 -0000	1.2.2.3
+++ domain_session_default/domain_session_default.module	23 Sep 2009 00:40:16 -0000
@@ -52,7 +52,7 @@
 /**
  * Implementation of hook_domainupdate().
  */
-function domain_session_default_domainupdate($op, $domain, &$form_state) {
+function domain_session_default_domainupdate($op, $domain, $form_state = array()) {
   switch ($op) {
     case 'delete':
       // reset any users using this domain back to the primary domain
Index: domain_user_default.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.admin.inc,v
retrieving revision 1.1.2.3
diff -u -r1.1.2.3 domain_user_default.admin.inc
--- domain_user_default.admin.inc	19 Sep 2008 17:48:29 -0000	1.1.2.3
+++ domain_user_default.admin.inc	23 Sep 2009 00:41:33 -0000
@@ -12,7 +12,7 @@
  */
 function _domain_user_default_user_form($op, &$edit, &$account) {
   $options = domain_domain_options();
-  if($account) {
+  if ($account) {
     $default = $account->default_domain;
   }
   else {
Index: domain_user_default.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.inc,v
retrieving revision 1.2.2.8
diff -u -r1.2.2.8 domain_user_default.inc
--- domain_user_default.inc	12 Jun 2009 00:51:05 -0000	1.2.2.8
+++ domain_user_default.inc	23 Sep 2009 01:12:32 -0000
@@ -12,13 +12,18 @@
  * Callback handler to set default domain
  * @param $domain_id - The id of the domain to set
  */
-function domain_user_default_set($domain_id) {
+function domain_user_default_set($domain_id, $node_id) {
   $domain = _domain_user_default_set($domain_id);
-
   if ($domain) {
-    global $language;
-    // Redirect to language specific front page.
-    $page_url = substr(url('<front>', array('language' => $language)), 1);
+    // If request originated from a node page redirect user back to the node page on the new domain
+    if (is_numeric($node_id) && $node_id > 0) {
+      $page_url = substr(url('node/'. $node_id), 1);
+    }
+    else {
+      global $language;
+      // Redirect to language specific front page.
+      $page_url = substr(url('<front>', array('language' => $language)), 1);
+    }
     drupal_goto(domain_get_path($domain) . $page_url);
   }
 }
@@ -34,7 +39,6 @@
   global $user, $_domain;
 
   $account = user_load($user->uid);
-
   if ($domain_id != $account->default_domain) {
     $edit['default_domain'] = $domain_id;
 
@@ -53,13 +57,13 @@
       unset($_SESSION['domain_user_default_location_set']);
     }
     // set user's location to this domain if it hasn't already been done
-    if(variable_get('domain_user_default_display_domain_set_message', 0)) {
+    if (variable_get('domain_user_default_display_domain_set_message', 0)) {
       drupal_set_message(t('Default domain has been changed to @domain', array('@domain' => $domain['sitename'])));
     }
   }
   elseif ($domain_id == $_domain['domain_id']) {
     $domain = domain_lookup($domain_id);
-    if(variable_get('domain_user_default_display_domain_set_message', 0)) {
+    if (variable_get('domain_user_default_display_domain_set_message', 0)) {
       drupal_set_message(t('Default domain is already set to @domain', array('@domain' => $domain['sitename'])));
     }
   }
@@ -81,7 +85,7 @@
     if ($account->uid) {
       // user default
       if (db_result(db_query("SELECT uid FROM {domain_user_default} WHERE uid = %d", $account->uid))) {
-	$update = array('uid');
+        $update = array('uid');
       }
       $record = new stdClass();
       $record->uid = $account->uid;
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.12
diff -u -r1.1.2.12 domain_user_default.module
--- domain_user_default.module	12 Jun 2009 00:45:16 -0000	1.1.2.12
+++ domain_user_default.module	23 Sep 2009 01:10:10 -0000
@@ -57,7 +57,7 @@
   $menu['domain-user-default/set/%'] = array(
     'title' => 'Set default domain',
     'page callback' => 'domain_user_default_set',
-    'page arguments' => array(2),
+    'page arguments' => array(2, 3),
     'access arguments' => array('set own domain default'),
     'type' => MENU_CALLBACK,
     'file' => 'domain_user_default.inc',
@@ -99,7 +99,10 @@
           'default_domain' => $user->default_domain,
         );
         unset($_SESSION['domain_user_default_location_set']);
-        _domain_geolocalization_update_user($edit, $user);
+          if (module_exists('domain_geolocalization')) {
+            module_load_include('inc', 'domain_geolocalization');
+            _domain_geolocalization_update_user($edit, $user);
+          }
         module_load_include('inc', 'domain_user_default');
         _domain_user_default_set($user->default_domain);
       }
@@ -122,15 +125,20 @@
   if (isset($user->default_domain)) {
     if ($user->default_domain != $_domain['domain_id']) {
       $domain = domain_lookup($user->default_domain);
-
+      $current_path = '';
+      // If viewing a node redirect to the same node on default domain
+      if (arg(0) == 'node' && is_numeric(arg(1))) {
+        $current_node_id = arg(1);
+        $current_path = drupal_get_path_alias('node/'. $current_node_id);
+      }
       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));
+        drupal_goto(domain_get_path($domain) . $current_path);
       }
       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'])));
+        drupal_set_message(t('Your default domain is <a href="!url">@link</a>', array('!url' => domain_get_uri($domain) . $current_path, '@link' => $domain['sitename'])));
       }
     }
   }
@@ -328,7 +336,7 @@
 /**
  * Implementation of hook_domainupdate().
  */
-function domain_user_default_domainupdate($op, $domain, &$form_state) {
+function domain_user_default_domainupdate($op, $domain, $form_state = array()) {
   switch ($op) {
     case 'delete':
       // reset any users using this domain back to the primary domain
Index: domain_user_default.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/domain_user_default/domain_user_default.theme.inc,v
retrieving revision 1.1.2.2
diff -u -r1.1.2.2 domain_user_default.theme.inc
--- domain_user_default.theme.inc	11 Jul 2008 17:33:26 -0000	1.1.2.2
+++ domain_user_default.theme.inc	23 Sep 2009 00:44:42 -0000
@@ -12,9 +12,13 @@
  * behavior as well.
  */
 function theme_domain_user_default_default_domain($domain) {
+  $current_node_id = 0;
+  if (arg(0) == 'node' && is_numeric(arg(1))) {
+    $current_node_id = arg(1);
+  }
   // define ahah behavior
   $ahah_binding = array(
-    'url'   => url('domain-geolocalization/search/form/js'), // the json callback
+    'url'   => url('domain-geolocalization/search/form/js/'. $current_node_id), // the json callback
     'event' => 'click',
     'wrapper'  => 'domain-search', // define the id of the container into
                                    // which to dump the form
@@ -28,7 +32,6 @@
   drupal_add_js('misc/jquery.form.js');
   drupal_add_js('misc/ahah.js');
   drupal_add_js(array('ahah' => array('domain-user-default-change' => $ahah_binding)), 'setting');
-  
   // @todo this could also be done via thickbox or lightbox by adding the
   // appropriate class to the anchor tag.
 
@@ -39,7 +42,7 @@
     . l(t('Change'), 'search/domain', array('attributes' => array('title' => t('Change Domain'), 'id' => 'domain-user-default-change')))
     . '
   <div id="domain-search-wrapper">
-    <a href="#" id="domain-search-close" style="display: none;">' . t('Close') . '</a>
+    <a href="#" id="domain-search-close" style="display: none;">'. t('Close') .'</a>
     <div id="domain-search"></div>' // This is the container the search form is dumped into
     . '
   </div>

