diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index ac84091..be94b37 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 7.4.  Last change: 2011 Jan 15
+*digraph.txt*   For Vim version 7.4.  Last change: 2013 Dec 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -147,7 +147,7 @@
 	Two			2	Hook
 	Nine			9	Horn
 
-	Equals			=	Cyrillic
+	Equals			=	Cyrillic (= used as second char) 
 	Asterisk		*	Greek
 	Percent sign		%	Greek/Cyrillic special
 	Plus			+	smalls: Arabic, capitals: Hebrew
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 1cee25b..94454fb 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 7.4.  Last change: 2013 May 25
+*filetype.txt*  For Vim version 7.4.  Last change: 2013 Dec 15
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -447,23 +447,25 @@
 				%%	insert a single '%' character
 				%d	insert the date from above
 				%u	insert the user from above
+                                %p	insert result of b:changelog_entry_prefix
 				%c	where to position cursor when done
-			The default is "%d  %u\n\n\t* %c\n\n", which produces
+			The default is "%d  %u\n\n\t* %p%c\n\n", which produces
 			something like (| is where cursor will be, unless at
 			the start of the line where it denotes the beginning
 			of the line) >
 				|2003-01-14  Full Name  <user@host>
 				|
-				|        * |
+				|        * prefix|
 <
 g:changelog_new_entry_format
 			The format used when creating a new entry.
 			The following table describes special tokens in the
 			string:
+                                %p	insert result of b:changelog_entry_prefix
 				%c	where to position cursor when done
 			The default is "\t*%c", which produces something
 			similar to >
-				|        * |
+				|        * prefix|
 <
 g:changelog_date_entry_search
 			The search pattern to use when searching for a
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 670fd2d..7e8b5a8 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2013 Dec 11
+*todo.txt*      For Vim version 7.4.  Last change: 2013 Dec 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,6 +34,10 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Article for Vim website. (Pritesh Ugrankar, 2013 Dec 13)
+
+Patch for Perl 5.18. (2013 Dec 13, Ken Takata)
+
 Regexp problems:
 - NFA regexp doesn't count tab matches correctly. (Urtica Dioica / gaultheria
   Shallon, 2013 Nov 18)
@@ -44,10 +48,14 @@
   Remark from Dominique, Aug 27
 - Issue 164: freeze on regexp search.
 - NFA problem with non-greedy match and branches. (Ingo Karkat, 2013 Nov 29)
+- Ignorecase not handled properly for multi-byte characters. (Axel Bender,
+  2013 Dec 11)
 
 Problem that a previous silent ":throw" causes a following try/catch not to
 work. (ZyX, 2013 Sep 28)
 
+Patch for problems with Borland compiler. (Ken Takata, 2013 Dec 14)
+
 Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15)
 
 Update for Clojure ftplugin. (Sung Pae).  Await discussion about formatting in
@@ -67,6 +75,9 @@
 
 Include systemverilog file?  Two votes yes.
 
+Patch to make "J" set '[ and '] marks. (Christian Brabandt, 2013 Dec 11)
+Any compatibility problems?
+
 Patch to add :S modifier for excaping the current file name.
 (ZyX, 2013 Nov 30)  Update Dec 5.
 
@@ -78,6 +89,8 @@
 
 Adding "~" to 'cdpath' doesn't work for completion?  (Davido, 2013 Aug 19)
 
+Add digraph for Rouble: =P.  What's the Unicode?
+
 Issue 174: Detect Mason files.
 
 Patch to make has() check for Vim version and patch at the same time.
@@ -92,6 +105,10 @@
 
 Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29).
 
+Patch to make test 100 work on MS-Windows. (Taro Muraoka, 2013 Dec 12)
+
+Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14)
+
 Perl: support for Activestate perl 5.18: Issue 170.
 
 Several syntax file match "^\s*" which may get underlined if that's in the
@@ -108,6 +125,8 @@
 
 Patch to right-align signs. (James Kolb (email james), 2013 Sep 23)
 
+Patch to handle integer overflow. (Aaron Burrow, 2013 Dec 12)
+
 With "$" in 'cpoptions' the popup menu isn't fully drawn. (Matti Niemenmaa,
 2013 Sep 5)
 
@@ -140,6 +159,12 @@
 
 Checking runtime scripts: Thilo Six, 2012 Jun 6.
 
+When evaluating expression in backticks, autoload doesn't work.
+(Andy Wokula, 2013 Dec 14)
+
+Using <nr>ifoobar<esc> can slow down Vim.  Patch by Christian Brabandt, 2013
+Dec 13.
+
 Fold can't be opened after ":move". (Ein Brown)
 Patch from Christian Brabandt doesn't fix it completely.
 
@@ -679,7 +704,7 @@
 the system encoding (usually utf-8).
 
 Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
-26)
+26, update 2013 Dec 14)
 
 Problem producing tags file when hebrew.frx is present.  It has a BOM.
 Results in E670. (Tony Mechelynck, 2010 May 2)
diff --git a/runtime/ftplugin/changelog.vim b/runtime/ftplugin/changelog.vim
index ee83c79..6bd7ee1 100644
--- a/runtime/ftplugin/changelog.vim
+++ b/runtime/ftplugin/changelog.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         generic Changelog file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2012-08-23
+" Latest Revision:  2013-12-15
 " Variables:
 "   g:changelog_timeformat (deprecated: use g:changelog_dateformat instead) -
 "       description: the timeformat used in ChangeLog entries.
@@ -122,12 +122,12 @@
 
   " Format used for new date entries.
   if !exists('g:changelog_new_date_format')
-    let g:changelog_new_date_format = "%d  %u\n\n\t* %c\n\n"
+    let g:changelog_new_date_format = "%d  %u\n\n\t* %p%c\n\n"
   endif
 
   " Format used for new entries to current date entry.
   if !exists('g:changelog_new_entry_format')
-    let g:changelog_new_entry_format = "\t* %c"
+    let g:changelog_new_entry_format = "\t* %p%c"
   endif
 
   " Regular expression used to find a given date entry.
@@ -143,9 +143,9 @@
 
   " Substitutes specific items in new date-entry formats and search strings.
   " Can be done with substitute of course, but unclean, and need \@! then.
-  function! s:substitute_items(str, date, user)
+  function! s:substitute_items(str, date, user, prefix)
     let str = a:str
-    let middles = {'%': '%', 'd': a:date, 'u': a:user, 'c': '{cursor}'}
+    let middles = {'%': '%', 'd': a:date, 'u': a:user, 'p': a:prefix, 'c': '{cursor}'}
     let i = stridx(str, '%')
     while i != -1
       let inc = 0
@@ -171,7 +171,7 @@
   endfunction
 
   " Internal function to create a new entry in the ChangeLog.
-  function! s:new_changelog_entry()
+  function! s:new_changelog_entry(prefix)
     " Deal with 'paste' option.
     let save_paste = &paste
     let &paste = 1
@@ -179,7 +179,7 @@
     " Look for an entry for today by our user.
     let date = strftime(g:changelog_dateformat)
     let search = s:substitute_items(g:changelog_date_entry_search, date,
-                                  \ s:username())
+                                  \ s:username(), a:prefix)
     if search(search) > 0
       " Ok, now we look for the end of the date entry, and add an entry.
       call cursor(nextnonblank(line('.') + 1), 1)
@@ -188,7 +188,7 @@
       else
         let p = line('.')
       endif
-      let ls = split(s:substitute_items(g:changelog_new_entry_format, '', ''),
+      let ls = split(s:substitute_items(g:changelog_new_entry_format, '', '', a:prefix),
                    \ '\n')
       call append(p, ls)
       call cursor(p + 1, 1)
@@ -198,7 +198,7 @@
 
       " No entry today, so create a date-user header and insert an entry.
       let todays_entry = s:substitute_items(g:changelog_new_date_format,
-                                          \ date, s:username())
+                                          \ date, s:username(), a:prefix)
       " Make sure we have a cursor positioning.
       if stridx(todays_entry, '{cursor}') == -1
         let todays_entry = todays_entry . '{cursor}'
@@ -206,7 +206,7 @@
 
       " Now do the work.
       call append(0, split(todays_entry, '\n'))
-      
+
       " Remove empty lines at end of file.
       if remove_empty
         $-/^\s*$/-1,$delete
@@ -223,8 +223,8 @@
   endfunction
 
   if exists(":NewChangelogEntry") != 2
-    noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry()<CR>
-    command! -nargs=0 NewChangelogEntry call s:new_changelog_entry()
+    noremap <buffer> <silent> <Leader>o <Esc>:call <SID>new_changelog_entry('')<CR>
+    command! -nargs=0 NewChangelogEntry call s:new_changelog_entry('')
   endif
 
   let b:undo_ftplugin = "setl com< fo< et< ai<"
@@ -277,10 +277,7 @@
     if exists('b:changelog_entry_prefix')
       let prefix = call(b:changelog_entry_prefix, [])
     else
-      let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "") . ':'
-    endif
-    if !empty(prefix)
-      let prefix = ' ' . prefix
+      let prefix = substitute(strpart(expand('%:p'), strlen(path)), '^/\+', "", "")
     endif
 
     let buf = bufnr(changelog)
