diff --git a/common/rfb/CMsgReader.cxx b/common/rfb/CMsgReader.cxx
index 04846ef..96ddf44 100644
--- a/common/rfb/CMsgReader.cxx
+++ b/common/rfb/CMsgReader.cxx
@@ -23,19 +23,17 @@
 #include <rfb/util.h>
 #include <rfb/CMsgHandler.h>
 #include <rfb/CMsgReader.h>
-#include <rfb/Decoder.h>
 
 using namespace rfb;
 
 CMsgReader::CMsgReader(CMsgHandler* handler_, rdr::InStream* is_)
   : imageBufIdealSize(0), handler(handler_), is(is_),
-    imageBuf(0), imageBufSize(0), nUpdateRectsLeft(0)
+    nUpdateRectsLeft(0)
 {
 }
 
 CMsgReader::~CMsgReader()
 {
-  delete [] imageBuf;
 }
 
 void CMsgReader::readServerInit()
@@ -242,23 +240,3 @@
 
   handler->setExtendedDesktopSize(x, y, w, h, layout);
 }
-
-rdr::U8* CMsgReader::getImageBuf(int required, int requested, int* nPixels)
-{
-  int requiredBytes = required * (handler->cp.pf().bpp / 8);
-  int requestedBytes = requested * (handler->cp.pf().bpp / 8);
-  int size = requestedBytes;
-  if (size > imageBufIdealSize) size = imageBufIdealSize;
-
-  if (size < requiredBytes)
-    size = requiredBytes;
-
-  if (imageBufSize < size) {
-    imageBufSize = size;
-    delete [] imageBuf;
-    imageBuf = new rdr::U8[imageBufSize];
-  }
-  if (nPixels)
-    *nPixels = imageBufSize / (handler->cp.pf().bpp / 8);
-  return imageBuf;
-}
diff --git a/common/rfb/CMsgReader.h b/common/rfb/CMsgReader.h
index 3592ef8..42c6496 100644
--- a/common/rfb/CMsgReader.h
+++ b/common/rfb/CMsgReader.h
@@ -46,7 +46,6 @@
     void readMsg();
 
     rdr::InStream* getInStream() { return is; }
-    rdr::U8* getImageBuf(int required, int requested=0, int* nPixels=0);
 
     int imageBufIdealSize;
 
@@ -67,8 +66,6 @@
 
     CMsgHandler* handler;
     rdr::InStream* is;
-    rdr::U8* imageBuf;
-    int imageBufSize;
     int nUpdateRectsLeft;
   };
 }
