diff --git a/7.3.608 b/7.3.608
new file mode 100644
index 0000000..148bc49
--- /dev/null
+++ b/7.3.608
@@ -0,0 +1,119 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.608
+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.608
+Problem:    winrestview() does not always restore the view correctly.
+Solution:   Call win_new_height() and win_new_width(). (Lech Lorens)
+Files:	    src/eval.c, src/proto/window.pro, src/window.c
+
+
+*** ../vim-7.3.607/src/eval.c	2012-07-16 19:27:25.000000000 +0200
+--- src/eval.c	2012-07-19 17:50:16.000000000 +0200
+***************
+*** 18601,18606 ****
+--- 18601,18610 ----
+  	curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+  
+  	check_cursor();
++ 	win_new_height(curwin, curwin->w_height);
++ # ifdef FEAT_VERTSPLIT
++ 	win_new_width(curwin, W_WIDTH(curwin));
++ # endif
+  	changed_window_setting();
+  
+  	if (curwin->w_topline == 0)
+*** ../vim-7.3.607/src/proto/window.pro	2012-06-13 14:28:16.000000000 +0200
+--- src/proto/window.pro	2012-07-19 18:05:10.000000000 +0200
+***************
+*** 51,56 ****
+--- 51,58 ----
+  void win_setminheight __ARGS((void));
+  void win_drag_status_line __ARGS((win_T *dragwin, int offset));
+  void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
++ void win_new_height __ARGS((win_T *wp, int height));
++ void win_new_width __ARGS((win_T *wp, int width));
+  void win_comp_scroll __ARGS((win_T *wp));
+  void command_height __ARGS((void));
+  void last_status __ARGS((int morewin));
+*** ../vim-7.3.607/src/window.c	2012-07-16 17:31:48.000000000 +0200
+--- src/window.c	2012-07-19 18:05:18.000000000 +0200
+***************
+*** 54,60 ****
+  static void frame_insert __ARGS((frame_T *before, frame_T *frp));
+  static void frame_remove __ARGS((frame_T *frp));
+  #ifdef FEAT_VERTSPLIT
+- static void win_new_width __ARGS((win_T *wp, int width));
+  static void win_goto_ver __ARGS((int up, long count));
+  static void win_goto_hor __ARGS((int left, long count));
+  #endif
+--- 54,59 ----
+***************
+*** 71,77 ****
+  
+  static win_T *win_alloc __ARGS((win_T *after, int hidden));
+  static void set_fraction __ARGS((win_T *wp));
+- static void win_new_height __ARGS((win_T *wp, int height));
+  
+  #define URL_SLASH	1		/* path_is_url() has found "://" */
+  #define URL_BACKSLASH	2		/* path_is_url() has found ":\\" */
+--- 70,75 ----
+***************
+*** 5557,5563 ****
+   * This takes care of the things inside the window, not what happens to the
+   * window position, the frame or to other windows.
+   */
+!     static void
+  win_new_height(wp, height)
+      win_T	*wp;
+      int		height;
+--- 5555,5561 ----
+   * This takes care of the things inside the window, not what happens to the
+   * window position, the frame or to other windows.
+   */
+!     void
+  win_new_height(wp, height)
+      win_T	*wp;
+      int		height;
+***************
+*** 5697,5703 ****
+  /*
+   * Set the width of a window.
+   */
+!     static void
+  win_new_width(wp, width)
+      win_T	*wp;
+      int		width;
+--- 5695,5701 ----
+  /*
+   * Set the width of a window.
+   */
+!     void
+  win_new_width(wp, width)
+      win_T	*wp;
+      int		width;
+*** ../vim-7.3.607/src/version.c	2012-07-19 17:39:01.000000000 +0200
+--- src/version.c	2012-07-19 17:53:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     608,
+  /**/
+
+-- 
+Although the scythe isn't pre-eminent among the weapons of war, anyone who
+has been on the wrong end of, say, a peasants' revolt will know that in
+skilled hands it is fearsome.
+					-- (Terry Pratchett, Mort)
+
+ /// 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    ///