diff --git a/doc/Makefile b/doc/Makefile
index f3153e6c054c496c50f880b062b712b1a6107daa..d73b93c00d12931592e0df4d4b9a09c2bb334e55 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -22,7 +22,7 @@
 #
 # Please mail bug reports to bug-lyskom@lysator.liu.se.
 
-CLIENTVERSION = 0.46.1-BETA-3
+CLIENTVERSION = 0.46.1-BETA-4
 
 SHELL = /bin/sh
 RM = rm -f
diff --git a/doc/NEWS-0.46.1 b/doc/NEWS-0.46.1
index af0840174914e9b9ddb387384a42876f9ca2750f..12452b638c83b5b03a3110a9a9e5a821b9039884 100644
--- a/doc/NEWS-0.46.1
+++ b/doc/NEWS-0.46.1
@@ -103,6 +103,21 @@
    medlem får man numera en fråga om huruvida det ska vara en extra
    kopiemottagare eller vanlig mottagare.
 
+** En del funktionalitet som tidigare var begränsad till XEmacs finns
+   även i Emacs 21:
+
+*** Färger och sånt i ttyer i Emacs 21.
+
+*** Man kan klicka på "Olästa" i menyraden med mittenknappen för att
+    gå till nästa olästa LysKOM och med högerknappen för att få en
+    meny med alla sessioner som har olästa.
+
+*** Färger fungerar antagligen i ttyer i Emacs 21. Åtminstone
+    *försöker* klienten använda färger även i en tty om det ser ut som
+    om Emacs kanske klarar det.
+
+
+
 * Bugfixar
 
 ** Klienten fungerar i Gnu Emacs 21.
diff --git a/src/ChangeLog b/src/ChangeLog
index 632b47acc0d1d48547a4c97ec317f8a051c0e0c0..c52e70a45a85c90cb8d955a342f25990ca2235e6 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,16 @@
+2000-12-12  David Byers  <davby@sen5.ida.liu.se>
+
+	* Release av 0.46.1-BETA-4
+
+2000-12-12  David Byers  <davby@ida.liu.se>
+
+	* commands2.el (kom-modeline-next-unread-kom): Don't check for
+	Emacs version.
+	(kom-modeline-select-unread-kom): Don't check for Emacs version.
+
+	* lyskom-rest.el (lyskom-is-loaded): Set modeline keymap for
+	lyskom-unread-mode-line in Gnu Emacs too.
+
 2000-12-09  Joel Rosdahl  <joel@rosdahl.net>
 
 	* commands2.el (kom-status-conf): More space allocated for the
diff --git a/src/Makefile b/src/Makefile
index b3bcf4f3611b895c4ebf7d662ed3fc6cb0f3e3c5..70e99b601da2c3cef63d5b649416c0714850c72e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -36,7 +36,7 @@
 # makefile too!
 #
 
-CLIENTVERSION = 0.46.1-BETA-3
+CLIENTVERSION = 0.46.1-BETA-4
 DOCFILES=NEWS-0.46 NEWS-0.46.1
 DEBIANCLIENTVERSION = $(shell echo $(CLIENTVERSION) | tr - .)
 
diff --git a/src/commands2.el b/src/commands2.el
index 7a7e6fc37ae2d6ccea93c5b9abee176f39627d75..826984cda2743b97c5d11c07212e4e82b067bd1e 100644
--- a/src/commands2.el
+++ b/src/commands2.el
@@ -1740,34 +1740,30 @@ Return-value: 'no-session if there is no suitable session to switch to
 (defun kom-modeline-next-unread-kom ()
   "Pop up the previous unread lyskom session, if there is one"
   (interactive)
-  (lyskom-xemacs-or-gnu
-   (lyskom-next-kom 'lyskom-sessions-with-unread 'forward)
-   nil))
+  (lyskom-next-kom 'lyskom-sessions-with-unread 'forward))
 
 (defun kom-modeline-select-unread-kom (event)
   "Pop up a menu of sessions with unreads"
   (interactive "@e")
-  (lyskom-xemacs-or-gnu
-   (when lyskom-sessions-with-unread
-     (let ((unreads
-            (mapcar (lambda (buffer)
-                      (save-excursion
-                        (set-buffer buffer)
-                        (vector
-                         (lyskom-format "%#1P, %#2s%#3?b%[ (%#4s)%]%[%]"
-                                        lyskom-pers-no
-                                        (or (cdr (assoc lyskom-server-name
-                                                        kom-server-aliases))
-                                            lyskom-server-name)
-                                        (memq buffer lyskom-sessions-with-unread-letters)
-                                        (lyskom-get-string 'unread-letters))
-                         (list 'lyskom-switch-to-kom-buffer buffer)
-                         :active t)))
-                    lyskom-sessions-with-unread)))
-       (popup-menu
-        (cons (lyskom-get-string 'sessions-with-unreads) unreads)
-        event)))
-   nil))
+  (when lyskom-sessions-with-unread
+    (let ((unreads
+           (mapcar (lambda (buffer)
+                     (save-excursion
+                       (set-buffer buffer)
+                       (vector
+                        (lyskom-format "%#1P, %#2s%#3?b%[ (%#4s)%]%[%]"
+                                       lyskom-pers-no
+                                       (or (cdr (assoc lyskom-server-name
+                                                       kom-server-aliases))
+                                           lyskom-server-name)
+                                       (memq buffer lyskom-sessions-with-unread-letters)
+                                       (lyskom-get-string 'unread-letters))
+                        (list 'lyskom-switch-to-kom-buffer buffer)
+                        :active t)))
+                   lyskom-sessions-with-unread)))
+      (popup-menu
+       (cons (lyskom-get-string 'sessions-with-unreads) unreads)
+       event))))
 
 
 
diff --git a/src/lyskom-rest.el b/src/lyskom-rest.el
index 3b750d23fdf7a0265edf74c5489379b7357d43b5..84c3b41b6b03f7b2a9e562569fca2dc6b98d4fcf 100644
--- a/src/lyskom-rest.el
+++ b/src/lyskom-rest.el
@@ -3546,8 +3546,11 @@ One parameter - the prompt string."
 (if lyskom-modeline-keymap
     nil
   (setq lyskom-modeline-keymap (make-sparse-keymap))
-  (define-key lyskom-modeline-keymap (kbd (lyskom-keys 'button2up)) 'kom-modeline-next-unread-kom)
-  (define-key lyskom-modeline-keymap (kbd (lyskom-keys 'button3)) 'kom-modeline-select-unread-kom))
+  (lyskom-xemacs-or-gnu
+   (progn (define-key lyskom-modeline-keymap (kbd (lyskom-keys 'button2up)) 'kom-modeline-next-unread-kom)
+          (define-key lyskom-modeline-keymap (kbd (lyskom-keys 'button3)) 'kom-modeline-select-unread-kom))
+  (progn (define-key lyskom-modeline-keymap [mode-line mouse-2] 'kom-modeline-next-unread-kom)
+         (define-key lyskom-modeline-keymap [mode-line mouse-3] 'kom-modeline-select-unread-kom))))
 
 
 (defvar frame-icon-title-format)
@@ -3582,12 +3585,24 @@ One parameter - the prompt string."
                                           frame-icon-title-format
                                           'lyskom-unread-title-format)))
 
-  (setq lyskom-unread-mode-line
-        (list (list 'lyskom-sessions-with-unread 
-                    (lyskom-get-string 'mode-line-unread))
-              (list 'lyskom-sessions-with-unread-letters
-                    (lyskom-get-string 'mode-line-letters))
-              " "))
+  (lyskom-xemacs-or-gnu
+   (setq lyskom-unread-mode-line
+         (list (list 'lyskom-sessions-with-unread 
+                     (lyskom-get-string 'mode-line-unread))
+               (list 'lyskom-sessions-with-unread-letters
+                     (lyskom-get-string 'mode-line-letters))
+               " "))
+   (setq lyskom-unread-mode-line
+         (list (list 'lyskom-sessions-with-unread 
+                     (let ((tmp (lyskom-get-string 'mode-line-unread)))
+                       (add-text-properties 0 (length tmp) (list 'local-map lyskom-modeline-keymap) tmp)
+                       tmp))
+               (list 'lyskom-sessions-with-unread-letters
+                     (let ((tmp (lyskom-get-string 'mode-line-letters)))
+                       (add-text-properties 0 (length tmp) (list 'local-map lyskom-modeline-keymap) tmp)
+                       tmp))
+               " ")))
+
   (setq lyskom-unread-title-format
         `(kom-show-unread-in-frame-title
           (lyskom-session-has-unreads