diff --git a/Makefile.am b/Makefile.am
index 33390d34bbf3ed82f0ef5f3d0cd8ef71943d311b..6c9be1d2e4311230e4a9907debfbc044057c88b6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -62,8 +62,9 @@ if CPPUNIT
   UNIT_TESTS=unit_tests
 endif
 
+# Compile java bindings if all of the dependencies existed
 if X_JNI
-  JAVA_BINDINGS=bindings/java/jni bindings/java
+  JAVA_BINDINGS=bindings/java
 else   
   JAVA_BINDINGS=
 endif
diff --git a/bindings/java/Makefile.am b/bindings/java/Makefile.am
index fa70d5ca8236a1b6e1c426022d1b5c7dbfd5db9d..1007a3e60430584cb1990915c7484ebf23da90e7 100644
--- a/bindings/java/Makefile.am
+++ b/bindings/java/Makefile.am
@@ -2,6 +2,9 @@ Z_PATH=@Z_PATH@
 EWF_PATH=@EWF_PATH@
 ANT_PROPS=
 
+# Compile the sub directories
+SUBDIRS = jni
+
 if X_ZLIB
   ANT_PROPS+=-Dlib.z.path=$(Z_PATH)
 endif
diff --git a/configure.ac b/configure.ac
index f1d6d10d26ca73f50215d3beb1ff70eb8c576668..ba65c1650a0fc9e73fa4ce259f579d60804382f3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -225,8 +225,9 @@ dnl sqlite requires pthread libraries - this was copied from its configure.ac
 dnl AC_SEARCH_LIBS(pthread_create, pthread)
 AC_SEARCH_LIBS(dlopen, dl)
 
-dnl Test for java/jni so that we can compile the java bindings
+dnl Test for the various java things that we need for bindings
 AS_IF([test "x$enable_java" != "xno"], [
+    dnl javac is needed to compile the JAR file
     AC_PROG_JAVAC
     if test "x$JAVAC" != x; then
         AX_JNI_INCLUDE_DIR
@@ -237,14 +238,20 @@ AS_IF([test "x$enable_java" != "xno"], [
         dnl Export the paths so that the makefile gets them
         AC_SUBST(JNI_CPPFLAGS, $JNI_CPPFLAGS)
     fi
+
+    dnl java is needed by ant
+    dnl we had one report of a system with javac and not java
     AC_PROG_JAVA
-]) dnl test enable_java
 
-dnl Test is ant is available
-AC_PATH_PROG([ANT_FOUND], [ant], [])
-AM_CONDITIONAL([X_JNI],[test "x$JNI_CPPFLAGS" != x && test "x$ANT_FOUND" != x && test "x$JAVA" != x])
+    dnl Test is ant is available
+    AC_PATH_PROG([ANT_FOUND], [ant], [])
+
+]) dnl test enable_java
 
+dnl if we found everything we need, set ax_java_support for the
+dnl status message and set X_JNI for use in Makefile
 AS_IF([test "x$JNI_CPPFLAGS" != x && test "x$ANT_FOUND" != x && test "x$JAVA" != x], [ax_java_support=yes], [ax_java_support=no])
+AM_CONDITIONAL([X_JNI],[test "x$ax_java_support" == "xyes"])
 
 AC_CONFIG_COMMANDS([tsk/tsk_incs.h],
     [echo "#ifndef _TSK_INCS_H" > tsk/tsk_incs.h