diff --git a/7.1.068 b/7.1.068
new file mode 100644
index 0000000..5f0d685
--- /dev/null
+++ b/7.1.068
@@ -0,0 +1,206 @@
+To: vim-dev@vim.org
+Subject: patch 7.1.068
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.068
+Problem:    When 'equalalways' is set and splitting a window, it's possible
+	    that another small window gets bigger.
+Solution:   Only equalize window sizes when after a split the windows are
+	    smaller than another window. (Martin Toft)
+Files:	    runtime/doc/options.txt, runtime/doc/windows.txt, src/window.c
+
+
+*** ../vim-7.1.067/runtime/doc/options.txt	Sat May 12 16:27:04 2007
+--- runtime/doc/options.txt	Sat Aug 11 17:25:38 2007
+***************
+*** 1,4 ****
+! *options.txt*	For Vim version 7.1.  Last change: 2007 May 11
+  
+  
+  		  VIM REFERENCE MANUAL	  by Bram Moolenaar
+--- 1,4 ----
+! *options.txt*	For Vim version 7.1.  Last change: 2007 Aug 10
+  
+  
+  		  VIM REFERENCE MANUAL	  by Bram Moolenaar
+***************
+*** 2415,2422 ****
+  	When mixing vertically and horizontally split windows, a minimal size
+  	is computed and some windows may be larger if there is room.  The
+  	'eadirection' option tells in which direction the size is affected.
+! 	Changing the height of a window can be avoided by setting
+! 	'winfixheight'.
+  
+  						*'equalprg'* *'ep'*
+  'equalprg' 'ep'		string	(default "")
+--- 2418,2425 ----
+  	When mixing vertically and horizontally split windows, a minimal size
+  	is computed and some windows may be larger if there is room.  The
+  	'eadirection' option tells in which direction the size is affected.
+! 	Changing the height and width of a window can be avoided by setting
+! 	'winfixheight' and 'winfixwidth', respectively.
+  
+  						*'equalprg'* *'ep'*
+  'equalprg' 'ep'		string	(default "")
+*** ../vim-7.1.067/runtime/doc/windows.txt	Sat May 12 16:42:48 2007
+--- runtime/doc/windows.txt	Sat Aug 11 17:25:38 2007
+***************
+*** 132,138 ****
+  		the same file.  Make new window N high (default is to use half
+  		the height of the current window).  Reduces the current window
+  		height to create room (and others, if the 'equalalways' option
+! 		is set and 'eadirection' isn't "hor").
+  		Note: CTRL-S does not work on all terminals and might block
+  		further input, use CTRL-Q to get going again.
+  		Also see |++opt| and |+cmd|.
+--- 132,139 ----
+  		the same file.  Make new window N high (default is to use half
+  		the height of the current window).  Reduces the current window
+  		height to create room (and others, if the 'equalalways' option
+! 		is set, 'eadirection' isn't "hor", and one of them is higher
+! 		than the current or the new window).
+  		Note: CTRL-S does not work on all terminals and might block
+  		further input, use CTRL-Q to get going again.
+  		Also see |++opt| and |+cmd|.
+***************
+*** 140,148 ****
+  CTRL-W CTRL-V						*CTRL-W_CTRL-V*
+  CTRL-W v						*CTRL-W_v*
+  :[N]vs[plit] [++opt] [+cmd] [file]			*:vs* *:vsplit*
+! 		Like |:split|, but split vertically.  If 'equalalways' is set
+! 		and 'eadirection' isn't "ver" the windows will be spread out
+! 		horizontally, unless a width was specified.
+  		Note: In other places CTRL-Q does the same as CTRL-V, but here
+  		it doesn't!
+  
+--- 141,153 ----
+  CTRL-W CTRL-V						*CTRL-W_CTRL-V*
+  CTRL-W v						*CTRL-W_v*
+  :[N]vs[plit] [++opt] [+cmd] [file]			*:vs* *:vsplit*
+! 		Like |:split|, but split vertically.  The windows will be
+! 		spread out horizontally if
+! 		1. a width was not specified,
+! 		2. 'equalalways' is set,
+! 		3. 'eadirection' isn't "ver", and
+! 		4. one of the other windows are wider than the current or new
+! 		   window.
+  		Note: In other places CTRL-Q does the same as CTRL-V, but here
+  		it doesn't!
+  
+*** ../vim-7.1.067/src/window.c	Sat Aug 11 13:37:36 2007
+--- src/window.c	Sat Aug 11 17:25:38 2007
+***************
+*** 733,739 ****
+      if (flags & WSP_VERT)
+      {
+  	layout = FR_ROW;
+- 	do_equal = (p_ea && new_size == 0 && *p_ead != 'v');
+  
+  	/*
+  	 * Check if we are able to split the current window and compute its
+--- 733,738 ----
+***************
+*** 770,785 ****
+  	 * instead, if possible. */
+  	if (oldwin->w_p_wfw)
+  	    win_setwidth_win(oldwin->w_width + new_size, oldwin);
+      }
+      else
+  #endif
+      {
+  	layout = FR_COL;
+- 	do_equal = (p_ea && new_size == 0
+- #ifdef FEAT_VERTSPLIT
+- 		&& *p_ead != 'h'
+- #endif
+- 		);
+  
+  	/*
+  	 * Check if we are able to split the current window and compute its
+--- 769,799 ----
+  	 * instead, if possible. */
+  	if (oldwin->w_p_wfw)
+  	    win_setwidth_win(oldwin->w_width + new_size, oldwin);
++ 
++ 	/* Only make all windows the same width if one of them (except oldwin)
++ 	 * is wider than one of the split windows. */
++ 	if (!do_equal && p_ea && size == 0 && *p_ead != 'v'
++ 	   && oldwin->w_frame->fr_parent != NULL)
++ 	{
++ 	    frp = oldwin->w_frame->fr_parent->fr_child;
++ 	    while (frp != NULL)
++ 	    {
++ 		if (frp->fr_win != oldwin && frp->fr_win != NULL
++ 			&& (frp->fr_win->w_width > new_size
++ 			    || frp->fr_win->w_width > oldwin->w_width
++ 						   - new_size - STATUS_HEIGHT))
++ 		{
++ 		    do_equal = TRUE;
++ 		    break;
++ 		}
++ 		frp = frp->fr_next;
++ 	    }
++ 	}
+      }
+      else
+  #endif
+      {
+  	layout = FR_COL;
+  
+  	/*
+  	 * Check if we are able to split the current window and compute its
+***************
+*** 831,836 ****
+--- 845,873 ----
+  	    oldwin_height = oldwin->w_height;
+  	    if (need_status)
+  		oldwin_height -= STATUS_HEIGHT;
++ 	}
++ 
++ 	/* Only make all windows the same height if one of them (except oldwin)
++ 	 * is higher than one of the split windows. */
++ 	if (!do_equal && p_ea && size == 0
++ #ifdef FEAT_VERTSPLIT
++ 		&& *p_ead != 'h'
++ #endif
++ 	   && oldwin->w_frame->fr_parent != NULL)
++ 	{
++ 	    frp = oldwin->w_frame->fr_parent->fr_child;
++ 	    while (frp != NULL)
++ 	    {
++ 		if (frp->fr_win != oldwin && frp->fr_win != NULL
++ 			&& (frp->fr_win->w_height > new_size
++ 			    || frp->fr_win->w_height > oldwin_height - new_size
++ 							      - STATUS_HEIGHT))
++ 		{
++ 		    do_equal = TRUE;
++ 		    break;
++ 		}
++ 		frp = frp->fr_next;
++ 	    }
+  	}
+      }
+  
+*** ../vim-7.1.067/src/version.c	Sun Aug 12 16:38:03 2007
+--- src/version.c	Sun Aug 12 16:51:36 2007
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     68,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+129. You cancel your newspaper subscription.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///