Index: Makefile.in
===================================================================
--- Makefile.in	(revision 10932)
+++ Makefile.in	(working copy)
@@ -100,6 +100,8 @@
 LT_LDFLAGS = @LT_LDFLAGS@
 LT_NO_UNDEFINED = @LT_NO_UNDEFINED@
 LT_CXX_LIBADD = @LT_CXX_LIBADD@
+LT_SHLIBPATH_VAR = @LT_SHLIBPATH_VAR@
+LT_SHLIBPATH_PREFIX = @LT_SHLIBPATH_PREFIX@
 
 INCLUDES = @SVN_EXTRA_INCLUDES@ @SVN_NEON_INCLUDES@                    \
            @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@
@@ -227,6 +229,7 @@
 	$(INSTALL_DATA) subversion/bindings/java/javahl/svn-javahl.jar $(DESTDIR)$(javahl_javadir);
 
 INSTALL_EXTRA_JAVAHL_LIB=@INSTALL_EXTRA_JAVAHL_LIB@
+FIX_JAVAHL_LIB=@FIX_JAVAHL_LIB@
 
 APXS = @APXS@ 
 
@@ -317,20 +320,32 @@
 install-static: @INSTALL_STATIC_RULES@
 
 # JavaHL target aliases
-javahl: javahl-java javahl-javah javahl-lib @JAVAHL_TESTS_TARGET@
+SVN_JAVAHL_LTLIB=subversion/bindings/java/javahl/native/libsvnjavahl-1.la
+fix-javahl-lib:
+	$(FIX_JAVAHL_LIB)
+javahl: subversion/bindings/java/javahl/classes javahl-java javahl-javah \
+	javahl-lib fix-javahl-lib @JAVAHL_TESTS_TARGET@
+subversion/bindings/java/javahl/classes:
+	$(MKDIR) $@
+
 install-javahl: install-javahl-java install-javahl-javah install-javahl-lib
-check-javahl:
-	$(JAVA) -Djava.library.path=$(libdir) -classpath subversion/bindings/java/javahl/classes:$(javahl_tests_CLASSPATH) org.tigris.subversion.javahl.tests.BasicTests
+check-javahl: javahl
+	$(LIBTOOL) -dlopen $(SVN_JAVAHL_LTLIB) --mode=execute $(SHELL) -c \
+	'$(JAVA) -Djava.library.path=$(LT_SHLIBPATH_PREFIX)subversion/bindings/java/javahl/native/_libs:$(libdir) -classpath subversion/bindings/java/javahl/classes:$(javahl_tests_CLASSPATH) org.tigris.subversion.javahl.tests.BasicTests'
 
 # Different versions of SWIG generate the Java source files in
 # different directories.
+SVN_SWIG_JAVA_LTLIB=$(SWIG_JAVA_DIR)/libsvn_swig_java/libsvn_swig_java-1.la
 swig-java-setup:
 	if [ ! -d $(SWIG_JAVA_DIR)/build ]; then mkdir $(SWIG_JAVA_DIR)/build; fi; \
 	if [ ! -f $(SWIG_JAVA_DIR)/org/tigris/subversion/swig/clientJNI.java ]; then mv $(SWIG_JAVA_DIR)/*.java $(SWIG_JAVA_DIR)/org/tigris/subversion/swig; fi
 
 # SWIG/Java testing
 check-swig-java: swig-java-tests
-	$(JAVA) -Djava.library.path=$(libdir):$(SVN_APR_PREFIX)/lib -classpath $(SWIG_JAVA_DIR)/build/svn-api.jar:$(JAVA_CLASSPATH) org.tigris.subversion.test.BasicTests
+	$(LIBTOOL) -dlopen $(SVN_SWIG_JAVA_LTLIB) \
+		-dlopen $(SWIG_JAVA_DIR)/_core.la \
+	--mode=execute $(SHELL) -c \
+		'$(JAVA) -Djava.library.path=$(LT_SHLIBPATH_PREFIX)$(SWIG_JAVA_DIR)/.libs:$(SWIG_JAVA_DIR)/libsvn_swig_java/.libs:$(libdir):$(SVN_APR_PREFIX)/lib -classpath $(SWIG_JAVA_DIR)/build:$(SWIG_JAVA_DIR)/build/svn-api.jar:$(JAVA_CLASSPATH) org.tigris.subversion.test.BasicTests'
 
 # "make check CLEANUP=true" will clean up directories for successful tests.
 # "make check TESTS=subversion/tests/clients/cmdline/basic_tests.py"
Index: configure.in
===================================================================
--- configure.in	(revision 10932)
+++ configure.in	(working copy)
@@ -242,6 +242,21 @@
 esac
 AC_SUBST(LT_NO_UNDEFINED)
 
+AC_MSG_CHECKING([for shared library path variable name])
+LT_SHLIBPATH_VAR=$shlibpath_var
+AC_MSG_RESULT([$LT_SHLIBPATH_VAR])
+AC_SUBST(LT_SHLIBPATH_VAR)
+
+AC_MSG_CHECKING([for shared library path prefix for testcases])
+if test -n "$LT_SHLIBPATH_VAR"; then
+  LT_SHLIBPATH_PREFIX='$$$(LT_SHLIBPATH_VAR):'
+  AC_MSG_RESULT([$LT_SHLIBPATH_PREFIX])
+else
+  LT_SHLIBPATH_PREFIX=""
+  AC_MSG_RESULT([none])
+fi
+AC_SUBST(LT_SHLIBPATH_PREFIX)
+
 NEON_WANTED_REGEX="`sed -n '/NEON_WANTED_REGEX=/s/.*=//p' $srcdir/build/buildcheck.sh`"
 dnl You can skip the neon version check only if you know what you are doing 
 AC_ARG_ENABLE(neon-version-check,
@@ -641,7 +656,9 @@
     fi
   ])
 
+
 INSTALL_EXTRA_JAVAHL_LIB=""
+FIX_JAVAHL_LIB=""
 JAVAHL_TESTS_TARGET=""
 LT_CXX_LIBADD=""
 if test "$do_javahl_build" = "yes"; then
@@ -650,6 +667,7 @@
   if test "$os_arch" = "Darwin"; then
     dnl On Darwin, JNI libs must be installed as .jnilib
     INSTALL_EXTRA_JAVAHL_LIB='ln -sf $(libdir)/libsvnjavahl-1.dylib $(libdir)/libsvnjavahl-1.jnilib'
+    FIX_JAVAHL_LIB='ln -sf libsvnjavahl-1.dylib subversion/bindings/java/javahl/native/.libs/libsvnjavahl-1.jnilib'
   fi
   # This segment (and the rest of r10800) is very likely unnecessary
   # with libtool 1.5, which automatically adds libstdc++ as a
@@ -665,6 +683,7 @@
   fi
 fi
 AC_SUBST(INSTALL_EXTRA_JAVAHL_LIB)
+AC_SUBST(FIX_JAVAHL_LIB)
 AC_SUBST(LT_CXX_LIBADD)
 
 AC_ARG_WITH(junit,


