diff -uNrd ircd-hybrid-6.dist/autoconf/configure.in ircd-hybrid-6/autoconf/configure.in
--- ircd-hybrid-6.dist/autoconf/configure.in	Tue Feb 12 19:27:21 2002
+++ ircd-hybrid-6/autoconf/configure.in	Tue Feb 12 21:25:46 2002
@@ -28,7 +28,7 @@
 
 dnl Checks for header files.
 AC_HEADER_STDC
-AC_CHECK_HEADERS(sys/param.h sys/select.h errno.h string.h stddef.h getopt.h crypt.h) 
+AC_CHECK_HEADERS(sys/param.h sys/select.h errno.h string.h stddef.h getopt.h crypt.h locale.h) 
 
 dnl Check for stdarg.h - if we can't find it, halt configure
 AC_CHECK_HEADER(stdarg.h, , AC_MSG_ERROR(** stdarg.h could not be found - ircd-hybrid will not compile without it **))
@@ -40,6 +40,12 @@
 dnl for zlib 1.0.2 or higher by looking for zlibVersion().
 AC_CHECK_LIB(z, deflate)
 AC_CHECK_FUNC(zlibVersion, , AC_MSG_WARN(zlib 1.0.2 or higher required for ZIPLINK support))
+
+dnl check for setlocale() call
+AC_CHECK_FUNC(setlocale, AC_DEFINE(USE_SETLOCALE),)
+
+dnl check for strftime() call
+AC_CHECK_FUNC(strftime, AC_DEFINE(USE_STRFTIME),)
 
 dnl check for poll() call
 AC_CHECK_FUNC(poll, AC_DEFINE(USE_POLL),)
diff -uNrd ircd-hybrid-6.dist/configure ircd-hybrid-6/configure
--- ircd-hybrid-6.dist/configure	Tue Feb 12 19:27:23 2002
+++ ircd-hybrid-6/configure	Tue Feb 12 21:26:36 2002
@@ -1646,7 +1646,7 @@
 
 fi
 
-for ac_hdr in sys/param.h sys/select.h errno.h string.h stddef.h getopt.h crypt.h
+for ac_hdr in sys/param.h sys/select.h errno.h string.h stddef.h getopt.h crypt.h locale.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
@@ -1867,13 +1867,117 @@
 fi
 
 
+echo $ac_n "checking for setlocale""... $ac_c" 1>&6
+echo "configure:1872: checking for setlocale" >&5
+if eval "test \"`echo '$''{'ac_cv_func_setlocale'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1877 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char setlocale(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char setlocale();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_setlocale) || defined (__stub___setlocale)
+choke me
+#else
+setlocale();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_setlocale=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_setlocale=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'setlocale`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define USE_SETLOCALE 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking for strftime""... $ac_c" 1>&6
+echo "configure:1924: checking for strftime" >&5
+if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1929 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char strftime(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char strftime();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_strftime) || defined (__stub___strftime)
+choke me
+#else
+strftime();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_strftime=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_strftime=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'strftime`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define USE_STRFTIME 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
 echo $ac_n "checking for poll""... $ac_c" 1>&6
-echo "configure:1872: checking for poll" >&5
+echo "configure:1976: checking for poll" >&5
 if eval "test \"`echo '$''{'ac_cv_func_poll'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1877 "configure"
+#line 1981 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char poll(); below.  */
@@ -1896,7 +2000,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:1900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_poll=yes"
 else
@@ -1920,12 +2024,12 @@
 
 
 echo $ac_n "checking for non-blocking socket implementation""... $ac_c" 1>&6
-echo "configure:1924: checking for non-blocking socket implementation" >&5
+echo "configure:2028: checking for non-blocking socket implementation" >&5
 if test "$cross_compiling" = yes; then
   echo "$ac_t""cross compiling " 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1929 "configure"
+#line 2033 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -1957,7 +2061,7 @@
 }
 
 EOF
-if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define NBLOCK_POSIX 1
@@ -1975,17 +2079,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1979: checking for $ac_hdr" >&5
+echo "configure:2083: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1984 "configure"
+#line 2088 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2093: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2014,12 +2118,12 @@
 for ac_func in getpagesize
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2018: checking for $ac_func" >&5
+echo "configure:2122: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2023 "configure"
+#line 2127 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2042,7 +2146,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2067,7 +2171,7 @@
 done
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:2071: checking for working mmap" >&5
+echo "configure:2175: checking for working mmap" >&5
 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2075,7 +2179,7 @@
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2079 "configure"
+#line 2183 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test.
@@ -2215,7 +2319,7 @@
 }
 
 EOF
-if { (eval echo configure:2219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
@@ -2242,7 +2346,7 @@
   echo "$ac_t""unable to test" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2246 "configure"
+#line 2350 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -2274,7 +2378,7 @@
 }
 
 EOF
-if { (eval echo configure:2278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define NBLOCK_BSD 1
@@ -2292,7 +2396,7 @@
   echo "$ac_t""unable to test" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2296 "configure"
+#line 2400 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -2324,7 +2428,7 @@
 }
 
 EOF
-if { (eval echo configure:2328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define NBLOCK_SYSV 1
@@ -2339,12 +2443,12 @@
 
 
 echo $ac_n "checking signal implementation""... $ac_c" 1>&6
-echo "configure:2343: checking signal implementation" >&5
+echo "configure:2447: checking signal implementation" >&5
 if test "$cross_compiling" = yes; then
   echo "$ac_t""unknown" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2348 "configure"
+#line 2452 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -2358,7 +2462,7 @@
 }
 
 EOF
-if { (eval echo configure:2362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define POSIX_SIGNALS 1
@@ -2372,7 +2476,7 @@
   echo "$ac_t""uknown" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2376 "configure"
+#line 2480 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -2393,7 +2497,7 @@
 }
 
 EOF
-if { (eval echo configure:2397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2501: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define BSD_RELIABLE_SIGNALS 1
diff -uNrd ircd-hybrid-6.dist/include/setup.h.in ircd-hybrid-6/include/setup.h.in
--- ircd-hybrid-6.dist/include/setup.h.in	Tue Feb 12 19:27:23 2002
+++ ircd-hybrid-6/include/setup.h.in	Tue Feb 12 21:26:24 2002
@@ -26,6 +26,12 @@
 /* Define if you have the poll() system call.  */
 #undef USE_POLL
 
+/* Define if you have the setlocale() library function.  */
+#undef USE_SETLOCALE
+
+/* Define if you have the strftime() library function.  */
+#undef USE_STRFTIME
+
 /* Chose only one of NBLOCK_POSIX, NBLOCK_BSD, and NBLOCK_SYSV */
 /* Define if you have posix non-blocking sockets (O_NONBLOCK) */
 #undef NBLOCK_POSIX
@@ -62,6 +68,9 @@
 
 /* Define if you have the <unistd.h> header file.  */
 #undef HAVE_UNISTD_H
+
+/* Define if you have the <locale.h> header file.  */
+#undef HAVE_LOCALE_H
 
 /* Define if you have the descrypt library (-ldescrypt).  */
 #undef HAVE_LIBDESCRYPT
diff -uNrd ircd-hybrid-6.dist/src/irc_string.c ircd-hybrid-6/src/irc_string.c
--- ircd-hybrid-6.dist/src/irc_string.c	Tue Feb 12 19:27:21 2002
+++ ircd-hybrid-6/src/irc_string.c	Tue Feb 12 21:33:11 2002
@@ -36,15 +36,22 @@
  *
  *
  * Thu Nov 24 18:22:48 1986 
+ *
+ * Localisation of times, 12 fév 2002 -Hwy
  */
 const char* myctime(time_t value)
 {
   static char buf[32];
+#ifdef USE_STRFTIME
+  struct tm *ltm = localtime(&value);
+  strftime(buf, 32, "%c", ltm);
+#else
   char*       p;
 
   strcpy(buf, ctime(&value));
   if ((p = strchr(buf, '\n')) != NULL)
     *p = '\0';
+#endif /* USE_STRFTIME */
   return buf;
 }
 
diff -uNrd ircd-hybrid-6.dist/src/ircd.c ircd-hybrid-6/src/ircd.c
--- ircd-hybrid-6.dist/src/ircd.c	Tue Feb 12 19:27:21 2002
+++ ircd-hybrid-6/src/ircd.c	Tue Feb 12 19:32:39 2002
@@ -74,6 +74,10 @@
 #include <getopt.h>
 #endif /* HAVE_GETOPT_H */
 
+#if defined(HAVE_LOCALE_H)
+#include <locale.h>
+#endif /* HAVE_LOCALE_H */
+
 /*
  * for getopt
  * ZZZ this is going to need confirmation on other OS's
@@ -721,6 +725,17 @@
       fprintf(stderr, "ERROR: Clock Failure: %s\n", strerror(errno));
       exit(errno);
     }
+
+  /*
+   * Setup the locale settings for times
+   * It will use the default language setting for the user that starts
+   * ircd.  Set the LC_TIME or LANG variables in your environment prior
+   * to starting the daemon in order to change the server's language.
+   * -Hwy
+   */
+#ifdef USE_SETLOCALE
+  (void) setlocale(LC_TIME, "");
+#endif
 
   /*
    * Setup corefile size immediately after boot
diff -uNrd ircd-hybrid-6.dist/src/s_misc.c ircd-hybrid-6/src/s_misc.c
--- ircd-hybrid-6.dist/src/s_misc.c	Tue Feb 12 19:27:22 2002
+++ ircd-hybrid-6/src/s_misc.c	Tue Feb 12 21:37:15 2002
@@ -59,6 +59,7 @@
 char* date(time_t clockval) 
 {
   static        char        buf[80], plus;
+  static        char        tbuf[80];
   struct        tm *lt, *gm;
   struct        tm        gmbuf;
   int        minswest;
@@ -81,11 +82,16 @@
   plus = (minswest > 0) ? '-' : '+';
   if (minswest < 0)
     minswest = -minswest;
-  
+ 
+#ifdef USE_STRFTIME
+  strftime(tbuf, 80, "%A %e %B %Y -- %T", lt);
+  ircsprintf(buf, "%s %c%t:%t", tbuf, plus, minswest/60, minswest%60);
+#else
   ircsprintf(buf, "%s %s %d %d -- %t:%t:%t %c%t:%t",
           weekdays[lt->tm_wday], months[lt->tm_mon],lt->tm_mday,
           lt->tm_year + 1900, lt->tm_hour, lt->tm_min, lt->tm_sec,
           plus, minswest/60, minswest%60);
+#endif
 
   return buf;
 }
