diff --git a/bindings/java/build-unix.xml b/bindings/java/build-unix.xml
index 7e9cab9d6cfff023a0d688342d59a81de32d9ba9..7d50e5b5809f978ffa44d3801648e973686f14f4 100644
--- a/bindings/java/build-unix.xml
+++ b/bindings/java/build-unix.xml
@@ -42,10 +42,16 @@
         <property environment="env"/>
 		<property name="jni.dylib" location="${basedir}/jni/.libs/libtsk_jni.dylib" />
 		<property name="jni.jnilib" value="libtsk_jni.jnilib" />
+		<property name="zlib.jni" location="/usr/lib/libz.dylib"/>
+		<property name="libewf.jni" location="/usr/local/lib/libewf.dylib"/>
 		<!-- x86_64 -->
         <copy file="${jni.dylib}" tofile="${x86_64}/mac/${jni.jnilib}"/>
+		<copy file="${zlib.jni}" tofile="${x86_64}/mac/zlib.dylib"/>
+		<copy file="${libewf.jni}" tofile="${x86_64}/mac/libewf.dylib"/>
 		<!-- amd64 -->
 		<copy file="${jni.dylib}" tofile="${amd64}/mac/${jni.jnilib}"/>
+		<copy file="${zlib.jni}" tofile="${x86_64}/mac/zlib.dylib"/>
+		<copy file="${libewf.jni}" tofile="${x86_64}/mac/libewf.dylib"/>
     </target>
 
     <!-- Non-OS X -->
diff --git a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java
index 502fb99025ae524af6a6e908581c4fb38e979c08..dd7e506dfec352291f7cbccc0c340a4988a84831 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java
@@ -38,6 +38,7 @@ public class LibraryUtils {
 	public static final Lib[] CRT_LIBS = new Lib[] { Lib.MSVCP, Lib.MSVCR };
 	
 	public static final Lib[] OTHER_LIBS = new Lib[] { Lib.ZLIB, Lib.LIBEWF };
+
 	/**
 	 * The libraries the TSK Datamodel needs.
 	 */
@@ -71,35 +72,13 @@ public String getUnixName() {
 	 * @return 
 	 */
 	public static boolean loadAuxilliaryLibs() {
+		System.out.println("Java lib path: " + System.getProperty("java.library.path"));
 		boolean loaded = true;
         if (LibraryUtils.isWindows()) {
-            try { 
-                // on windows force loading ms crt dependencies first
-                // in case linker can't find them on some systems
-                // Note: if shipping with a different CRT version, this will only print a warning
-                // and try to use linker mechanism to find the correct versions of libs.
-                // We should update this if we officially switch to a new version of CRT/compiler
-                for(LibraryUtils.Lib crt : LibraryUtils.getCRTLibs()) {
-                    loaded = LibraryUtils.loadLibFromJar(crt);
-					if(!loaded) {
-						System.out.println("SleuthkitJNI: failed to load " + crt.getLibName());
-					} else {
-						System.out.println("SleuthkitJNI: loaded " + crt.getLibName());
-					}
-                }
-            } catch (UnsatisfiedLinkError e1) {
-                System.out.println(e1.toString());
-                try {
-                    //Try to load from system path.
-                    System.out.println("Can't find CRT libraries, attempting to load from System.loadLibrary");
-                    System.loadLibrary("msvcr100");
-                    System.loadLibrary("msvcp100");
-					loaded = true;
-                } catch (UnsatisfiedLinkError e2) {
-                    System.out.println("SleuthkitJNI: error loading CRT libraries, " + e2.toString());
-					loaded = false;
-                }
-            }
+            loaded = LibraryUtils.loadCRTLibs();
+		}
+		
+		if (! LibraryUtils.isLinux()) {
 			
 			for(LibraryUtils.Lib lib : LibraryUtils.getLibs()) {
 				loaded = LibraryUtils.loadLibFromJar(lib);
@@ -110,9 +89,11 @@ public static boolean loadAuxilliaryLibs() {
 				}
 			}
 		} else {
+			System.out.println("In unix path.");
 			// Unix platform
 			for (Lib lib : LibraryUtils.getLibs()) {
 				try {
+					System.out.println("Lib name: " + lib.getUnixName());
 					System.loadLibrary(lib.getUnixName());
 					System.out.println("SleuthkitJNI: loaded " + lib.getLibName());
 				} catch (UnsatisfiedLinkError e) {
@@ -138,6 +119,43 @@ public static boolean loadSleuthkitJNI() {
 		}
 		return loaded;
 	}
+	
+	/** Load the CRT Libraries.
+	 * 
+	 * @return 
+	 */
+	private static boolean loadCRTLibs() {
+		boolean loaded = true;
+		try { 
+			// on windows force loading ms crt dependencies first
+			// in case linker can't find them on some systems
+			// Note: if shipping with a different CRT version, this will only print a warning
+			// and try to use linker mechanism to find the correct versions of libs.
+			// We should update this if we officially switch to a new version of CRT/compiler
+			for(LibraryUtils.Lib crt : LibraryUtils.getCRTLibs()) {
+				loaded = LibraryUtils.loadLibFromJar(crt);
+				if(!loaded) {
+					System.out.println("SleuthkitJNI: failed to load " + crt.getLibName());
+				} else {
+					System.out.println("SleuthkitJNI: loaded " + crt.getLibName());
+				}
+			}
+		} catch (UnsatisfiedLinkError e1) {
+			System.out.println(e1.toString());
+			try {
+				//Try to load from system path.
+				System.out.println("Can't find CRT libraries, attempting to load from System.loadLibrary");
+				System.loadLibrary("msvcr100");
+				System.loadLibrary("msvcp100");
+				loaded = true;
+			} catch (UnsatisfiedLinkError e2) {
+				System.out.println("SleuthkitJNI: error loading CRT libraries, " + e2.toString());
+				loaded = false;
+			}
+		}
+		return loaded;
+	}
+		
 	/**
 	 * Get the name of the current platform.
 	 *