diff --git a/configure.ac b/configure.ac
index 121e8c9..ccd10ac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -295,11 +295,18 @@ case "${host_os}" in
     LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
     AC_LIBOBJ([freeaddrinfo])
     ;;
+    *haiku*)
+    SYS=haiku
+    VLC_ADD_LIBS([libvlccore libvlc vlc],[-lnetwork -lbe])
+    VLC_ADD_PLUGIN([haiku_aout])
+    VLC_ADD_LIBS([haiku_aout],[-lmedia])
+    ;;
   *)
     SYS="${host_os}"
     ;;
 esac
 AM_CONDITIONAL(HAVE_DARWIN,  test "${SYS}" = "darwin")
+AM_CONDITIONAL(HAVE_HAIKU,   test "${SYS}" = "haiku")
 AM_CONDITIONAL(HAVE_LINUX,   test "${SYS}" = "linux")
 AM_CONDITIONAL(HAVE_OS2,     test "${SYS}" = "os2")
 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
@@ -532,10 +539,13 @@ VLC_LIBRARY_SUFFIX
 dnl Check for system libs needed
 need_libc=false
 
+# this fails to detect that we have if_nameindex and if_nametoindex on Haiku
+# and then it fails to detect that we don't have tdestroy...
+
 dnl Check for usual libc functions
 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
-AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
+AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab strverscmp])
 AC_CHECK_FUNCS(fdatasync,,
   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
 ])
@@ -603,8 +613,10 @@ AC_SEARCH_LIBS(connect, [socket], [
   AS_IF([test "${SYS}" = "mingw32"], [
     SOCKET_LIBS="-lws2_32"
   ])
+  AS_IF([test "${SYS}" = "haiku"], [
+    SOCKET_LIBS="-lnetwork"
+  ])
 ])
-
 AC_SEARCH_LIBS([inet_pton], [nsl], [
  AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
     SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
@@ -3186,7 +3198,7 @@ then
       if test "${SYS}" != "darwin"; then
         VLC_ADD_PLUGIN([vout_sdl])
       fi
-      if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
+      if test "${SYS}" != "mingw32" -a "${SYS}" != "os2" -a "${SYS}" != "haiku"; then
         VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
       fi
       VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
diff --git a/bin/override.c b/bin/override.c
index fb4608c..9c7c085 100644
--- a/bin/override.c
+++ b/bin/override.c
@@ -125,6 +125,8 @@ static void *getsym (const char *name)
  *
  * Some evil libraries modify the environment. We currently ignore the calls as
  * they could crash the process. This may cause funny behaviour though. */
+#ifndef __HAIKU__
+//not working
 int putenv (char *str)
 {
     if (override)
@@ -135,6 +137,7 @@ int putenv (char *str)
     return CALL(putenv, str);
 }
 
+#endif
 int setenv (const char *name, const char *value, int overwrite)
 {
     if (override)
diff --git a/include/vlc_fixups.h b/include/vlc_fixups.h
index 997f600..47b566e 100644
--- a/include/vlc_fixups.h
+++ b/include/vlc_fixups.h
@@ -261,10 +261,13 @@ void swab (const void *, void *, ssize_t);
 #endif
 
 /* Socket stuff */
+// configure doesn't detect these, likely not linking to -lnetwork, must investigate
+#ifndef __HAIKU__
 #ifndef HAVE_INET_PTON
 int inet_pton(int, const char *, void *);
 const char *inet_ntop(int, const void *, char *, int);
 #endif
+#endif
 
 #ifndef HAVE_STRUCT_POLLFD
 enum
@@ -289,6 +292,8 @@ struct pollfd;
 int poll (struct pollfd *, unsigned, int);
 #endif
 
+// or these
+#ifndef __HAIKU__
 #ifndef HAVE_IF_NAMEINDEX
 #include <errno.h>
 struct if_nameindex
@@ -302,6 +307,7 @@ struct if_nameindex
 # define if_nameindex()         (errno = ENOBUFS, NULL)
 # define if_freenameindex(list) (void)0
 #endif
+#endif
 
 /* search.h */
 #ifndef HAVE_SEARCH_H
diff --git a/include/vlc_threads.h b/include/vlc_threads.h
index d3f021b..15c4662 100644
--- a/include/vlc_threads.h
+++ b/include/vlc_threads.h
@@ -163,7 +163,13 @@ typedef struct
 #define VLC_STATIC_COND  { PTHREAD_COND_INITIALIZER, 0 }
 typedef semaphore_t     vlc_sem_t;
 typedef pthread_rwlock_t vlc_rwlock_t;
+// Haiku bug #8798
+#ifdef __HAIKU__
+#define VLC_STATIC_RWLOCK \
+	{ VLC_STATIC_MUTEX, VLC_STATIC_COND, 0, 0, 0 }
+#else
 #define VLC_STATIC_RWLOCK PTHREAD_RWLOCK_INITIALIZER
+#endif
 typedef pthread_key_t   vlc_threadvar_t;
 typedef struct vlc_timer *vlc_timer_t;
 
@@ -189,7 +195,13 @@ typedef pthread_cond_t  vlc_cond_t;
 #define VLC_STATIC_COND  PTHREAD_COND_INITIALIZER
 typedef sem_t           vlc_sem_t;
 typedef pthread_rwlock_t vlc_rwlock_t;
+// Haiku bug #8798
+#ifdef __HAIKU__
+#define VLC_STATIC_RWLOCK \
+	{ VLC_STATIC_MUTEX, VLC_STATIC_COND, 0, 0, 0 }
+#else
 #define VLC_STATIC_RWLOCK PTHREAD_RWLOCK_INITIALIZER
+#endif
 typedef pthread_key_t   vlc_threadvar_t;
 typedef struct vlc_timer *vlc_timer_t;
 
diff --git a/src/Makefile.am b/src/Makefile.am
index a7d06cc..22348ae 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -232,6 +232,9 @@ else
 if HAVE_OS2
 libvlccore_la_SOURCES += $(SOURCES_libvlc_os2)
 else
+if HAVE_HAIKU
+libvlccore_la_SOURCES += $(SOURCES_libvlc_haiku)
+else
 libvlccore_la_SOURCES += $(SOURCES_libvlc_other)
 endif
 endif
@@ -239,6 +242,7 @@ endif
 endif
 endif
 endif
+endif
 if BUILD_HTTPD
 libvlccore_la_SOURCES += $(SOURCES_libvlc_httpd)
 endif
@@ -320,6 +328,18 @@ SOURCES_libvlc_os2 = \
 	os2/rand.c \
 	$(NULL)
 
+SOURCES_libvlc_haiku = \
+	posix/dirs.c \
+	posix/error.c \
+	posix/filesystem.c \
+	posix/netconf.c \
+	posix/plugin.c \
+	posix/rand.c \
+	posix/thread.c \
+	posix/timer.c \
+	haiku/specific.cpp \
+	$(NULL)
+
 SOURCES_libvlc_other = \
 	posix/dirs.c \
 	posix/error.c \
diff --git a/src/modules/bank.c b/src/modules/bank.c
index 6655f00..bcbf99e 100644
--- a/src/modules/bank.c
+++ b/src/modules/bank.c
@@ -67,6 +67,7 @@ static void module_StoreBank (module_t *module)
     modules.head = module;
 }
 
+/* Haiku bug #8288
 #if defined(__ELF__) || !HAVE_DYNAMIC_PLUGINS
 # ifdef __GNUC__
 __attribute__((weak))
@@ -86,9 +87,9 @@ static void module_InitStaticModules(void)
             module_StoreBank (module);
     }
 }
-#else
+#else */
 static void module_InitStaticModules(void) { }
-#endif
+//#endif
 
 /**
  * Init bank
diff --git a/src/network/io.c b/src/network/io.c
index ea1b1b9..acdd9b1 100644
--- a/src/network/io.c
+++ b/src/network/io.c
@@ -216,7 +216,9 @@ int *net_Listen (vlc_object_t *p_this, const char *psz_host,
         switch (ptr->ai_socktype)
         {
             case SOCK_STREAM:
+#ifdef SOCK_RDM
             case SOCK_RDM:
+#endif
             case SOCK_SEQPACKET:
 #ifdef SOCK_DCCP
             case SOCK_DCCP:
diff --git a/src/posix/netconf.c b/src/posix/netconf.c
index 4dd751b..54accaa 100644
--- a/src/posix/netconf.c
+++ b/src/posix/netconf.c
@@ -29,7 +29,9 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <fcntl.h>
-#include <spawn.h>
+#ifndef __HAIKU__
+#  include <spawn.h>
+#endif
 #include <unistd.h>
 
 extern char **environ;
@@ -45,6 +47,9 @@ extern char **environ;
  */
 char *vlc_getProxyUrl(const char *url)
 {
+#ifdef __HAIKU__
+   return NULL;
+#else
     /* libproxy helper */
     pid_t pid;
     posix_spawn_file_actions_t actions;
@@ -115,4 +120,5 @@ char *vlc_getProxyUrl(const char *url)
     if (var != NULL)
         var = strdup(var);
     return var;
+#endif
 }
--- vlc-2.0.3-orig/modules/audio_output/haiku.cpp	1970-01-01 00:00:00.000000000 +0000
+++ vlc-2.0.5/modules/audio_output/haiku.cpp	2012-08-06 23:15:46.251396096 +0000
@@ -0,0 +1,196 @@
+/*****************************************************************************
+ * Haiku.cpp - Haiku Media Kit audio output
+ *****************************************************************************
+ * Copyright (C) 1999, 2000, 2001, 2012 the VideoLAN team
+ *
+ * Authors: Jean-Marc Dressler <polux@via.ecp.fr>
+ *          Samuel Hocevar <sam@zoy.org>
+ *          Eric Petit <titer@videolan.org>
+ *			Cian Duffy <myob87@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+/*****************************************************************************
+ * Preamble
+ *****************************************************************************/
+#include <stdio.h>
+#include <stdlib.h>                                      /* malloc(), free() */
+#include <malloc.h>
+#include <string.h>
+
+#include <iostream>
+#include <queue>
+using namespace std;
+
+#include <SoundPlayer.h>
+#include <media/MediaDefs.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_aout.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
+
+/*****************************************************************************
+ * aout_sys_t: BeOS audio output method descriptor
+ *****************************************************************************/
+
+queue<uint8> 		a_queue;
+
+struct aout_sys_t
+{
+   BSoundPlayer * 			p_player;
+   mtime_t      			latency;
+   media_raw_audio_format * p_format;
+};
+
+/*****************************************************************************
+ * Local prototypes.
+ *****************************************************************************/
+static void Close        ( vlc_object_t * );
+static void Pause (audio_output_t *, bool, mtime_t);
+static void Play  (audio_output_t *, block_t *);
+
+static void Flush (audio_output_t *, bool);static int  Open         ( vlc_object_t * );
+static void BufferProc   ( void * p_aout, void * p_buffer, size_t size,
+                         const media_raw_audio_format & format );
+
+/*****************************************************************************
+ * Module descriptor
+ *****************************************************************************/
+vlc_module_begin ()
+    set_shortname( "haiku_aout" )
+    set_description( N_("Haiku Media Kit audio output") )
+    set_capability( "audio output", 100 )
+    set_category( CAT_AUDIO )
+    set_subcategory( SUBCAT_AUDIO_AOUT )
+    set_callbacks( Open, Close )
+vlc_module_end ()
+/*****************************************************************************
+ * OpenAudio
+ *****************************************************************************/
+static int Open( vlc_object_t * p_this )
+{
+    audio_output_t *p_aout = (audio_output_t *)p_this;
+    p_aout->sys = (aout_sys_t*)malloc( sizeof( aout_sys_t ) );
+        if( p_aout->sys == NULL )
+    {
+		return VLC_ENOMEM;
+    }
+
+    aout_sys_t * p_sys =  p_aout->sys;
+
+    audio_format_t format =  p_aout->format;
+
+   int i_nb_channels = aout_FormatNbChannels( &format );
+
+// media_raw_audio_format must be passed to BSoundPlayer
+    p_sys->p_format = (media_raw_audio_format*)
+        malloc( sizeof( media_raw_audio_format ) );
+
+    p_aout->format.i_format = VLC_CODEC_FI32;
+    p_aout->format.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+    p_aout->format.i_rate = 44100;
+
+    p_sys->p_format->channel_count = i_nb_channels;
+    p_sys->p_format->frame_rate = p_aout->format.i_rate;
+    p_sys->p_format->format = media_raw_audio_format::B_AUDIO_INT;
+    p_sys->p_format->byte_order = B_MEDIA_LITTLE_ENDIAN;
+    // 'magic' number obtained from checking what size the buffers being
+    // passed by the callback were
+    // in theory, any buffer size should work
+    p_sys->p_format->buffer_size = 9216;
+
+    aout_VolumeSoftInit( p_aout );
+
+	//BSoundPlayer init - format, name, buffer producer, notifier, cookie
+
+    p_sys->p_player = new BSoundPlayer( p_sys->p_format, "player", BufferProc, NULL, NULL );
+    if( p_sys->p_player->InitCheck() != B_OK )
+    {
+        msg_Err( p_aout, "BSoundPlayer InitCheck failed" );
+        delete p_sys->p_player;
+        free( p_sys );
+    }
+    p_sys->latency = p_sys->p_player->Latency();
+
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = Pause;
+    p_aout->pf_flush = Flush;
+
+	return VLC_SUCCESS;
+
+}
+
+/*****************************************************************************
+ * BufferProc- buffer producer function
+ *****************************************************************************/
+static void BufferProc( void * _p_aout, void * _p_buffer, size_t i_size,
+                  const media_raw_audio_format &format )
+{
+// Load buffer
+	for (size_t i = 0; i < i_size; i++)
+		{
+			uint8 data = a_queue.front();
+			vlc_memset(_p_buffer + i, data, 1);
+			a_queue.pop();
+		}
+
+}
+/*****************************************************************************
+ * CloseAudio
+ *****************************************************************************/
+static void Close( vlc_object_t * p_this )
+{
+	printf("Close Called");
+	audio_output_t *p_aout = (audio_output_t *)p_this;
+    struct aout_sys_t *p_sys;
+    p_aout->sys = p_sys;
+
+    /* Clean up */
+    p_sys->p_player->Stop();
+    delete p_sys->p_player;
+    free( p_sys );
+}
+
+
+static void Play (audio_output_t *aout, block_t *block)
+{
+    aout_sys_t * p_sys =  aout->sys;
+
+// load buffer to STL queue, sample by sample
+	for (size_t i = 0; i < block->i_buffer; i++)
+	{
+		a_queue.push(block->p_buffer[i]);
+	}
+
+    p_sys->p_player->Start();
+    p_sys->p_player->SetHasData( true );
+// release buffer
+	block_Release (block);
+}
+
+
+static void Pause (audio_output_t *aout, bool pause, mtime_t date)
+{
+}
+
+
+static void Flush (audio_output_t *aout, bool wait)
+{
+}
diff --git a/src/haiku/specific.cpp b/src/haiku/specific.cpp
new file mode 100644
index 0000000..3768ba5
--- /dev/null
+++ b/src/haiku/specific.cpp
@@ -0,0 +1,57 @@
+/*****************************************************************************
+ * specific.c: stubs for POSIX OS-specific initialization
+ *****************************************************************************
+ * Copyright © 2008 Rémi Denis-Courmont
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <Application.h>
+
+
+#include <vlc_common.h>
+extern "C"
+{
+#include "../libvlc.h"
+#include <pthread.h>
+
+
+static void set_libvlc_path (void)
+{
+    return;
+}
+
+void system_Init (void)
+{
+	BApplication app("application/x-vnd.vlc");
+    pthread_once_t once = PTHREAD_ONCE_INIT;
+
+    pthread_once (&once, set_libvlc_path);
+}
+
+void system_Configure (libvlc_int_t *libvlc,
+                       int argc, const char *const argv[])
+{
+    (void)libvlc; (void)argc; (void)argv;
+}
+
+void system_End (void)
+{
+}
+}
diff --git a/modules/video_output/caca.c b/modules/video_output/caca.c
index 75c83e6..8922732 100644
--- a/modules/video_output/caca.c
+++ b/modules/video_output/caca.c
@@ -34,7 +34,7 @@
 #include <vlc_plugin.h>
 #include <vlc_vout_display.h>
 #include <vlc_picture_pool.h>
-#if !defined(_WIN32) && !defined(__APPLE__)
+#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__HAIKU__)
 # ifdef X_DISPLAY_MISSING
 #  error Xlib required due to XInitThreads
 # endif
diff --git a/modules/video_output/sdl.c b/modules/video_output/sdl.c
index e56c976..76b7ef4 100644
--- a/modules/video_output/sdl.c
+++ b/modules/video_output/sdl.c
@@ -40,7 +40,7 @@
 
 #include <SDL.h>
 
-#if !defined(_WIN32) && !defined(__OS2__)
+#if !defined(_WIN32) && !defined(__OS2__) && !defined(__HAIKU__)
 # ifdef X_DISPLAY_MISSING
 #  error Xlib required due to XInitThreads
 # endif
@@ -116,7 +116,7 @@ static int Open(vlc_object_t *object)
     vout_display_t *vd = (vout_display_t *)object;
     vout_display_sys_t *sys;
 
-#if !defined(_WIN32) && !defined(__OS2__)
+#if !defined(_WIN32) && !defined(__OS2__) && !defined(__HAIKU__)
     if (!vlc_xlib_init (object))
         return VLC_EGENERIC;
 #endif
diff --git a/modules/audio_output/Makefile.am b/modules/audio_output/Makefile.am
index 1e6a233..ba072a4 100644
--- a/modules/audio_output/Makefile.am
+++ b/modules/audio_output/Makefile.am
@@ -91,6 +91,12 @@ if HAVE_SNDIO
 aout_LTLIBRARIES += libsndio_plugin.la
 endif
 
+libhaiku_aout_plugin_la_SOURCES = audio_output/haiku.cpp
+libhaiku_aout_plugin_la_LIBADD = -lmedia
+#if HAVE_HAIKU
+#aout_LTLIBRARIES += libhaiku_aout_plugin.la
+#endif
+
 libwaveout_plugin_la_SOURCES = audio_output/waveout.c \
 	audio_output/windows_audio_common.h
 libwaveout_plugin_la_LIBADD = -lwinmm
diff --git a/configure.ac b/configure.ac
index 121e8c9..6fe659e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -864,7 +864,7 @@ dnl
 dnl  Compiler warnings
 dnl
 
-RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
+RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var])
 RDC_PROG_CC_FLAGS([-pipe])
 AC_LANG_PUSH([C++])
 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
@@ -2532,7 +2532,7 @@ then
       VLC_SAVE_FLAGS
       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
-      AC_CHECK_HEADERS(postproc/postprocess.h)
+      AC_CHECK_HEADERS(libpostproc/postprocess.h)
       VLC_ADD_PLUGIN([postproc])
       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
diff --git a/modules/gui/qt4/Makefile.am b/modules/gui/qt4/Makefile.am
index 1a564cf..4d12501 100644
--- a/modules/gui/qt4/Makefile.am
+++ b/modules/gui/qt4/Makefile.am
@@ -22,7 +22,7 @@ else
 if HAVE_WIN32
 libqt4_plugin_la_LIBADD += -lole32 -lcomctl32 -luuid
 else
-libqt4_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIB) -lX11
+libqt4_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIB)
 endif
 endif
 if HAVE_DARWIN
diff --git a/modules/video_output/Makefile.in b/modules/video_output/Makefile.in
index ba02f97..e9b7b36 100644
--- a/modules/video_output/Makefile.in
+++ b/modules/video_output/Makefile.in
@@ -123,7 +123,7 @@ host_triplet = @host@
 @HAVE_KVA_TRUE@am__append_19 = libkva_plugin.la
 @HAVE_ANDROID_TRUE@am__append_20 = libandroid_native_window_plugin.la
 @HAVE_ANDROID_TRUE@@HAVE_EGL_TRUE@am__append_21 = libegl_android_plugin.la
-@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@am__append_22 = $(X_LIBS) $(X_PRE_LIBS) -lX11
+@HAVE_DARWIN_FALSE@@HAVE_WIN32_FALSE@am__append_22 = $(X_LIBS) $(X_PRE_LIBS) -lX112
 subdir = modules/video_output
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/dolt.m4 \
diff --git a/modules/video_output/Modules.am b/modules/video_output/Modules.am
index df8fbf6..012d93b 100644
--- a/modules/video_output/Modules.am
+++ b/modules/video_output/Modules.am
@@ -228,7 +228,7 @@ libcaca_plugin_la_CFLAGS = $(AM_CFLAGS) $(CACA_CFLAGS)
 libcaca_plugin_la_LIBADD = $(CACA_LIBS)
 if !HAVE_WIN32
 if !HAVE_DARWIN
-libcaca_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIBS) -lX11
+libcaca_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIBS)
 endif
 endif
 libcaca_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)'
