diff --git a/7.3.1246 b/7.3.1246
new file mode 100644
index 0000000..22f426b
--- /dev/null
+++ b/7.3.1246
@@ -0,0 +1,135 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.1246
+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.3.1246
+Problem:    When setting 'winfixheight' and resizing the window causes the
+	    window layout to be wrong.
+Solution:   Add frame_check_height() and frame_check_width() (Yukihiro
+	    Nakadaira)
+Files:	    src/window.c
+
+
+*** ../vim-7.3.1245/src/window.c	2013-06-16 17:32:33.000000000 +0200
+--- src/window.c	2013-06-26 13:51:25.000000000 +0200
+***************
+*** 66,71 ****
+--- 66,76 ----
+  static int check_snapshot_rec __ARGS((frame_T *sn, frame_T *fr));
+  static win_T *restore_snapshot_rec __ARGS((frame_T *sn, frame_T *fr));
+  
++ static int frame_check_height __ARGS((frame_T *topfrp, int height));
++ #ifdef FEAT_VERTSPLIT
++ static int frame_check_width __ARGS((frame_T *topfrp, int width));
++ #endif
++ 
+  #endif /* FEAT_WINDOWS */
+  
+  static win_T *win_alloc __ARGS((win_T *after, int hidden));
+***************
+*** 4749,4755 ****
+      /* First try setting the heights of windows with 'winfixheight'.  If
+       * that doesn't result in the right height, forget about that option. */
+      frame_new_height(topframe, h, FALSE, TRUE);
+!     if (topframe->fr_height != h)
+  	frame_new_height(topframe, h, FALSE, FALSE);
+  
+      (void)win_comp_pos();		/* recompute w_winrow and w_wincol */
+--- 4754,4760 ----
+      /* First try setting the heights of windows with 'winfixheight'.  If
+       * that doesn't result in the right height, forget about that option. */
+      frame_new_height(topframe, h, FALSE, TRUE);
+!     if (!frame_check_height(topframe, h))
+  	frame_new_height(topframe, h, FALSE, FALSE);
+  
+      (void)win_comp_pos();		/* recompute w_winrow and w_wincol */
+***************
+*** 4783,4789 ****
+      /* First try setting the widths of windows with 'winfixwidth'.  If that
+       * doesn't result in the right width, forget about that option. */
+      frame_new_width(topframe, (int)Columns, FALSE, TRUE);
+!     if (topframe->fr_width != Columns)
+  	frame_new_width(topframe, (int)Columns, FALSE, FALSE);
+  
+      (void)win_comp_pos();		/* recompute w_winrow and w_wincol */
+--- 4788,4794 ----
+      /* First try setting the widths of windows with 'winfixwidth'.  If that
+       * doesn't result in the right width, forget about that option. */
+      frame_new_width(topframe, (int)Columns, FALSE, TRUE);
+!     if (!frame_check_width(topframe, Columns))
+  	frame_new_width(topframe, (int)Columns, FALSE, FALSE);
+  
+      (void)win_comp_pos();		/* recompute w_winrow and w_wincol */
+***************
+*** 6922,6924 ****
+--- 6927,6974 ----
+  	return i;
+  }
+  #endif
++ 
++ /*
++  * Return TRUE if "topfrp" and its children are at the right height.
++  */
++     static int
++ frame_check_height(topfrp, height)
++     frame_T *topfrp;
++     int	    height;
++ {
++     frame_T *frp;
++ 
++     if (topfrp->fr_height != height)
++ 	return FALSE;
++ 
++     if (topfrp->fr_layout == FR_ROW)
++ 	for (frp = topfrp->fr_child; frp != NULL; frp = frp->fr_next)
++ 	    if (frp->fr_height != height)
++ 		return FALSE;
++ 
++     return TRUE;
++ }
++ 
++ #ifdef FEAT_VERTSPLIT
++ /*
++  * Return TRUE if "topfrp" and its children are at the right width.
++  */
++     static int
++ frame_check_width(topfrp, width)
++     frame_T *topfrp;
++     int	    width;
++ {
++     frame_T *frp;
++ 
++     if (topfrp->fr_width != width)
++ 	return FALSE;
++ 
++     if (topfrp->fr_layout == FR_COL)
++ 	for (frp = topfrp->fr_child; frp != NULL; frp = frp->fr_next)
++ 	    if (frp->fr_width != width)
++ 		return FALSE;
++ 
++     return TRUE;
++ }
++ #endif
++ 
+*** ../vim-7.3.1245/src/version.c	2013-06-26 13:16:13.000000000 +0200
+--- src/version.c	2013-06-26 13:47:56.000000000 +0200
+***************
+*** 730,731 ****
+--- 730,733 ----
+  {   /* Add new patch number below this line */
++ /**/
++     1246,
+  /**/
+
+-- 
+Back up my hard drive?  I can't find the reverse switch!
+
+ /// 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    ///