diff --git a/common/rfb/SMsgWriter.cxx b/common/rfb/SMsgWriter.cxx
index f3079ee..8a6ce66 100644
--- a/common/rfb/SMsgWriter.cxx
+++ b/common/rfb/SMsgWriter.cxx
@@ -24,6 +24,7 @@
 #include <rfb/UpdateTracker.h>
 #include <rfb/SMsgWriter.h>
 #include <rfb/LogWriter.h>
+#include <rfb/JpegEncoder.h>
 
 using namespace rfb;
 
@@ -39,6 +40,7 @@
     bytesSent[i] = 0;
     rectsSent[i] = 0;
   }
+  jpegEncoder = new JpegEncoder(this);
 }
 
 SMsgWriter::~SMsgWriter()
@@ -56,6 +58,7 @@
   vlog.info("  raw bytes equivalent %d, compression ratio %f",
           rawBytesEquivalent, (double)rawBytesEquivalent / bytes);
   delete [] imageBuf;
+  delete jpegEncoder;
 }
 
 void SMsgWriter::writeSetColourMapEntries(int firstColour, int nColours,
@@ -169,6 +172,11 @@
   return encoders[encoding]->writeRect(r, ig, actual);
 }
 
+void SMsgWriter::writeVideoRect(PixelBuffer *pb, const Rect& r)
+{
+  jpegEncoder->writeRect(pb, r);
+}
+
 void SMsgWriter::writeCopyRect(const Rect& r, int srcX, int srcY)
 {
   startRect(r,encodingCopyRect);
diff --git a/common/rfb/SMsgWriter.h b/common/rfb/SMsgWriter.h
index 17e3481..490d556 100644
--- a/common/rfb/SMsgWriter.h
+++ b/common/rfb/SMsgWriter.h
@@ -25,6 +25,7 @@
 #include <rdr/types.h>
 #include <rfb/encodings.h>
 #include <rfb/Encoder.h>
+#include <rfb/PixelBuffer.h>
 
 namespace rdr { class OutStream; }
 
@@ -36,6 +37,7 @@
   class ColourMap;
   class Region;
   class UpdateInfo;
+  class JpegEncoder;
 
   class WriteSetCursorCallback {
   public:
@@ -129,6 +131,8 @@
 
     virtual void writeCopyRect(const Rect& r, int srcX, int srcY);
 
+    virtual void writeVideoRect(PixelBuffer *pb, const Rect& r);
+
     virtual void startRect(const Rect& r, unsigned int enc)=0;
     virtual void endRect()=0;
 
@@ -154,12 +158,14 @@
     rdr::OutStream* os;
 
     Encoder* encoders[encodingMax+1];
+    JpegEncoder* jpegEncoder;
     int lenBeforeRect;
     unsigned int currentEncoding;
     int updatesSent;
     int bytesSent[encodingMax+1];
     int rectsSent[encodingMax+1];
     int rawBytesEquivalent;
+    // FIXME: Gather statistics for JpegEncoder as well.
 
     rdr::U8* imageBuf;
     int imageBufSize;
