diff --git a/MAINTAINERS b/MAINTAINERS
index b34c2bc18450d1d60f8d2318aca89bba4e10310b..2f76f7f73f8d58df124cbd69a61ca54fb82a764a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -331,7 +331,6 @@ Alpha                                   Mans Rullgard, Falk Hueffner
 ARM                                     Mans Rullgard
 AVR32                                   Mans Rullgard
 MIPS                                    Mans Rullgard
-BeOS                                    Francois Revol
 Mac OS X / PowerPC                      Romain Dolbeau, Guillaume Poirier
 Amiga / PowerPC                         Colin Ward
 Linux / PowerPC                         Luca Barbato
diff --git a/configure b/configure
index 25dfb6d1cdb2939b6d8a17660881fb5f7d0235b3..33e47dad38fd5d07afc4ca2881d6f72e104c5001 100755
--- a/configure
+++ b/configure
@@ -115,7 +115,6 @@ Configuration options:
   --enable-runtime-cpudetect detect cpu capabilities at runtime (bigger binary)
   --enable-hardcoded-tables use hardcoded tables instead of runtime generation
   --enable-memalign-hack   emulate memalign, interferes with memory debuggers
-  --enable-beos-netserver  enable BeOS netserver
   --disable-everything     disable all components listed below
   --disable-encoder=NAME   disable encoder NAME
   --enable-encoder=NAME    enable encoder NAME
@@ -894,7 +893,6 @@ CONFIG_LIST="
     avfilter_lavf
     avformat
     avisynth
-    beos_netserver
     bzlib
     dct
     doc
@@ -2127,30 +2125,11 @@ enabled spic && enable pic
 
 # OS specific
 case $target_os in
-    beos|haiku|zeta)
+    haiku)
         prefix_default="$HOME/config"
-        # 3 gcc releases known for BeOS, each with ugly bugs
-        gcc_version="$($cc -v 2>&1 | grep version | cut -d ' ' -f3-)"
-        case "$gcc_version" in
-          2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
-            disable mmx
-            ;;
-          *20010315*) echo "BeBits gcc"
-            add_cflags -fno-expensive-optimizations
-            ;;
-        esac
         SHFLAGS=-nostart
-        # enable BeOS things
         enable audio_beos
-        # no need for libm, but the inet stuff
-        # Check for BONE
-        # XXX: actually should check for NOT net_server
-        if echo $BEINCLUDES | grep -q 'headers/be/bone'; then
-            network_extralibs="-lbind -lsocket"
-        else
-            enable beos_netserver
-            network_extralibs="-lnet"
-        fi ;;
+        ;;
     sunos)
         FFSERVERLDFLAGS=""
         SHFLAGS='-shared -Wl,-h,$$(@F)'
diff --git a/doc/TODO b/doc/TODO
index f03270ec13d6664c67cf027665bc78b37d569a8b..747eee4ab15373b49f6a9f2a74a3bfbdfed5a11c 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -29,14 +29,6 @@ Michael's TODO list: (unordered) (if anyone wanna help with sth, just ask)
 - more optimizations
 - simper rate control
 
-Francois' TODO list: (unordered, without any timeframe)
--------------------
-- test MACE decoder against the openquicktime one as suggested by A'rpi
-- BeOS audio input grabbing backend
-- BeOS video input grabbing backend
-- publish my BeOS libposix on BeBits so I can officially support ffserver :)
-- check the whole code for thread-safety (global and init stuff)
-
 Philip'a TODO list: (alphabetically ordered) (please help)
 ------------------
 - Add a multi-ffm filetype so that feeds can be recorded into multiple files rather
diff --git a/doc/general.texi b/doc/general.texi
index dfd6384c325e657ac932726cf21386d7174b5194..296f5924704c2d0a33c51275b578e1a9919c17a7 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -725,10 +725,6 @@ performance on systems without hardware floating point support).
 
 @chapter Platform Specific information
 
-@section BeOS
-
-BeOS support is broken in mysterious ways.
-
 @section DOS
 
 Using a cross-compiler is preferred for various reasons.
diff --git a/ffmpeg.c b/ffmpeg.c
index 8dae5c76640055d44179fd5e4ee7c8345a5c6e21..cb691b18446f22a992737ee36b19a1969d698779 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -540,10 +540,6 @@ static void term_init(void)
 #ifdef SIGXCPU
     signal(SIGXCPU, sigterm_handler);
 #endif
-
-#if CONFIG_BEOS_NETSERVER
-    fcntl(0, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK);
-#endif
 }
 
 /* read a key without blocking */
@@ -552,7 +548,6 @@ static int read_key(void)
 #if HAVE_TERMIOS_H
     int n = 1;
     unsigned char ch;
-#if !CONFIG_BEOS_NETSERVER
     struct timeval tv;
     fd_set rfds;
 
@@ -561,7 +556,6 @@ static int read_key(void)
     tv.tv_sec = 0;
     tv.tv_usec = 0;
     n = select(1, &rfds, NULL, NULL, &tv);
-#endif
     if (n > 0) {
         n = read(0, &ch, 1);
         if (n == 1)
diff --git a/libavformat/os_support.h b/libavformat/os_support.h
index a3cc40a8509b22c8e475c0f0ce0f8b2197aee6c5..5c9e81b340ca6bde2b6eccbeea9b0b29aa8eabbb 100644
--- a/libavformat/os_support.h
+++ b/libavformat/os_support.h
@@ -45,23 +45,6 @@ static inline int is_dos_path(const char *path)
     return 0;
 }
 
-#ifdef __BEOS__
-#  include <sys/socket.h>
-#  include <netinet/in.h>
-   /* not net_server ? */
-#  include <BeBuild.h>
-   /* R5 didn't have usleep, fake it. Haiku and Zeta has it now. */
-#  if B_BEOS_VERSION <= B_BEOS_VERSION_5
-#    include <OS.h>
-     /* doesn't set errno but that's enough */
-#    define usleep(t)  snooze((bigtime_t)(t))
-#  endif
-#  ifndef SA_RESTART
-#    warning SA_RESTART not implemented; ffserver might misbehave.
-#    define SA_RESTART 0
-#  endif
-#endif
-
 #if CONFIG_NETWORK
 #if !HAVE_SOCKLEN_T
 typedef int socklen_t;