diff --git a/ChangeLog b/ChangeLog
index e12339a..c4f8950 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-09-19 Hasso Tepper <hasso at quagga.net>
+
+	* configure.ac: Test existance of strndup.
+
 2005-08-25 Paul Jakma <paul@jakma.org>
 
 	* configure.ac: Add -fno-omit-frame-pointer after -Os in default
diff --git a/configure.ac b/configure.ac
index 15bd075..7aa9844 100755
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 ##  Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro <kunihiro@zebra.org>
 ##  Portions Copyright (c) 2003 Paul Jakma <paul@dishone.st>
 ##
-## $Id: configure.ac,v 1.111 2005/08/25 14:50:05 paul Exp $
+## $Id: configure.ac,v 1.112 2005/09/19 09:53:21 hasso Exp $
 AC_PREREQ(2.53)
 
 AC_INIT(Quagga, 0.99.1, [http://bugzilla.quagga.net])
@@ -497,7 +497,7 @@
 dnl ----------------------------
 AC_CHECK_FUNCS(memset memcpy strerror inet_aton daemon snprintf vsnprintf \
                strlcat strlcpy if_nametoindex if_indextoname getifaddrs \
-	       fcntl strnlen)
+	       fcntl strnlen strndup)
 AC_CHECK_FUNCS(setproctitle, ,
   [AC_CHECK_LIB(util, setproctitle, 
      [LIBS="$LIBS -lutil"
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 08d6278..53e1eb2 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2005-09-19 Hasso Tepper <hasso at quagga.net>
+
+	* str.[ch]: Add strndup() from glibc.
+
 2005-09-05 Paul Jakma <paul.jakma@sun.com>
 
 	* command.c: (install_element) be more robust. Eg, cmd_init
diff --git a/lib/str.c b/lib/str.c
index 00d0319..4ab71e1 100644
--- a/lib/str.c
+++ b/lib/str.c
@@ -11,6 +11,9 @@
 
  Note that these are not terribly efficient, since they make more than one
  pass over the argument strings.  At some point, they should be optimized.
+ 
+ The implementation of strndup is copied from glibc-2.3.5:
+    Copyright (C) 1996, 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
 */
 
 
@@ -89,3 +92,18 @@
   return (p = (const char *)memchr(s, '\0', maxlen)) ? (size_t)(p-s) : maxlen;
 }
 #endif
+
+#ifndef HAVE_STRNDUP
+char *
+strndup (const char *s, size_t maxlen)
+{
+    size_t len = strnlen (s, maxlen);
+    char *new = (char *) malloc (len + 1);
+
+    if (new == NULL)
+      return NULL;
+
+    new[len] = '\0';
+    return (char *) memcpy (new, s, len);
+}
+#endif
diff --git a/lib/str.h b/lib/str.h
index 145863d..7b83fe1 100644
--- a/lib/str.h
+++ b/lib/str.h
@@ -1,5 +1,5 @@
 /*
- * $Id: str.h,v 1.3 2005/05/06 21:25:49 paul Exp $
+ * $Id: str.h,v 1.4 2005/09/19 09:53:21 hasso Exp $
  */
 
 #ifndef _ZEBRA_STR_H
@@ -25,5 +25,9 @@
 extern size_t strnlen(const char *s, size_t maxlen);
 #endif
 
+#ifndef HAVE_STRNDUP
+extern char * strndup (const char *, size_t);
+#endif
+
 #endif /* _ZEBRA_STR_H */
 
