diff -urN emacs.orig/xrefactory.el emacs/xrefactory.el
--- emacs.orig/xrefactory.el	Wed Sep 18 15:42:07 2002
+++ emacs/xrefactory.el	Sun Oct 20 20:05:15 2002
@@ -970,43 +970,50 @@
 
 (defvar xref-get-event)
 
-(if (string-match "XEmacs" emacs-version)
-	(progn
-	  ;; XEmacs
-	  (setq xref-get-event 'next-command-event)
-	  (if window-system 
-		  (progn 
-			(set-buffer (get-buffer-create " *dummytogetglobalmap*"))
-			(add-submenu nil xref-xemacs-menu)
-			(add-submenu '("Xref") xref-xemacs-project-menu "------")
-			(add-submenu '("Xref") xref-xemacs-ide-menu "------")
-			(add-submenu '("Xref") xref-xemacs-lm-menu "-----")
-			(add-submenu '("Xref") xref-xemacs-sb-menu "-----")
-			(add-submenu '("Xref") xref-xemacs-oo-misc-menu "-----")
-			;;(add-submenu '("Xref") xref-xemacs-rename-menu "Undo Last Refactoring")
-			(add-submenu '("Xref") xref-xemacs-arg-menu "Undo Last Refactoring")
-			(add-submenu '("Xref") xref-xemacs-extr-menu "Undo Last Refactoring")
-			(add-submenu '("Xref") xref-xemacs-oo-moving-menu "Undo Last Refactoring")
-			(add-submenu '("Xref") xref-xemacs-oo-misc-ref-menu "Undo Last Refactoring")
-			(add-submenu '("Xref") xref-xemacs-search-menu "Search Definition in Tag File")
-			(add-submenu '("Xref") xref-xemacs-misc-menu nil)
-			(if (commandp 'customize)
-				(add-menu-button '("Xref")
-								 ["Options" xref-global-options t]
-								 ))
-			(kill-buffer " *dummytogetglobalmap*")
-			)
-		)
-	  )
-  ;; Emacs
-  (setq xref-get-event 'read-event)
-  (let ((menu (lookup-key global-map [menu-bar])))
-	(define-key-after menu [xref] 
-	  (cons "Xref" xref-menu)
-	  (car (nth (- (length menu) 3) menu))
-	  )
-	)
-)
+;; (if (string-match "XEmacs" emacs-version)
+;; 	(progn
+;; 	  ;; XEmacs
+;; 	  (setq xref-get-event 'next-command-event)
+;; 	  (if window-system 
+;; 		  (progn 
+;; 			(set-buffer (get-buffer-create " *dummytogetglobalmap*"))
+;; 			(add-submenu nil xref-xemacs-menu)
+;; 			(add-submenu '("Xref") xref-xemacs-project-menu "------")
+;; 			(add-submenu '("Xref") xref-xemacs-ide-menu "------")
+;; 			(add-submenu '("Xref") xref-xemacs-lm-menu "-----")
+;; 			(add-submenu '("Xref") xref-xemacs-sb-menu "-----")
+;; 			(add-submenu '("Xref") xref-xemacs-oo-misc-menu "-----")
+;; 			;;(add-submenu '("Xref") xref-xemacs-rename-menu "Undo Last Refactoring")
+;; 			(add-submenu '("Xref") xref-xemacs-arg-menu "Undo Last Refactoring")
+;; 			(add-submenu '("Xref") xref-xemacs-extr-menu "Undo Last Refactoring")
+;; 			(add-submenu '("Xref") xref-xemacs-oo-moving-menu "Undo Last Refactoring")
+;; 			(add-submenu '("Xref") xref-xemacs-oo-misc-ref-menu "Undo Last Refactoring")
+;; 			(add-submenu '("Xref") xref-xemacs-search-menu "Search Definition in Tag File")
+;; 			(add-submenu '("Xref") xref-xemacs-misc-menu nil)
+;; 			(if (commandp 'customize)
+;; 				(add-menu-button '("Xref")
+;; 								 ["Options" xref-global-options t]
+;; 								 ))
+;; 			(kill-buffer " *dummytogetglobalmap*")
+;; 			)
+;; 		)
+;; 	  )
+;;   ;; Emacs
+;;   (setq xref-get-event 'read-event)
+;;   (let ((menu (lookup-key global-map [menu-bar])))
+;; 	(define-key-after menu [xref] 
+;; 	  (cons "Xref" xref-menu)
+;; 	  (car (nth (- (length menu) 3) menu))
+;; 	  )
+;; 	)
+;; )
+
+(setq xref-get-event 'read-event)
+(defun xref-add-menu-to-local-keymap ()
+  (let ((local-map (current-local-map)))
+    (when (not (null local-map))
+      (define-key (lookup-key local-map [menu-bar]) [xref]
+	(cons "Xref" xref-menu)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;                           Custom menu

