diff --git a/unix/xserver/hw/vnc/XorgGlue.c b/unix/xserver/hw/vnc/XorgGlue.c
index 141023a..baeac29 100644
--- a/unix/xserver/hw/vnc/XorgGlue.c
+++ b/unix/xserver/hw/vnc/XorgGlue.c
@@ -290,11 +290,11 @@
 #endif
 }
 
-intptr_t vncRandRGetOutputId(int scrIdx, int outputIdx)
+unsigned int vncRandRGetOutputId(int scrIdx, int outputIdx)
 {
 #ifdef RANDR
   rrScrPrivPtr rp = rrGetScrPriv(screenInfo.screens[scrIdx]);
-  return (intptr_t)rp->outputs[outputIdx];
+  return rp->outputs[outputIdx]->id;
 #else
   return 0;
 #endif
diff --git a/unix/xserver/hw/vnc/XorgGlue.h b/unix/xserver/hw/vnc/XorgGlue.h
index 63227ac..dc78f5e 100644
--- a/unix/xserver/hw/vnc/XorgGlue.h
+++ b/unix/xserver/hw/vnc/XorgGlue.h
@@ -65,7 +65,7 @@
 int vncRandRReconfigureOutput(int scrIdx, int outputIdx, int x, int y,
                               int width, int height);
 
-intptr_t vncRandRGetOutputId(int scrIdx, int outputIdx);
+unsigned int vncRandRGetOutputId(int scrIdx, int outputIdx);
 void vncRandRGetOutputDimensions(int scrIdx, int outputIdx,
                                  int *x, int *y, int *width, int *height);
 
diff --git a/unix/xserver/hw/vnc/XserverDesktop.cc b/unix/xserver/hw/vnc/XserverDesktop.cc
index 6a42890..c47f507 100644
--- a/unix/xserver/hw/vnc/XserverDesktop.cc
+++ b/unix/xserver/hw/vnc/XserverDesktop.cc
@@ -201,7 +201,7 @@
   OutputIdMap newIdMap;
 
   for (int i = 0;i < vncRandRGetOutputCount(screenIndex);i++) {
-    intptr_t outputId;
+    unsigned int outputId;
     int x, y, width, height;
 
     /* Disabled? */
@@ -654,7 +654,7 @@
 
   /* Next, reconfigure all known outputs, and turn off the other ones */
   for (int i = 0;i < vncRandRGetOutputCount(screenIndex);i++) {
-    intptr_t output;
+    unsigned int output;
 
     ScreenSet::const_iterator iter;
 
@@ -702,7 +702,7 @@
   ScreenSet::const_iterator iter;
   for (iter = layout.begin();iter != layout.end();++iter) {
     OutputIdMap::const_iterator oi;
-    intptr_t output;
+    unsigned int output;
     int i;
 
     /* Does this screen have an output already? */
diff --git a/unix/xserver/hw/vnc/XserverDesktop.h b/unix/xserver/hw/vnc/XserverDesktop.h
index 2a378ea..b611402 100644
--- a/unix/xserver/hw/vnc/XserverDesktop.h
+++ b/unix/xserver/hw/vnc/XserverDesktop.h
@@ -133,7 +133,7 @@
   rfb::Timer queryConnectTimer;
 
 #ifdef RANDR
-  typedef std::map<intptr_t, rdr::U32> OutputIdMap;
+  typedef std::map<unsigned int, rdr::U32> OutputIdMap;
   OutputIdMap outputIdMap;
 #endif
 
