diff --git a/7.4.630 b/7.4.630
new file mode 100644
index 0000000..c55c7c3
--- /dev/null
+++ b/7.4.630
@@ -0,0 +1,86 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.630
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.630
+Problem:    When using Insert mode completion combined with autocommands the
+	    redo command may not work.
+Solution:   Do not save the redo buffer when executing autocommands. (Yasuhiro
+	    Matsumoto)
+Files:	    src/fileio.c
+
+
+*** ../vim-7.4.629/src/fileio.c	2015-01-07 14:43:35.728900384 +0100
+--- src/fileio.c	2015-02-17 10:49:42.478013159 +0100
+***************
+*** 9230,9235 ****
+--- 9230,9236 ----
+  #ifdef FEAT_PROFILE
+      proftime_T	wait_time;
+  #endif
++     int		did_save_redobuff = FALSE;
+  
+      /*
+       * Quickly return if there are no autocommands for this event or
+***************
+*** 9430,9436 ****
+      if (!autocmd_busy)
+      {
+  	save_search_patterns();
+! 	saveRedobuff();
+  	did_filetype = keep_filetype;
+      }
+  
+--- 9431,9441 ----
+      if (!autocmd_busy)
+      {
+  	save_search_patterns();
+! 	if (!ins_compl_active())
+! 	{
+! 	    saveRedobuff();
+! 	    did_save_redobuff = TRUE;
+! 	}
+  	did_filetype = keep_filetype;
+      }
+  
+***************
+*** 9530,9536 ****
+      if (!autocmd_busy)
+      {
+  	restore_search_patterns();
+! 	restoreRedobuff();
+  	did_filetype = FALSE;
+  	while (au_pending_free_buf != NULL)
+  	{
+--- 9535,9542 ----
+      if (!autocmd_busy)
+      {
+  	restore_search_patterns();
+! 	if (did_save_redobuff)
+! 	    restoreRedobuff();
+  	did_filetype = FALSE;
+  	while (au_pending_free_buf != NULL)
+  	{
+*** ../vim-7.4.629/src/version.c	2015-02-10 20:03:39.389939274 +0100
+--- src/version.c	2015-02-17 10:53:04.719391852 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     630,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+237. You tattoo your email address on your forehead.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.631 b/7.4.631
new file mode 100644
index 0000000..a58b68a
--- /dev/null
+++ b/7.4.631
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.631
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.631
+Problem:    The default conceal character is documented to be a space but it's
+	    initially a dash. (Christian Brabandt)
+Solution:   Make the intial value a space.
+Files:	    src/globals.h
+
+
+*** ../vim-7.4.630/src/globals.h	2015-01-27 18:43:42.134535513 +0100
+--- src/globals.h	2015-02-17 11:05:40.401595004 +0100
+***************
+*** 1167,1173 ****
+  EXTERN int	lcs_tab2 INIT(= NUL);
+  EXTERN int	lcs_trail INIT(= NUL);
+  #ifdef FEAT_CONCEAL
+! EXTERN int	lcs_conceal INIT(= '-');
+  #endif
+  
+  #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT) \
+--- 1167,1173 ----
+  EXTERN int	lcs_tab2 INIT(= NUL);
+  EXTERN int	lcs_trail INIT(= NUL);
+  #ifdef FEAT_CONCEAL
+! EXTERN int	lcs_conceal INIT(= ' ');
+  #endif
+  
+  #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT) \
+*** ../vim-7.4.630/src/version.c	2015-02-17 10:58:20.479298803 +0100
+--- src/version.c	2015-02-17 11:06:34.612890235 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     631,
+  /**/
+
+-- 
+You can tune a file system, but you can't tuna fish
+							-- man tunefs
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.632 b/7.4.632
new file mode 100644
index 0000000..f91e325
--- /dev/null
+++ b/7.4.632
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.632
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.632 (after 7.4.592)
+Problem:    7.4.592 breaks the netrw plugin, because the autocommands are
+	    skipped.
+Solution:   Roll back the change.
+Files:	    src/ex_cmds.c
+
+
+*** ../vim-7.4.631/src/ex_cmds.c	2015-01-27 13:33:18.737649629 +0100
+--- src/ex_cmds.c	2015-02-17 12:08:56.732209558 +0100
+***************
+*** 3530,3543 ****
+  		check_fname() == FAIL)
+  	    goto theend;
+  
+- #ifdef FEAT_QUICKFIX
+- 	/* ":e foobar" when already editing "foobar" will reload the file.
+- 	 * But when 'buftype' is "nofile" there is no file to load, so don't
+- 	 * do anything. */
+- 	if (curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f')
+- 	    goto theend;
+- #endif
+- 
+  	oldbuf = (flags & ECMD_OLDBUF);
+      }
+  
+--- 3530,3535 ----
+*** ../vim-7.4.631/src/version.c	2015-02-17 11:11:42.244891247 +0100
+--- src/version.c	2015-02-17 12:09:58.079410571 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     632,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+240. You think Webster's Dictionary is a directory of WEB sites.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.633 b/7.4.633
new file mode 100644
index 0000000..27838b7
--- /dev/null
+++ b/7.4.633
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.633
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.633
+Problem:    After 7.4.630 the problem persists.
+Solution:   Also skip redo when calling a user function.
+Files:	    src/eval.c
+
+
+*** ../vim-7.4.632/src/eval.c	2015-02-04 23:06:39.453536117 +0100
+--- src/eval.c	2015-02-17 12:37:35.321823749 +0100
+***************
+*** 8693,8705 ****
+  		    error = ERROR_DICT;
+  		else
+  		{
+  		    /*
+  		     * Call the user function.
+  		     * Save and restore search patterns, script variables and
+  		     * redo buffer.
+  		     */
+  		    save_search_patterns();
+! 		    saveRedobuff();
+  		    ++fp->uf_calls;
+  		    call_user_func(fp, argcount, argvars, rettv,
+  					       firstline, lastline,
+--- 8693,8711 ----
+  		    error = ERROR_DICT;
+  		else
+  		{
++ 		    int did_save_redo = FALSE;
++ 
+  		    /*
+  		     * Call the user function.
+  		     * Save and restore search patterns, script variables and
+  		     * redo buffer.
+  		     */
+  		    save_search_patterns();
+! 		    if (!ins_compl_active())
+! 		    {
+! 			saveRedobuff();
+! 			did_save_redo = TRUE;
+! 		    }
+  		    ++fp->uf_calls;
+  		    call_user_func(fp, argcount, argvars, rettv,
+  					       firstline, lastline,
+***************
+*** 8709,8715 ****
+  			/* Function was unreferenced while being used, free it
+  			 * now. */
+  			func_free(fp);
+! 		    restoreRedobuff();
+  		    restore_search_patterns();
+  		    error = ERROR_NONE;
+  		}
+--- 8715,8722 ----
+  			/* Function was unreferenced while being used, free it
+  			 * now. */
+  			func_free(fp);
+! 		    if (did_save_redo)
+! 			restoreRedobuff();
+  		    restore_search_patterns();
+  		    error = ERROR_NONE;
+  		}
+*** ../vim-7.4.632/src/version.c	2015-02-17 12:17:10.837775002 +0100
+--- src/version.c	2015-02-17 12:38:41.920954954 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     633,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+242. You turn down a better-paying job because it doesn't come with
+     a free e-mail account.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.634 b/7.4.634
new file mode 100644
index 0000000..d7ee581
--- /dev/null
+++ b/7.4.634
@@ -0,0 +1,183 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.634
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.634
+Problem:    Marks are not restored after redo + undo.
+Solution:   Fix the way marks are restored. (Olaf Dabrunz)
+Files:	    src/undo.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+	    src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+	    src/testdir/Make_vms.mms, src/testdir/Makefile,
+	    src/testdir/test_marks.in, src/testdir/test_marks.ok
+
+
+*** ../vim-7.4.633/src/undo.c	2014-09-11 22:49:42.208961131 +0200
+--- src/undo.c	2015-02-17 13:35:48.520297460 +0100
+***************
+*** 2847,2857 ****
+       * restore marks from before undo/redo
+       */
+      for (i = 0; i < NMARKS; ++i)
+  	if (curhead->uh_namedm[i].lnum != 0)
+- 	{
+  	    curbuf->b_namedm[i] = curhead->uh_namedm[i];
+  	    curhead->uh_namedm[i] = namedm[i];
+! 	}
+      if (curhead->uh_visual.vi_start.lnum != 0)
+      {
+  	curbuf->b_visual = curhead->uh_visual;
+--- 2847,2860 ----
+       * restore marks from before undo/redo
+       */
+      for (i = 0; i < NMARKS; ++i)
++     {
+  	if (curhead->uh_namedm[i].lnum != 0)
+  	    curbuf->b_namedm[i] = curhead->uh_namedm[i];
++ 	if (namedm[i].lnum != 0)
+  	    curhead->uh_namedm[i] = namedm[i];
+! 	else
+! 	    curhead->uh_namedm[i].lnum = 0;
+!     }
+      if (curhead->uh_visual.vi_start.lnum != 0)
+      {
+  	curbuf->b_visual = curhead->uh_visual;
+*** ../vim-7.4.633/src/testdir/Make_amiga.mak	2015-01-20 19:30:46.665275623 +0100
+--- src/testdir/Make_amiga.mak	2015-02-17 13:31:58.339295211 +0100
+***************
+*** 48,53 ****
+--- 48,54 ----
+  		test_listlbr.out \
+  		test_listlbr_utf8.out \
+  		test_mapping.out \
++ 		test_marks.out \
+  		test_nested_function.out \
+  		test_options.out \
+  		test_qf_title.out \
+***************
+*** 188,193 ****
+--- 189,195 ----
+  test_listlbr.out: test_listlbr.in
+  test_listlbr_utf8.out: test_listlbr_utf8.in
+  test_mapping.out: test_mapping.in
++ test_marks.out: test_marks.in
+  test_nested_function.out: test_nested_function.in
+  test_options.out: test_options.in
+  test_qf_title.out: test_qf_title.in
+*** ../vim-7.4.633/src/testdir/Make_dos.mak	2015-01-20 19:30:46.665275623 +0100
+--- src/testdir/Make_dos.mak	2015-02-17 13:31:58.339295211 +0100
+***************
+*** 47,52 ****
+--- 47,53 ----
+  		test_listlbr.out \
+  		test_listlbr_utf8.out \
+  		test_mapping.out \
++ 		test_marks.out \
+  		test_nested_function.out \
+  		test_options.out \
+  		test_qf_title.out \
+*** ../vim-7.4.633/src/testdir/Make_ming.mak	2015-01-20 19:30:46.665275623 +0100
+--- src/testdir/Make_ming.mak	2015-02-17 13:31:58.343295152 +0100
+***************
+*** 69,74 ****
+--- 69,75 ----
+  		test_listlbr.out \
+  		test_listlbr_utf8.out \
+  		test_mapping.out \
++ 		test_marks.out \
+  		test_nested_function.out \
+  		test_options.out \
+  		test_qf_title.out \
+*** ../vim-7.4.633/src/testdir/Make_os2.mak	2015-01-20 19:30:46.665275623 +0100
+--- src/testdir/Make_os2.mak	2015-02-17 13:31:58.343295152 +0100
+***************
+*** 49,54 ****
+--- 49,55 ----
+  		test_listlbr.out \
+  		test_listlbr_utf8.out \
+  		test_mapping.out \
++ 		test_marks.out \
+  		test_nested_function.out \
+  		test_options.out \
+  		test_qf_title.out \
+*** ../vim-7.4.633/src/testdir/Make_vms.mms	2015-01-20 19:30:46.669275579 +0100
+--- src/testdir/Make_vms.mms	2015-02-17 13:31:58.343295152 +0100
+***************
+*** 108,113 ****
+--- 108,114 ----
+  	 test_listlbr.out \
+  	 test_listlbr_utf8.out \
+  	 test_mapping.out \
++ 	 test_marks.out \
+  	 test_nested_function.out \
+  	 test_options.out \
+  	 test_qf_title.out \
+*** ../vim-7.4.633/src/testdir/Makefile	2015-01-20 19:30:46.669275579 +0100
+--- src/testdir/Makefile	2015-02-17 13:31:58.343295152 +0100
+***************
+*** 45,50 ****
+--- 45,51 ----
+  		test_listlbr.out \
+  		test_listlbr_utf8.out \
+  		test_mapping.out \
++ 		test_marks.out \
+  		test_nested_function.out \
+  		test_options.out \
+  		test_qf_title.out \
+*** ../vim-7.4.633/src/testdir/test_marks.in	2015-02-17 13:42:37.010978266 +0100
+--- src/testdir/test_marks.in	2015-02-17 13:31:58.343295152 +0100
+***************
+*** 0 ****
+--- 1,18 ----
++ Tests for marks.
++ 
++ STARTTEST
++ :so small.vim
++ :" test that a deleted mark is restored after delete-undo-redo-undo
++ :/^\t/+1
++ :set nocp viminfo+=nviminfo
++ madduu
++ :let a = string(getpos("'a"))
++ :$put ='Mark after delete-undo-redo-undo: '.a
++ :/^\t/,$wq! test.out
++ ENDTEST
++ 
++ 	textline A
++ 	textline B
++ 	textline C
++ 
++ Results:
+*** ../vim-7.4.633/src/testdir/test_marks.ok	2015-02-17 13:42:37.014978213 +0100
+--- src/testdir/test_marks.ok	2015-02-17 13:31:58.343295152 +0100
+***************
+*** 0 ****
+--- 1,6 ----
++ 	textline A
++ 	textline B
++ 	textline C
++ 
++ Results:
++ Mark after delete-undo-redo-undo: [0, 15, 2, 0]
+*** ../vim-7.4.633/src/version.c	2015-02-17 12:44:04.376749160 +0100
+--- src/version.c	2015-02-17 13:33:46.137891541 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     634,
+  /**/
+
+-- 
+"Women marry men hoping they will change. Men marry women hoping
+they will not. So each is inevitably disappointed."
+ - Einstein
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.635 b/7.4.635
new file mode 100644
index 0000000..c4196c3
--- /dev/null
+++ b/7.4.635
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.635
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.635
+Problem:    If no NL or CR is found in the first block of a file then the
+	    'fileformat' may be set to "mac". (Issue 77)
+Solution:   Check if a CR was found. (eswald)
+Files:	    src/fileio.c
+
+
+*** ../vim-7.4.634/src/fileio.c	2015-02-17 10:58:20.479298803 +0100
+--- src/fileio.c	2015-02-17 14:06:53.660019143 +0100
+***************
+*** 2101,2106 ****
+--- 2101,2110 ----
+  		{
+  		    for (p = ptr; p < ptr + size; ++p)
+  		    {
++ 			/* Reset the carriage return counter. */
++ 			if (try_mac)
++ 			    try_mac = 1;
++ 
+  			if (*p == NL)
+  			{
+  			    if (!try_unix
+***************
+*** 2110,2115 ****
+--- 2114,2121 ----
+  				fileformat = EOL_UNIX;
+  			    break;
+  			}
++ 			else if (*p == CAR && try_mac)
++ 			    try_mac++;
+  		    }
+  
+  		    /* Don't give in to EOL_UNIX if EOL_MAC is more likely */
+***************
+*** 2133,2138 ****
+--- 2139,2148 ----
+  				fileformat = EOL_MAC;
+  			}
+  		    }
++ 		    else if (fileformat == EOL_UNKNOWN && try_mac == 1)
++ 			/* Looking for CR but found no end-of-line markers at
++ 			 * all: use the default format. */
++ 			fileformat = default_fileformat();
+  		}
+  
+  		/* No NL found: may use Mac format */
+*** ../vim-7.4.634/src/version.c	2015-02-17 13:43:35.562216149 +0100
+--- src/version.c	2015-02-17 14:00:48.312772284 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     635,
+  /**/
+
+-- 
+"Marriage is a wonderful institution...
+but who wants to live in an institution?"
+ - Groucho Marx
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.636 b/7.4.636
new file mode 100644
index 0000000..b592648
--- /dev/null
+++ b/7.4.636
@@ -0,0 +1,166 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.636
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.636
+Problem:    A search with end offset gets stuck at end of file. (Gary Johnson)
+Solution:   When a search doesn't move the cursor repeat it with a higher
+	    count. (Christian Brabandt)
+Files:	    src/normal.c, src/testdir/test44.in, src/testdir/test44.ok
+
+
+*** ../vim-7.4.635/src/normal.c	2015-01-27 20:59:26.496971751 +0100
+--- src/normal.c	2015-02-17 15:43:29.216732977 +0100
+***************
+*** 100,106 ****
+  static void	nv_dollar __ARGS((cmdarg_T *cap));
+  static void	nv_search __ARGS((cmdarg_T *cap));
+  static void	nv_next __ARGS((cmdarg_T *cap));
+! static void	normal_search __ARGS((cmdarg_T *cap, int dir, char_u *pat, int opt));
+  static void	nv_csearch __ARGS((cmdarg_T *cap));
+  static void	nv_brackets __ARGS((cmdarg_T *cap));
+  static void	nv_percent __ARGS((cmdarg_T *cap));
+--- 100,106 ----
+  static void	nv_dollar __ARGS((cmdarg_T *cap));
+  static void	nv_search __ARGS((cmdarg_T *cap));
+  static void	nv_next __ARGS((cmdarg_T *cap));
+! static int	normal_search __ARGS((cmdarg_T *cap, int dir, char_u *pat, int opt));
+  static void	nv_csearch __ARGS((cmdarg_T *cap));
+  static void	nv_brackets __ARGS((cmdarg_T *cap));
+  static void	nv_percent __ARGS((cmdarg_T *cap));
+***************
+*** 5765,5771 ****
+  	init_history();
+  	add_to_history(HIST_SEARCH, buf, TRUE, NUL);
+  #endif
+! 	normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0);
+      }
+      else
+  	do_cmdline_cmd(buf);
+--- 5765,5771 ----
+  	init_history();
+  	add_to_history(HIST_SEARCH, buf, TRUE, NUL);
+  #endif
+! 	(void)normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0);
+      }
+      else
+  	do_cmdline_cmd(buf);
+***************
+*** 6301,6307 ****
+  	return;
+      }
+  
+!     normal_search(cap, cap->cmdchar, cap->searchbuf,
+  						(cap->arg ? 0 : SEARCH_MARK));
+  }
+  
+--- 6301,6307 ----
+  	return;
+      }
+  
+!     (void)normal_search(cap, cap->cmdchar, cap->searchbuf,
+  						(cap->arg ? 0 : SEARCH_MARK));
+  }
+  
+***************
+*** 6313,6326 ****
+  nv_next(cap)
+      cmdarg_T	*cap;
+  {
+!     normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg);
+  }
+  
+  /*
+   * Search for "pat" in direction "dir" ('/' or '?', 0 for repeat).
+   * Uses only cap->count1 and cap->oap from "cap".
+   */
+!     static void
+  normal_search(cap, dir, pat, opt)
+      cmdarg_T	*cap;
+      int		dir;
+--- 6313,6338 ----
+  nv_next(cap)
+      cmdarg_T	*cap;
+  {
+!     pos_T old = curwin->w_cursor;
+!     int   i = normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg);
+! 
+!     if (i == 1 && equalpos(old, curwin->w_cursor))
+!     {
+! 	/* Avoid getting stuck on the current cursor position, which can
+! 	 * happen when an offset is given and the cursor is on the last char
+! 	 * in the buffer: Repeat with count + 1. */
+! 	cap->count1 += 1;
+! 	(void)normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg);
+! 	cap->count1 -= 1;
+!     }
+  }
+  
+  /*
+   * Search for "pat" in direction "dir" ('/' or '?', 0 for repeat).
+   * Uses only cap->count1 and cap->oap from "cap".
++  * Return 0 for failure, 1 for found, 2 for found and line offset added.
+   */
+!     static int
+  normal_search(cap, dir, pat, opt)
+      cmdarg_T	*cap;
+      int		dir;
+***************
+*** 6354,6359 ****
+--- 6366,6372 ----
+      /* "/$" will put the cursor after the end of the line, may need to
+       * correct that here */
+      check_cursor();
++     return i;
+  }
+  
+  /*
+*** ../vim-7.4.635/src/testdir/test44.in	2013-09-19 17:00:14.000000000 +0200
+--- src/testdir/test44.in	2015-02-17 15:39:42.387675976 +0100
+***************
+*** 42,47 ****
+--- 42,53 ----
+  :put =matchstr(\"אבגד\", \"..\", 0, 2) " בג
+  :put =matchstr(\"אבגד\", \".\", 0, 0) " א
+  :put =matchstr(\"אבגד\", \".\", 4, -1) " ג
++ :new
++ :$put =['dog(a', 'cat(']
++ /(/e+
++ "ayn:bd!
++ :$put =''
++ G"ap
+  :w!
+  :qa!
+  ENDTEST
+*** ../vim-7.4.635/src/testdir/test44.ok	2013-05-26 14:16:28.000000000 +0200
+--- src/testdir/test44.ok	2015-02-17 15:31:20.586185997 +0100
+***************
+*** 22,24 ****
+--- 22,26 ----
+  בג
+  א
+  ג
++ a
++ cat(
+*** ../vim-7.4.635/src/version.c	2015-02-17 14:15:13.005523167 +0100
+--- src/version.c	2015-02-17 15:32:53.024986843 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     636,
+  /**/
+
+-- 
+Marriage isn't a word.  It's a sentence.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.637 b/7.4.637
new file mode 100644
index 0000000..a575c54
--- /dev/null
+++ b/7.4.637
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.637
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.637
+Problem:    Incorrectly read the number of buffer for which an autocommand
+            should be registered. 
+Solution:   Reverse check for "<buffer=abuf>". (Lech Lorens)
+Files:      src/fileio.c
+
+
+*** ../vim-7.4.636/src/fileio.c	2015-02-17 14:15:13.005523167 +0100
+--- src/fileio.c	2015-02-17 16:00:42.039330110 +0100
+***************
+*** 8527,8547 ****
+  	is_buflocal = FALSE;
+  	buflocal_nr = 0;
+  
+! 	if (patlen >= 7 && STRNCMP(pat, "<buffer", 7) == 0
+  						    && pat[patlen - 1] == '>')
+  	{
+! 	    /* Error will be printed only for addition. printing and removing
+! 	     * will proceed silently. */
+  	    is_buflocal = TRUE;
+  	    if (patlen == 8)
+  		buflocal_nr = curbuf->b_fnum;
+  	    else if (patlen > 9 && pat[7] == '=')
+  	    {
+! 		/* <buffer=abuf> */
+! 		if (patlen == 13 && STRNICMP(pat, "<buffer=abuf>", 13))
+  		    buflocal_nr = autocmd_bufnr;
+- 		/* <buffer=123> */
+  		else if (skipdigits(pat + 8) == pat + patlen - 1)
+  		    buflocal_nr = atoi((char *)pat + 8);
+  	    }
+  	}
+--- 8527,8548 ----
+  	is_buflocal = FALSE;
+  	buflocal_nr = 0;
+  
+! 	if (patlen >= 8 && STRNCMP(pat, "<buffer", 7) == 0
+  						    && pat[patlen - 1] == '>')
+  	{
+! 	    /* "<buffer...>": Error will be printed only for addition.
+! 	     * printing and removing will proceed silently. */
+  	    is_buflocal = TRUE;
+  	    if (patlen == 8)
++ 		/* "<buffer>" */
+  		buflocal_nr = curbuf->b_fnum;
+  	    else if (patlen > 9 && pat[7] == '=')
+  	    {
+! 		if (patlen == 13 && STRNICMP(pat, "<buffer=abuf>", 13) == 0)
+! 		    /* "<buffer=abuf>" */
+  		    buflocal_nr = autocmd_bufnr;
+  		else if (skipdigits(pat + 8) == pat + patlen - 1)
++ 		    /* "<buffer=123>" */
+  		    buflocal_nr = atoi((char *)pat + 8);
+  	    }
+  	}
+*** ../vim-7.4.636/src/version.c	2015-02-17 15:43:52.804426855 +0100
+--- src/version.c	2015-02-17 15:57:50.245559689 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     637,
+  /**/
+
+-- 
+"Marriage is when a man and woman become as one; the trouble starts
+when they try to decide which one"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.638 b/7.4.638
new file mode 100644
index 0000000..7946c82
--- /dev/null
+++ b/7.4.638
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.638
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.638
+Problem:    Can't build with Lua 5.3 on Windows.
+Solution:   use luaL_optinteger() instead of LuaL_optlong(). (Ken Takata)
+Files:	    src/if_lua.c
+
+
+*** ../vim-7.4.637/src/if_lua.c	2015-02-04 23:07:55.928517161 +0100
+--- src/if_lua.c	2015-02-17 16:26:47.003111497 +0100
+***************
+*** 774,780 ****
+  {
+      luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
+      list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
+!     long pos = luaL_optlong(L, 3, 0);
+      listitem_T *li = NULL;
+      typval_T v;
+      if (l->lv_lock)
+--- 774,780 ----
+  {
+      luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
+      list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
+!     long pos = (long) luaL_optinteger(L, 3, 0);
+      listitem_T *li = NULL;
+      typval_T v;
+      if (l->lv_lock)
+*** ../vim-7.4.637/src/version.c	2015-02-17 16:04:50.816104407 +0100
+--- src/version.c	2015-02-17 16:24:51.048605970 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     638,
+  /**/
+
+-- 
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.639 b/7.4.639
new file mode 100644
index 0000000..dcbf4f8
--- /dev/null
+++ b/7.4.639
@@ -0,0 +1,208 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.639
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.639
+Problem:    Combination of linebreak and conceal doesn't work well.
+Solution:   Fix the display problems. (Christian Brabandt)
+Files:	    src/screen.c, src/testdir/test88.in, src/testdir/test88.ok,
+	    src/testdir/test_listlbr_utf8.in, src/testdir/test_listlbr_utf8.ok
+
+
+*** ../vim-7.4.638/src/screen.c	2015-02-10 19:20:33.735792024 +0100
+--- src/screen.c	2015-02-17 17:25:05.241891264 +0100
+***************
+*** 4571,4577 ****
+  			int	saved_nextra = n_extra;
+  
+  #ifdef FEAT_CONCEAL
+! 			if ((is_concealing || boguscols > 0) && vcol_off > 0)
+  			    /* there are characters to conceal */
+  			    tab_len += vcol_off;
+  			/* boguscols before FIX_FOR_BOGUSCOLS macro from above
+--- 4571,4577 ----
+  			int	saved_nextra = n_extra;
+  
+  #ifdef FEAT_CONCEAL
+! 			if (vcol_off > 0)
+  			    /* there are characters to conceal */
+  			    tab_len += vcol_off;
+  			/* boguscols before FIX_FOR_BOGUSCOLS macro from above
+***************
+*** 4609,4633 ****
+  #ifdef FEAT_CONCEAL
+  			/* n_extra will be increased by FIX_FOX_BOGUSCOLS
+  			 * macro below, so need to adjust for that here */
+! 			if ((is_concealing || boguscols > 0) && vcol_off > 0)
+  			    n_extra -= vcol_off;
+  #endif
+  		    }
+  #endif
+  #ifdef FEAT_CONCEAL
+! 		    /* Tab alignment should be identical regardless of
+! 		     * 'conceallevel' value. So tab compensates of all
+! 		     * previous concealed characters, and thus resets vcol_off
+! 		     * and boguscols accumulated so far in the line. Note that
+! 		     * the tab can be longer than 'tabstop' when there
+! 		     * are concealed characters. */
+! 		    FIX_FOR_BOGUSCOLS;
+! 		    /* Make sure, the highlighting for the tab char will be
+! 		     * correctly set further below (effectively reverts the
+! 		     * FIX_FOR_BOGSUCOLS macro */
+! 		    if (old_boguscols > 0 && n_extra > tab_len && wp->w_p_list
+  								  && lcs_tab1)
+! 			tab_len += n_extra - tab_len;
+  #endif
+  #ifdef FEAT_MBYTE
+  		    mb_utf8 = FALSE;	/* don't draw as UTF-8 */
+--- 4609,4638 ----
+  #ifdef FEAT_CONCEAL
+  			/* n_extra will be increased by FIX_FOX_BOGUSCOLS
+  			 * macro below, so need to adjust for that here */
+! 			if (vcol_off > 0)
+  			    n_extra -= vcol_off;
+  #endif
+  		    }
+  #endif
+  #ifdef FEAT_CONCEAL
+! 		    {
+! 			int vc_saved = vcol_off;
+! 
+! 			/* Tab alignment should be identical regardless of
+! 			 * 'conceallevel' value. So tab compensates of all
+! 			 * previous concealed characters, and thus resets
+! 			 * vcol_off and boguscols accumulated so far in the
+! 			 * line. Note that the tab can be longer than
+! 			 * 'tabstop' when there are concealed characters. */
+! 			FIX_FOR_BOGUSCOLS;
+! 
+! 			/* Make sure, the highlighting for the tab char will be
+! 			 * correctly set further below (effectively reverts the
+! 			 * FIX_FOR_BOGSUCOLS macro */
+! 			if (n_extra == tab_len + vc_saved && wp->w_p_list
+  								  && lcs_tab1)
+! 			    tab_len += vc_saved;
+! 		    }
+  #endif
+  #ifdef FEAT_MBYTE
+  		    mb_utf8 = FALSE;	/* don't draw as UTF-8 */
+*** ../vim-7.4.638/src/testdir/test88.in	2013-07-13 12:17:37.000000000 +0200
+--- src/testdir/test88.in	2015-02-17 17:17:40.903640757 +0100
+***************
+*** 71,76 ****
+--- 71,87 ----
+  :set lbr
+  :normal $
+  GGk
++ :set list listchars=tab:>-
++ :normal 0
++ GGk
++ :normal W
++ GGk
++ :normal W
++ GGk
++ :normal W
++ GGk
++ :normal $
++ GGk
+  :" Display result.
+  :call append('$', 'end:')
+  :call append('$', positions)
+*** ../vim-7.4.638/src/testdir/test88.ok	2013-07-13 12:18:55.000000000 +0200
+--- src/testdir/test88.ok	2015-02-17 17:17:40.903640757 +0100
+***************
+*** 22,24 ****
+--- 22,29 ----
+  9:25
+  9:26
+  9:26
++ 9:1
++ 9:9
++ 9:17
++ 9:25
++ 9:26
+*** ../vim-7.4.638/src/testdir/test_listlbr_utf8.in	2015-01-22 22:41:51.864583029 +0100
+--- src/testdir/test_listlbr_utf8.in	2015-02-17 17:17:40.903640757 +0100
+***************
+*** 56,61 ****
+--- 56,96 ----
+  :redraw!
+  :let line=ScreenChar(winwidth(0),7)
+  :call DoRecordScreen()
++ :let g:test ="Test 5: set linebreak list listchars and concealing part2"
++ :let c_defines=['bbeeeeee		;	some text']
++ :call append('$', c_defines)
++ :$
++ :norm! zt
++ :set nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n
++ :syn clear
++ :syn match meaning    /;\s*\zs.*/
++ :syn match hasword    /^\x\{8}/    contains=word
++ :syn match word       /\<\x\{8}\>/ contains=beginword,endword contained
++ :syn match beginword  /\<\x\x/     contained conceal
++ :syn match endword    /\x\{6}\>/   contained
++ :hi meaning   guibg=blue
++ :hi beginword guibg=green
++ :hi endword   guibg=red
++ :redraw!
++ :let line=ScreenChar(winwidth(0),1)
++ :call DoRecordScreen()
++ :let g:test ="Test 6: Screenattributes for comment"
++ :$put =g:test
++ :call append('$', ' /*		 and some more */')
++ :exe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
++ :syntax on
++ :hi SpecialKey term=underline ctermfg=red guifg=red
++ :let attr=[]
++ :nnoremap <expr> GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n"
++ :$
++ :norm! zt0
++ GGlGGlGGlGGlGGlGGlGGlGGlGGlGGl
++ :call append('$', ['ScreenAttributes for test6:'])
++ :if attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5]
++ :   call append('$', "Attribut 0 and 1 and 3 and 5 are different!")
++ :else
++ :   call append('$', "Not all attributes are different")
++ :endif
+  :%w! test.out
+  :qa!
+  ENDTEST
+*** ../vim-7.4.638/src/testdir/test_listlbr_utf8.ok	2015-01-20 19:01:32.380444290 +0100
+--- src/testdir/test_listlbr_utf8.ok	2015-02-17 17:17:40.903640757 +0100
+***************
+*** 36,38 ****
+--- 36,46 ----
+  #define >_FILE>--------->--->---1       
+  #define >_CONSOLE>---------->---2       
+  #define >_FILE_AND_CONSOLE>---------3   
++ bbeeeeee		;	some text
++ 
++ Test 5: set linebreak list listchars and concealing part2
++ eeeeee>--->-;>some text                 
++ Test 6: Screenattributes for comment
++  /*		 and some more */
++ ScreenAttributes for test6:
++ Attribut 0 and 1 and 3 and 5 are different!
+*** ../vim-7.4.638/src/version.c	2015-02-17 16:28:51.369508298 +0100
+--- src/version.c	2015-02-17 17:16:55.980222281 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     639,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+244. You use more than 20 passwords.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/7.4.640 b/7.4.640
new file mode 100644
index 0000000..0a47c7c
--- /dev/null
+++ b/7.4.640
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.640
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.640
+Problem:    After deleting characters in Insert mode such that lines are
+	    joined undo does not work properly. (issue 324)
+Solution:   Use Insstart instead of Insstart_orig. (Christian Brabandt)
+Files:	    src/edit.c
+
+
+*** ../vim-7.4.639/src/edit.c	2015-01-22 22:40:16.341651464 +0100
+--- src/edit.c	2015-02-17 17:44:44.222631598 +0100
+***************
+*** 8842,8848 ****
+       */
+      if (curwin->w_cursor.col == 0)
+      {
+! 	lnum = Insstart_orig.lnum;
+  	if (curwin->w_cursor.lnum == lnum
+  #ifdef FEAT_RIGHTLEFT
+  			|| revins_on
+--- 8842,8848 ----
+       */
+      if (curwin->w_cursor.col == 0)
+      {
+! 	lnum = Insstart.lnum;
+  	if (curwin->w_cursor.lnum == lnum
+  #ifdef FEAT_RIGHTLEFT
+  			|| revins_on
+***************
+*** 8852,8860 ****
+  	    if (u_save((linenr_T)(curwin->w_cursor.lnum - 2),
+  			       (linenr_T)(curwin->w_cursor.lnum + 1)) == FAIL)
+  		return FALSE;
+! 	    --Insstart_orig.lnum;
+! 	    Insstart_orig.col = MAXCOL;
+! 	    Insstart = Insstart_orig;
+  	}
+  	/*
+  	 * In replace mode:
+--- 8852,8859 ----
+  	    if (u_save((linenr_T)(curwin->w_cursor.lnum - 2),
+  			       (linenr_T)(curwin->w_cursor.lnum + 1)) == FAIL)
+  		return FALSE;
+! 	    --Insstart.lnum;
+! 	    Insstart.col = MAXCOL;
+  	}
+  	/*
+  	 * In replace mode:
+*** ../vim-7.4.639/src/version.c	2015-02-17 17:26:04.565123636 +0100
+--- src/version.c	2015-02-17 17:49:06.787232425 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     640,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+245. You use Real Audio to listen to a radio station from a distant
+     city rather than turn on your stereo system.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\  an exciting new programming language -- http://www.Zimbu.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/README.patches b/README.patches
index 7fdbeb8..3870843 100644
--- a/README.patches
+++ b/README.patches
@@ -651,3 +651,14 @@ Individual patches for Vim 7.4:
   6670  7.4.627  the last screen cell is not updated
   1782  7.4.628  compiler warning for variable might be clobbered by longjmp
   2023  7.4.629  Coverity warning for Out-of-bounds read
+  2242  7.4.630  redo is wrong for insert mode completion with autocommands
+  1674  7.4.631  the default conceal character is a dash instead of a space
+  1620  7.4.632  (after 7.4.592) breaks the netrw plugin
+  2528  7.4.633  after 7.4.630 the problem persists
+  5527  7.4.634  marks are not restored after redo + undo
+  2039  7.4.635  fileformat set to "mac" if a file starts with a very long line
+  4780  7.4.636  a search with end offset gets stuck at end of file
+  2612  7.4.637  buffer number for autocommand is wrong
+  1674  7.4.638  can't build with Lua 5.3 on Windows
+  6808  7.4.639  combination of linebreak and conceal doesn't work well
+  2214  7.4.640  after joining lines in Insert mode undo does not work properly
diff --git a/vim.spec b/vim.spec
index a7ad986..ca01e5c 100644
--- a/vim.spec
+++ b/vim.spec
@@ -1,4 +1,4 @@
-%define patchlevel 629
+%define patchlevel 640
 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1}
 %define WITH_SELINUX 1
 %endif
@@ -676,6 +676,17 @@ Patch626: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.626
 Patch627: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.627
 Patch628: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.628
 Patch629: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.629
+Patch630: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.630
+Patch631: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.631
+Patch632: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.632
+Patch633: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.633
+Patch634: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.634
+Patch635: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.635
+Patch636: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.636
+Patch637: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.637
+Patch638: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.638
+Patch639: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.639
+Patch640: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.640
 
 Patch1559: 7.4.559.rhpatched
 Patch3000: vim-7.4-syntax.patch
@@ -1455,6 +1466,17 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
 %patch627 -p0
 %patch628 -p0
 %patch629 -p0
+%patch630 -p0
+%patch631 -p0
+%patch632 -p0
+%patch633 -p0
+%patch634 -p0
+%patch635 -p0
+%patch636 -p0
+%patch637 -p0
+%patch638 -p0
+%patch639 -p0
+%patch640 -p0
 
 # install spell files
 %if %{withvimspell}
@@ -1972,6 +1994,13 @@ rm -rf %{buildroot}
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
+* Tue Feb 25 2015 Karsten Hopp <karsten@redhat.com> 7.4.640-1
+- patchlevel 640
+
+* Sat Feb 21 2015 Till Maas <opensource@till.name> - 2:7.4.629-2
+- Rebuilt for Fedora 23 Change
+  https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
+
 * Wed Feb 11 2015 Karsten Hopp <karsten@redhat.com> 7.4.629-2
 - fix syntax highlighting for some ssh_config sshd_config keywords