diff --git a/common/rfb/JpegEncoder.cxx b/common/rfb/JpegEncoder.cxx
index b2be63f..51d48f1 100644
--- a/common/rfb/JpegEncoder.cxx
+++ b/common/rfb/JpegEncoder.cxx
@@ -19,6 +19,7 @@
 #include <rfb/JpegEncoder.h>
 #include <rdr/OutStream.h>
 #include <rfb/encodings.h>
+#include <rfb/LogWriter.h>
 
 #ifdef HAVE_DMEDIA
 #include <rfb/IrixDMJpegCompressor.h>
@@ -26,17 +27,40 @@
 
 using namespace rfb;
 
+static LogWriter vlog("JpegEncoder");
+
+BoolParameter JpegEncoder::useHardwareJPEG
+("UseHardwareJPEG",
+ "Use hardware-accelerated JPEG compressor for video if available",
+ true);
+
 const int JpegEncoder::qualityMap[10] = {
   5, 10, 15, 25, 37, 50, 60, 70, 75, 80
 };
 
-JpegEncoder::JpegEncoder(SMsgWriter* writer_) : writer(writer_)
+JpegEncoder::JpegEncoder(SMsgWriter* writer_) : writer(writer_), jcomp(0)
 {
 #ifdef HAVE_DMEDIA
-  jcomp = new IrixDMJpegCompressor;
+  if (useHardwareJPEG) {
+    vlog.debug("trying IRIX DM JPEG compressor");
+    IrixDMJpegCompressor *irixComp = new IrixDMJpegCompressor;
+    if (irixComp->isValid()) {
+      vlog.debug("initialized IRIX DM JPEG compressor successfully");
+      jcomp = irixComp;
+    } else {
+      vlog.error("warning: could not create IRIX DM JPEG compressor");
+      delete irixComp;
+    }
+  }
 #else
-  jcomp = new StandardJpegCompressor;
+  if (useHardwareJPEG) {
+    vlog.info("no hardware JPEG compressor available");
+  }
 #endif
+  if (!jcomp) {
+    vlog.debug("using software JPEG compressor");
+    jcomp = new StandardJpegCompressor;
+  }
   jcomp->setQuality(qualityMap[6]);
 }
 
diff --git a/common/rfb/JpegEncoder.h b/common/rfb/JpegEncoder.h
index 14fa104..78e08fa 100644
--- a/common/rfb/JpegEncoder.h
+++ b/common/rfb/JpegEncoder.h
@@ -21,6 +21,7 @@
 #include <rfb/SMsgWriter.h>
 #include <rfb/PixelBuffer.h>
 #include <rfb/JpegCompressor.h>
+#include <rfb/Configuration.h>
 
 //
 // JPEG Encoder.
@@ -39,6 +40,8 @@
     virtual void setQualityLevel(int level);
     virtual bool writeRect(PixelBuffer* pb, const Rect& r);
 
+    static BoolParameter useHardwareJPEG;
+
   private:
     SMsgWriter* writer;
     JpegCompressor* jcomp;
