diff --git a/unix/xserver11.patch b/unix/xserver11.patch
new file mode 100644
index 0000000..bae1bd3
--- /dev/null
+++ b/unix/xserver11.patch
@@ -0,0 +1,93 @@
+diff -up xserver/configure.ac.vnc xserver/configure.ac
+--- xserver/configure.ac.vnc	2009-03-17 14:04:36.000000000 -0500
++++ xserver/configure.ac	2009-03-17 14:13:47.000000000 -0500
+***************
+*** 30,34 ****
+  AC_CONFIG_SRCDIR([Makefile.am])
+  AM_INIT_AUTOMAKE([dist-bzip2 foreign])
+- AM_MAINTAINER_MODE
+  
+  dnl this gets generated by autoheader, and thus contains all the defines.  we
+--- 30,33 ----
+***************
+*** 54,57 ****
+--- 53,57 ----
+  
+  AC_PROG_CC
++ AC_PROG_CXX
+  AM_PROG_AS
+  AC_PROG_INSTALL
+***************
+*** 944,947 ****
+--- 944,953 ----
+  
+  
++ dnl Xvnc DDX
++ 
++ AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC"])
++ AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB"])
++ 
++ 
+  dnl Xnest DDX
+  
+***************
+*** 1037,1040 ****
+--- 1043,1048 ----
+  xorg_bus_sparc=no
+  
++ AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
++ 
+  if test "x$XORG" = xyes -o "x$XGL" = xyes; then
+  	XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
+***************
+*** 1247,1251 ****
+  	AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
+  	AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
+- 	AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
+  	AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
+  	AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
+--- 1255,1258 ----
+***************
+*** 1711,1714 ****
+--- 1718,1722 ----
+  hw/dmx/Makefile
+  hw/vfb/Makefile
++ hw/vnc/Makefile
+  hw/xgl/Makefile
+  hw/xgl/egl/Makefile
+diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
+--- xserver/Makefile.am.vnc	2009-03-17 14:13:54.000000000 -0500
++++ xserver/Makefile.am	2009-03-17 14:14:50.000000000 -0500
+***************
+*** 74,78 ****
+  	hw \
+  	$(XPDDX_DIR) \
+! 	$(XPCONFIG_DIR)
+  
+  aclocaldir = $(datadir)/aclocal
+--- 74,79 ----
+  	hw \
+  	$(XPDDX_DIR) \
+! 	$(XPCONFIG_DIR) \
+! 	hw/vnc
+  
+  aclocaldir = $(datadir)/aclocal
+diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
+--- xserver/mi/miinitext.c.vnc	2009-03-17 14:15:12.000000000 -0500
++++ xserver/mi/miinitext.c	2009-03-17 14:16:27.000000000 -0500
+***************
+*** 298,301 ****
+--- 298,302 ----
+  extern void MITMiscExtensionInit(INITARGS);
+  #endif
++ extern void vncExtensionInit(INITARGS);
+  #ifdef XIDLE
+  extern void XIdleExtensionInit(INITARGS);
+***************
+*** 578,581 ****
+--- 579,583 ----
+      if (!noMITMiscExtension) MITMiscExtensionInit();
+  #endif
++     vncExtensionInit();
+  #ifdef XIDLE
+      if (!noXIdleExtension) XIdleExtensionInit();
