--- lisp/frame.el.orig	Fri May  1 03:17:34 1998
+++ lisp/frame.el	Fri May  1 03:22:06 1998
@@ -516,14 +516,15 @@
 (defun other-frame (arg)
   "Select the ARG'th different visible frame, and raise it.
 All frames are arranged in a cyclic order.
-This command selects the frame ARG steps away in that order,
-regardless of the value of `focus-follows-mouse'.
-A negative ARG moves in the opposite order."
+This command selects the frame ARG steps away in that order.
+A negative ARG moves in the opposite order.
+
+This command ignores the value of `focus-follows-mouse'."
   (interactive "p")
   (let ((frame (selected-frame))
+        (old-focus-follows-mouse focus-follows-mouse)
         ;; Allow selecting another frame even when
         ;; focus-follows-mouse is true.
-        (focus-policy focus-follows-mouse)
         (focus-follows-mouse nil))
     (while (> arg 0)
       (setq frame (next-frame frame 'visible-nomini))
@@ -533,8 +534,10 @@
       (setq arg (1+ arg)))
     (raise-frame frame)
     (select-frame frame)
-    (if focus-policy  ;; this hack allows the focus change to be
-        (sit-for 0))  ;; processed while focus-follows-mouse is nil.
+    ;; Allow the focus change to be processed while
+    ;; focus-follows-mouse is nil.
+    (and old-focus-follows-mouse
+	 (sit-for 0))
     ;this is a bad idea; you should in general never warp the
     ;pointer unless the user asks for this.  Furthermore,
     ;our version of `set-mouse-position' takes a window,
--- etc/NEWS.orig	Fri May  1 03:21:04 1998
+++ etc/NEWS	Fri May  1 03:21:04 1998
@@ -33,17 +33,6 @@
 * Changes in XEmacs 21.0
 ========================
 
-** When the variable focus-follows-mouse is non-nil, it is no longer
-possible for select-frame to permanently select a different frame.
-The frame selection is temporary and is reverted when the current
-command terminates, much like the buffer selected by `set-buffer'.
-In order to effect a permanent focus change in this case, bind
-focus-follows-mouse to nil, select the frame you want, and do a
-(sit-for 0) within the scope of the binding.  The function
-other-frame (normally bound to C-x 5 o) is the only command provided
-which does not respect the setting of focus-follows-mouse, and *will*
-allow one to select a different frame even when set non-nil.
-
 ** XEmacs has been unbundled into constituent installable packages.
 See the file `etc/PACKAGES' in the distribution for a full
 description.
@@ -196,6 +185,13 @@
 machines.)  Configure with --use-minimal-tagbits to test.  With this
 change, the maximum buffer size on 32-bit machines is bumped from 128M
 to 1G.  This setting will be the default in a future XEmacs version.
+
+** When the variable focus-follows-mouse is non-nil, `select-frame' no
+longer permanently selects a different frame.  The frame selection is
+temporary and is reverted when the current command terminates, much
+like the buffer selected by `set-buffer'.  The `other-frame' command
+(`C-x 5 o') is unaffected by `focus-follows-mouse', and its behaviour
+is unchanged.
 
 ** It is now possible to build XEmacs with LDAP support
 You need to install a LDAP library first.  The following have been
-- 
Hrvoje Niksic <hniksic(a)srce.hr> | Student at FER Zagreb, Croatia
--------------------------------+--------------------------------
What is mind?  No matter.
What is matter?  Never mind.