diff --git a/READMEdir/README_extra.txt b/READMEdir/README_extra.txt
index 1c59072..13d1982 100644
--- a/READMEdir/README_extra.txt
+++ b/READMEdir/README_extra.txt
@@ -13,9 +13,6 @@
 
 src/os_amiga.*		Files for the Amiga port.
 
-src/gui_beos.*
-src/os_beos.*		Files for the BeOS port.
-
 src/os_msdos.*
 src/os_dos.*		Files for the MS-DOS port.
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index ab13d0c..9f9ae94 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -7696,7 +7696,6 @@
 'term'			string	(default is $TERM, if that fails:
 				      in the GUI: "builtin_gui"
 					on Amiga: "amiga"
-					 on BeOS: "beos-ansi"
 					on Haiku: "xterm"
 					  on Mac: "mac-ansi"
 					 on MiNT: "vt52"
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index 916162f..906c589 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -1,320 +1,13 @@
-*os_beos.txt*	For Vim version 8.2.  Last change: 2016 Mar 28
+*os_beos.txt*	For Vim version 8.2.  Last change: 2020 Jun 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
 
 
-							*BeOS* *BeBox*
-This is a port of Vim 5.1 to the BeOS Preview Release 2 (also known as PR2)
-or later.
+						*beos* *BeOS* *BeBox*
+This file used to contain particularities for the BeOS port of Vim.
 
-This file contains the particularities for the BeBox/BeOS version of Vim.  For
-matters not discussed in this file, Vim behaves very much like the Unix
-|os_unix.txt| version.
-
- 1. General			|beos-general|
- 2. Compiling Vim		|beos-compiling|
- 3. Timeout in the Terminal	|beos-timeout|
- 4. Unicode vs. Latin1		|beos-unicode|
- 5. The BeOS GUI		|beos-gui|
- 6. The $VIM directory		|beos-vimdir|
- 7. Drag & Drop			|beos-dragndrop|
- 8. Single Launch vs. Multiple
-    Launch			|beos-launch|
- 9. Fonts			|beos-fonts|
-10. The meta key modifier	|beos-meta|
-11. Mouse key mappings		|beos-mouse|
-12. Color names			|beos-colors|
-13. Compiling with Perl		|beos-perl|
-
-
-1. General						*beos-general*
-
-The default syntax highlighting mostly works with different foreground colors
-to highlight items.  This works best if you set your Terminal window to a
-darkish background and light letters.  Some middle-grey background (for
-instance (r,g,b)=(168,168,168)) with black letters also works nicely.  If you
-use the default light background and dark letters, it may look better to
-simply reverse the notion of foreground and background color settings.  To do
-this, add this to your .vimrc file (where <Esc> may need to be replaced with
-the escape character): >
-
-  :if &term == "beos-ansi"
-  :    set t_AB=<Esc>[3%dm
-  :    set t_AF=<Esc>[4%dm
-  :endif
-
-
-2. Compiling Vim					*beos-compiling*
-
-From the Advanced Access Preview Release (AAPR) on, Vim can be configured with
-the standard configure script.  To get the compiler and its flags right, use
-the following command-line in the shell (you can cut and paste it in one go):
-
-CC=$BE_C_COMPILER CFLAGS="$BE_DEFAULT_C_FLAGS -O7" \
-    ./configure --prefix=/boot/home/config
-
-$BE_C_COMPILER is usually "mwcc", $BE_DEFAULT_C_FLAGS is usually "-I- -I."
-
-When configure has run, and you wish to enable GUI support, you must edit the
-config.mk file so that the lines with GUI_xxx refer to $(BEOSGUI_xxx) instead
-of $(NONE_xxx).
-Alternatively you can make this change in the Makefile; it will have a
-more permanent effect.  Search for "NONE_".
-
-After compilation you need to add the resources to the binary.  Add the
-following few lines near the end (before the line with "exit $exit_value") of
-the link.sh script to do this automatically.
-
-    rmattr BEOS:TYPE vim
-    copyres os_beos.rsrc vim
-    mimeset vim
-
-Also, create a dummy file "strip":
-
-    #!/bin/sh
-    mimeset $1
-    exit 0
-
-You will need it when using "make install" to install Vim.
-
-Now type "make" to compile Vim, then "make install" to install it.
-
-If you want to install Vim by hand, you must copy Vim to $HOME/config/bin, and
-create a bunch of symlinks to it ({g,r,rg}{vim,ex,view}).  Furthermore you must
-copy Vim's configuration files to $HOME/config/share/vim:
-vim-5.0s/{*.vim,doc,syntax}.  For completeness, you should also copy the nroff
-manual pages to $HOME/config/man/man1.  Don't forget ctags/ctags and xxd/xxd!
-
-Obviously, you need the unlimited linker to actually link Vim.  See
-http://www.metrowerks.com for purchasing the CodeWarrior compiler for BeOS.
-There are currently no other linkers that can do the job.
-
-This won't be able to include the Perl or Python interfaces even if
-you have the appropriate files installed. |beos-perl|
-
-
-3. Timeout in the Terminal				*beos-timeout*
-
-Because some POSIX/UNIX features are still missing[1], there is no direct OS
-support for read-with-timeout in the Terminal.  This would mean that you cannot
-use :mappings of more than one character, unless you also :set notimeout.
-|'timeout'|
-
-To circumvent this problem, I added a workaround to provide the necessary
-input with timeout by using an extra thread which reads ahead one character.
-As a side effect, it also makes Vim recognize when the Terminal window
-resizes.
-
-Function keys are not supported in the Terminal since they produce very
-indistinctive character sequences.
-
-These problems do not exist in the GUI.
-
-[1]: there is no select() on file descriptors; also the termios VMIN and VTIME
-settings do not seem to work properly.  This has been the case since DR7 at
-least and still has not been fixed as of PR2.
-
-							*beos-unicode*
-4. Unicode vs. Latin1					*beos-utf8*
-
-BeOS uses Unicode and UTF-8 for text strings (16-bit characters encoded to
-8-bit characters).  Vim assumes ISO-Latin1 or other 8-bit character codes.
-This does not produce the desired results for non-ASCII characters.  Try the
-command :digraphs to see.  If they look messed up, use :set isprint=@ to
-(slightly) improve the display of ISO-Latin1 characters 128-255.  This works
-better in the GUI, depending on which font you use (below).
-
-You may also use the /boot/bin/xtou command to convert UTF-8 files from (xtou
--f iso1 filename) or to (xtou -t iso1 filename) ISO-Latin1 characters.
-
-
-5. The BeOS GUI						*beos-gui*
-
-The BeOS GUI is no longer included.  It was not maintained for a while and
-most likely didn't work.  If you want to work on this: get the Vim 6.x version
-and merge it back in.
-
-
-6. The $VIM directory					*beos-vimdir*
-
-$VIM is the symbolic name for the place where Vim's support files are stored.
-The default value for $VIM is set at compile time and can be determined with >
-
-  :version
-
-The normal value is /boot/home/config/share/vim.  If you don't like it you can
-set the VIM environment variable to override this, or set 'helpfile' in your
-.vimrc: >
-
-  :if version >= 500
-  :    set helpfile=~/vim/vim54/doc/help.txt
-  :    syntax on
-  :endif
-
-
-7. Drag & Drop						*beos-dragndrop*
-
-You can drop files and directories on either the Vim icon (starts a new Vim
-session, unless you use the File Types application to set Vim to be "Single
-Launch") or on the Vim window (starts editing the files).  Dropping a folder
-sets Vim's current working directory. |:cd| |:pwd| If you drop files or
-folders with either SHIFT key pressed, Vim changes directory to the folder
-that contains the first item dropped.  When starting Vim, there is no need to
-press shift: Vim behaves as if you do.
-
-Files dropped set the current argument list. |argument-list|
-
-
-8. Single Launch vs. Multiple Launch			*beos-launch*
-
-As distributed Vim's Application Flags (as seen in the FileTypes preference)
-are set to Multiple Launch.  If you prefer, you can set them to Single Launch
-instead.  Attempts to start a second copy of Vim will cause the first Vim to
-open the files instead.  This works from the Tracker but also from the command
-line.  In the latter case, non-file (option) arguments are not supported.
-
-NB: Only the GUI version has a BApplication (and hence Application Flags).
-This section does not apply to the GUI-less version, should you compile one.
-
-
-9. Fonts						*beos-fonts*
-
-Set fonts with >
-
-  :set guifont=Courier10_BT/Roman/10
-
-where the first part is the font family, the second part the style, and the
-third part the size.  You can use underscores instead of spaces in family and
-style.
-
-Best results are obtained with monospaced fonts (such as Courier).  Vim
-attempts to use all fonts in B_FIXED_SPACING mode but apparently this does not
-work for proportional fonts (despite what the BeBook says).
-
-Vim also tries to use the B_ISO8859_1 encoding, also known as ISO Latin 1.
-This also does not work for all fonts.  It does work for Courier, but not for
-ProFontISOLatin1/Regular (strangely enough).  You can verify this by giving the >
-
-  :digraphs
-
-command, which lists a bunch of characters with their ISO Latin 1 encoding.
-If, for instance, there are "box" characters among them, or the last character
-isn't a dotted-y, then for this font the encoding does not work.
-
-If the font you specify is unavailable, you get the system fixed font.
-
-Standard fixed-width system fonts are:
-
-	      ProFontISOLatin1/Regular
-		  Courier10_BT/Roman
-		  Courier10_BT/Italic
-		  Courier10_BT/Bold
-		  Courier10_BT/Bold_Italic
-
-Standard proportional system fonts are:
-
-		    Swis721_BT/Roman
-		    Swis721_BT/Italic
-		    Swis721_BT/Bold
-		    Swis721_BT/Bold_Italic
-		Dutch801_Rm_BT/Roman
-		Dutch801_Rm_BT/Italic
-		Dutch801_Rm_BT/Bold
-		Dutch801_Rm_BT/Bold_Italic
-		   Baskerville/Roman
-		   Baskerville/Italic
-		   Baskerville/Bold
-		   Baskerville/Bold_Italic
-		 SymbolProp_BT/Regular
-
-Try some of them, just for fun.
-
-
-10. The meta key modifier				*beos-meta*
-
-The META key modifier is obtained by the left or right OPTION keys.  This is
-because the ALT (aka COMMAND) keys are not passed to applications.
-
-
-11. Mouse key mappings					*beos-mouse*
-
-Vim calls the various mouse buttons LeftMouse, MiddleMouse and RightMouse.  If
-you use the default Mouse preference settings these names indeed correspond to
-reality.  Vim uses this mapping:
-
-    Button 1 -> LeftMouse,
-    Button 2 -> RightMouse,
-    Button 3 -> MiddleMouse.
-
-If your mouse has fewer than 3 buttons you can provide your own mapping from
-mouse clicks with modifier(s) to other mouse buttons.  See the swapmouse
-package for an example:					 |gui-mouse-mapping|
-$VIMRUNTIME/pack/dist/opt/swapmouse/plugin/swapmouse.vim
-
-
-12. Color names						*beos-colors*
-
-Vim has a number of color names built-in.  Additional names are read from the
-file $VIMRUNTIME/rgb.txt, if present.  This file is basically the color
-database from X.  Names used from this file are cached for efficiency.
-
-
-13. Compiling with Perl					*beos-perl*
-
-Compiling with Perl support enabled is slightly tricky.  The Metrowerks
-compiler has some strange ideas where to search for include files.  Since
-several include files with Perl have the same names as some Vim header
-files, the wrong ones get included.  To fix this, run the following Perl
-script while in the vim-5.0/src directory: >
-
-   preproc.pl > perl.h
-
-    #!/bin/env perl
-    # Simple #include expander, just good enough for the Perl header files.
-
-    use strict;
-    use IO::File;
-    use Config;
-
-    sub doinclude
-    {
-	my $filename = $_[0];
-	my $fh = new IO::File($filename, "r");
-	if (defined $fh) {
-	    print "/* Start of $filename */\n";
-
-	    while (<$fh>) {
-		if (/^#include "(.*)"/) {
-		    doinclude($1);
-		    print "/* Back in $filename */\n";
-		} else {
-		    print $_;
-		}
-	    }
-	    print "/* End of $filename */\n";
-
-	    undef $fh;
-	} else {
-	    print "/* Cannot open $filename */\n";
-	    print "#include \"$filename\"\n";
-	}
-    }
-
-    chdir     $Config{installarchlib}."/CORE";
-    doinclude "perl.h";
-
-It expands the "perl.h" header file, using only other Perl header files.
-
-Now you can configure & make Vim with the --enable-perlinterp option.
-Be warned though that this adds about 616 kilobytes to the size of Vim!
-Without Perl, Vim with default features and GUI is about 575K, with Perl
-it is about 1191K.
-
--Olaf Seibert
+The BeOS support was removed in patch 8.2.0849.
 
-[Note: these addresses no longer work:]
-<rhialto@polder.ubc.kun.nl>
-http://polder.ubc.kun.nl/~rhialto/be
 
  vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 2bb6eb6..7d82799 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -432,7 +432,6 @@
     builtin_gui
     builtin_riscos
     builtin_amiga
-    builtin_beos-ansi
     builtin_ansi
     builtin_vt320
     builtin_vt52
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 69c6c5d..5ade8a9 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 8.2.  Last change: 2019 Dec 17
+*vi_diff.txt*   For Vim version 8.2.  Last change: 2020 Jun 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -135,7 +135,6 @@
 	- Amiga (500, 1000, 1200, 2000, 3000, 4000, ...).
 	- MS-Windows
 	- VMS
-	- BeOS
 	- Macintosh
 	- IBM OS/390
 	Note that on some systems features need to be disabled to reduce
@@ -162,7 +161,7 @@
 	define your own menus.  Better support for CTRL/SHIFT/ALT keys in
 	combination with special keys and mouse.  Supported for various
 	platforms, such as X11 (with Motif and Athena interfaces), GTK, Win32
-	(Windows 95 and later), BeOS, Amiga and Macintosh.
+	(Windows XP and later), Amiga and Macintosh.
 
 Multiple windows and buffers.				|windows.txt|
 	Vim can split the screen into several windows, each editing a
diff --git a/src/INSTALL b/src/INSTALL
index a404833..6f3781e 100644
--- a/src/INSTALL
+++ b/src/INSTALL
@@ -15,7 +15,6 @@
 See INSTALLvms.txt              for VMS
 See INSTALLx.txt		for cross-compiling on Unix
 See ../READMEdir/README_390.txt for z/OS and OS/390 Unix
-See ../runtime/doc/os_beos.txt  for BeBox
 See ../runtime/doc/os_haiku.txt	for Haiku
 
 1. Generic
diff --git a/src/version.c b/src/version.c
index e446a7b..372d0c0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    931,
+/**/
     930,
 /**/
     929,
