diff --git a/common/rfb/ImageGetter.h b/common/rfb/ImageGetter.h
deleted file mode 100644
index 2e7bf37..0000000
--- a/common/rfb/ImageGetter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2002-2005 RealVNC Ltd.  All Rights Reserved.
- * 
- * This is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
- * USA.
- */
-#ifndef __RFB_IMAGEGETTER_H__
-#define __RFB_IMAGEGETTER_H__
-
-#include <rfb/Rect.h>
-
-namespace rfb {
-  class ImageGetter {
-  public:
-    virtual void getImage(void* imageBuf,
-                          const Rect& r, int stride=0) = 0;
-    virtual ~ImageGetter() {}
-  };
-}
-#endif
diff --git a/common/rfb/PixelBuffer.h b/common/rfb/PixelBuffer.h
index e526cc3..0b8ab04 100644
--- a/common/rfb/PixelBuffer.h
+++ b/common/rfb/PixelBuffer.h
@@ -24,7 +24,6 @@
 #ifndef __RFB_PIXEL_BUFFER_H__
 #define __RFB_PIXEL_BUFFER_H__
 
-#include <rfb/ImageGetter.h>
 #include <rfb/PixelFormat.h>
 #include <rfb/Rect.h>
 #include <rfb/Pixel.h>
@@ -33,7 +32,7 @@
 
   class Region;
 
-  class PixelBuffer : public ImageGetter {
+  class PixelBuffer {
   public:
     PixelBuffer(const PixelFormat& pf, int width, int height);
     virtual ~PixelBuffer();
@@ -73,8 +72,9 @@
 
     // Get pixel data for a given part of the buffer
     //   Data is copied into the supplied buffer, with the specified
-    //   stride.
-    virtual void getImage(void* imageBuf, const Rect& r, int stride=0);
+    //   stride. Try to avoid using this though as getBuffer() will in
+    //   most cases avoid the extra memory copy.
+    void getImage(void* imageBuf, const Rect& r, int stride=0);
 
     ///////////////////////////////////////////////
     // Framebuffer update methods
diff --git a/common/rfb/TransImageGetter.h b/common/rfb/TransImageGetter.h
index ec3a2c8..bfd9c2f 100644
--- a/common/rfb/TransImageGetter.h
+++ b/common/rfb/TransImageGetter.h
@@ -27,15 +27,13 @@
 #include <rfb/Rect.h>
 #include <rfb/PixelFormat.h>
 #include <rfb/PixelTransformer.h>
-#include <rfb/ImageGetter.h>
 
 namespace rfb {
 
   class SMsgWriter;
   class PixelBuffer;
 
-  class TransImageGetter : public ImageGetter,
-                           public PixelTransformer {
+  class TransImageGetter : public PixelTransformer {
   public:
 
     TransImageGetter(bool econ=false);
