Index: uspace/lib/libc/generic/string.c
===================================================================
--- uspace/lib/libc/generic/string.c	(revision 29f8f8e3b2dd5fbe47f0fd28045b5a4c79c6d15f)
+++ uspace/lib/libc/generic/string.c	(revision 566987b0b136c4a5e4c99b9659c683aa5122e984)
@@ -39,5 +39,5 @@
 #include <align.h>
 #include <sys/types.h>
-
+#include <malloc.h>
 
 /* Dummy implementation of mem/ functions */
@@ -354,4 +354,15 @@
 }
 
+char * strdup(const char *s1)
+{
+	size_t len = strlen(s1) + 1;
+	void *ret = malloc(len);
+
+	if (ret == NULL)
+		return (char *) NULL;
+
+	return (char *) memcpy(ret, s1, len);
+}
+
 /** @}
  */
Index: uspace/lib/libc/include/string.h
===================================================================
--- uspace/lib/libc/include/string.h	(revision 29f8f8e3b2dd5fbe47f0fd28045b5a4c79c6d15f)
+++ uspace/lib/libc/include/string.h	(revision 566987b0b136c4a5e4c99b9659c683aa5122e984)
@@ -56,4 +56,6 @@
 extern size_t strlen(const char *);
 
+extern char *strdup(const char *);
+
 extern char *strchr(const char *, int);
 extern char *strrchr(const char *, int);
