diff --git a/common/jpeg/CMakeLists.txt b/common/jpeg/CMakeLists.txt
index cd867e7..e148c9c 100644
--- a/common/jpeg/CMakeLists.txt
+++ b/common/jpeg/CMakeLists.txt
@@ -93,6 +93,8 @@
 add_test(cjpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_CURRENT_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
 add_test(cjpeg-fast cjpeg -dct fast -opt -outfile testoutfst.jpg ${CMAKE_CURRENT_SOURCE_DIR}/testorig.ppm)
 add_test(cjpeg-fast-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_CURRENT_SOURCE_DIR}/testimgfst.jpg testoutfst.jpg)
+add_test(cjpeg-fast-100 cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg ${CMAKE_CURRENT_SOURCE_DIR}/testorig.ppm)
+add_test(cjpeg-fast-100-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_CURRENT_SOURCE_DIR}/testimgfst100.jpg testoutfst100.jpg)
 add_test(cjpeg-float cjpeg -dct float -outfile testoutflt.jpg ${CMAKE_CURRENT_SOURCE_DIR}/testorig.ppm)
 if(WITH_SIMD)
 add_test(cjpeg-float-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_CURRENT_SOURCE_DIR}/testimgflt.jpg testoutflt.jpg)
diff --git a/common/jpeg/Makefile.am b/common/jpeg/Makefile.am
index 3e43874..cfd8281 100644
--- a/common/jpeg/Makefile.am
+++ b/common/jpeg/Makefile.am
@@ -63,7 +63,7 @@
 
 TESTFILES= testorig.jpg testorig.ppm testimg.bmp testimgflt.jpg \
 	testimgfst.jpg testimgint.jpg testimgp.jpg testimgflt.ppm testimgfst.ppm \
-	testimgint.ppm testimgflt-nosimd.jpg
+	testimgint.ppm testimgflt-nosimd.jpg testimgfst100.jpg
 
 EXTRA_DIST = win $(DOCS) $(TESTFILES) CMakeLists.txt
 
@@ -77,9 +77,11 @@
 	./jpegut
 	./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testorig.ppm
 	./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testorig.ppm
+	./cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg $(srcdir)/testorig.ppm
 	./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testorig.ppm
 	cmp $(srcdir)/testimgint.jpg testoutint.jpg
 	cmp $(srcdir)/testimgfst.jpg testoutfst.jpg
+	cmp $(srcdir)/testimgfst100.jpg testoutfst100.jpg
 	cmp $(srcdir)/testimgflt.jpg testoutflt.jpg
 	./djpeg -dct int -fast -ppm -outfile testoutint.ppm $(srcdir)/testorig.jpg
 	./djpeg -dct fast -ppm -outfile testoutfst.ppm $(srcdir)/testorig.jpg
@@ -100,9 +102,11 @@
 	./jpegut
 	./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testorig.ppm
 	./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testorig.ppm
+	./cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg $(srcdir)/testorig.ppm
 	./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testorig.ppm
 	cmp $(srcdir)/testimgint.jpg testoutint.jpg
 	cmp $(srcdir)/testimgfst.jpg testoutfst.jpg
+	cmp $(srcdir)/testimgfst100.jpg testoutfst100.jpg
 	cmp $(srcdir)/testimgflt-nosimd.jpg testoutflt.jpg
 	./djpeg -dct int -fast -ppm -outfile testoutint.ppm $(srcdir)/testorig.jpg
 	./djpeg -dct fast -ppm -outfile testoutfst.ppm $(srcdir)/testorig.jpg
diff --git a/common/jpeg/README-turbo.txt b/common/jpeg/README-turbo.txt
index 40350d0..f340fd6 100755
--- a/common/jpeg/README-turbo.txt
+++ b/common/jpeg/README-turbo.txt
@@ -5,7 +5,7 @@
 libjpeg-turbo is a high-speed version of libjpeg for x86 and x86-64 processors
 which uses SIMD instructions (MMX, SSE2, etc.) to accelerate baseline JPEG
 compression and decompression.  libjpeg-turbo is generally 2-4x as fast
-as the unmodified version of libjpeg, all else being equal.
+as the unmodified version of libjpeg v6b, all else being equal.
 
 libjpeg-turbo was originally based on libjpeg/SIMD by Miyasaka Masaru, but
 the TigerVNC and VirtualGL projects made numerous enhancements to the codec,
@@ -25,21 +25,21 @@
 **     License
 *******************************************************************************
 
-Some of the optimizations to the Huffman encoder (jchuff.c) and decoder
-(jdhuff.c) were borrowed from VirtualGL, and thus any distribution of
-libjpeg-turbo which includes those optimizations must, as a whole, be subject
-to the terms of the wxWindows Library Licence, Version 3.1.  A copy of this
-license can be found in this directory under LICENSE.txt.  The wxWindows
-Library License is based on the LGPL but includes provisions which allow the
-Library to be statically linked into proprietary libraries and applications
-without requiring the resulting binaries to be distributed under the terms of
-the LGPL.
+The TurboJPEG/OSS wrapper, as well as some of the optimizations to the Huffman
+encoder (jchuff.c) and decoder (jdhuff.c), were borrowed from VirtualGL, and
+thus any distribution of libjpeg-turbo which includes those files must, as a
+whole, be subject to the terms of the wxWindows Library Licence, Version 3.1.
+A copy of this license can be found in this directory under LICENSE.txt.  The
+wxWindows Library License is based on the LGPL but includes provisions which
+allow the Library to be statically linked into proprietary libraries and
+applications without requiring the resulting binaries to be distributed under
+the terms of the LGPL.
 
-The rest of the source code, apart from the Huffman codec optimizations, falls
-under a less restrictive, BSD-style license (see README.)  You can choose to
-distribute libjpeg-turbo, as a whole, under this BSD-style license by simply
-replacing the optimized jchuff.c and jdhuff.c with their unoptimized
-counterparts from the libjpeg v6b source.
+The rest of the source code, apart from TurboJPEG/OSS and the Huffman codec
+optimizations, falls under a less restrictive, BSD-style license (see README.)
+You can choose to distribute libjpeg-turbo, as a whole, under this BSD-style
+license by simply removing TurboJPEG/OSS and replacing the optimized jchuff.c
+and jdhuff.c with their unoptimized counterparts from the libjpeg v6b source.
 
 
 *******************************************************************************
@@ -51,7 +51,7 @@
 =============================
 
 If a Unix application is dynamically linked with libjpeg, then you can replace
-libjpeg with libjpeg-turbo at run time by manipulating the LD_LIBRARY_PATH.
+libjpeg with libjpeg-turbo at run time by manipulating LD_LIBRARY_PATH.
 For instance:
 
   [Using libjpeg]
@@ -75,36 +75,36 @@
 will effectively accelerate every dynamically linked libjpeg application on the
 system.
 
-The Windows distribution of the libjpeg-turbo SDK installs jpeg62.dll into
-c:\libjpeg-turbo\bin, and the PATH environment variable can be modified such
-that this directory is searched before any others that might contain
+The libjpeg-turbo SDK for Visual C++ installs jpeg62.dll into
+c:\libjpeg-turbo[64]\bin, and the PATH environment variable can be modified
+such that this directory is searched before any others that might contain
 jpeg62.dll.  However, if jpeg62.dll also exists in an application's install
 directory, then Windows will load the application's version of it first.  Thus,
 if an application ships with jpeg62.dll, then back up the application's version
-of jpeg62.dll and copy c:\libjpeg-turbo\bin\jpeg62.dll into the application's
-install directory to accelerate it.
+of jpeg62.dll and copy c:\libjpeg-turbo[64]\bin\jpeg62.dll into the
+application's install directory to accelerate it.
 
-The version of jpeg62.dll distributed in the libjpeg-turbo SDK requires the
-Visual C++ 2008 C run time DLL (msvcr90.dll).  This library ships with more
-recent versions of Windows, but users of older versions can obtain it from the
-Visual C++ 2008 Redistributable Package, which is available as a free download
-from Microsoft's web site.
+The version of jpeg62.dll distributed in the libjpeg-turbo SDK for Visual C++
+requires the Visual C++ 2008 C run time DLL (msvcr90.dll).  msvcr90.dll ships
+with more recent versions of Windows, but users of older Windows releases can
+obtain it from the Visual C++ 2008 Redistributable Package, which is available
+as a free download from Microsoft's web site.
 
 NOTE:  Features of libjpeg which require passing a C run time structure, such
 as a file handle, from an application to libjpeg will probably not work with
-the distributed version of jpeg62.dll unless the application is also built to
-use the Visual C++ 2008 C run time DLL.  In particular, this affects
-jpeg_stdio_dest() and jpeg_stdio_src().
+the version of jpeg62.dll distributed in the libjpeg-turbo SDK for Visual C++,
+unless the application is also built to use the Visual C++ 2008 C run time DLL.
+In particular, this affects jpeg_stdio_dest() and jpeg_stdio_src().
 
 Mac applications typically embed their own copies of libjpeg.62.dylib inside
 the (hidden) application bundle, so it is not possible to globally replace
 libjpeg on OS X systems.  If an application uses a shared library version of
 libjpeg, then it may be possible to replace the application's version of it.
-This would generally involve copying libjpeg.62.dylib into the appropriate
-place in the application bundle and using install_name_tool to repoint the
-dylib to the new directory.  This requires an advanced knowledge of OS X and
-would not survive an upgrade or a re-install of the application.  Thus, it is
-not recommended for most users.
+This would generally involve copying libjpeg.62.dylib from libjpeg-turbo into
+the appropriate place in the application bundle and using install_name_tool to
+repoint the dylib to the new directory.  This requires an advanced knowledge of
+OS X and would not survive an upgrade or a re-install of the application.
+Thus, it is not recommended for most users.
 
 =======================
 Replacing TurboJPEG/IPP
@@ -115,8 +115,8 @@
 library (TurboJPEG/OSS) that emulates the TurboJPEG API using libjpeg-turbo
 instead of the closed source Intel Performance Primitives.  You can replace the
 TurboJPEG/IPP package on Linux systems with the libjpeg-turbo package in order
-to make existing releases of VirtualGL 2.1.x and TurboVNC use the new codec at
-run time.  Note that the 64-bit libjpeg-turbo packages contain only 64-bit
+to make existing releases of VirtualGL 2.1.x and TurboVNC 0.x use the new codec
+at run time.  Note that the 64-bit libjpeg-turbo packages contain only 64-bit
 binaries, whereas the TurboJPEG/IPP 64-bit packages contained both 64-bit and
 32-bit binaries.  Thus, to replace a TurboJPEG/IPP 64-bit package, install
 both the 64-bit and 32-bit versions of libjpeg-turbo.
@@ -132,8 +132,8 @@
 
 For the most part, libjpeg-turbo should work identically to libjpeg, so in
 most cases, an application can be built against libjpeg and then run against
-libjpeg-turbo.  On Unix systems, you can build against libjpeg-turbo instead
-of libjpeg by setting
+libjpeg-turbo.  On Unix systems (including Cygwin), you can build against
+libjpeg-turbo instead of libjpeg by setting
 
   CPATH=/opt/libjpeg-turbo/include
   and
@@ -142,12 +142,6 @@
 ({lib} = lib32 or lib64, depending on whether you are building a 32-bit or a
 64-bit application.)
 
-If using Cygwin, then set
-
-  CPATH=/cygdrive/c/libjpeg-turbo-gcc[64]/include
-  and
-  LIBRARY_PATH=/cygdrive/c/libjpeg-turbo-gcc[64]/lib
-
 If using MinGW, then set
 
   CPATH=/c/libjpeg-turbo-gcc[64]/include
@@ -156,11 +150,11 @@
 
 Building against libjpeg-turbo is useful, for instance, if you want to build an
 application that leverages the libjpeg-turbo colorspace extensions (see below.)
-On Linux and Solaris systems, you would still need to manipulate the
-LD_LIBRARY_PATH or sym links appropriately to use libjpeg-turbo at run time.
-On such systems, you can pass -R /opt/libjpeg-turbo/{lib} to the linker to
-force the use of libjpeg-turbo at run time rather than libjpeg (also useful if
-you want to leverage the colorspace extensions), or you can link against the
+On Linux and Solaris systems, you would still need to manipulate
+LD_LIBRARY_PATH or create appropriate sym links to use libjpeg-turbo at run
+time.  On such systems, you can pass -R /opt/libjpeg-turbo/{lib} to the linker
+to force the use of libjpeg-turbo at run time rather than libjpeg (also useful
+if you want to leverage the colorspace extensions), or you can link against the
 libjpeg-turbo static library.
 
 To force a Linux, Solaris, or MinGW application to link against the static
@@ -172,8 +166,8 @@
 line (this also works on Linux and Solaris.)
 
 To build Visual C++ applications using libjpeg-turbo, add
-c:\libjpeg-turbo[64]\include to your system or user INCLUDE environment
-variable and c:\libjpeg-turbo[64]\lib to your system or user LIB environment
+c:\libjpeg-turbo[64]\include to the system or user INCLUDE environment
+variable and c:\libjpeg-turbo[64]\lib to the system or user LIB environment
 variable, and then link against either jpeg.lib (to use jpeg62.dll) or
 jpeg-static.lib (to use the static version of libjpeg-turbo.)
 
@@ -182,8 +176,8 @@
 =====================
 
 libjpeg-turbo includes extensions which allow JPEG images to be compressed
-directly from (and decompressed directly to) buffers which use BGR, BGRA,
-RGBA, ABGR, and ARGB pixel ordering.  This is implemented with six new
+directly from (and decompressed directly to) buffers which use BGR, BGRX,
+RGBX, XBGR, and XRGB pixel ordering.  This is implemented with six new
 colorspace constants:
 
   JCS_EXT_RGB   /* red/green/blue */
@@ -205,3 +199,31 @@
 
 At run time, attempting to use these extensions with a version of libjpeg
 that doesn't support them will result in a "Bogus input colorspace" error.
+
+
+*******************************************************************************
+**     Performance pitfalls
+*******************************************************************************
+
+===============
+Restart Markers
+===============
+
+The optimized Huffman decoder in libjpeg-turbo does not handle restart markers
+in a way that makes libjpeg happy, so it is necessary to use the slow Huffman
+decoder when decompressing a JPEG image that has restart markers.  This can
+cause the decompression performance to drop by as much as 20%, but the
+performance will still be much much greater than that of libjpeg v6b.  Many
+consumer packages, such as PhotoShop, use restart markers when generating JPEG
+images, so images generated by those programs will experience this issue.
+
+===============================================
+Fast Integer Forward DCT at High Quality Levels
+===============================================
+
+The algorithm used by the SIMD-accelerated quantization function cannot produce
+correct results whenever the fast integer forward DCT is used along with a JPEG
+quality of 98-100.  Thus, libjpeg-turbo must use the non-SIMD quantization
+function in those cases.  This causes performance to drop by as much as 40%.
+It is therefore strongly advised that you use the slow integer forward DCT
+whenever encoding images with a JPEG quality of 98 or higher.
diff --git a/common/jpeg/configure.ac b/common/jpeg/configure.ac
index 9384d39..050cebd 100644
--- a/common/jpeg/configure.ac
+++ b/common/jpeg/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.56])
-AC_INIT([libjpeg-turbo], [1.0.1])
+AC_INIT([libjpeg-turbo], [1.0.2])
 
 AM_INIT_AUTOMAKE([-Wall foreign dist-bzip2])
 
diff --git a/common/jpeg/jccolor.c b/common/jpeg/jccolor.c
index 2e2bfd2..05da604 100644
--- a/common/jpeg/jccolor.c
+++ b/common/jpeg/jccolor.c
@@ -122,7 +122,7 @@
   113, 113, 114, 114, 115, 116, 116, 117, 117, 118, 119, 119,
   120, 120, 121, 122, 122, 123, 123, 124, 124, 125, 126, 126,
   127, 127, 128, 129, 129, 130, 130, 131, 131, 132, 133, 133,
-  34, 134, 135, 136, 136, 137, 137, 138, 139, 139, 140, 140,
+  134, 134, 135, 136, 136, 137, 137, 138, 139, 139, 140, 140,
   141, 141, 142, 143, 143, 144, 144, 145, 146, 146, 147, 147,
   148, 149, 149, 150
 };
diff --git a/common/jpeg/jcdctmgr.c b/common/jpeg/jcdctmgr.c
index 156957a..711f9da 100644
--- a/common/jpeg/jcdctmgr.c
+++ b/common/jpeg/jcdctmgr.c
@@ -4,6 +4,7 @@
  * Copyright (C) 1994-1996, Thomas G. Lane.
  * Copyright (C) 1999-2006, MIYASAKA Masaru.
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
+ * Copyright (C) 2011 D. R. Commander
  * This file is part of the Independent JPEG Group's software.
  * For conditions of distribution and use, see the accompanying README file.
  *
@@ -39,6 +40,8 @@
                 (JCOEFPTR coef_block, FAST_FLOAT * divisors,
                  FAST_FLOAT * workspace));
 
+METHODDEF(void) quantize (JCOEFPTR, DCTELEM *, DCTELEM *);
+
 typedef struct {
   struct jpeg_forward_dct pub;	/* public fields */
 
@@ -160,7 +163,7 @@
  * of in a consecutive manner, yet again in order to allow SIMD
  * routines.
  */
-LOCAL(void)
+LOCAL(int)
 compute_reciprocal (UINT16 divisor, DCTELEM * dtbl)
 {
   UDCTELEM2 fq, fr;
@@ -189,6 +192,9 @@
   dtbl[DCTSIZE2 * 1] = (DCTELEM) c;       /* correction + roundfactor */
   dtbl[DCTSIZE2 * 2] = (DCTELEM) (1 << (sizeof(DCTELEM)*8*2 - r));  /* scale */
   dtbl[DCTSIZE2 * 3] = (DCTELEM) r - sizeof(DCTELEM)*8; /* shift */
+
+  if(r <= 16) return 0;
+  else return 1;
 }
 
 /*
@@ -232,7 +238,9 @@
       }
       dtbl = fdct->divisors[qtblno];
       for (i = 0; i < DCTSIZE2; i++) {
-	compute_reciprocal(qtbl->quantval[i] << 3, &dtbl[i]);
+	if(!compute_reciprocal(qtbl->quantval[i] << 3, &dtbl[i])
+	  && fdct->quantize == jsimd_quantize)
+	  fdct->quantize = quantize;
       }
       break;
 #endif
@@ -266,10 +274,12 @@
 	}
 	dtbl = fdct->divisors[qtblno];
 	for (i = 0; i < DCTSIZE2; i++) {
-	  compute_reciprocal(
+	  if(!compute_reciprocal(
 	    DESCALE(MULTIPLY16V16((INT32) qtbl->quantval[i],
 				  (INT32) aanscales[i]),
-		    CONST_BITS-3), &dtbl[i]);
+		    CONST_BITS-3), &dtbl[i])
+	    && fdct->quantize == jsimd_quantize)
+	    fdct->quantize = quantize;
 	}
       }
       break;
diff --git a/common/jpeg/testimgfst100.jpg b/common/jpeg/testimgfst100.jpg
new file mode 100644
index 0000000..36d9b75
--- /dev/null
+++ b/common/jpeg/testimgfst100.jpg
Binary files differ
diff --git a/common/jpeg/turbojpegl.c b/common/jpeg/turbojpegl.c
index 2150a2d..eeaedd1 100644
--- a/common/jpeg/turbojpegl.c
+++ b/common/jpeg/turbojpegl.c
@@ -166,7 +166,8 @@
 		jpeg_set_colorspace(&j->cinfo, JCS_GRAYSCALE);
 	else
 		jpeg_set_colorspace(&j->cinfo, JCS_YCbCr);
-	j->cinfo.dct_method = JDCT_FASTEST;
+	if(qual>=96) j->cinfo.dct_method=JDCT_ISLOW;
+	else j->cinfo.dct_method=JDCT_FASTEST;
 
 	j->cinfo.comp_info[0].h_samp_factor=hsampfactor[jpegsub];
 	j->cinfo.comp_info[1].h_samp_factor=1;
