diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index abc1db4..9817342 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Dec 29
+*todo.txt*      For Vim version 7.0aa.  Last change: 2004 Dec 31
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,10 +30,12 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Go through patches from Martin Dalecki.  /tmp/dalecki/README
+When using ":new" relative cursor position causes first line to disappear.
+(Jens Paulus, Opening a new window)
 
 Awaiting response:
 -   Patch for mch_FullName() also in Vim 6.3?  os_mswin.c
+-   patch for MakePre and MakePost autocommands. (Ciaran McCreesh)
 -   Win32: "gvim -V100" should use dialog with scrollbar.  Using
     gui_mch_dialog() would be good, but need to move display_errors() to after
     creating the window, so that s_hwnd is valid.
@@ -47,8 +49,6 @@
 	Docs for ":nbkey".
 	Asked Gordon to send the differences again, some parts apparently are
 	missing.
--   Browsefilter support for KDE. (Dan Sharp, 2004 July)
--   Better configure check for KDE include files from Dan Sharp.
 
 
 PLANNED FOR VERSION 7.0:
@@ -56,6 +56,7 @@
 -   For string variables, use length instead of NUL termination?
 	+ can include NUL characters
 	- setline() will have problems with NL vs NUL.
+    Can use list of numbers instead (inefficient though).
 -   new DATA TYPES:
 	- None?  (or use empty string?)
 	- list
@@ -63,6 +64,7 @@
 	- function reference
 	Check old patch from Robert Webb for array support.
     Add type checking?  See ~/vim/ideas.txt.
+-   Add "{range}execute": execute lines from a buffer.
 -   Add SPELLCHECKER, with easy to add support for many languages.
     8   Add spell checking.  Use "ispell -a" somehow.
 	~/vim/patches/wm_vim-5_4d.zip  can be used as an example (includes
@@ -77,6 +79,9 @@
 	  times later.  Sort of global syntax items.
 	- Use wordlists from openoffice (myspell).  Work together with them to
 	  update the wordlist.  (Adri Verhoef, Aad Nales)
+	- Patch from Martin Dalecki. (2004 Dec)  Uses ispell
+	  implements "undercurl" attribute.  But how to set its color?
+	  Perhaps use "guicurl=Red" instead?
 -   REFACTORING: The main() function is very long.  Move parts to separate
     functions, especially loops.  Ideas from Walter Briscoe (2003 Apr 3, 2004
     Feb 9).
@@ -1343,6 +1348,8 @@
 -   Add "page width" to wrap long lines.
 -   Win32: use a font dialog for setting 'printfont'.  Can reuse the code for
     the 'guifont' dialog, put the common code in a separate function.
+-   Add the file timestamp to the page header (with an option). (George
+    Reilly)
 -   Win32: when 'printfont' is empty use 'guifont'.
 -   Unix: Use some dialog box to do the obvious settings (paper size, printer
     name, portrait/landscape, etc).
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index cb76e93..3f1923b 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Dec 28
+*version7.txt*  For Vim version 7.0aa.  Last change: 2004 Dec 31
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -272,6 +272,10 @@
 
 Mac: GUI font selector. (Peter "Rain Dog" Cucka)
 
+GUI font selector for Motif. (Martin Dalecki)
+
+Mnemonics for the Motif find/replace dialog. (Martin Dalecki)
+
 Mac: better integration with Xcode.  Post a fake mouse-up event after the odoc
 event and the drag receive handler to work around a stall after Vim loads a
 file.  Fixed an off-by-one line number error. (Da Woon Jung)
@@ -373,6 +377,10 @@
 Internal: Changed ga_room into ga_maxlen, so that it doesn't need to be
 incremented/decremented each time.
 
+Included a few improvements for Motif from Martin Dalecki.  Draw label
+contents ourselves to make them handle fonts in a way configurable by Vim and
+a bit less dependent on the X11 font management.
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
@@ -604,4 +612,19 @@
 A comment or | just after a expresion-backtick argument was not recognized.
 E.g. in :e `="foo"`"comment.
 
+"(" does not stop at an empty sentence (single dot and white space) while ")"
+does.  Also breaks "das" on that dot.
+
+When doing "yy" with the cursor on a TAB the ruler could be wrong and "k"
+moved the cursor to another column.
+
+When 'commentstring' is '"%s' and there is a double quote in the line a double
+quote before the fold marker isn't removed in the text displayed for a  closed
+fold.
+
+In Visual mode, when 'bin' and 'eol' set, g CTRL-G counted the last line
+break, resulting in "selected 202 of 201 bytes".
+
+Motif: fonts were not used for dialog components. (Martin Dalecki)
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/src/gui_x11.c b/src/gui_x11.c
index 03300e4..90e793c 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -1834,7 +1834,16 @@
 
 #ifdef FEAT_XFONTSET
     XFontSet	fontset = NULL;
+#endif
 
+#ifdef FEAT_GUI_MOTIF
+    /* A font name equal "*" is indicating, that we should activate the font
+     * selection dialogue to get a new font name. So let us do it here. */
+    if (font_name != NULL && STRCMP(font_name, "*") == 0)
+	font_name = gui_xm_select_font(hl_get_font_name());
+#endif
+
+#ifdef FEAT_XFONTSET
     if (do_fontset)
     {
 	/* If 'guifontset' is set, VIM treats all font specifications as if
@@ -1936,6 +1945,10 @@
 	}
     }
 
+#ifdef FEAT_GUI_MOTIF
+    gui_motif_synch_fonts();
+#endif
+
     return OK;
 }
 
@@ -1988,6 +2001,7 @@
     return (GuiFont)font;
 }
 
+#if defined(FEAT_EVAL) || defined(PROTO)
 /*
  * Return the name of font "font" in allocated memory.
  * Don't know how to get the actual name, thus use the provided name.
@@ -2002,6 +2016,7 @@
 	return NULL;
     return vim_strsave(name);
 }
+#endif
 
     int
 gui_mch_adjust_charsize()
diff --git a/src/main.c b/src/main.c
index 78639a2..7ab914c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3158,7 +3158,7 @@
     }
     /* Bring the window to the foreground, goto Insert mode when 'im' set and
      * clear command line. */
-    ga_concat(&ga, (char_u *)"cal foreground()|if &im|star|en|ec<CR>");
+    ga_concat(&ga, (char_u *)"cal foreground()|if &im|star|en|redr|f<CR>");
     ga_append(&ga, NUL);
     return ga.ga_data;
 }
