diff -r 68121a1c9df9 src/application/MainController.mm
--- a/src/application/MainController.mm	Tue Sep 21 20:26:17 2010 -0400
+++ b/src/application/MainController.mm	Fri Sep 24 23:14:59 2010 -0700
@@ -111,16 +111,17 @@ const int kZoomActionsTag = 108;
 @end
 #endif
 
 @interface MainController(Private)<NetworkServicesClient>
 
 - (void)ensureGeckoInitted;
 - (void)ensureInitializationCompleted;
 - (void)setInitialized:(BOOL)flag;
+- (void)setupSpotlightForHelp;
 - (void)setupStartpage;
 - (void)setupRendezvous;
 - (void)addNoServicesFoundMenuItem;
 - (void)checkDefaultBrowser;
 - (void)checkForProblemAddOns;
 - (void)prelaunchHelperApps;
 - (void)updateDockMenuBookmarkFolder;
 - (void)updateBookmarkMenuStateIncludingBookmarks:(BOOL)includeBookmarks;
@@ -345,27 +346,17 @@ const int kZoomActionsTag = 108;
     [[SessionManager sharedInstance] clearSavedState];
   }
 
   [self setInitialized:YES];
 }
 
 - (void)applicationDidFinishLaunching:(NSNotification*)aNotification
 {
-  // Make sure the help menu is identified correctly, since it may be localized.
-  // TODO: Add a reference to the Help menu once we aren't nib-frozen, rather
-  // than getting it by position.
-  if ([NSApp respondsToSelector:@selector(setHelpMenu:)]) {
-    NSMenu* mainMenu = [NSApp mainMenu];
-    unsigned int helpMenuIndex =
-        [mainMenu indexOfItemWithSubmenu:[NSApp windowsMenu]] + 1;
-    if (helpMenuIndex < [[mainMenu itemArray] count])
-      [NSApp setHelpMenu:[[mainMenu itemAtIndex:helpMenuIndex] submenu]];
-  }
-
+  [self setupSpotlightForHelp];
   [self ensureInitializationCompleted];
 
   [self checkForProblemAddOns];
   [self prelaunchHelperApps];
   [self setUpSafeBrowsing];
 
   // Initialize growl support
   mGrowlController = [[GrowlController alloc] init];
@@ -375,16 +366,32 @@ const int kZoomActionsTag = 108;
   NSWindow* browserWindow = [self frontmostBrowserWindow];
   if (!browserWindow || mStartURL)
     [self newWindow:self];
 
   // delay the default browser check to give the first page time to load
   [self performSelector:@selector(checkDefaultBrowser) withObject:nil afterDelay:2.0f];
 }
 
+- (void)setupSpotlightForHelp
+{
+  // Mac OS X 10.4 and 10.5 automatically add the "Spotlight for Help" menu item
+  // to the Help menu, but 10.6 will only add it if the Help menu is actually
+  // named "Help". This breaks localized Help menus, so we must find our Help
+  // menu by its nib tag and setHelpMenu to get the "Spotlight for Help" menu
+  // item. setHelpMenu is only available >= 10.6, but we don't need it <= 10.5.
+
+  if ([NSApp respondsToSelector:@selector(setHelpMenu:)]) {
+    NSMenu* mainMenu = [NSApp mainMenu];
+    NSMenuItem* helpMenuItem = [mainMenu itemWithTag:kHelpMenuItemTag];
+    NSMenu* helpMenu = [helpMenuItem submenu];
+    [NSApp setHelpMenu:helpMenu];
+  }
+}
+
 - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)sender
 {
   ProgressDlgController* progressWindowController = [ProgressDlgController existingSharedDownloadController];
   if (progressWindowController) {
     NSApplicationTerminateReply progressTerminateReply = [progressWindowController allowTerminate];
     if (progressTerminateReply != NSTerminateNow)
       return progressTerminateReply;
   }
diff -r 68121a1c9df9 src/includes/ChimeraUIConstants.h
--- a/src/includes/ChimeraUIConstants.h	Tue Sep 21 20:26:17 2010 -0400
+++ b/src/includes/ChimeraUIConstants.h	Fri Sep 24 23:14:59 2010 -0700
@@ -60,8 +60,11 @@ const int kBookmarksDividerTag = -1;
 const int kSaveFormatPopupTag = 1000;
 
 enum
 {
   eSaveFormatHTMLComplete = 0,
   eSaveFormatHTMLSource,
   eSaveFormatPlainText
 };
+
+// Help menu
+const int kHelpMenuItemTag = 7000;
