diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt
index 231d7d1..53bb799 100644
--- a/runtime/doc/os_os2.txt
+++ b/runtime/doc/os_os2.txt
@@ -1,221 +1,13 @@
-*os_os2.txt*    For Vim version 7.4.  Last change: 2007 Apr 22
+*os_os2.txt*    For Vim version 7.4.  Last change: 2015 Dec 31
 
 
 		  VIM REFERENCE MANUAL    by Paul Slootman
 
 
 							*os2* *OS2* *OS/2*
-This file contains the particularities for the OS/2 version of Vim.
+This file used to contain the particularities for the OS/2 version of Vim.
 
-At present there is no native PM version of the GUI version of Vim: The OS/2
-version is a console application.  However, there is now a Win32s-compatible
-GUI version, which should be usable by owners of Warp 4 (which supports
-Win32s) in a Win-OS/2 session.  The notes in this file refer to the native
-console version.
+The OS/2 support was removed in patch 7.4.1008.
 
 
-NOTE
-
-This OS/2 port works well for me and a couple of other OS/2 users; however,
-since I haven't had much feedback, that either means no (OS/2-specific) bugs
-exist (besides the ones mentioned below), or no one has yet created a
-situation in which any bugs are apparent.  File I/O in Dos and Unix mode,
-binary mode, and FAT handling all seem to work well, which would seem to be
-the most likely places for trouble.
-
-A known problem is that files opened by Vim are inherited by other programs
-that are started via a shell escape from within Vim.  This specifically means
-that Vim won't be able to remove the swap file(s) associated with buffers open
-at the time the other program was started, until the other program is stopped.
-At that time, the swap file may be removed, but if Vim could not do that the
-first time, it won't be removed at all.  You'll get warnings that some other
-Vim session may be editing the file when you start Vim up again on that file.
-This can be reproduced with ":!start epm".  Now quit Vim, and start Vim again
-with the file that was in the buffer at the time epm was started.  I'm working
-on this!
-
-A second problem is that Vim doesn't understand the situation when using it
-when accessing the OS/2 system via the network, e.g. using telnet from a Unix
-system, and then starting Vim.  The problem seems to be that OS/2 =sometimes=
-recognizes function / cursor keys, and tries to convert those to the
-corresponding OS/2 codes generated by the "normal" PC keyboard.  I've been
-testing a workaround (mapping the OS/2 codes to the correct functions), but so
-far I can't say anything conclusive (this is on Warp 3, by the way).  In the
-meantime any help will be appreciated.
-
-
-PREREQUISITES
-
-To run Vim, you need the emx runtime environment (at least rev. 0.9b).  This
-is generally available as (ask Archie about it):
-
-    emxrt.zip     emx runtime package
-
-I've included a copy of emx.dll, which should be copied to one of the
-directories listed in your LIBPATH.  Emx is GPL'ed, but the emx.dll library is
-not (read COPYING.EMX to find out what that means to you).
-
-This emx.dll is from the emxfix04.zip package, which unfortunately has a bug,
-eh, I mean a POSIX feature, in select().  Versions of Vim before 3.27 will
-appear to hang when starting (actually, while processing vimrc).  Hit <Enter> a
-couple of times until Vim starts working if this happens.  Next, get an up to
-date version of Vim!
-
-
-HELP AND VIMRC FILE
-
-If you unpack the archive that Vim came in and run Vim directly from where it
-was unpacked, Vim should be able to find the runtime files and your .vimrc
-without any settings.
-
-If you put the runtime files separately from the binary, the VIM environment
-variable is used to find the location of the help files and the system .vimrc.
-Place an entry such as this in CONFIG.SYS: >
-
-  SET VIM=c:/local/lib/vim
-
-Put your .vimrc and your other Vim files in this directory.  Copy the runtime
-directory to this directory.  Each version of Vim has its own runtime
-directory.  It will be called something like "c:/local/lib/vim/vim54".  Thus
-you get a tree of Vim files like this:
-	c:/local/lib/vim/.vimrc
-	c:/local/lib/vim/vim54/filetype.vim
-	c:/local/lib/vim/vim54/doc/help.txt
-	etc.
-
-Note: .vimrc may also be called _vimrc to accommodate those who have chosen to
-install OS/2 on a FAT file system.  Vim first tries to find .vimrc and if that
-fails, looks for _vimrc in the same place.  The existence of a .vimrc or
-_vimrc file influences the 'compatible' options, which can have unexpected side
-effects.  See |'compatible'|.
-
-If you're using network drives with OS/2, then you can install Vim on a
-network drive (including .vimrc; this is then called the "system" vimrc file),
-and then use a personal copy of .vimrc (the "user" vimrc file).  This should be
-located in a directory indicated by the HOME environment variable.
-
-
-ENVIRONMENT VARIABLES IN FILE NAMES
-
-This HOME environment variable is also used when using ~ in file names, so
-":e ~/textfile" will edit the file "textfile" in the directory referred to by
-HOME.  Additionally you can use other environment variables in file names, as
-in ":n $SRC/*.c".
-
-The HOME environment variable is also used to locate the .viminfo file
-(see |viminfo-file|).  There is no support yet for .viminfo on FAT file
-systems yet, sorry.  You could try the -i startup flag (as in "vim -i
-$HOME/_viminfo") however.
-
-If the HOME environment variable is not set, the value "C:/" is used as a
-default.
-
-
-BACKSLASHES
-
-Using slashes ('/') and backslashes ('\') can be a bit of a problem (see
-|dos-backslash| for more explanation), but in almost all cases Vim does "The
-Right Thing".  Vim itself uses backslashes in file names, but will happily
-accept forward slashes if they are entered (in fact, sometimes that works
-better!).
-
-
-TEMP FILES
-
-Temporary files (for filtering) are put in the first directory in the next
-list that exists and where a file can be created:
-	$TMP
-	$TEMP
-	C:\TMP
-	C:\TEMP
-	current directory
-
-
-TERMINAL SETTING
-
-							*os2ansi*
-Use "os2ansi" as the TERM environment variable (or don't set it at all, as the
-default is the correct value).  You can set term to os2ansi in the .vimrc, in
-case you need TERM to be a different value for other applications.  The
-problem is that OS/2 ANSI emulation is quite limited (it doesn't have insert /
-delete line, for example).
-
-If you want to use a different value for TERM (because of other programs, for
-example), make sure that the termcap entry for that TERM value has the
-appropriate key mappings.  The termcap.dat distributed with emx does not always
-have them.  Here are some suitable values to add to the termcap entry of your
-choice; these allow the cursor keys and the named function keys (such as
-pagedown) to work.
-
-	:ku=\316H:kd=\316P:kl=\316K:kr=\316M:%i=\316t:#4=\316s:\
-	:kD=\316S:kI=\316R:kN=\316Q:kP=\316I:kh=\316G:@7=\316O:\
-	:k1=\316;:k2=\316<:k3=\316=:k4=\316>:k5=\316?:k6=\316@:\
-	:k7=\316A:k8=\316B:k9=\316C:k;=\316D:
-
-
-Paul Slootman
-
-
-43 LINE WINDOW
-
-A suggestion from Steven Tryon, on how to run Vim in a bigger window:
-
-When I call Vim from an OS/2 WPS application such as PMMail it comes up
-in the default 25-line mode.  To get a more useful window size I make
-my external editor "vimbig.cmd" which in turn calls "vimbig2.cmd".
-Brute force and awkwardness, perhaps, but it works.
-
-vimbig.cmd: >
-   @echo off
-   start "Vi Improved" /f vimbig2.cmd %1 %2 %3 %4
-
-vimbig2.cmd: >
-   @echo off
-   mode 80,43
-   vim.exe %1 %2 %3 %4
-   exit
-<
-
-CLIPBOARD ACCESS (provided by Alexander Wagner)
-
-Vim for OS/2 has no direct access to the system clipboard.  To enable access
-anyway you need an additional tool which gives you access to the clipboard
-from within a vio application.  The freeware package clipbrd.zip by Stefan
-Gruendel can be used for this purpose.  You might download the package
-including precompiled binaries and all sources from:
-	http://www.os2site.com/sw/util/clipboard/index.html
-	http://download.uni-hd.de/ftp/pub/os2/pmtools/
-
-Installation of this package is straight forward: just put the two executables
-that come with this package into a directory within your PATH for Vim should
-be able to call them from whatever directory you are working.
-
-To copy text from the clipboard to your Vim session you can use the :r
-command.  Simply call clipbrd.exe from within Vim in the following way: >
-
-	:r !clipbrd -r
-
-To copy text from Vim to the system clipboard just mark the text in the usual
-vim-manner and call: >
-
-	:!clipbrd -w
-
-which will write your selection right into OS/2's clipboard.
-
-For ease of use you might want to add some maps for these commands.  E.g. to
-use F11 to paste the clipboard into Vim and F12 to copy selected text to the
-clipboard you would use: >
-
-	if has("os2")
-	  imap <F11>     <ESC>:r !clipbrd -r<CR>i
-	  vmap <F12>     :!clipbrd -w<cr>
-	else
-	  imap <F11>     <ESC>"*p<CR>i
-	  vmap <F12>     "*y
-	endif
-
-This will ensure that only on OS/2 clipbrd is called whereas on other
-platforms vims build in mechanism is used.  (To enable this functions on every
-load of Vim place the above lines in your .vimrc.)
-
  vim:tw=78:ts=8:ft=help:norl:
