Index: i18nmenu_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/i18nmenu_node/i18nmenu_node.module,v
retrieving revision 1.25
diff -u -p -r1.25 i18nmenu_node.module
--- i18nmenu_node.module	12 Nov 2010 10:41:22 -0000	1.25
+++ i18nmenu_node.module	15 Feb 2011 10:10:11 -0000
@@ -464,6 +464,12 @@ function i18nmenu_node_nodeapi(&$node, $
         // @todo: update new source translation node if the translation set is
         // empty.
         i18nmenu_node_item_translations_refresh_set($node->tnid);
+        // Remove the menu translation for the corresponding node translation.
+        if ($node->nid != $node->tnid) {
+          $tnode = (object) array('nid' => $node->tnid);
+          _i18nmenu_node_prepare($tnode);
+          _i18nmenu_node_delete_item_translation($tnode->menu['mlid'], $node->language);
+        }
       }
       break;
 
@@ -693,3 +699,21 @@ function i18nmenu_node_get_translations(
     return $result;
   }
 }
+
+/**
+ * Remove the translation strings for the given menu item and language.
+ */
+function _i18nmenu_node_delete_item_translation($mlid, $langcode) {
+  _i18nmenu_node_remove_string_translation('menu:item:'. $mlid .':title', $langcode);
+  _i18nmenu_node_remove_string_translation('menu:item:'. $mlid .':description', $langcode);
+}
+
+/**
+ * Remove a string translation for a given context and language.
+ */
+function _i18nmenu_node_remove_string_translation($context, $langcode) {
+  $context = i18nstrings_context($context);
+  if ($source = i18nstrings_get_source($context)) {
+    db_query("DELETE FROM {locales_target} WHERE lid = %d AND language = '%s'", $source->lid, $langcode);
+  }
+}
