diff --git a/unix/x0vncserver/XPixelBuffer.cxx b/unix/x0vncserver/XPixelBuffer.cxx
index 2692c18..164c704 100644
--- a/unix/x0vncserver/XPixelBuffer.cxx
+++ b/unix/x0vncserver/XPixelBuffer.cxx
@@ -29,16 +29,33 @@
 
 XPixelBuffer::XPixelBuffer(Display *dpy, Image* image,
                            int offsetLeft, int offsetTop,
-                           const PixelFormat& pf, ColourMap* cm)
-  : FullFramePixelBuffer(pf, image->xim->width, image->xim->height,
-                         (rdr::U8 *)image->xim->data, cm),
+                           ColourMap* cm)
+  : FullFramePixelBuffer(),
     m_dpy(dpy),
     m_image(image),
     m_offsetLeft(offsetLeft),
     m_offsetTop(offsetTop),
     m_stride(image->xim->bytes_per_line * 8 / image->xim->bits_per_pixel)
 {
-  // Get initial screen image.
+  // Fill in the PixelFormat structure of the parent class.
+  format.bpp        = image->xim->bits_per_pixel;
+  format.depth      = image->xim->depth;
+  format.bigEndian  = (image->xim->byte_order == MSBFirst);
+  format.trueColour = image->isTrueColor();
+  format.redShift   = ffs(image->xim->red_mask) - 1;
+  format.greenShift = ffs(image->xim->green_mask) - 1;
+  format.blueShift  = ffs(image->xim->blue_mask) - 1;
+  format.redMax     = image->xim->red_mask   >> format.redShift;
+  format.greenMax   = image->xim->green_mask >> format.greenShift;
+  format.blueMax    = image->xim->blue_mask  >> format.blueShift;
+
+  // Set up the remaining data of the parent class.
+  width_ = image->xim->width;
+  height_ = image->xim->height;
+  data = (rdr::U8 *)image->xim->data;
+  colourmap = cm;
+
+  // Get initial screen image from the X display.
   m_image->get(DefaultRootWindow(m_dpy), m_offsetLeft, m_offsetTop);
 }
 
