diff --git a/7.4.572 b/7.4.572
new file mode 100644
index 0000000..54423b2
--- /dev/null
+++ b/7.4.572
@@ -0,0 +1,257 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.572
+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.572
+Problem:    Address type of :wincmd depends on the argument.
+Solution:   Check the argument.
+Files:	    src/ex_docmd.c, src/window.c, src/proto/window.pro
+
+
+*** ../vim-7.4.571/src/ex_docmd.c	2015-01-14 11:24:51.851582151 +0100
+--- src/ex_docmd.c	2015-01-14 14:48:24.586468863 +0100
+***************
+*** 2130,2151 ****
+   * is equal to the lower.
+   */
+  
+-     if (ea.cmdidx != CMD_SIZE
+- #ifdef FEAT_USR_CMDS
+- 	&& ea.cmdidx != CMD_USER
+- 	&& ea.cmdidx != CMD_USER_BUF
+- #endif
+-        )
+- 	ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type;
+-     else
+- #ifdef FEAT_USR_CMDS
+- 	if (ea.cmdidx != CMD_USER && ea.cmdidx != CMD_USER_BUF)
+- #endif
+- 	ea.addr_type = ADDR_LINES;
+      /* ea.addr_type for user commands is set by find_ucmd */
+!     ea.cmd = cmd;
+  
+      /* repeat for all ',' or ';' separated addresses */
+      for (;;)
+      {
+  	ea.line1 = ea.line2;
+--- 2130,2152 ----
+   * is equal to the lower.
+   */
+  
+      /* ea.addr_type for user commands is set by find_ucmd */
+!     if (!IS_USER_CMDIDX(ea.cmdidx))
+!     {
+! 	if (ea.cmdidx != CMD_SIZE)
+! 	    ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type;
+! 	else
+! 	    ea.addr_type = ADDR_LINES;
+! 
+! #ifdef FEAT_WINDOWS
+! 	/* :wincmd range depends on the argument. */
+! 	if (ea.cmdidx == CMD_wincmd)
+! 	    get_wincmd_addr_type(p, &ea);
+! #endif
+!     }
+  
+      /* repeat for all ',' or ';' separated addresses */
++     ea.cmd = cmd;
+      for (;;)
+      {
+  	ea.line1 = ea.line2;
+***************
+*** 2181,2187 ****
+  	{
+  	    if (*ea.cmd == '%')		    /* '%' - all lines */
+  	    {
+- 		buf_T	*buf;
+  		++ea.cmd;
+  		switch (ea.addr_type)
+  		{
+--- 2182,2187 ----
+***************
+*** 2190,2204 ****
+  			ea.line2 = curbuf->b_ml.ml_line_count;
+  			break;
+  		    case ADDR_LOADED_BUFFERS:
+! 			buf = firstbuf;
+! 			while (buf->b_next != NULL && buf->b_ml.ml_mfp == NULL)
+! 			    buf = buf->b_next;
+! 			ea.line1 = buf->b_fnum;
+! 			buf = lastbuf;
+! 			while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL)
+! 			    buf = buf->b_prev;
+! 			ea.line2 = buf->b_fnum;
+! 			break;
+  		    case ADDR_BUFFERS:
+  			ea.line1 = firstbuf->b_fnum;
+  			ea.line2 = lastbuf->b_fnum;
+--- 2190,2209 ----
+  			ea.line2 = curbuf->b_ml.ml_line_count;
+  			break;
+  		    case ADDR_LOADED_BUFFERS:
+! 			{
+! 			    buf_T	*buf = firstbuf;
+! 
+! 			    while (buf->b_next != NULL
+! 						  && buf->b_ml.ml_mfp == NULL)
+! 				buf = buf->b_next;
+! 			    ea.line1 = buf->b_fnum;
+! 			    buf = lastbuf;
+! 			    while (buf->b_prev != NULL
+! 						  && buf->b_ml.ml_mfp == NULL)
+! 				buf = buf->b_prev;
+! 			    ea.line2 = buf->b_fnum;
+! 			    break;
+! 			}
+  		    case ADDR_BUFFERS:
+  			ea.line1 = firstbuf->b_fnum;
+  			ea.line2 = lastbuf->b_fnum;
+*** ../vim-7.4.571/src/window.c	2014-12-13 03:58:03.794672546 +0100
+--- src/window.c	2015-01-14 15:17:18.543647480 +0100
+***************
+*** 624,629 ****
+--- 624,733 ----
+      }
+  }
+  
++ /*
++  * Figure out the address type for ":wnncmd".
++  */
++     void
++ get_wincmd_addr_type(arg, eap)
++     char_u	*arg;
++     exarg_T	*eap;
++ {
++     switch (*arg)
++     {
++     case 'S':
++     case Ctrl_S:
++     case 's':
++     case Ctrl_N:
++     case 'n':
++     case 'j':
++     case Ctrl_J:
++     case 'k':
++     case Ctrl_K:
++     case 'T':
++     case Ctrl_R:
++     case 'r':
++     case 'R':
++     case 'K':
++     case 'J':
++     case '+':
++     case '-':
++     case Ctrl__:
++     case '_':
++     case '|':
++     case ']':
++     case Ctrl_RSB:
++     case 'g':
++     case Ctrl_G:
++ #ifdef FEAT_VERTSPLIT
++     case Ctrl_V:
++     case 'v':
++     case 'h':
++     case Ctrl_H:
++     case 'l':
++     case Ctrl_L:
++     case 'H':
++     case 'L':
++     case '>':
++     case '<':
++ #endif
++ #if defined(FEAT_QUICKFIX)
++     case '}':
++ #endif
++ #ifdef FEAT_SEARCHPATH
++     case 'f':
++     case 'F':
++     case Ctrl_F:
++ #endif
++ #ifdef FEAT_FIND_ID
++     case 'i':
++     case Ctrl_I:
++     case 'd':
++     case Ctrl_D:
++ #endif
++ 		/* window size or any count */
++ 		eap->addr_type = ADDR_LINES;
++ 		break;
++ 
++     case Ctrl_HAT:
++     case '^':
++ 		/* buffer number */
++ 		eap->addr_type = ADDR_BUFFERS;
++ 		break;
++ 
++     case Ctrl_Q:
++     case 'q':
++     case Ctrl_C:
++     case 'c':
++     case Ctrl_O:
++     case 'o':
++     case Ctrl_W:
++     case 'w':
++     case 'W':
++     case 'x':
++     case Ctrl_X:
++ 		/* window number */
++ 		eap->addr_type = ADDR_WINDOWS;
++ 		break;
++ 
++ #if defined(FEAT_QUICKFIX)
++     case Ctrl_Z:
++     case 'z':
++     case 'P':
++ #endif
++     case 't':
++     case Ctrl_T:
++     case 'b':
++     case Ctrl_B:
++     case 'p':
++     case Ctrl_P:
++     case '=':
++     case CAR:
++ 		/* no count */
++ 		eap->addr_type = 0;
++ 		break;
++     }
++ }
++ 
+      static void
+  cmd_with_count(cmd, bufp, bufsize, Prenum)
+      char	*cmd;
+*** ../vim-7.4.571/src/proto/window.pro	2014-12-17 14:47:52.870412129 +0100
+--- src/proto/window.pro	2015-01-14 15:16:37.544092744 +0100
+***************
+*** 1,5 ****
+--- 1,6 ----
+  /* window.c */
+  void do_window __ARGS((int nchar, long Prenum, int xchar));
++ void get_wincmd_addr_type __ARGS((char_u *arg, exarg_T *eap));
+  int win_split __ARGS((int size, int flags));
+  int win_split_ins __ARGS((int size, int flags, win_T *new_wp, int dir));
+  int win_valid __ARGS((win_T *win));
+*** ../vim-7.4.571/src/version.c	2015-01-14 14:08:40.364402377 +0100
+--- src/version.c	2015-01-14 15:46:36.136651958 +0100
+***************
+*** 743,744 ****
+--- 743,746 ----
+  {   /* Add new patch number below this line */
++ /**/
++     572,
+  /**/
+
+-- 
+From "know your smileys":
+ :^[/   mean-smiley-with-cigarette
+
+ /// 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    ///