--- xserver/hw/vnc/xorg-version.h	Mon Oct  8 15:50:23 2012
+++ xserver/hw/vnc/xorg-version.h	Mon Oct  8 15:53:10 2012
@@ -40,6 +40,8 @@
 #define XORG 111
 #elif XORG_VERSION_CURRENT < ((1 * 10000000) + (12 * 100000) + (99 * 1000))
 #define XORG 112
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (13 * 100000) + (99 * 1000))
+#define XORG 113
 #else
 #error "X.Org newer than 1.10 is not supported"
 #endif
diff -up tigervnc/unix/xserver/hw/vnc/vncHooks.cc.xorg113 tigervnc/unix/xserver/hw/vnc/vncHooks.cc
--- xserver/hw/vnc/vncHooks.cc.xorg113	2012-07-19 21:31:37.191820942 -0400
+++ xserver/hw/vnc/vncHooks.cc	2012-07-19 21:36:00.327531293 -0400
@@ -116,7 +116,7 @@ static DevPrivateKeyRec vncHooksGCKeyRec
 
 // screen functions
 
-static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen);
+static Bool vncHooksCloseScreen(ScreenPtr pScreen);
 static Bool vncHooksCreateGC(GCPtr pGC);
 static void vncHooksCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
                                RegionPtr pOldRegion);
@@ -133,7 +133,7 @@ static Bool vncHooksDisplayCursor(
 				  DeviceIntPtr pDev,
 #endif
 				  ScreenPtr pScreen, CursorPtr cursor);
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
+static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
                                  pointer pReadmask);
 #ifdef RENDER
 static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, 
@@ -335,7 +335,7 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
 // CloseScreen - unwrap the screen functions and call the original CloseScreen
 // function
 
-static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen_)
+static Bool vncHooksCloseScreen(ScreenPtr pScreen_)
 {
   SCREEN_UNWRAP(pScreen_, CloseScreen);
 
@@ -366,7 +366,7 @@ static Bool vncHooksCloseScreen(int i, S
 
   DBGPRINT((stderr,"vncHooksCloseScreen: unwrapped screen functions\n"));
 
-  return (*pScreen->CloseScreen)(i, pScreen);
+  return (*pScreen->CloseScreen)(pScreen);
 }
 
 // CreateGC - wrap the "GC funcs"
@@ -531,14 +531,14 @@ static Bool vncHooksDisplayCursor(
 // BlockHandler - ignore any changes during the block handler - it's likely
 // these are just drawing the cursor.
 
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
+static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
                                  pointer pReadmask)
 {
-  SCREEN_UNWRAP(screenInfo.screens[i], BlockHandler);
+  SCREEN_UNWRAP(pScreen_, BlockHandler);
 
   vncHooksScreen->desktop->ignoreHooks(true);
 
-  (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
+  (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
 
   vncHooksScreen->desktop->ignoreHooks(false);
 
diff -up tigervnc/unix/xserver/hw/vnc/xf86vncModule.cc.xorg113 tigervnc/unix/xserver/hw/vnc/xf86vncModule.cc
--- xserver/hw/vnc/xf86vncModule.cc.xorg113	2012-07-19 21:19:27.558942606 -0400
+++ xserver/hw/vnc/xf86vncModule.cc	2012-07-19 21:19:27.574942408 -0400
@@ -53,8 +53,6 @@ ExtensionModule vncExt =
 {
     vncExtensionInitWithParams,
     "VNC",
-    NULL,
-    NULL,
     NULL
 };
 
diff -up xserver/hw/vnc/xvnc.cc.xorg113 tigervnc/unix/xserver/hw/vnc/xvnc.cc
--- xserver/hw/vnc/xvnc.cc.xorg113	2012-07-19 21:36:33.078121854 -0400
+++ xserver/hw/vnc/xvnc.cc	2012-07-19 21:39:49.685663920 -0400
@@ -267,7 +267,7 @@ OsVendorInit()
 }
 
 void
-OsVendorFatalError()
+OsVendorFatalError(const char *f, va_list args)
 {
 }
 
@@ -1135,9 +1135,9 @@ static Bool vncRandRSetConfig (ScreenPtr
 #endif
 
 static Bool
-vfbCloseScreen(int index, ScreenPtr pScreen)
+vfbCloseScreen(ScreenPtr pScreen)
 {
-    vfbScreenInfoPtr pvfb = &vfbScreens[index];
+    vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
     int i;
  
     pScreen->CloseScreen = pvfb->closeScreen;
@@ -1149,13 +1149,13 @@ vfbCloseScreen(int index, ScreenPtr pScr
     for (i = 0; i < MAXSCREENS; i++)
 	InstalledMaps[i] = NULL;
 
-    return pScreen->CloseScreen(index, pScreen);
+    return pScreen->CloseScreen(pScreen);
 }
 
 static Bool
-vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
+vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
 {
-    vfbScreenInfoPtr pvfb = &vfbScreens[index];
+    vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
     int dpi;
     int ret;
     void *pbits;
@@ -1167,8 +1167,8 @@ vfbScreenInit(int index, ScreenPtr pScre
 
     pbits = vfbAllocateFramebufferMemory(&pvfb->fb);
     if (!pbits) return FALSE;
-    vncFbptr[index] = pbits;
-    vncFbstride[index] = pvfb->fb.paddedWidth;
+    vncFbptr[pScreen->myNum] = pbits;
+    vncFbstride[pScreen->myNum] = pvfb->fb.paddedWidth;
 
    miSetPixmapDepths();

--- xserver/configure.ac	Wed Oct 10 16:13:08 2012
+++ xserver/configure.ac	Wed Oct 10 16:13:43 2012
@@ -1628,6 +1628,8 @@
 fi
 AC_MSG_RESULT([$XORG])
 
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
+
 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'
@@ -1682,8 +1684,6 @@
 	xorg_bus_bsdpci=no
 	xorg_bus_sparc=no
 
-AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
-
 	AC_MSG_CHECKING([whether to build Xorg PCI functions])
 	if test "x$PCI" = xyes; then
 
