Index: i18nmenu/i18nmenu.module
===================================================================
--- i18nmenu/i18nmenu.module	(revision 34252)
+++ i18nmenu/i18nmenu.module	(working copy)
@@ -233,6 +233,32 @@
 /**
  * Implementation of hook_form_form_id_alter().
  *
+ * Register a submit callback to process menu title.
+ */
+function i18nmenu_form_menu_edit_menu_alter(&$form, $form_state) {
+  $form['#submit'][] = 'i18nmenu_menu_edit_menu_submit';
+}
+
+/**
+ * Submit handler for the menu_edit_item form.
+ *
+ * On menu item insert or update, save a translation record.
+ */
+function i18nmenu_menu_edit_menu_submit($form, &$form_state) {
+  // Ensure we have a menu to work with.
+  if (isset($form_state['values']['menu_name']) && isset($form_state['values']['title'])) {
+    if ($form['#insert']) {
+      $context = 'menu:menu:menu-' . $form_state['values']['menu_name'] . ':title';
+    } else {
+      $context = 'menu:menu:' . $form_state['values']['menu_name'] . ':title';
+    }
+    i18nstrings_update_string($context, $form_state['values']['title']);
+  }
+}
+
+/**
+ * Implementation of hook_form_form_id_alter().
+ *
  * Add a language selector to the menu_edit_item form and register a submit
  * callback to process items.
  */
Index: i18nblocks/i18nblocks.module
===================================================================
--- i18nblocks/i18nblocks.module	(revision 34252)
+++ i18nblocks/i18nblocks.module	(working copy)
@@ -255,6 +255,7 @@
   if (module_exists('i18nmenu')) {
     if ($block->module == 'menu') {
       $block->content = i18nmenu_translated_tree($block->delta);
+      $block->subject = i18nstrings('menu:menu:' . $block->delta . ':title', $block->subject);
     }
     elseif ($block->module == 'user' && $block->delta == 1) {
       $block->content = i18nmenu_translated_tree('navigation');
