diff --git a/runtime/autoload/ccomplete.vim b/runtime/autoload/ccomplete.vim
index 7a840b1..624fdb3 100644
--- a/runtime/autoload/ccomplete.vim
+++ b/runtime/autoload/ccomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Feb 06
+" Last Change:	2006 Feb 10
 
 
 " This function is used for the 'omnifunc' option.
@@ -213,9 +213,8 @@
 " If it is a variable we may add "." or "->".  Don't do it for other types,
 " such as a typedef, by not including the info that s:GetAddition() uses.
 function! s:Tag2item(val)
-  let x = substitute(a:val['cmd'], '^/^', '', '')
-  let x = substitute(x, '$/$', '', '')
-  let x = substitute(x, a:val['name'], '@@', '')
+  let x = s:Tagcmd2extra(a:val['cmd'], a:val['name'], a:val['filename'])
+
   if has_key(a:val, "kind")
     if a:val["kind"] == 'v'
       return {'match': a:val['name'], 'tagline': "\t" . a:val['cmd'], 'dict': a:val, 'extra': x}
@@ -231,13 +230,37 @@
 " "val['match']" is the matching item.
 " "val['tagline']" is the tagline in which the last part was found.
 function! s:Tagline2item(val, brackets)
-  let word = a:val['match'] . a:brackets . s:GetAddition(a:val['tagline'], a:val['match'], [a:val], a:brackets == '')
+  let line = a:val['tagline']
+  let word = a:val['match'] . a:brackets . s:GetAddition(line, a:val['match'], [a:val], a:brackets == '')
   if has_key(a:val, 'extra')
     return {'word': word, 'menu': a:val['extra']}
   endif
-  return {'word': word, 'menu': substitute(a:val['tagline'], word, '@@', '')}
+
+  " Isolate the command after the tag and filename.
+  let s = matchstr(line, '[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)')
+  if s != ''
+    return {'word': word, 'menu': s:Tagcmd2extra(s, a:val['match'], matchstr(line, '[^\t]*\t\zs[^\t]*\ze\t'))}
+  endif
+  return {'word': word}
 endfunction
 
+" Turn a command from a tag line to something that is useful in the menu
+function! s:Tagcmd2extra(cmd, name, fname)
+  if a:cmd =~ '^/^'
+    " The command is a search command, useful to see what it is.
+    let x = matchstr(a:cmd, '^/^\zs.*\ze$/')
+    let x = substitute(x, a:name, '@@', '')
+    let x = substitute(x, '\\\(.\)', '\1', 'g')
+    let x = x . ' - ' . a:fname
+  elseif a:cmd =~ '^\d*$'
+    " The command is a line number, the file name is more useful.
+    let x = a:fname . ' - ' . a:cmd
+  else
+    " Not recognized, use command and file name.
+    let x = a:cmd . ' - ' . a:fname
+  endif
+  return x
+endfunction
 
 " Find composing type in "lead" and match items[0] with it.
 " Repeat this recursively for items[1], if it's there.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 149af4d..23267a6 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 09
+*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Feb 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -32,23 +32,14 @@
 
 Crash with X command server (Ciaran McCreesh).
 
-Add ":lcscope" to use location list instead of quickfix list.
-
 ccomplete / omnicomplete:
-When editing compl_leader <CR> should accept the current match.
-Somehow select another match without changing the compl_leader, so that you
-can use CTRL-L next?  Perhaps with <S-Up> and <S-Down>?
-- Flickering because of syntax highlighting redrawing further lines.
-- Complete the longest common match instead of the first match?
-    Do this when "longest" is in 'completeopt'.
-    Pressing CTRL-N or CTRL-P will get the whole match, as before.
-    Need to postpone inserting anything until all matches have been found.
-    Then add a completion item with the longest common string (after what was
-    typed), if there is one.
 - For C add tag "kind" field to each match?
+- Flickering because of syntax highlighting redrawing further lines.
 - Finding out if an item has members (to add '.' or '->') requires a grep in
   the tags files, that is very slow.  Is there another solution?  At least
   stop at the first match.
+  Could build the list of items for each structure in memory.  Is that faster?
+  Not using too much memory?
 - When a typedef or struct is local to a file only use it in that file?
 - Special mappings for when the popup menu is visible?  Would allow for making
   a specific selection (e.g, methods vs variables).
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 17d2931..14e378a 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Feb 09
+*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Feb 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -457,13 +457,6 @@
 |:caddbuffer|		Add errors from the current buffer to the quickfix
 			list.
 
-|:ltag|			Jump to a tag and add matching tags to a location list.
-|:lmake|		Like |:make| but use the location list.
-|:lgrep|		Like |:grep| but use the location list.
-|:lgrepadd|		Like |:grepadd| but use the location list.
-|:lvimgrep|		Like |:vimgrep| but use the location list.
-|:lvimgrepadd|		Like |:vimgrepadd| but use the location list.
-|:lhelpgrep|		Like |:helpgrep| but use the location list.
 |:lfile|		Like |:cfile| but use the location list.
 |:lgetfile|		Like |:cgetfile| but use the location list.
 |:laddfile|		Like |:caddfile| but use the location list.
@@ -474,7 +467,7 @@
 |:ll|			Like |:cc| but use the location list.
 |:llist|		Like |:clist| but use the location list.
 |:lnext|		Like |:cnext| but use the location list.
-|:lprev|		Like |:cprev| but use the location list.
+|:lprevious|		Like |:cprevious| but use the location list.
 |:lNext|		Like |:cNext| but use the location list.
 |:lfirst|		Like |:cfirst| but use the location list.
 |:lrewind|		Like |:crewind| but use the location list.
@@ -487,6 +480,14 @@
 |:lwindow|		Like |:cwindow| but use the location list.
 |:lopen|		Like |:copen| but use the location list.
 |:lclose|		Like |:cclose| but use the location list.
+|:lmake|		Like |:make| but use the location list.
+|:lgrep|		Like |:grep| but use the location list.
+|:lgrepadd|		Like |:grepadd| but use the location list.
+|:lvimgrep|		Like |:vimgrep| but use the location list.
+|:lvimgrepadd|		Like |:vimgrepadd| but use the location list.
+|:lhelpgrep|		Like |:helpgrep| but use the location list.
+|:lcscope|		Like |:cscope| but use the location list.
+|:ltag|			Jump to a tag and add matching tags to a location list.
 
 
 Ex command modifiers: ~
@@ -1682,4 +1683,7 @@
 
 Crashed when expanding a file name argument in backticks.
 
+In some situations the menu and scrollbar didn't work, when the value contains
+a CSI byte. (Yukihiro Nakadaira)
+
  vim:tw=78:ts=8:ft=help:norl:
