diff --git a/CMakeLists.txt b/CMakeLists.txt
index c8cd090..2634c42 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -193,17 +193,23 @@
   add_dependencies(turbojpeg-static simd)
 endif()
 
-add_executable(jpegut jpegut.c)
+add_executable(jpegut jpegut.c tjutil.c)
 target_link_libraries(jpegut turbojpeg)
 
-add_executable(jpegut-static jpegut.c)
+add_executable(jpegut-static jpegut.c tjutil.c)
 target_link_libraries(jpegut-static turbojpeg-static)
 
-add_executable(jpgtest jpgtest.c bmp.c)
-target_link_libraries(jpgtest turbojpeg)
+add_executable(jpgtest jpgtest.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
+  wrppm.c)
+target_link_libraries(jpgtest turbojpeg jpeg)
+set_property(TARGET jpgtest PROPERTY COMPILE_FLAGS
+  "-DBMP_SUPPORTED -DPPM_SUPPORTED")
 
-add_executable(jpgtest-static jpgtest.c bmp.c)
-target_link_libraries(jpgtest-static turbojpeg-static)
+add_executable(jpgtest-static jpgtest.c bmp.c tjutil.c rdbmp.c rdppm.c wrbmp.c
+  wrppm.c)
+target_link_libraries(jpgtest-static turbojpeg-static jpeg-static)
+set_property(TARGET jpgtest-static PROPERTY COMPILE_FLAGS
+  "-DBMP_SUPPORTED -DPPM_SUPPORTED")
 
 add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c
   rdtarga.c)
@@ -243,6 +249,7 @@
 add_test(TJUnitTest-bi-yuv ${JAVA_RUNTIME} -cp java/${OBJDIR}turbojpeg.jar -Djava.library.path=${CMAKE_CURRENT_BINARY_DIR}/${OBJDIR} TJUnitTest -bi -yuv)
 endif()
 add_test(jpegut jpegut)
+add_test(jpegut-alloc jpegut -alloc)
 add_test(jpegut-yuv jpegut -yuv)
 add_test(cjpeg-int sharedlib/cjpeg -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
 add_test(cjpeg-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
@@ -302,6 +309,7 @@
 add_test(jpegtran-crop-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgcrop.jpg testoutcrop.jpg)
 
 add_test(jpegut-static jpegut-static)
+add_test(jpegut-static-alloc jpegut-static -alloc)
 add_test(jpegut-static-yuv jpegut-static -yuv)
 add_test(cjpeg-static-int cjpeg-static -dct int -outfile testoutint.jpg ${CMAKE_SOURCE_DIR}/testorig.ppm)
 add_test(cjpeg-static-int-cmp ${CMAKE_COMMAND} -E compare_files ${CMAKE_SOURCE_DIR}/testimgint.jpg testoutint.jpg)
diff --git a/bmp.c b/bmp.c
index 01353c7..5d4c58f 100644
--- a/bmp.c
+++ b/bmp.c
@@ -33,6 +33,7 @@
 #include <jpeglib.h>
 #include <jpegint.h>
 #include "cdjpeg.h"
+#include "tjutil.h"
 #include "bmp.h"
 
 
diff --git a/jpegut.c b/jpegut.c
index 115d0cb..c7a6611 100644
--- a/jpegut.c
+++ b/jpegut.c
@@ -174,11 +174,12 @@
 	{
 		for(col=0; col<w; col++)
 		{
+			unsigned char r, g, b;
 			if(flags&TJFLAG_BOTTOMUP) index=(h-row-1)*w+col;
 			else index=row*w+col;
-			unsigned char r=buf[index*ps+roffset];
-			unsigned char g=buf[index*ps+goffset];
-			unsigned char b=buf[index*ps+boffset];
+			r=buf[index*ps+roffset];
+			g=buf[index*ps+goffset];
+			b=buf[index*ps+boffset];
 			if(((row/blocksize)+(col/blocksize))%2==0)
 			{
 				if(row<halfway)
@@ -452,7 +453,7 @@
 	if(yuv==YUVDECODE)
 	{
 		if(checkBufYUV(dstBuf, w, h, subsamp)) printf("Passed.");
-		printf("FAILED!");
+		else printf("FAILED!");
 	}
 	else
 	{
diff --git a/tjutil.c b/tjutil.c
index 5e22fee..6618d15 100644
--- a/tjutil.c
+++ b/tjutil.c
@@ -37,11 +37,12 @@
 	return (double)freq.QuadPart;
 }
 
-static double f=getfreq();
+static double f=-1.0;
 
 double gettime(void)
 {
 	LARGE_INTEGER t;
+	if(f<0.0) f=getfreq();
 	if(f==0.0) return (double)GetTickCount()/1000.;
 	else
 	{
