diff --git a/7.1.282 b/7.1.282
new file mode 100644
index 0000000..7bb125c
--- /dev/null
+++ b/7.1.282
@@ -0,0 +1,549 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.282 (extra)
+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.282 (extra)
+Problem:    Win64: Edit with Vim context menu isn't installed correctly.
+	    Compiler warnings and a few other things.
+Solution:   Add [ and ] to entry of class name.  Use UINT_PTR instead of UINT.
+	    And a fixes for the other things. (George V.  Reilly)
+Files:	    src/GvimExt/Makefile, src/dosinst.c, src/if_ole.cpp, src/if_ole.h,
+	    src/if_ole.idl, src/INSTALLpc.txt,  src/Make_mvc.mak,
+	    src/os_win32.c,
+
+
+*** ../vim-7.1.281/src/GvimExt/Makefile	Sat May  5 12:51:46 2007
+--- src/GvimExt/Makefile	Tue Jul 10 16:18:18 2007
+***************
+*** 24,30 ****
+  gvimext.obj: gvimext.h
+  
+  .cpp.obj:
+!     $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsdll) $*.cpp
+  
+  gvimext.res: gvimext.rc
+      $(rc) $(rcflags) $(rcvars)  gvimext.rc
+--- 24,30 ----
+  gvimext.obj: gvimext.h
+  
+  .cpp.obj:
+!     $(cc) $(cflags) -DFEAT_GETTEXT $(cvarsmt) $*.cpp
+  
+  gvimext.res: gvimext.rc
+      $(rc) $(rcflags) $(rcvars)  gvimext.rc
+*** ../vim-7.1.281/src/dosinst.c	Thu May 10 20:54:39 2007
+--- src/dosinst.c	Tue Jul 10 16:07:16 2007
+***************
+*** 1365,1371 ****
+  
+  	    printf("Creating \"Edit with Vim\" popup menu entry\n");
+  
+! 	    fprintf(fd, "HKEY_CLASSES_ROOT\\CLSID\\%s\n", vim_ext_clsid);
+  	    fprintf(fd, "@=\"%s\"\n", vim_ext_name);
+  	    fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s\\InProcServer32]\n",
+  							       vim_ext_clsid);
+--- 1365,1371 ----
+  
+  	    printf("Creating \"Edit with Vim\" popup menu entry\n");
+  
+! 	    fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s]\n", vim_ext_clsid);
+  	    fprintf(fd, "@=\"%s\"\n", vim_ext_name);
+  	    fprintf(fd, "[HKEY_CLASSES_ROOT\\CLSID\\%s\\InProcServer32]\n",
+  							       vim_ext_clsid);
+*** ../vim-7.1.281/src/if_ole.cpp	Wed Aug 16 17:34:09 2006
+--- src/if_ole.cpp	Tue Sep 25 16:44:44 2007
+***************
+*** 34,39 ****
+--- 34,45 ----
+  extern HWND vim_parent_hwnd;
+  }
+  
++ #if _MSC_VER < 1300
++ /* Work around old versions of basetsd.h which wrongly declares
++  * UINT_PTR as unsigned long */
++ # define UINT_PTR UINT
++ #endif
++ 
+  #include "if_ole.h"	// Interface definitions
+  #include "iid_ole.c"	// UUID definitions (compile here)
+  
+***************
+*** 107,113 ****
+      STDMETHOD(SendKeys)(BSTR keys);
+      STDMETHOD(Eval)(BSTR expr, BSTR *result);
+      STDMETHOD(SetForeground)(void);
+!     STDMETHOD(GetHwnd)(UINT *result);
+  
+  private:
+      // Constructor is private - create using CVim::Create()
+--- 113,119 ----
+      STDMETHOD(SendKeys)(BSTR keys);
+      STDMETHOD(Eval)(BSTR expr, BSTR *result);
+      STDMETHOD(SetForeground)(void);
+!     STDMETHOD(GetHwnd)(UINT_PTR *result);
+  
+  private:
+      // Constructor is private - create using CVim::Create()
+***************
+*** 288,296 ****
+  }
+  
+  STDMETHODIMP
+! CVim::GetHwnd(UINT *result)
+  {
+!     *result = (UINT) s_hwnd;
+      return S_OK;
+  }
+  
+--- 294,302 ----
+  }
+  
+  STDMETHODIMP
+! CVim::GetHwnd(UINT_PTR *result)
+  {
+!     *result = (UINT_PTR)s_hwnd;
+      return S_OK;
+  }
+  
+*** ../vim-7.1.281/src/if_ole.h	Sun Jun 13 17:46:29 2004
+--- src/if_ole.h	Tue Jul 10 16:21:18 2007
+***************
+*** 79,85 ****
+  	virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0;
+  
+  	virtual HRESULT STDMETHODCALLTYPE GetHwnd(
+! 	    /* [retval][out] */ UINT __RPC_FAR *result) = 0;
+  
+      };
+  
+--- 79,85 ----
+  	virtual HRESULT STDMETHODCALLTYPE SetForeground( void) = 0;
+  
+  	virtual HRESULT STDMETHODCALLTYPE GetHwnd(
+! 	    /* [retval][out] */ UINT_PTR __RPC_FAR *result) = 0;
+  
+      };
+  
+***************
+*** 143,149 ****
+  
+  	HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )(
+  	    IVim __RPC_FAR * This,
+! 	    /* [retval][out] */ UINT __RPC_FAR *result);
+  
+  	END_INTERFACE
+      } IVimVtbl;
+--- 143,149 ----
+  
+  	HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetHwnd )(
+  	    IVim __RPC_FAR * This,
+! 	    /* [retval][out] */ UINT_PTR __RPC_FAR *result);
+  
+  	END_INTERFACE
+      } IVimVtbl;
+***************
+*** 236,242 ****
+  
+  HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy(
+      IVim __RPC_FAR * This,
+!     /* [retval][out] */ UINT __RPC_FAR *result);
+  
+  
+  void __RPC_STUB IVim_GetHwnd_Stub(
+--- 236,242 ----
+  
+  HRESULT STDMETHODCALLTYPE IVim_GetHwnd_Proxy(
+      IVim __RPC_FAR * This,
+!     /* [retval][out] */ UINT_PTR __RPC_FAR *result);
+  
+  
+  void __RPC_STUB IVim_GetHwnd_Stub(
+*** ../vim-7.1.281/src/if_ole.idl	Sun Jun 13 17:22:03 2004
+--- src/if_ole.idl	Tue Jul 10 16:21:45 2007
+***************
+*** 20,26 ****
+  	HRESULT SendKeys([in]BSTR keys);
+  	HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result);
+  	HRESULT SetForeground(void);
+! 	HRESULT GetHwnd([out, retval]UINT* result);
+  };
+  
+  // Component and type library definitions
+--- 20,26 ----
+  	HRESULT SendKeys([in]BSTR keys);
+  	HRESULT Eval([in]BSTR expr, [out, retval]BSTR* result);
+  	HRESULT SetForeground(void);
+! 	HRESULT GetHwnd([out, retval]UINT_PTR* result);
+  };
+  
+  // Component and type library definitions
+*** ../vim-7.1.281/src/INSTALLpc.txt	Sun Apr 30 20:29:26 2006
+--- src/INSTALLpc.txt	Wed Mar 12 15:01:37 2008
+***************
+*** 82,90 ****
+  |ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
+  and |windbg-download|.
+  
+! It's easier to download Visual C++ 2005 Express Edition, |msvc-2005-express|.
+! The advantage of the VC 2003 Toolkit is that it will be freely available
+! long after VC 2005 Express Edition stops being free in November 2006.
+  
+  The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
+      http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
+--- 82,89 ----
+  |ms-platform-sdk|, |dotnet-1.1-redist|, |dotnet-1.1-sdk|,
+  and |windbg-download|.
+  
+! It's easier to download Visual C++ 2008 Express Edition, |msvc-2008-express|,
+! which is freely available in perpetuity.
+  
+  The free Code::Blocks IDE works with the VC2003 Toolkit, as described at
+      http://wiki.codeblocks.org/index.php?title=Integrating_Microsoft_Visual_Toolkit_2003_with_Code::Blocks_IDE
+***************
+*** 152,157 ****
+--- 151,164 ----
+      http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
+  
+  
++ Visual C++ 2008 Express Edition       *msvc-2008-express*
++ -------------------------------
++ 
++ Visual C++ 2008 Express Edition can be downloaded for free from:
++     http://msdn2.microsoft.com/en-us/express/default.aspx
++ This includes the IDE and the debugger. You can build Vim with Make_mvc.mak.
++ 
++ 
+  2. MinGW
+  ========
+  
+*** ../vim-7.1.281/src/Make_mvc.mak	Wed Oct  3 13:28:40 2007
+--- src/Make_mvc.mak	Wed Mar 12 15:09:55 2008
+***************
+*** 1,6 ****
+  # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
+  # and Win64, using the Microsoft Visual C++ compilers. Known to work with
+! # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), and VC8 (VS2005).
+  #
+  # To build using other Windows compilers, see INSTALLpc.txt
+  #
+--- 1,7 ----
+  # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me)
+  # and Win64, using the Microsoft Visual C++ compilers. Known to work with
+! # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005),
+! # and VC9 (VS2008).
+  #
+  # To build using other Windows compilers, see INSTALLpc.txt
+  #
+***************
+*** 285,291 ****
+  # need shell32.lib for ExtractIcon()
+  # gdi32.lib and comdlg32.lib for printing support
+  # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
+! CON_LIB = advapi32.lib shell32.lib gdi32.lib comdlg32.lib ole32.lib uuid.lib
+  !if "$(DELAYLOAD)" == "yes"
+  CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
+  !endif
+--- 286,293 ----
+  # need shell32.lib for ExtractIcon()
+  # gdi32.lib and comdlg32.lib for printing support
+  # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT
+! CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \
+!           comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib
+  !if "$(DELAYLOAD)" == "yes"
+  CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
+  !endif
+***************
+*** 331,336 ****
+--- 333,339 ----
+  !endif
+  !if "$(_NMAKE_VER)" == "6.00.8168.0"
+  MSVCVER = 6.0
++ CPU = ix86
+  !endif
+  !if "$(_NMAKE_VER)" == "7.00.9466"
+  MSVCVER = 7.0
+***************
+*** 344,349 ****
+--- 347,355 ----
+  !if "$(_NMAKE_VER)" == "8.00.50727.762"
+  MSVCVER = 8.0
+  !endif
++ !if "$(_NMAKE_VER)" == "9.00.20706.01"
++ MSVCVER = 9.0
++ !endif
+  !endif
+  
+  # Abort bulding VIM if version of VC is unrecognised.
+***************
+*** 352,364 ****
+  !message Cannot determine Visual C version being used.  If you are using the
+  !message Windows SDK then you must have the environment variable MSVCVER set to
+  !message your version of the VC compiler.  If you are not using the Express
+! !message version of Visual C you van either set MSVCVER or update this makefile
+! !message to handle the new value for _NMAKE_VER.
+  !error Make aborted.
+  !endif
+  
+  # Convert processor ID to MVC-compatible number
+! !if "$(MSVCVER)" != "8.0"
+  !if "$(CPUNR)" == "i386"
+  CPUARG = /G3
+  !elseif "$(CPUNR)" == "i486"
+--- 358,370 ----
+  !message Cannot determine Visual C version being used.  If you are using the
+  !message Windows SDK then you must have the environment variable MSVCVER set to
+  !message your version of the VC compiler.  If you are not using the Express
+! !message version of Visual C, you can either set MSVCVER or update this makefile
+! !message to handle the new value for _NMAKE_VER, "$(_NMAKE_VER)".
+  !error Make aborted.
+  !endif
+  
+  # Convert processor ID to MVC-compatible number
+! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0")
+  !if "$(CPUNR)" == "i386"
+  CPUARG = /G3
+  !elseif "$(CPUNR)" == "i486"
+***************
+*** 373,379 ****
+  CPUARG =
+  !endif
+  !else
+! # VC8 only allows specifying SSE architecture
+  !if "$(CPUNR)" == "pentium4"
+  CPUARG = /arch:SSE2
+  !endif
+--- 379,385 ----
+  CPUARG =
+  !endif
+  !else
+! # VC8/9 only allows specifying SSE architecture
+  !if "$(CPUNR)" == "pentium4"
+  CPUARG = /arch:SSE2
+  !endif
+***************
+*** 391,397 ****
+  !else # MAXSPEED
+  OPTFLAG = /Ox
+  !endif
+! !if "$(MSVCVER)" == "8.0"
+  # Use link time code generation if not worried about size
+  !if "$(OPTIMIZE)" != "SPACE"
+  OPTFLAG = $(OPTFLAG) /GL
+--- 397,403 ----
+  !else # MAXSPEED
+  OPTFLAG = /Ox
+  !endif
+! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0")
+  # Use link time code generation if not worried about size
+  !if "$(OPTIMIZE)" != "SPACE"
+  OPTFLAG = $(OPTFLAG) /GL
+***************
+*** 404,414 ****
+  LIBC = msvcrt.lib
+  ! else
+  LIBC = libcmt.lib
+! CFLAGS = $(CFLAGS) /MT
+  ! endif
+  !else  # DEBUG
+  VIM = vimd
+! ! if "$(CPU)" == "i386"
+  DEBUGINFO = /ZI
+  ! endif
+  CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
+--- 410,420 ----
+  LIBC = msvcrt.lib
+  ! else
+  LIBC = libcmt.lib
+! CFLAGS = $(CFLAGS) /Zl /MT
+  ! endif
+  !else  # DEBUG
+  VIM = vimd
+! ! if ("$(CPU)" == "i386") || ("$(CPU)" == "ix86")
+  DEBUGINFO = /ZI
+  ! endif
+  CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
+***************
+*** 424,430 ****
+  LIBC = $(LIBC) msvcrtd.lib
+  ! else
+  LIBC = $(LIBC) libcmtd.lib
+! CFLAGS = $(CFLAGS) /MTd
+  ! endif
+  !endif # DEBUG
+  
+--- 430,436 ----
+  LIBC = $(LIBC) msvcrtd.lib
+  ! else
+  LIBC = $(LIBC) libcmtd.lib
+! CFLAGS = $(CFLAGS) /Zl /MTd
+  ! endif
+  !endif # DEBUG
+  
+***************
+*** 534,540 ****
+  	$(OUTDIR)\gui_w32.obj \
+  	$(OUTDIR)\os_w32exe.obj
+  GUI_LIB = \
+! 	oldnames.lib kernel32.lib gdi32.lib version.lib $(IME_LIB) \
+  	winspool.lib comctl32.lib advapi32.lib shell32.lib \
+  	/machine:$(CPU) /nodefaultlib
+  !else
+--- 540,546 ----
+  	$(OUTDIR)\gui_w32.obj \
+  	$(OUTDIR)\os_w32exe.obj
+  GUI_LIB = \
+! 	gdi32.lib version.lib $(IME_LIB) \
+  	winspool.lib comctl32.lib advapi32.lib shell32.lib \
+  	/machine:$(CPU) /nodefaultlib
+  !else
+***************
+*** 757,763 ****
+  
+  # Report link time code generation progress if used. 
+  !ifdef NODEBUG
+! !if "$(MSVCVER)" == "8.0"
+  !if "$(OPTIMIZE)" != "SPACE"
+  LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
+  !endif
+--- 763,769 ----
+  
+  # Report link time code generation progress if used. 
+  !ifdef NODEBUG
+! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0")
+  !if "$(OPTIMIZE)" != "SPACE"
+  LINKARGS1 = $(LINKARGS1) /LTCG:STATUS
+  !endif
+*** ../vim-7.1.281/src/os_win32.c	Tue Nov 20 17:21:28 2007
+--- src/os_win32.c	Wed Mar 12 15:24:33 2008
+***************
+*** 2856,2862 ****
+  	windgoto((int)Rows - 1, 0);
+  	g_fForceExit = TRUE;
+  
+! 	sprintf((char *)IObuff, _("Vim: Caught %s event\n"),
+  		(dwCtrlType == CTRL_CLOSE_EVENT
+  		     ? _("close")
+  		     : dwCtrlType == CTRL_LOGOFF_EVENT
+--- 2856,2862 ----
+  	windgoto((int)Rows - 1, 0);
+  	g_fForceExit = TRUE;
+  
+! 	vim_snprintf((char *)IObuff, IOSIZE, _("Vim: Caught %s event\n"),
+  		(dwCtrlType == CTRL_CLOSE_EVENT
+  		     ? _("close")
+  		     : dwCtrlType == CTRL_LOGOFF_EVENT
+***************
+*** 3282,3293 ****
+      {
+  	/* we use "command" or "cmd" to start the shell; slow but easy */
+  	char_u *newcmd;
+! 
+! 	newcmd = lalloc((long_u) (
+  #ifdef FEAT_GUI_W32
+  		STRLEN(vimrun_path) +
+  #endif
+! 		STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10), TRUE);
+  	if (newcmd != NULL)
+  	{
+  	    char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
+--- 3282,3294 ----
+      {
+  	/* we use "command" or "cmd" to start the shell; slow but easy */
+  	char_u *newcmd;
+! 	long_u cmdlen =  (
+  #ifdef FEAT_GUI_W32
+  		STRLEN(vimrun_path) +
+  #endif
+! 		STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+! 
+! 	newcmd = lalloc(cmdlen, TRUE);
+  	if (newcmd != NULL)
+  	{
+  	    char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
+***************
+*** 3373,3386 ****
+  		if (!s_dont_use_vimrun)
+  		    /* Use vimrun to execute the command.  It opens a console
+  		     * window, which can be closed without killing Vim. */
+! 		    sprintf((char *)newcmd, "%s%s%s %s %s",
+  			    vimrun_path,
+  			    (msg_silent != 0 || (options & SHELL_DOOUT))
+  								 ? "-s " : "",
+  			    p_sh, p_shcf, cmd);
+  		else
+  #endif
+! 		    sprintf((char *)newcmd, "%s %s %s", p_sh, p_shcf, cmd);
+  		x = mch_system((char *)newcmd, options);
+  	    }
+  	    vim_free(newcmd);
+--- 3374,3388 ----
+  		if (!s_dont_use_vimrun)
+  		    /* Use vimrun to execute the command.  It opens a console
+  		     * window, which can be closed without killing Vim. */
+!                     vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
+  			    vimrun_path,
+  			    (msg_silent != 0 || (options & SHELL_DOOUT))
+  								 ? "-s " : "",
+  			    p_sh, p_shcf, cmd);
+  		else
+  #endif
+!                     vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
+! 							   p_sh, p_shcf, cmd);
+  		x = mch_system((char *)newcmd, options);
+  	    }
+  	    vim_free(newcmd);
+***************
+*** 4664,4675 ****
+--- 4666,4694 ----
+  # endif
+         )
+      {
++ # if defined(DEBUG) && _MSC_VER > 1200
++ 	/* Work around an annoying assertion in the Microsoft debug CRT
++ 	 * when mode's text/binary setting doesn't match _get_fmode(). */
++ 	char newMode = mode[strlen(mode) - 1];
++ 	int oldMode = 0;
++ 
++ 	_get_fmode(&oldMode);
++ 	if (newMode == 't')
++ 	    _set_fmode(_O_TEXT);
++ 	else if (newMode == 'b')
++ 	    _set_fmode(_O_BINARY);
++ # endif
+  	wn = enc_to_ucs2(name, NULL);
+  	wm = enc_to_ucs2(mode, NULL);
+  	if (wn != NULL && wm != NULL)
+  	    f = _wfopen(wn, wm);
+  	vim_free(wn);
+  	vim_free(wm);
++ 
++ # if defined(DEBUG) && _MSC_VER > 1200
++ 	_set_fmode(oldMode);
++ # endif
++ 
+  	if (f != NULL)
+  	    return f;
+  	/* Retry with non-wide function (for Windows 98). Can't use
+*** ../vim-7.1.281/src/version.c	Sun Mar 16 13:09:14 2008
+--- src/version.c	Sun Mar 16 14:49:21 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     282,
+  /**/
+
+-- 
+Amazing but true: If all the salmon caught in Canada in one year were laid
+end to end across the Sahara Desert, the smell would be absolutely awful.
+
+ /// 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    ///