diff --git a/webform_localization.module b/webform_localization.module
index cfc9b53..b671e02 100644
--- a/webform_localization.module
+++ b/webform_localization.module
@@ -254,29 +254,61 @@ function webform_localization_webform_component_delete($component) {
 }
 
 /**
+ * A menu to_arg handler explicitly invoked by webform_menu_to_arg().
+ *
+ * If a single webform is used across all translations, use the appropriate
+ * node ID for webform paths.
+ */
+function webform_localization_webform_menu_to_arg($arg, $map, $index) {
+  if ($node = node_load($arg)) {
+    if ($nid = webform_localization_single_webform_nid($node)) {
+      $node = node_load($nid);
+    }
+  }
+  return $node ? $node->nid : $arg;
+}
+
+/**
+ * Find the node ID of the node containing the 'single webform'
+ * for this translation set.
+ */
+function webform_localization_single_webform_nid($node) {
+  $webform_localization_options = webform_localization_get_config($node->nid);
+  if ($webform_localization_options['single_webform'] > 0) {
+    $cache = &drupal_static(__FUNCTION__, array());
+    if (!array_key_exists($node->nid, $cache)) {
+      // Select all webforms that match the localization configuration.
+      $query = db_select('webform', 'w');
+      $query->innerJoin('webform_localization', 'wl', 'w.nid = wl.nid');
+      $query->fields('w', array('nid'));
+      $query->condition('wl.single_webform', 0, '<>');
+      $query->condition('wl.single_webform', $node->tnid, '=');
+      $query->condition('w.nid', $node->nid, '<>');
+      $cache[$node->nid] = $query->execute()->fetchField();
+    }
+    return $cache[$node->nid];
+  }
+  else {
+    //Single webform option is disabled.
+    return FALSE;
+  }
+}
+
+/**
  * Implements hook_node_view().
  */
 function webform_localization_node_view($node, $view_mode) {
   if (!in_array($node->type, webform_variable_get('webform_node_types'))) {
     return;
   }
-  // Select all webforms that match the localization configuration.
-  $query = db_select('webform', 'w');
-  $query->innerJoin('webform_localization', 'wl', 'w.nid = wl.nid');
-  $query->fields('w', array('nid'));
-  $query->condition('wl.single_webform', 0, '<>');
-  $query->condition('wl.single_webform', $node->tnid, '=');
-  $query->condition('w.nid', $node->nid, '<>');
-  $result = $query->execute()->fetchField();
-
-  if ($result) {
+  if ($nid = webform_localization_single_webform_nid($node)) {
     /**
      * NOTE:
      * Perhaps not most eficient way.. a possible alternative
      * @todo rewrite the webform load and view process as a
      * independent function to reuse.
      */
-    $source_node = node_load($result);
+    $source_node = node_load($nid);
     // We replace the webform with the node translation source.
     $node->webform = $source_node->webform;
 
