diff --git a/common/rfb/ColourMap.h b/common/rfb/ColourMap.h
index 22d6789..c024adc 100644
--- a/common/rfb/ColourMap.h
+++ b/common/rfb/ColourMap.h
@@ -30,12 +30,13 @@
   class ColourMap {
   public:
     virtual void lookup(int index, int* r, int* g, int* b)=0;
+    virtual ~ColourMap() {}
   };
 
   class SimpleColourMap : public ColourMap {
   public:
     SimpleColourMap(int size = 256) { table = new Colour[size]; };
-    ~SimpleColourMap() { delete [] table; };
+    virtual ~SimpleColourMap() { delete [] table; };
 
     void lookup(int index, int* r, int* g, int* b)
     { *r = table[index].r; *g = table[index].g; *b = table[index].b; };
diff --git a/common/rfb/ImageGetter.h b/common/rfb/ImageGetter.h
index 290249f..2e7bf37 100644
--- a/common/rfb/ImageGetter.h
+++ b/common/rfb/ImageGetter.h
@@ -25,6 +25,7 @@
   public:
     virtual void getImage(void* imageBuf,
                           const Rect& r, int stride=0) = 0;
+    virtual ~ImageGetter() {}
   };
 }
 #endif
diff --git a/common/rfb/PixelFormat.cxx b/common/rfb/PixelFormat.cxx
index b51adab..c5bec82 100644
--- a/common/rfb/PixelFormat.cxx
+++ b/common/rfb/PixelFormat.cxx
@@ -299,8 +299,6 @@
 void PixelFormat::rgbFromBuffer(rdr::U8* dst, const rdr::U8* src,
                                 int w, int pitch, int h, ColourMap* cm) const
 {
-  rdr::U8 *rowptr, *colptr;
-
   if (is888()) {
     // Optimised common case
     int rindex, gindex, bindex;
diff --git a/common/rfb/TightEncoder.cxx b/common/rfb/TightEncoder.cxx
index b7ef223..1b37c8a 100644
--- a/common/rfb/TightEncoder.cxx
+++ b/common/rfb/TightEncoder.cxx
@@ -317,7 +317,6 @@
   Rect sr, bestr;
   int dx, dy, dw, dh;
   rdr::U32 colorValue;
-  int maxRectSize = pconf->maxRectSize;
   int maxRectWidth = pconf->maxRectWidth;
   int nMaxWidth = (w > maxRectWidth) ? maxRectWidth : w;
   int nMaxRows = pconf->maxRectSize / nMaxWidth;
