diff -Nru tsocks-1.8.orig/Makefile.in tsocks-1.8/Makefile.in
--- tsocks-1.8.orig/Makefile.in	2002-03-16 12:12:40.000000000 +0200
+++ tsocks-1.8/Makefile.in	2008-02-13 18:06:05.000000000 +0200
@@ -28,6 +28,7 @@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
 INCLUDES = -I.
 LIBS = @LIBS@
 SPECIALLIBS = @SPECIALLIBS@
@@ -41,16 +42,16 @@
 all: ${TARGETS}
 
 ${VALIDATECONF}: ${VALIDATECONF}.c ${COMMON}.o ${PARSER}.o
-	${SHCC} ${CFLAGS} ${INCLUDES} -o ${VALIDATECONF} ${VALIDATECONF}.c ${COMMON}.o ${PARSER}.o ${LIBS}
+	${SHCC} ${LDFLAGS} ${INCLUDES} -o ${VALIDATECONF} ${VALIDATECONF}.c ${COMMON}.o ${PARSER}.o ${LIBS}
 
 ${INSPECT}: ${INSPECT}.c ${COMMON}.o
-	${SHCC} ${CFLAGS} ${INCLUDES} -o ${INSPECT} ${INSPECT}.c ${COMMON}.o ${LIBS} 
+	${SHCC} ${LDFLAGS} ${INCLUDES} -o ${INSPECT} ${INSPECT}.c ${COMMON}.o ${LIBS} 
 
 ${SAVE}: ${SAVE}.c
-	${SHCC} ${CFLAGS} ${INCLUDES} -static -o ${SAVE} ${SAVE}.c
+	${SHCC} ${LDFLAGS} ${INCLUDES} -static -o ${SAVE} ${SAVE}.c
 
 ${SHLIB}: ${OBJS} ${COMMON}.o ${PARSER}.o
-	${SHCC} ${CFLAGS} ${INCLUDES} -nostdlib -shared -o ${SHLIB} ${OBJS} ${COMMON}.o ${PARSER}.o ${DYNLIB_FLAGS} ${SPECIALLIBS} ${LIBS}
+	${SHCC} ${LDFLAGS} ${INCLUDES} -nostdlib -shared -o ${SHLIB} ${OBJS} ${COMMON}.o ${PARSER}.o ${DYNLIB_FLAGS} ${SPECIALLIBS} ${LIBS}
 	ln -sf ${SHLIB} ${LIB_NAME}.so
 
 %.so: %.c
diff -Nru tsocks-1.8.orig/tsocks tsocks-1.8/tsocks
--- tsocks-1.8.orig/tsocks	2002-03-16 12:27:18.000000000 +0200
+++ tsocks-1.8/tsocks	2008-02-13 18:05:11.000000000 +0200
@@ -46,10 +46,10 @@
 	on)
 		if [ -z "$LD_PRELOAD" ]
 			then
-				export LD_PRELOAD="/usr/lib/libtsocks.so"
+				export LD_PRELOAD="/lib/libtsocks.so"
 			else
-				echo $LD_PRELOAD | grep -q "/usr/lib/libtsocks\.so" || \
-				export LD_PRELOAD="/usr/lib/libtsocks.so $LD_PRELOAD"
+				echo $LD_PRELOAD | grep -q "/lib/libtsocks\.so" || \
+				export LD_PRELOAD="/lib/libtsocks.so $LD_PRELOAD"
 		fi
 	;;
 	off)
@@ -68,10 +68,10 @@
 	*)
 		if [ -z "$LD_PRELOAD" ]
 		then
-			export LD_PRELOAD="/usr/lib/libtsocks.so"
+			export LD_PRELOAD="/lib/libtsocks.so"
 		else
-			echo $LD_PRELOAD | grep -q "/usr/lib/libtsocks\.so" || \
-			export LD_PRELOAD="/usr/lib/libtsocks.so $LD_PRELOAD"
+			echo $LD_PRELOAD | grep -q "/lib/libtsocks\.so" || \
+			export LD_PRELOAD="/lib/libtsocks.so $LD_PRELOAD"
 		fi
 
 		if [ $# = 0 ]
diff -Nru tsocks-1.8.orig/tsocks.8 tsocks-1.8/tsocks.8
--- tsocks-1.8.orig/tsocks.8	2002-03-16 12:20:51.000000000 +0200
+++ tsocks-1.8/tsocks.8	2008-02-13 18:06:05.000000000 +0200
@@ -127,8 +127,8 @@
 libtsocks in /etc/ld.so.preload. Please make sure you correctly enter the
 full path to the library in this file if you do this. If you get it wrong,
 you will be UNABLE TO DO ANYTHING with the machine and will have to boot
-it with a rescue disk and remove the file (or try the saveme program, see
-the INSTALL file for more info).  THIS IS A ***WARNING***, please be
+it with a rescue disk and remove the file (or try the tsocks-saveme program,
+simply unlinks /etc/ld.so.preload ). THIS IS A ***WARNING***, please be
 careful. Also be sure the library is in the root filesystem as all hell
 will break loose if the directory it is in is not available at boot time.
 
diff -Nru tsocks-1.8.orig/tsocks.conf.5 tsocks-1.8/tsocks.conf.5
--- tsocks-1.8.orig/tsocks.conf.5	2002-05-18 05:13:08.000000000 +0300
+++ tsocks-1.8/tsocks.conf.5	2008-02-13 18:06:05.000000000 +0200
@@ -139,21 +139,20 @@
 the version that server supports. 
 
 .TP
-validateconf
-validateconf can be used to verify the configuration file. It checks the format
-of the file and also the contents for errors. Having read the file it dumps 
-the configuration to the screen in a formatted, readable manner. This can be 
-extremely useful in debugging problems.
-
-validateconf can read a configuration file from a location other than the 
-location specified at compile time with the -f <filename> command line 
-option.
-
-Normally validateconf simply dumps the configuration read to the screen (in
-a nicely readable format), however it also has a useful 'test' mode. When
-passed a hostname/ip on the command line like -t <hostname/ip>, validateconf 
-determines which of the SOCKS servers specified in the configuration file 
-would be used by tsocks to access the specified host. 
+tsocks-validateconf
+tsocks-validateconf can be used to verify the configuration file. It checks
+the format of the file and also the contents for errors. Having read the file 
+it dumps the configuration to the screen in a formatted, readable manner.
+This can be extremely useful in debugging problems.
+
+tsocks-validateconf can read a configuration file from a location other than the 
+location specified at compile time with the -f <filename> command line option.
+
+Normally tsocks-validateconf simply dumps the configuration read to the screen 
+(in a nicely readable format), however it also has a useful 'test' mode. When
+passed a hostname/ip on the command line like -t <hostname/ip>, 
+tsocks-validateconf determines which of the SOCKS servers specified in the 
+configuration file would be used by tsocks to access the specified host. 
 
 .SH SEE ALSO
 tsocks(8)
diff -Nru tsocks-1.8.orig/validateconf.c tsocks-1.8/validateconf.c
--- tsocks-1.8.orig/validateconf.c	2002-02-07 12:49:59.000000000 +0200
+++ tsocks-1.8/validateconf.c	2008-02-13 18:06:05.000000000 +0200
@@ -23,7 +23,7 @@
 */
 
 /* Global configuration variables */ 
-char *progname = "validateconf";	      /* Name for error msgs      */
+char *progname = "tsocks-validateconf";	      /* Name for error msgs      */
 
 /* Header Files */
 #include <config.h>
