diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am
index 07c78b2..80e93e5 100644
--- a/unix/xserver/hw/vnc/Makefile.am
+++ b/unix/xserver/hw/vnc/Makefile.am
@@ -29,7 +29,8 @@
 
 nodist_Xvnc_SOURCES = fbrop.h fb.h pixman.h
 
-Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DNO_HW_ONLY_EXTS -DNO_MODULE_EXTS -UHAVE_CONFIG_H \
+Xvnc_CPPFLAGS = $(XVNC_CPPFLAGS) -DTIGERVNC -DNO_HW_ONLY_EXTS -DNO_MODULE_EXTS \
+	-UHAVE_CONFIG_H \
 	-DXFree86Server -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
 	-DVENDOR_STRING="\"$(VENDOR_STRING)\"" -I$(TIGERVNC_SRCDIR)/common \
 	-I$(top_srcdir)/include -I$(includedir)/pixman-1 -I$(includedir)
diff --git a/unix/xserver110.patch b/unix/xserver110.patch
index ddf450f..75fb7be 100644
--- a/unix/xserver110.patch
+++ b/unix/xserver110.patch
@@ -1,8 +1,8 @@
 diff -up xserver/configure.ac.vnc xserver/configure.ac
---- xserver/configure.ac.vnc	2011-03-22 10:41:05.508614018 +0100
-+++ xserver/configure.ac	2011-03-22 10:47:01.592023995 +0100
-@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.10.0, [https://
- RELEASE_DATE="2011-2-25"
+--- xserver/configure.ac.vnc	2011-05-11 11:19:24.410708163 +0200
++++ xserver/configure.ac	2011-05-11 11:19:26.409635824 +0200
+@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.10.1.901, [http
+ RELEASE_DATE="2011-05-06"
  AC_CONFIG_SRCDIR([Makefile.am])
  AM_INIT_AUTOMAKE([foreign dist-bzip2])
 -AM_MAINTAINER_MODE
@@ -17,7 +17,7 @@
  AC_PROG_LN_S
  AC_LIBTOOL_WIN32_DLL
  AC_DISABLE_STATIC
-@@ -1510,6 +1510,14 @@ if test "x$XVFB" = xyes; then
+@@ -1513,6 +1513,14 @@ if test "x$XVFB" = xyes; then
  	AC_SUBST([XVFB_SYS_LIBS])
  fi
  
@@ -32,7 +32,7 @@
  
  dnl Xnest DDX
  
-@@ -1548,6 +1556,8 @@ xorg_bus_linuxpci=no
+@@ -1551,6 +1559,8 @@ xorg_bus_linuxpci=no
  xorg_bus_bsdpci=no
  xorg_bus_sparc=no
  
@@ -41,7 +41,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'
-@@ -1792,7 +1802,6 @@ if test "x$XORG" = xyes; then
+@@ -1797,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])
@@ -49,7 +49,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])
-@@ -2254,6 +2263,7 @@ hw/dmx/Makefile
+@@ -2259,6 +2268,7 @@ hw/dmx/Makefile
  hw/dmx/man/Makefile
  hw/vfb/Makefile
  hw/vfb/man/Makefile
@@ -58,8 +58,8 @@
  hw/xnest/man/Makefile
  hw/xwin/Makefile
 diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
---- xserver/hw/Makefile.am.vnc	2011-03-22 10:41:05.528613984 +0100
-+++ xserver/hw/Makefile.am	2011-03-22 10:41:05.630613813 +0100
+--- xserver/hw/Makefile.am.vnc	2011-05-11 11:19:24.476705776 +0200
++++ xserver/hw/Makefile.am	2011-05-11 11:19:26.409635824 +0200
 @@ -33,7 +33,8 @@ SUBDIRS =			\
  	$(XNEST_SUBDIRS)	\
  	$(DMX_SUBDIRS)		\
@@ -71,21 +71,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	2011-03-22 10:41:05.591613878 +0100
-+++ xserver/mi/miinitext.c	2011-03-22 10:41:05.630613813 +0100
-@@ -263,6 +263,7 @@ extern void DamageExtensionInit(INITARGS
+--- xserver/mi/miinitext.c.vnc	2011-05-11 11:19:24.549703133 +0200
++++ xserver/mi/miinitext.c	2011-05-11 11:19:42.022070885 +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.
-@@ -433,6 +434,7 @@ InitExtensions(int argc, char *argv[])
+@@ -433,6 +436,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();
diff --git a/unix/xserver15.patch b/unix/xserver15.patch
index 7bf1454..63c93a5 100644
--- a/unix/xserver15.patch
+++ b/unix/xserver15.patch
@@ -1,6 +1,6 @@
 diff -up xserver/configure.ac.vnc xserver/configure.ac
---- xserver/configure.ac.vnc	2009-04-02 16:53:29.489569338 +0200
-+++ xserver/configure.ac	2009-04-02 16:53:52.967782502 +0200
+--- xserver/configure.ac.vnc	2011-05-11 11:02:51.229669941 +0200
++++ xserver/configure.ac	2011-05-11 11:03:07.754072695 +0200
 @@ -31,7 +31,7 @@ RELEASE_DATE="5 November 2008"
  REMEMBER_REMEMBER="The Fifth of November"
  AC_CONFIG_SRCDIR([Makefile.am])
@@ -58,7 +58,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])
-@@ -2184,6 +2293,7 @@ hw/dmx/input/Makefile
+@@ -2184,6 +2193,7 @@ hw/dmx/input/Makefile
  hw/dmx/glxProxy/Makefile
  hw/dmx/Makefile
  hw/vfb/Makefile
@@ -67,8 +67,8 @@
  hw/xgl/egl/Makefile
  hw/xgl/egl/module/Makefile
 diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
---- xserver/hw/Makefile.am.vnc	2009-04-02 16:54:17.365568961 +0200
-+++ xserver/hw/Makefile.am	2009-04-02 16:53:45.273568020 +0200
+--- xserver/hw/Makefile.am.vnc	2011-05-11 11:02:51.809648976 +0200
++++ xserver/hw/Makefile.am	2011-05-11 11:03:07.754072695 +0200
 @@ -43,7 +43,8 @@ SUBDIRS =			\
  	$(DMX_SUBDIRS)		\
  	$(KDRIVE_SUBDIRS)	\
@@ -80,21 +80,25 @@
  DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive xgl xprint
  
 diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
---- xserver/mi/miinitext.c.vnc	2009-04-02 16:53:29.657568676 +0200
-+++ xserver/mi/miinitext.c	2009-04-02 16:53:45.273568020 +0200
-@@ -292,6 +292,7 @@ extern void BigReqExtensionInit(INITARGS
+--- xserver/mi/miinitext.c.vnc	2011-05-11 11:02:53.156600294 +0200
++++ xserver/mi/miinitext.c	2011-05-11 11:03:31.079229673 +0200
+@@ -292,6 +292,9 @@ extern void BigReqExtensionInit(INITARGS
  #ifdef MITMISC
  extern void MITMiscExtensionInit(INITARGS);
  #endif
++#ifdef TIGERVNC
 +extern void vncExtensionInit(INITARGS);
++#endif
  #ifdef XIDLE
  extern void XIdleExtensionInit(INITARGS);
  #endif
-@@ -566,6 +567,7 @@ InitExtensions(argc, argv)
+@@ -566,6 +569,9 @@ InitExtensions(argc, argv)
  #ifdef MITMISC
      if (!noMITMiscExtension) MITMiscExtensionInit();
  #endif
++#ifdef TIGERVNC
 +    vncExtensionInit();
++#endif
  #ifdef XIDLE
      if (!noXIdleExtension) XIdleExtensionInit();
  #endif
diff --git a/unix/xserver16.patch b/unix/xserver16.patch
index e34c321..ea84bf5 100644
--- a/unix/xserver16.patch
+++ b/unix/xserver16.patch
@@ -1,6 +1,6 @@
 diff -up xserver/configure.ac.vnc xserver/configure.ac
---- xserver/configure.ac.vnc	2011-04-29 12:18:07.151996669 +0200
-+++ xserver/configure.ac	2011-04-29 12:18:30.900810648 +0200
+--- xserver/configure.ac.vnc	2011-05-11 11:06:29.966753119 +0200
++++ xserver/configure.ac	2011-05-11 11:06:37.286488408 +0200
 @@ -29,7 +29,6 @@ AC_PREREQ(2.57)
  AC_INIT([xorg-server], 1.6.5, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
  AC_CONFIG_SRCDIR([Makefile.am])
@@ -66,8 +66,8 @@
  hw/xwin/Makefile
  hw/xquartz/Makefile
 diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
---- xserver/hw/Makefile.am.vnc	2011-04-29 12:18:08.533275421 +0200
-+++ xserver/hw/Makefile.am	2011-04-29 12:18:30.900810648 +0200
+--- xserver/hw/Makefile.am.vnc	2011-05-11 11:06:30.022751094 +0200
++++ xserver/hw/Makefile.am	2011-05-11 11:06:37.286488408 +0200
 @@ -33,7 +33,8 @@ SUBDIRS =			\
  	$(XNEST_SUBDIRS)	\
  	$(DMX_SUBDIRS)		\
@@ -79,21 +79,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	2011-04-29 12:18:11.004774157 +0200
-+++ xserver/mi/miinitext.c	2011-04-29 12:18:30.905811656 +0200
-@@ -272,6 +272,7 @@ extern void DamageExtensionInit(INITARGS
+--- xserver/mi/miinitext.c.vnc	2011-05-11 11:06:30.127747296 +0200
++++ xserver/mi/miinitext.c	2011-05-11 11:07:10.182298769 +0200
+@@ -272,6 +272,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.
-@@ -438,6 +439,7 @@ InitExtensions(int argc, char *argv[])
+@@ -438,6 +441,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();
diff --git a/unix/xserver17.patch b/unix/xserver17.patch
index 87957e5..ae99bd7 100644
--- a/unix/xserver17.patch
+++ b/unix/xserver17.patch
@@ -1,6 +1,6 @@
 diff -up xserver/configure.ac.vnc xserver/configure.ac
---- xserver/configure.ac.vnc	2010-05-18 15:41:05.768168838 +0200
-+++ xserver/configure.ac	2010-05-18 15:41:24.398165924 +0200
+--- xserver/configure.ac.vnc	2011-05-11 11:09:24.923425002 +0200
++++ xserver/configure.ac	2011-05-11 11:09:32.512150522 +0200
 @@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.7.7, [https://b
  RELEASE_DATE="2010-05-04"
  AC_CONFIG_SRCDIR([Makefile.am])
@@ -57,8 +57,8 @@
  hw/xwin/Makefile
  hw/xquartz/Makefile
 diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
---- xserver/hw/Makefile.am.vnc	2010-05-18 15:41:05.860665804 +0200
-+++ xserver/hw/Makefile.am	2010-05-18 15:41:16.068165053 +0200
+--- xserver/hw/Makefile.am.vnc	2011-05-11 11:09:24.989422617 +0200
++++ xserver/hw/Makefile.am	2011-05-11 11:09:32.512150522 +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-05-18 15:41:05.870666372 +0200
-+++ xserver/mi/miinitext.c	2010-05-18 15:41:16.068165053 +0200
-@@ -274,6 +274,7 @@ extern void DamageExtensionInit(INITARGS
+--- xserver/mi/miinitext.c.vnc	2011-05-11 11:09:25.089418999 +0200
++++ xserver/mi/miinitext.c	2011-05-11 11:09:50.102514343 +0200
+@@ -274,6 +274,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.
-@@ -454,6 +455,7 @@ InitExtensions(int argc, char *argv[])
+@@ -454,6 +457,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();
diff --git a/unix/xserver18.patch b/unix/xserver18.patch
index 82932d1..77cf97c 100644
--- a/unix/xserver18.patch
+++ b/unix/xserver18.patch
@@ -1,8 +1,8 @@
 diff -up xserver/configure.ac.vnc xserver/configure.ac
---- xserver/configure.ac.vnc	2010-05-18 15:44:44.830667880 +0200
-+++ xserver/configure.ac	2010-05-18 15:45:00.748164746 +0200
-@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.8.1, [https://b
- RELEASE_DATE="2010-05-11"
+--- xserver/configure.ac.vnc	2011-05-11 11:11:33.803760465 +0200
++++ xserver/configure.ac	2011-05-11 11:11:40.998500216 +0200
+@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.8.2, [https://b
+ RELEASE_DATE="2010-07-01"
  AC_CONFIG_SRCDIR([Makefile.am])
  AM_INIT_AUTOMAKE([foreign dist-bzip2])
 -AM_MAINTAINER_MODE
@@ -57,8 +57,8 @@
  hw/xwin/Makefile
  hw/xquartz/Makefile
 diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
---- xserver/hw/Makefile.am.vnc	2010-05-18 15:44:44.918168513 +0200
-+++ xserver/hw/Makefile.am	2010-05-18 15:44:53.610664290 +0200
+--- xserver/hw/Makefile.am.vnc	2011-05-11 11:11:33.867758149 +0200
++++ xserver/hw/Makefile.am	2011-05-11 11:11:40.998500216 +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-05-18 15:44:44.918168513 +0200
-+++ xserver/mi/miinitext.c	2010-05-18 15:44:53.610664290 +0200
-@@ -274,6 +274,7 @@ extern void DamageExtensionInit(INITARGS
+--- xserver/mi/miinitext.c.vnc	2011-05-11 11:11:33.941755471 +0200
++++ xserver/mi/miinitext.c	2011-05-11 11:12:04.454651752 +0200
+@@ -274,6 +274,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.
-@@ -454,6 +455,7 @@ InitExtensions(int argc, char *argv[])
+@@ -454,6 +457,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();
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();
