diff --git a/turbojpeg.c b/turbojpeg.c
index c875fd9..21599c8 100644
--- a/turbojpeg.c
+++ b/turbojpeg.c
@@ -145,7 +145,7 @@
 }
 
 static int setCompDefaults(struct jpeg_compress_struct *cinfo,
-	int pixelFormat, int subsamp, int jpegQual)
+	int pixelFormat, int subsamp, int jpegQual, int flags)
 {
 	int retval=0;
 
@@ -191,7 +191,7 @@
 	if(jpegQual>=0)
 	{
 		jpeg_set_quality(cinfo, jpegQual, TRUE);
-		if(jpegQual>=96) cinfo->dct_method=JDCT_ISLOW;
+		if(jpegQual>=96 || flags&TJFLAG_ACCURATEDCT) cinfo->dct_method=JDCT_ISLOW;
 		else cinfo->dct_method=JDCT_FASTEST;
 	}
 	if(subsamp==TJSAMP_GRAY)
@@ -210,7 +210,7 @@
 }
 
 static int setDecompDefaults(struct jpeg_decompress_struct *dinfo,
-	int pixelFormat)
+	int pixelFormat, int flags)
 {
 	int retval=0;
 
@@ -258,6 +258,8 @@
 			_throw("Unsupported pixel format");
 	}
 
+	if(flags&TJFLAG_FASTDCT) dinfo->dct_method=JDCT_FASTEST;
+
 	bailout:
 	return retval;
 }
@@ -618,7 +620,7 @@
 		alloc=0;  *jpegSize=tjBufSize(width, height, jpegSubsamp);
 	}
 	jpeg_mem_dest_tj(cinfo, jpegBuf, jpegSize, alloc);
-	if(setCompDefaults(cinfo, pixelFormat, jpegSubsamp, jpegQual)==-1)
+	if(setCompDefaults(cinfo, pixelFormat, jpegSubsamp, jpegQual, flags)==-1)
 		return -1;
 
 	jpeg_start_compress(cinfo, TRUE);
@@ -726,7 +728,7 @@
 
 	yuvsize=tjBufSizeYUV(width, height, subsamp);
 	jpeg_mem_dest_tj(cinfo, &dstBuf, &yuvsize, 0);
-	if(setCompDefaults(cinfo, pixelFormat, subsamp, -1)==-1) return -1;
+	if(setCompDefaults(cinfo, pixelFormat, subsamp, -1, flags)==-1) return -1;
 
 	jpeg_start_compress(cinfo, TRUE);
 	pw=PAD(width, cinfo->max_h_samp_factor);
@@ -955,7 +957,7 @@
 
 	jpeg_mem_src_tj(dinfo, jpegBuf, jpegSize);
 	jpeg_read_header(dinfo, TRUE);
-	if(setDecompDefaults(dinfo, pixelFormat)==-1)
+	if(setDecompDefaults(dinfo, pixelFormat, flags)==-1)
 	{
 		retval=-1;  goto bailout;
 	}
@@ -1110,6 +1112,7 @@
 	}
 
 	if(flags&TJFLAG_FASTUPSAMPLE) dinfo->do_fancy_upsampling=FALSE;
+	if(flags&TJFLAG_FASTDCT) dinfo->dct_method=JDCT_FASTEST;
 	dinfo->raw_data_out=TRUE;
 
 	jpeg_start_decompress(dinfo);
