diff --git a/modules/node_deploy/node_deploy.module b/modules/node_deploy/node_deploy.module
index 0e9c0ce..22c2d80 100755
--- a/modules/node_deploy/node_deploy.module
+++ b/modules/node_deploy/node_deploy.module
@@ -77,7 +77,7 @@ function node_deploy_check($nid) {
 
   // If this node is a translation of another node, and this
   // other node is not already on the remote server, add it
-  // to the plan.
+  // to the plan, or ensure the other node is sent first.
   if ($node->tnid && $node->tnid != $node->nid) {
     if (!deploy_item_is_in_plan($pid, 'node', $node->tnid)) {
       // Does this node exist on the remote server?
@@ -90,7 +90,15 @@ function node_deploy_check($nid) {
         deploy_add_to_plan($pid, 'node', $plan_node->type .': '. $plan_node->title, $plan_node->nid, deploy_get_min_weight($pid)-1, DEPLOY_NODE_GROUP_WEIGHT);
         module_invoke_all('node_deploy_check', $plan_node);
       }
-    }    
+    }
+    else {
+      // If the other node is in the plan, make this node a dependency of the other.
+      $weight = db_result(db_query("SELECT weight FROM {deploy_plan_items} WHERE module = 'node' AND data = '%s')", $node->nid));
+      $tweight = db_result(db_query("SELECT weight FROM {deploy_plan_items} WHERE module = 'node' AND data = '%s')", $node->tnid));
+      if ($weight <= $tweight) {
+        db_query("UPDATE {deploy_plan_items} SET weight = %d WHERE module = 'node' AND data = '%s'", $tweight + 1, $node->nid);
+      }
+    }
   }
 
   if ($node) {
