diff -Nupr BitchX/contrib/vh1.c BitchX-patched//contrib/vh1.c
--- BitchX/contrib/vh1.c	2003-04-10 22:09:05.000000000 -0300
+++ BitchX-patched//contrib/vh1.c	2010-08-07 10:30:08.000000000 -0300
@@ -30,6 +30,8 @@
 #include <netinet/in.h>
 #if !defined(linux)
 #include <netinet/in_var.h>
+#else
+#include <arpa/inet.h>
 #endif
 #include <netdb.h>
 
diff -Nupr BitchX/dll/abot/Makefile.in BitchX-patched//dll/abot/Makefile.in
--- BitchX/dll/abot/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/abot/Makefile.in	2010-08-07 10:31:33.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 autobot.o: $(srcdir)/autobot.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/autobot.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/autobot.c
 
 autobot$(SHLIB_SUFFIX): autobot.o ../dllinit.o
 	$(SHLIB_LD) autobot.o ../dllinit.o $(SHLIB_CFLAGS) -o autobot$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/acro/Makefile.in BitchX-patched//dll/acro/Makefile.in
--- BitchX/dll/acro/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/acro/Makefile.in	2010-08-07 10:31:33.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 acro.o: $(srcdir)/acro.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/acro.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/acro.c
 
 acro$(SHLIB_SUFFIX): acro.o ../dllinit.o
 	$(SHLIB_LD) acro.o ../dllinit.o $(SHLIB_CFLAGS) -o acro$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/aim/Makefile.in BitchX-patched//dll/aim/Makefile.in
--- BitchX/dll/aim/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/aim/Makefile.in	2010-08-07 10:31:33.000000000 -0300
@@ -169,22 +169,22 @@ Makefile: Makefile.in
 	  && ./config.status
 
 $(topdir)/source/compat.o: $(top_srcdir)/source/compat.c
-	$(CC) $(AIMDEFS) $(CFLAGS) \
+	$(CC) $(AIMDEFS) $(CFLAGS) $(SHLIB_CFLAGS) \
 		-c $(top_srcdir)/source/compat.c -o $(topdir)/source/compat.o
 
 toc.o: $(srcdir)/toc.c
-	$(CC) $(AIMDEFS) $(CFLAGS) -c $(srcdir)/toc.c
+	$(CC) $(AIMDEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/toc.c
 
 util.o: $(srcdir)/util.c
-	$(CC) $(AIMDEFS) $(CFLAGS) -c $(srcdir)/util.c
+	$(CC) $(AIMDEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/util.c
 
 cmd.o: $(srcdir)/cmd.c
-	$(CC) $(AIMDEFS) $(CFLAGS) -c $(srcdir)/cmd.c
+	$(CC) $(AIMDEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/cmd.c
 
 aim.o: $(srcdir)/aim.c
-	$(CC) $(AIMDEFS) $(CFLAGS) -c $(srcdir)/aim.c
+	$(CC) $(AIMDEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/aim.c
 
-aim$(SHLIB_SUFFIX): $(OBJS) 
+aim$(SHLIB_SUFFIX): $(OBJS) toc
 	$(SHLIB_LD) $(OBJS) $(SHLIB_CFLAGS) -o aim$(SHLIB_SUFFIX) -Ltoc -ltoc
 
 dummy:
diff -Nupr BitchX/dll/aim/toc/interface.c BitchX-patched//dll/aim/toc/interface.c
--- BitchX/dll/aim/toc/interface.c	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/aim/toc/interface.c	2010-08-07 10:30:08.000000000 -0300
@@ -8,6 +8,7 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 #include <time.h>
 #include "toc.h"
 
diff -Nupr BitchX/dll/aim/toc/Makefile.in BitchX-patched//dll/aim/toc/Makefile.in
--- BitchX/dll/aim/toc/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/aim/toc/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -159,7 +159,7 @@ MFLAGS = \
 #DEBUG_CFLAGS = -g -DDEBUG_LIB_TOC
 
 .c.o:
-	$(CC) $(DEFS) $(CFLAGS) $(DEBUG_CFLAGS)  -c $<
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) $(DEBUG_CFLAGS)  -c $<
 
 LOBJS = toc.o network.o util.o server.o interface.o buddy.o ll.o misc.o
 
diff -Nupr BitchX/dll/aim/toc/server.c BitchX-patched//dll/aim/toc/server.c
--- BitchX/dll/aim/toc/server.c	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/aim/toc/server.c	2010-08-07 10:29:19.000000000 -0300
@@ -7,14 +7,14 @@
 #include <unistd.h>
 #include "toc.h"
 
-static time_t lastsent = 0;
+time_t lastsent = 0;
 time_t login_time = 0;
 int my_evil;
 int is_idle = 0;
 int lag_ms = 0;
 int time_to_idle = 600;
 int is_away = 0;
-static struct timeval lag_tv;
+struct timeval lag_tv;
 
 void serv_add_buddy(char *name)
 {
diff -Nupr BitchX/dll/aim/toc/toc.c BitchX-patched//dll/aim/toc/toc.c
--- BitchX/dll/aim/toc/toc.c	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/aim/toc/toc.c	2010-08-07 10:29:19.000000000 -0300
@@ -39,9 +39,9 @@
 #include "toc.h"
 
 /* descriptor for talking to TOC */
-static int toc_fd;
-static int seqno;
-static unsigned int peer_ver=0;
+int toc_fd;
+int seqno;
+unsigned int peer_ver=0;
 int state;
 /* static int inpa=-1; */
 int permdeny = PERMIT_PERMITALL;
diff -Nupr BitchX/dll/amp/Makefile.in BitchX-patched//dll/amp/Makefile.in
--- BitchX/dll/amp/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/amp/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -177,7 +177,7 @@ distclean: clean
 	$(RM) *~ config.status config.cache config.log config.h Makefile
 
 ../dllinit.o:
-	$(CC) -DOS_$(OS) $(DEFS) $(CFLAGS) -o ../dllinit.o -c ../dllinit.c
+	$(CC) -DOS_$(OS) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -o ../dllinit.o -c ../dllinit.c
 
 amp$(SHLIB_SUFFIX): $(OBJ) ../dllinit.o
 	$(SHLIB_LD) -o amp$(SHLIB_SUFFIX) $(OBJ) ../dllinit.o
@@ -187,7 +187,7 @@ SOURCES = $(OBJECTS:%.o=$(srcdir)/%.c)
 OS := $(shell uname -s) 
 
 .c.o:
-	$(CC) -DOS_$(OS) $(DEFS) $(CFLAGS) -c $<
+	$(CC) -DOS_$(OS) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $<
 
 depend:
 	gcc -MM $(CPPFLAGS) $(DEFS) $(CFLAGS) *.c > .depend
diff -Nupr BitchX/dll/arcfour/Makefile.in BitchX-patched//dll/arcfour/Makefile.in
--- BitchX/dll/arcfour/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/arcfour/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,10 +165,10 @@ Makefile: Makefile.in
 	  && ./config.status
 
 arcfour.o: $(srcdir)/arcfour.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/arcfour.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/arcfour.c
 
 md5.o: $(srcdir)/md5.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/md5.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/md5.c
 
 arcfour$(SHLIB_SUFFIX): arcfour.o md5.o ../dllinit.o
 	$(SHLIB_LD) arcfour.o md5.o ../dllinit.o $(SHLIB_CFLAGS) -o arcfour$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/arcfour/md5.c BitchX-patched//dll/arcfour/md5.c
--- BitchX/dll/arcfour/md5.c	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/arcfour/md5.c	2010-08-07 10:30:08.000000000 -0300
@@ -1,5 +1,6 @@
 /* MD5 Message Digest algorithm */
 
+#include <string.h>
 #include "md5.h"
 
 /* Prototypes */
diff -Nupr BitchX/dll/autocycle/Makefile.in BitchX-patched//dll/autocycle/Makefile.in
--- BitchX/dll/autocycle/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/autocycle/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -168,7 +168,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 autocycle.o: $(srcdir)/autocycle.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/autocycle.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/autocycle.c
 
 autocycle$(SHLIB_SUFFIX): autocycle.o ../dllinit.o
 	$(SHLIB_LD) autocycle.o ../dllinit.o $(SHLIB_CFLAGS) -o autocycle$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/blowfish/Makefile.in BitchX-patched//dll/blowfish/Makefile.in
--- BitchX/dll/blowfish/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/blowfish/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 blowfish.o: $(srcdir)/blowfish.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/blowfish.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/blowfish.c
 
 blowfish$(SHLIB_SUFFIX): blowfish.o ../dllinit.o
 	$(SHLIB_LD) blowfish.o ../dllinit.o $(SHLIB_CFLAGS) -o blowfish$(SHLIB_SUFFIX) $(TCL_LIBS)
diff -Nupr BitchX/dll/cavlink/Makefile.in BitchX-patched//dll/cavlink/Makefile.in
--- BitchX/dll/cavlink/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/cavlink/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 cavlink.o: $(srcdir)/cavlink.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/cavlink.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/cavlink.c
 
 cavlink$(SHLIB_SUFFIX): cavlink.o ../dllinit.o
 	$(SHLIB_LD) cavlink.o ../dllinit.o ${SHLIB_CFLAGS} -o cavlink$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/cdrom/Makefile.in BitchX-patched//dll/cdrom/Makefile.in
--- BitchX/dll/cdrom/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/cdrom/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 cdrom.o: $(srcdir)/cdrom.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/cdrom.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/cdrom.c
 
 cdrom$(SHLIB_SUFFIX): cdrom.o ../dllinit.o
 	$(SHLIB_LD) cdrom.o ../dllinit.o ${SHLIB_CFLAGS} -o cdrom$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/encrypt/Makefile.in BitchX-patched//dll/encrypt/Makefile.in
--- BitchX/dll/encrypt/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/encrypt/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 encrypt.o: $(srcdir)/encrypt.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/encrypt.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/encrypt.c
 
 encrypt$(SHLIB_SUFFIX): encrypt.o ../dllinit.o
 	$(SHLIB_LD) encrypt.o ../dllinit.o ${SHLIB_CFLAGS} -o encrypt$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/europa/europa.c BitchX-patched//dll/europa/europa.c
--- BitchX/dll/europa/europa.c	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/europa/europa.c	2010-08-07 10:30:08.000000000 -0300
@@ -5,6 +5,8 @@
   the file COPYING for details.
  */
 
+#include <string.h>
+
 #define MOD_VERSION "0.01"
 #define MOD_NAME "Europa"
 #include "europa.h"
diff -Nupr BitchX/dll/europa/Makefile.in BitchX-patched//dll/europa/Makefile.in
--- BitchX/dll/europa/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/europa/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -170,7 +170,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 europa.o: $(srcdir)/europa.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/europa.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/europa.c
 
 europa$(SHLIB_SUFFIX): europa.o ../dllinit.o
 	$(SHLIB_LD) europa.o ../dllinit.o $(SHLIB_CFLAGS) -o europa$(SHLIB_SUFFIX) $(MYSQL_LIBS)
diff -Nupr BitchX/dll/fserv/Makefile.in BitchX-patched//dll/fserv/Makefile.in
--- BitchX/dll/fserv/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/fserv/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 fserv.o: $(srcdir)/fserv.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/fserv.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/fserv.c
 
 fserv$(SHLIB_SUFFIX): fserv.o ../dllinit.o
 	$(SHLIB_LD) fserv.o ../dllinit.o $(SHLIB_CFLAGS) -o fserv$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/hint/Makefile.in BitchX-patched//dll/hint/Makefile.in
--- BitchX/dll/hint/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/hint/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 hint.o: $(srcdir)/hint.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/hint.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/hint.c
 
 hint$(SHLIB_SUFFIX): hint.o ../dllinit.o
 	$(SHLIB_LD) hint.o ../dllinit.o $(SHLIB_CFLAGS) -o hint$(SHLIB_SUFFIX)
@@ -178,4 +178,4 @@ distclean: clean
 
 install:
 	$(INSTALL) $(PLUGIN_NAME)$(SHLIB_SUFFIX) $(PLUGINDIR)
-	$(INSTALL) $(srcdir)/BitchX.hints $(PLUGINDIR)/@HINT_FILE@
+	$(INSTALL_DATA) $(srcdir)/BitchX.hints $(PLUGINDIR)/@HINT_FILE@
diff -Nupr BitchX/dll/identd/Makefile.in BitchX-patched//dll/identd/Makefile.in
--- BitchX/dll/identd/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/identd/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 identd.o: $(srcdir)/identd.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/identd.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/identd.c
 
 identd$(SHLIB_SUFFIX): identd.o ../dllinit.o
 	$(SHLIB_LD) identd.o ../dllinit.o $(SHLIB_CFLAGS) -o identd$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/Makefile.in BitchX-patched//dll/Makefile.in
--- BitchX/dll/Makefile.in	2003-04-10 22:09:05.000000000 -0300
+++ BitchX-patched//dll/Makefile.in	2010-08-07 10:31:33.000000000 -0300
@@ -166,7 +166,7 @@ ALL_PLUGINS = abot acro aim amp arcfour
 PLUGINS = @PLUGINS@
 
 .c.o:
-	$(CC) $(DEFS) $(CFLAGS) -c $<
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $<
 
 $(SHLIB_SUFFIX).o:
 	$(SHLIB_LD) $(SHLIB_CFLAGS) $< -o $@$(SHLIB_SUFFIX)
@@ -191,7 +191,7 @@ dummy:
 dllinit.o:
 	@( \
 		if test x"$(PLUGINS)" != x""; then \
-			$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/dllinit.c; \
+			$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/dllinit.c; \
 		fi; \
 	)
 
@@ -206,12 +206,6 @@ install: all
 			|| case "$$makeflags" in *=*) exit 1;; *k*) ;; *) exit 1;; esac; \
 		done; \
 	)
-	@( \
-		if test x"$(PLUGINS)" != x""; then \
-			strip --strip-unneeded $(PLUGINDIR)/*$(SHLIB_SUFFIX) || :; \
-			echo Your plugins [$(PLUGINS)] are now located in $(PLUGINDIR);\
-		fi; \
-	)
 
 install_local: all
 	$(INSTALL) -d $(local_dir)/.BitchX/plugins
diff -Nupr BitchX/dll/nap/Makefile.in BitchX-patched//dll/nap/Makefile.in
--- BitchX/dll/nap/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/nap/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -167,26 +167,26 @@ Makefile: Makefile.in
 	  && ./config.status
 
 $(topdir)/source/compat.o: $(top_srcdir)/source/compat.c
-	$(CC) $(DEFS) $(CFLAGS) \
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) \
 		-c $(top_srcdir)/source/compat.c -o $(topdir)/source/compat.o
 
 nap.o: $(srcdir)/nap.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/nap.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/nap.c
 
 napsend.o: $(srcdir)/napsend.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/napsend.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/napsend.c
 
 nap_file.o: $(srcdir)/nap_file.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/nap_file.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/nap_file.c
 
 napfunc.o: $(srcdir)/napfunc.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/napfunc.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/napfunc.c
 
 napother.o: $(srcdir)/napother.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/napother.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/napother.c
 
 md5.o: $(srcdir)/md5.c $(srcdir)/md5.h
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/md5.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/md5.c
 
 nap$(SHLIB_SUFFIX): $(OBJS) 
 	$(SHLIB_LD) $(OBJS) $(SHLIB_CFLAGS) -o nap$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/nicklist/Makefile.in BitchX-patched//dll/nicklist/Makefile.in
--- BitchX/dll/nicklist/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/nicklist/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -168,7 +168,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 nicklist.o: $(srcdir)/nicklist.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/nicklist.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/nicklist.c
 
 nicklist$(SHLIB_SUFFIX): nicklist.o ../dllinit.o
 	$(SHLIB_LD) nicklist.o ../dllinit.o $(SHLIB_CFLAGS) -o nicklist$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/pkga/Makefile.in BitchX-patched//dll/pkga/Makefile.in
--- BitchX/dll/pkga/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/pkga/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 pkga.o: $(srcdir)/pkga.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/pkga.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/pkga.c
 
 pkga$(SHLIB_SUFFIX): pkga.o ../dllinit.o
 	$(SHLIB_LD) pkga.o ../dllinit.o $(SHLIB_CFLAGS) -o pkga$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/possum/llist.c BitchX-patched//dll/possum/llist.c
--- BitchX/dll/possum/llist.c	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/possum/llist.c	2010-08-07 10:30:08.000000000 -0300
@@ -1,4 +1,5 @@
 #include <stdlib.h>
+#include <string.h>
 #include "llist.h"
 
 llist *lmake(size_t size) {
diff -Nupr BitchX/dll/possum/Makefile.in BitchX-patched//dll/possum/Makefile.in
--- BitchX/dll/possum/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/possum/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,13 +165,13 @@ Makefile: Makefile.in
 	  && ./config.status
 
 possum.o: $(srcdir)/possum.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/possum.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/possum.c
 
 head.o: $(srcdir)/head.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/head.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/head.c
 
 llist.o: $(srcdir)/llist.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/llist.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/llist.c
 
 possum$(SHLIB_SUFFIX): possum.o head.o llist.o ../dllinit.o
 	$(SHLIB_LD) possum.o llist.o head.o ../dllinit.o $(SHLIB_CFLAGS) -o possum$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/qbx/Makefile.in BitchX-patched//dll/qbx/Makefile.in
--- BitchX/dll/qbx/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/qbx/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -164,7 +164,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 qbx.o: $(srcdir)/qbx.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/qbx.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/qbx.c
 
 qbx$(SHLIB_SUFFIX): qbx.o ../dllinit.o
 	$(SHLIB_LD) qbx.o ../dllinit.o $(SHLIB_CFLAGS) -o qbx$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/qmail/Makefile.in BitchX-patched//dll/qmail/Makefile.in
--- BitchX/dll/qmail/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/qmail/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 qmail.o: $(srcdir)/qmail.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/qmail.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/qmail.c
 
 qmail$(SHLIB_SUFFIX): qmail.o ../dllinit.o
 	$(SHLIB_LD) qmail.o ../dllinit.o $(SHLIB_CFLAGS) -o qmail$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/scan/Makefile.in BitchX-patched//dll/scan/Makefile.in
--- BitchX/dll/scan/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/scan/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 scan.o: $(srcdir)/scan.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/scan.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/scan.c
 
 scan$(SHLIB_SUFFIX): scan.o ../dllinit.o
 	$(SHLIB_LD) scan.o ../dllinit.o $(SHLIB_CFLAGS) -o scan$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/wavplay/Makefile.in BitchX-patched//dll/wavplay/Makefile.in
--- BitchX/dll/wavplay/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/wavplay/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -165,7 +165,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 wavplay.o: $(srcdir)/wavplay.c
-	$(CC) $(DEFS) $(CFLAGS) -c $(srcdir)/wavplay.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -c $(srcdir)/wavplay.c
 
 wavplay$(SHLIB_SUFFIX): wavplay.o ../dllinit.o
 	$(SHLIB_LD) wavplay.o ../dllinit.o $(SHLIB_CFLAGS) -o wavplay$(SHLIB_SUFFIX)
diff -Nupr BitchX/dll/xmms/Makefile.in BitchX-patched//dll/xmms/Makefile.in
--- BitchX/dll/xmms/Makefile.in	2003-04-10 22:09:06.000000000 -0300
+++ BitchX-patched//dll/xmms/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -167,7 +167,7 @@ Makefile: Makefile.in
 	  && ./config.status
 
 xmms.o: $(srcdir)/xmms.c
-	$(CC) $(DEFS) $(CFLAGS) `xmms-config --cflags` -c $(srcdir)/xmms.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) `xmms-config --cflags` -c $(srcdir)/xmms.c
 
 xmms$(SHLIB_SUFFIX): xmms.o ../dllinit.o
 	$(SHLIB_LD) xmms.o ../dllinit.o $(SHLIB_CFLAGS) -o xmms$(SHLIB_SUFFIX) `xmms-config --libs`
diff -Nupr BitchX/doc/Makefile BitchX-patched//doc/Makefile
--- BitchX/doc/Makefile	2004-03-26 03:20:36.000000000 -0300
+++ BitchX-patched//doc/Makefile	2010-08-07 10:34:25.000000000 -0300
@@ -1,5 +1,5 @@
 
-SHELL = /usr/local/bin/bash
+SHELL = /bin/bash
 
 default:
 	$(SHELL) ./configure --with-plugins
diff -Nupr BitchX/include/color.h BitchX-patched//include/color.h
--- BitchX/include/color.h	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//include/color.h	2010-08-07 10:27:11.000000000 -0300
@@ -426,15 +426,15 @@
 
 #define DEFAULT_INPUT_PROMPT "[1;30;40mÀ-[[1;37mb[0;37mitch[0;36mx[1;30m]Ä>[0;37m "
 
-#ifndef ONLY_STD_CHARS
-#define DEFAULT_SHOW_NUMERICS_STR "[1;30mù[0m[1;36mí[1;30mù[0m"
-#else
-#ifndef LATIN1
-#define DEFAULT_SHOW_NUMERICS_STR "***"
-#else
+//#ifndef ONLY_STD_CHARS
+//#define DEFAULT_SHOW_NUMERICS_STR "[1;30mù[0m[1;36mí[1;30mù[0m"
+//#else
+//#ifndef LATIN1
+//#else
+//#define DEFAULT_SHOW_NUMERICS_STR "[1;30m-[0m[1;36m:[1;30m-[0m"
 #define DEFAULT_SHOW_NUMERICS_STR "[1;30m-[0m[1;36m:[1;30m-[0m"
-#endif
-#endif
+//#endif
+//#endif
 
 
 #define DEFAULT_SERVER_PROMPT "%K[%c$0%K] "
diff -Nupr BitchX/include/config.h BitchX-patched//include/config.h
--- BitchX/include/config.h	2003-07-26 04:00:32.000000000 -0300
+++ BitchX-patched//include/config.h	2010-08-07 10:33:13.000000000 -0300
@@ -37,7 +37,26 @@
  *
  * List last updated: 03/24/01.  -dialtone.
  */
-#define DEFAULT_SERVER  "[efnet] "\
+#define DEFAULT_SERVER "[freenode] "\
+				"irc.freenode.net "\
+				"vinge.freenode.net "\
+				"truong.freenode.net "\
+				"stephenson.freenode.net "\
+				"orwell.freenode.net "\
+				"leguin.freenode.net "\
+				"kornbluth.freenode.net "\
+			        "jordan.freenode.net "\
+				"herbert.freenoe.net "\
+				"goethe.freenode.net "\
+				"gibson.freenode.net "\
+				"gerrold.freenode.net "\
+				"carter.freenode.net "\
+				"carneiro.freenode.net "\
+				"capek.freenode.net "\
+				"calkins.freenode.net "\
+				"brin.freenode.net "\
+				"adams.freenode.net "\
+			"[efnet] "\
 				"irc.foxlink.net "\
 				"irc.weblook2k.com "\
 				"irc.wh.verio.net "\
@@ -181,7 +200,7 @@
  * we define the default network type for server groups. Do not just
  * undefine this.
  */
- #define DEFAULT_NETWORK "efnet"
+ #define DEFAULT_NETWORK "openprojects"
 
 /*
  * Below are the IRCII variable defaults.  For boolean variables, use 1 for
@@ -225,7 +244,7 @@
  * in the client. defining this variable to 1 allows that happen. It also
  * adds a HEBREW_TOGGLE variable which can turn this feature on/off
  */
-#undef WANT_HEBREW
+#define WANT_HEBREW
 
 /* if you use cidentd the filename is called .authlie instead of .noident.
  * as well some modifications to the format of the file were made. So we 
@@ -295,7 +314,7 @@
  * This is recommended when you want to start BitchX in an xterm without
  * the usage of the special "vga"-font. 
  */
-#undef ONLY_STD_CHARS
+#define ONLY_STD_CHARS 1
 
 /*
  * Normally BitchX uses only the IBMPC (cp437) charset.
@@ -311,7 +330,7 @@
  *
  * Is here there any solution to use both fonts nethertheless ?
  */
-#undef LATIN1
+#define LATIN1 ON
 
 /*
  * If you use LINUX and non ISO8859-1 fonts with custom screen mapping,
@@ -328,7 +347,7 @@
  * when you've defined LATIN1. The problem is that ansi graphics will look
  * ugly if you use the scroll up feature (PageUp/PageDown)
  */
-#undef ASCII_LOGO
+#define ASCII_LOGO
 
 /* If you define REVERSE_WHITE_BLACK, then the format codes for black and
  * white color are revepsed. (%W, %w is bold black and black, %K, %k is bold
diff -Nupr BitchX/include/irc.h BitchX-patched//include/irc.h
--- BitchX/include/irc.h	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//include/irc.h	2010-08-07 10:27:11.000000000 -0300
@@ -14,6 +14,7 @@
 #define IRCII_COMMENT   "\002 Keep it to yourself!\002"
 
 #define FSET 1
+#define ishangul(c) ((((unsigned char)(c)) >= 0xa1) && (((unsigned char)(c)) <= 0xfe))
 
 #ifndef __irc_c
 extern const char irc_version[];
diff -Nupr BitchX/include/irc_std.h BitchX-patched//include/irc_std.h
--- BitchX/include/irc_std.h	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//include/irc_std.h	2010-08-07 10:29:37.000000000 -0300
@@ -98,7 +98,7 @@
 # define __N
 # define __inline__
 #else
-# if (__GNUC__ >= 2) && (__GNUC_MINOR__ >= 7)
+# if (__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))
 #  define __A(x) __attribute__ ((format (printf, x, x + 1)))
 #  define __N    __attribute__ ((noreturn))
 # else
diff -Nupr BitchX/include/module.h BitchX-patched//include/module.h
--- BitchX/include/module.h	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//include/module.h	2010-08-07 10:32:06.000000000 -0300
@@ -15,7 +15,7 @@
 
 #include "struct.h"
 
-typedef int (*Function_ptr)();
+typedef long (*Function_ptr)();
 
 #ifdef WANT_DLL
 #ifdef HPUX
diff -Nupr BitchX/include/modval.h BitchX-patched//include/modval.h
--- BitchX/include/modval.h	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//include/modval.h	2010-08-07 10:32:06.000000000 -0300
@@ -318,7 +318,7 @@ extern Function_ptr *global;
 #define show_window(x) ((void) (global[SHOW_WINDOW]((Window *)x)))
 #define get_status_by_refnum(x, y) ((char *) (global[GET_STATUS_BY_REFNUM]((unsigned int)x, (unsigned int)y)))
 #define get_visible_by_refnum(x) ((int) (global[GET_VISIBLE_BY_REFNUM]((char *)x)))
-#define get_window_by_desc(x) ((Window *) (global[GET_WINDOW_BY_DESC]((unsigned int)x)))
+#define get_window_by_desc(x) ((Window *) (global[GET_WINDOW_BY_DESC]((unsigned long)x)))
 #define get_window_by_refnum(x) ((Window *) (global[GET_WINDOW_BY_REFNUM]((unsigned int)x)))
 #define get_window_by_name(x) ((Window *) (global[GET_WINDOW_BY_NAME]((char *)x)))
 #define next_window(x, y) ((void) (global[FUNC_NEXT_WINDOW]((char)x, (char *)y)))
@@ -650,7 +650,7 @@ extern Function_ptr *global;
 #define start_time ((time_t) *((time_t *)global[START_TIME]))
 #define idle_time() ((time_t) *((time_t *)global[IDLE_TIME]()))
 
-#define loading_global ((int) *((int *)global[LOADING_GLOBAL]))
+#define loading_global (*((int *)global[LOADING_GLOBAL]))
 #define target_window (*((Window **)global[TARGET_WINDOW]))
 #define current_window (*((Window **)global[CURRENT_WINDOW]))
 #define invisible_list (*((Window **)global[INVISIBLE_LIST]))
@@ -665,12 +665,12 @@ extern Function_ptr *global;
 #define dll_variable (*((IrcVariableDll **)global[DLL_VARIABLE]))
 #define dll_ctcp (*((CtcpEntryDll **)global[DLL_CTCP]))
 #define dll_window (*((WindowDll **)global[DLL_WINDOW]))
-#define window_display ((int) *((int *)global[WINDOW_DISPLAY]))
-#define status_update_flag ((int) *((int *)global[STATUS_UPDATE_FLAG]))
+#define window_display (*((int *)global[WINDOW_DISPLAY]))
+#define status_update_flag (*((int *)global[STATUS_UPDATE_FLAG]))
 #define tabkey_array (*((NickTab **)global[TABKEY_ARRAY]))
 #define autoreply_array (*((NickTab *)global[AUTOREPLY_ARRAY]))
-#define identd ((int) *((int *)global[IDENTD_SOCKET]))
-#define doing_notice ((int) *((int *)global[DOING_NOTICE]))
+#define identd (*((int *)global[IDENTD_SOCKET]))
+#define doing_notice (*((int *)global[DOING_NOTICE]))
 #define last_sent_msg_body (*((char **)global[LAST_SENT_MSG_BODY]))
 #define sent_nick (*((char **)global[SENT_NICK]))
 
@@ -698,9 +698,9 @@ extern Function_ptr *global;
 #ifdef GUI
 #ifndef MAIN_SOURCE
 #define lastclicklinedata ((char *) *global[LASTCLICKLINEDATA])
-#define contextx ((int) *((int *)global[CONTEXTX]))
-#define contexty ((int) *((int *)global[CONTEXTY]))
-#define guiipc ((int) *((int *)global[GUIIPC]))
+#define contextx (*((int *)global[CONTEXTX]))
+#define contexty (*((int *)global[CONTEXTY]))
+#define guiipc (*((int *)global[GUIIPC]))
 #endif
 #define gui_mutex_lock() ((void (*)(void)) global[GUI_MUTEX_LOCK])()
 #define gui_mutex_unlock() ((void (*)(void))global[GUI_MUTEX_UNLOCK])()
diff -Nupr BitchX/Makefile BitchX-patched//Makefile
--- BitchX/Makefile	2004-03-26 20:10:01.000000000 -0300
+++ BitchX-patched//Makefile	2010-08-07 10:39:25.000000000 -0300
@@ -1,5 +1,5 @@
 
-SHELL = /usr/local/bin/bash
+SHELL = /bin/bash
 
 default:
-	$(SHELL) ./configure
+	$(SHELL) ./configure --with-plugins
diff -Nupr BitchX/Makefile.in BitchX-patched//Makefile.in
--- BitchX/Makefile.in	2003-04-10 22:09:04.000000000 -0300
+++ BitchX-patched//Makefile.in	2010-08-07 10:30:48.000000000 -0300
@@ -302,8 +302,6 @@ installman: installdirs
 			done; \
 		fi; \
 	)
-	(find $(mandir)/man1/BitchX.1 -type f ! -name '*.bz2' ! -name '*.gz' -name '*' | \
-		(xargs bzip2 -9f || xargs gzip -9f) || :) 2>/dev/null
 
 installdirs:
 	umask 022; $(top_srcdir)/mkinstalldirs $(bindir) $(IRCLIB) $(mandir)/man1 $(TRANSLATION_PATH) $(INSTALL_SCRIPT) $(HELPDIR)
diff -Nupr BitchX/source/commands2.c BitchX-patched//source/commands2.c
--- BitchX/source/commands2.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/commands2.c	2010-08-07 10:31:14.000000000 -0300
@@ -2575,7 +2575,7 @@ unsigned short port = 0;
 	{
 		char buf[BIG_BUFFER_SIZE+1];
 		sprintf(buf, socket_path, port);
-		if ((u = open(buf, O_CREAT|O_WRONLY)) != -1)
+		if ((u = open(buf, O_CREAT|O_WRONLY, 0644)) != -1)
 		{
 			chmod(buf, SOCKMODE);
 			chown(buf, getuid(), getgid());
diff -Nupr BitchX/source/ctcp.c BitchX-patched//source/ctcp.c
--- BitchX/source/ctcp.c	2003-05-27 04:00:22.000000000 -0300
+++ BitchX-patched//source/ctcp.c	2010-08-07 10:29:19.000000000 -0300
@@ -176,7 +176,7 @@ CtcpEntryDll *dll_ctcp = NULL;
 
 /* CDE do ops and unban logging */
 
-static char	*ctcp_type[] =
+char	*ctcp_type[] =
 {
 	"PRIVMSG",
 	"NOTICE"
diff -Nupr BitchX/source/dcc.c BitchX-patched//source/dcc.c
--- BitchX/source/dcc.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/dcc.c	2010-08-07 10:31:14.000000000 -0300
@@ -1818,7 +1818,7 @@ char local_type[30];
 	flags |= DCC_ACTIVE;
 	set_socketflags(new_s, flags);
 	set_socketinfo(new_s, n);
-	if ((n->file = open(n->filename, O_RDONLY | O_BINARY)) == -1)
+	if ((n->file = open(n->filename, O_RDONLY | O_BINARY, 0644)) == -1)
 	{
 		erase_dcc_info(new_s, 1, "%s", convert_output_format("$G %RDCC%n Unable to open $0: $1-", "%s %s", n->filename, errno ? strerror(errno) : "Unknown Host"));
 		close_socketread(new_s);
@@ -2273,7 +2273,7 @@ char *nick;
 			tmp = m_strdup(new->filename);
 		if (!(fullname = expand_twiddle(tmp)))
 			malloc_strcpy(&fullname, tmp);
-		if ((new->file = open(fullname, O_WRONLY | O_CREAT | O_BINARY)) != -1)
+		if ((new->file = open(fullname, O_WRONLY | O_CREAT | O_BINARY, 0644)) != -1)
 		{
 			if ((new = dcc_create(nick, new->filename, passwd, 0, port? atol(port) : 0, DCC_REFILEREAD, (tdcc?DCC_TDCC:0) | DCC_TWOCLIENTS|DCC_OFFER, start_dcc_get)))
 				new->blocksize = blocksize;
diff -Nupr BitchX/source/hook.c BitchX-patched//source/hook.c
--- BitchX/source/hook.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/hook.c	2010-08-07 10:27:20.000000000 -0300
@@ -836,7 +836,11 @@ int 	BX_do_hook (int which, char *format
 	
 #ifdef WANT_TCL
 	int		tcl_ret = 0;
-#endif	
+#endif
+
+        if (which >= NUMBER_OF_LISTS) 
+        	return NO_ACTION_TAKEN;
+
 	/*
 	 * Figure out where the hooks are for the event type were asserting
 	 */
diff -Nupr BitchX/source/input.c BitchX-patched//source/input.c
--- BitchX/source/input.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/input.c	2010-08-07 10:27:11.000000000 -0300
@@ -94,6 +94,7 @@ enum I_STATE {
 #define MIN_CHAR 		INPUT_BUFFER[MIN_POS]
 #define PREV_CHAR 		INPUT_BUFFER[THIS_POS-1]
 #define NEXT_CHAR 		INPUT_BUFFER[THIS_POS+1]
+#define NTH_CHAR(offset)        INPUT_BUFFER[THIS_POS+(offset)]
 #define ADD_TO_INPUT(x) 	strmcat(INPUT_BUFFER, (x), INPUT_BUFFER_SIZE);
 #define INPUT_ONSCREEN 		current_screen->input_visible
 #define INPUT_VISIBLE 		INPUT_BUFFER[INPUT_ONSCREEN]
@@ -479,6 +480,11 @@ extern void	input_move_cursor (int dir)
 	cursor_to_input();
 	if (dir)
 	{
+                        if (NEXT_CHAR && ishangul(THIS_CHAR) && ishangul(NEXT_CHAR))
+                        {
+                                THIS_POS++;
+                                term_cursor_right();
+                        }
 		if (THIS_CHAR)
 		{
 			THIS_POS++;
@@ -491,6 +497,11 @@ extern void	input_move_cursor (int dir)
 		{
 			THIS_POS--;
 			term_cursor_left();
+                        if (THIS_POS > MIN_POS && ishangul(THIS_CHAR) && ishangul(PREV_CHAR))
+                        {
+                                THIS_POS--;
+                                term_cursor_left();
+                        }
 		}
 	}
 	update_input(NO_UPDATE);
@@ -596,24 +607,35 @@ BUILT_IN_KEYBINDING(input_backward_word)
 BUILT_IN_KEYBINDING(input_delete_character)
 {
 int	pos;
+	int hangul_deleted = 0 ;
+	int count = 1 ;
+
 	cursor_to_input();
 	in_completion = STATE_NORMAL;
-	if (!THIS_CHAR)
-		return;	
-	ov_strcpy(&THIS_CHAR, &NEXT_CHAR);
-	if (!(termfeatures & TERM_CAN_DELETE))
-		update_input(UPDATE_FROM_CURSOR);
-	else
-	{
-		term_delete(1);
-		pos = INPUT_ONSCREEN + last_input_screen->co - 1;
-		if (pos < strlen(INPUT_BUFFER))
+        if (ishangul(THIS_CHAR)) {
+                hangul_deleted = 1;
+                ov_strcpy(&THIS_CHAR, &(NTH_CHAR(2)));
+        } else {
+                ov_strcpy(&THIS_CHAR, &(NEXT_CHAR));
+        }
+
+	if (hangul_deleted) count = 2 ;
+
+	while (count -- > 0) {
+		if (!(termfeatures & TERM_CAN_DELETE))
+			update_input(UPDATE_FROM_CURSOR);
+		else
 		{
-			term_move_cursor(last_input_screen->co - 1, INPUT_LINE);
-			term_putchar(INPUT_BUFFER[pos]);
-			term_move_cursor(INPUT_CURSOR, INPUT_LINE);
+			term_delete(1);
+			pos = INPUT_ONSCREEN + last_input_screen->co - 1;
+			if (pos < strlen(INPUT_BUFFER))
+			{
+				term_move_cursor(last_input_screen->co - 1, INPUT_LINE);
+				term_putchar(INPUT_BUFFER[pos]);
+				term_move_cursor(INPUT_CURSOR, INPUT_LINE);
+			}
+			update_input(NO_UPDATE);
 		}
-		update_input(NO_UPDATE);
 	}
 }
 
@@ -625,7 +647,11 @@ BUILT_IN_KEYBINDING(input_backspace)
 	{
 		char	*ptr = NULL;
 		int	pos;
+		int	count = 1 ;
+
+                if (ishangul(PREV_CHAR)) count = 2;
 
+		while (count-- > 0) {
 		ptr = LOCAL_COPY(&THIS_CHAR);
 		strcpy(&(PREV_CHAR), ptr);
 		THIS_POS--;
@@ -662,6 +688,7 @@ BUILT_IN_KEYBINDING(input_backspace)
 			update_input(UPDATE_FROM_CURSOR);
 #endif
 		}
+		}
 	}
 	if (THIS_POS == MIN_POS)
 		HOLDLAST = NULL;
@@ -700,6 +727,7 @@ BUILT_IN_KEYBINDING(input_end_of_line)
 {
 	cursor_to_input();
 	THIS_POS = strlen(INPUT_BUFFER);
+	if (ishangul(THIS_CHAR)) THIS_POS-- ;
 	update_input(UPDATE_JUST_CURSOR);
 }
 
diff -Nupr BitchX/source/ircaux.c BitchX-patched//source/ircaux.c
--- BitchX/source/ircaux.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/ircaux.c	2010-08-07 10:27:11.000000000 -0300
@@ -1041,7 +1041,7 @@ char	*BX_check_nickname (char *nick)
 		return NULL;
 
 	for (s = nick; *s && (s - nick) < NICKNAME_LEN ; s++, len++)
-		if (!islegal(*s) || my_isspace(*s))
+		if (*s >= 0 && (!islegal(*s) || my_isspace(*s)))
 			break;
 	*s = '\0';
 	
diff -Nupr BitchX/source/Makefile.in BitchX-patched//source/Makefile.in
--- BitchX/source/Makefile.in	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/Makefile.in	2010-08-07 10:31:34.000000000 -0300
@@ -259,6 +259,9 @@ wterm.c: $(srcdir)/term.c
 wterm.o: wterm.c
 	$(CC) $(DEFS) $(CFLAGS) -DWTERM_C -c ./wterm.c
 
+compat.o: compat.c
+	$(CC) $(DEFS) $(CFLAGS) $(SHLIB_CFLAGS) -DWTERM_C -c ./compat.c
+
 wnetwork.c: $(srcdir)/network.c
 	$(RM) wnetwork.c
 	$(LN) $(srcdir)/network.c wnetwork.c
diff -Nupr BitchX/source/misc.c BitchX-patched//source/misc.c
--- BitchX/source/misc.c	2003-06-11 04:00:42.000000000 -0300
+++ BitchX-patched//source/misc.c	2010-08-07 10:27:11.000000000 -0300
@@ -4551,7 +4551,7 @@ char *timestamp_str = get_string_var(TIM
 				tmpc++;
 				continue;
 			}
-#if 1
+#if 0
 /* do we really wanna do this? */
 			else if (*tmpc == '^') /* ibmpc charset */
 			{
diff -Nupr BitchX/source/output.c BitchX-patched//source/output.c
--- BitchX/source/output.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/output.c	2010-08-07 10:27:11.000000000 -0300
@@ -53,17 +53,17 @@ char three_stars[4] = "***";
 
 void charset_ibmpc (void)
 {
-	fwrite("\033(U", 3, 1, current_ftarget);	/* switch to IBM code page 437 */
+	/*fwrite("\033(U", 3, 1, current_ftarget);*/	/* switch to IBM code page 437 */
 }
 
 void charset_lat1 (void)
 {
-	fwrite("\033(B", 3, 1, current_ftarget);	/* switch to Latin-1 (ISO 8859-1) */
+	/*fwrite("\033(B", 3, 1, current_ftarget);*/	/* switch to Latin-1 (ISO 8859-1) */
 }
 
 void charset_cst(void)
 {
-	fwrite("\033(K", 3, 1, current_ftarget); /* switch too user-defined */
+	/*fwrite("\033(K", 3, 1, current_ftarget);*/ /* switch too user-defined */
 }
 
 /* currently not used. */
@@ -75,9 +75,9 @@ void unflash (void)
 #if !defined(WINNT) && !defined(__EMX__)
 
 #if defined(HARD_UNFLASH) && !defined(CHARSET_CUSTOM)
-	fwrite("\033c", 5, 1, current_ftarget);		/* hard reset */
+	/*fwrite("\033c", 5, 1, current_ftarget);*/		/* hard reset */
 #else
-	fwrite("\033)0", 6, 1, current_ftarget);		/* soft reset */
+	/*fwrite("\033)0", 6, 1, current_ftarget);*/		/* soft reset */
 #endif
 
 #if defined(LATIN1)
diff -Nupr BitchX/source/parse.c BitchX-patched//source/parse.c
--- BitchX/source/parse.c	2003-06-11 04:00:43.000000000 -0300
+++ BitchX-patched//source/parse.c	2010-08-07 10:32:40.000000000 -0300
@@ -1432,7 +1432,8 @@ static	void p_mode(char *from, char **Ar
 	set_display_target(channel, LOG_CRAP);
 	if (channel && line)
 	{
-		strcpy(buffer, line);
+		strncpy(buffer, line, sizeof(buffer) - 1);
+		buffer[sizeof(buffer) - 1] = '\0';
 		if (get_int_var(MODE_STRIPPER_VAR))
 			strip_modes(from,channel,line);
 		if (is_channel(channel))
diff -Nupr BitchX/source/term.c BitchX-patched//source/term.c
--- BitchX/source/term.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/term.c	2010-08-07 10:28:50.000000000 -0300
@@ -91,8 +91,10 @@ extern	int		tgetflag();
 #define Tgetflag(x) 	tgetflag(x.tname)
 #endif
 
-extern  char    *getenv();
-extern	char	*tparm();
+extern  char    *getenv(const char *name);
+#ifndef TPARM_DECLARED
+extern	char	*tparm(char *str, ...);
+#endif
 
 /*
  * The old code assumed termcap. termcap is almost always present, but on
diff -Nupr BitchX/source/timer.c BitchX-patched//source/timer.c
--- BitchX/source/timer.c	2003-04-10 22:09:07.000000000 -0300
+++ BitchX-patched//source/timer.c	2010-08-07 10:29:19.000000000 -0300
@@ -148,7 +148,7 @@ BUILT_IN_COMMAND(timercmd)
  * This is put here on purpose -- we dont want any of the above functions
  * to have any knowledge of this struct.
  */
-static TimerList *PendingTimers;
+TimerList *PendingTimers;
 static char *schedule_timer (TimerList *ntimer);
 
 static char *current_exec_timer = empty_string;

