diff --git a/unix/xserver19.patch b/unix/xserver19.patch
index 909ff6a..79599d0 100644
--- a/unix/xserver19.patch
+++ b/unix/xserver19.patch
@@ -1,15 +1,15 @@
 diff -up xserver/configure.ac.vnc xserver/configure.ac
---- xserver/configure.ac.vnc	2010-07-20 11:34:55.086181932 +0200
-+++ xserver/configure.ac	2010-07-20 11:35:02.196706133 +0200
-@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.8.99.905, [http
- RELEASE_DATE="2010-07-14"
+--- xserver/configure.ac.vnc	2011-05-11 11:16:50.764292985 +0200
++++ xserver/configure.ac	2011-05-11 11:16:55.675101840 +0200
+@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.9.5, [https://b
+ RELEASE_DATE="2011-03-17"
  AC_CONFIG_SRCDIR([Makefile.am])
  AM_INIT_AUTOMAKE([foreign dist-bzip2])
 -AM_MAINTAINER_MODE
  
- # Require xorg-macros: XORG_DEFAULT_OPTIONS
+ # Require xorg-macros minimum of 1.10 for XORG_CHECK_SGML_DOCTOOLS
  m4_ifndef([XORG_MACROS_VERSION],
-@@ -64,6 +63,7 @@ dnl forcing an entire recompile.x
+@@ -65,6 +64,7 @@ dnl forcing an entire recompile.x
  AC_CONFIG_HEADERS(include/version-config.h)
  
  AC_PROG_CC
@@ -17,7 +17,7 @@
  AM_PROG_AS
  AC_PROG_INSTALL
  AC_PROG_LN_S
-@@ -1512,6 +1512,13 @@ if test "x$XVFB" = xyes; then
+@@ -1514,6 +1514,13 @@ if test "x$XVFB" = xyes; then
  	AC_SUBST([XVFB_SYS_LIBS])
  fi
  
@@ -31,7 +31,7 @@
  
  dnl Xnest DDX
  
-@@ -1550,6 +1557,8 @@ xorg_bus_linuxpci=no
+@@ -1552,6 +1559,8 @@ xorg_bus_linuxpci=no
  xorg_bus_bsdpci=no
  xorg_bus_sparc=no
  
@@ -40,7 +40,7 @@
  if test "x$XORG" = xyes; then
  	XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
  	XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
-@@ -1796,7 +1805,6 @@ if test "x$XORG" = xyes; then
+@@ -1798,7 +1807,6 @@ if test "x$XORG" = xyes; then
  	AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
  	AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
  	AC_DEFINE(XFree86LOADER, 1, [Building loadable XFree86 server])
@@ -48,7 +48,7 @@
  	AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
  	AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
  	AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
-@@ -2246,6 +2254,7 @@ hw/dmx/input/Makefile
+@@ -2252,6 +2260,7 @@ hw/dmx/input/Makefile
  hw/dmx/glxProxy/Makefile
  hw/dmx/Makefile
  hw/vfb/Makefile
@@ -57,8 +57,8 @@
  hw/xwin/Makefile
  hw/xwin/glx/Makefile
 diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
---- xserver/hw/Makefile.am.vnc	2010-07-20 11:34:55.276195912 +0200
-+++ xserver/hw/Makefile.am	2010-07-20 11:35:02.196706133 +0200
+--- xserver/hw/Makefile.am.vnc	2011-05-11 11:16:50.836290382 +0200
++++ xserver/hw/Makefile.am	2011-05-11 11:16:55.675101840 +0200
 @@ -33,7 +33,8 @@ SUBDIRS =			\
  	$(XNEST_SUBDIRS)	\
  	$(DMX_SUBDIRS)		\
@@ -70,21 +70,25 @@
  DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
  
 diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
---- xserver/mi/miinitext.c.vnc	2010-07-20 11:34:55.286196649 +0200
-+++ xserver/mi/miinitext.c	2010-07-20 11:35:02.196706133 +0200
-@@ -263,6 +263,7 @@ extern void DamageExtensionInit(INITARGS
+--- xserver/mi/miinitext.c.vnc	2011-05-11 11:16:50.916287489 +0200
++++ xserver/mi/miinitext.c	2011-05-11 11:17:12.758477353 +0200
+@@ -263,6 +263,9 @@ extern void DamageExtensionInit(INITARGS
  extern void CompositeExtensionInit(INITARGS);
  #endif
  extern void GEExtensionInit(INITARGS);
++#ifdef TIGERVNC
 +extern void vncExtensionInit(INITARGS);
++#endif
  
  /* The following is only a small first step towards run-time
   * configurable extensions.
-@@ -435,6 +436,7 @@ InitExtensions(int argc, char *argv[])
+@@ -435,6 +438,9 @@ InitExtensions(int argc, char *argv[])
  #ifdef XF86BIGFONT
      if (!noXFree86BigfontExtension) XFree86BigfontExtensionInit();
  #endif
++#ifdef TIGERVNC
 +    vncExtensionInit();
++#endif
  #if !defined(NO_HW_ONLY_EXTS)
  #if defined(XF86VIDMODE)
      if (!noXFree86VidModeExtension) XFree86VidModeExtensionInit();
