Index: uspace/app/bdsh/AUTHORS
===================================================================
--- uspace/app/bdsh/AUTHORS	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/AUTHORS	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -9,7 +9,4 @@
 * Based on the HelenOS testing sub-system written by Martin Decky
 
-* cli_strtok() and cli_strtok_r() (util.c) were adapted from the FreeBSD
-  strtok() and strtok_r() functions written by Wes Peters.
-
 * read_line() (input.c) was written by Jiri Svoboda
 
Index: uspace/app/bdsh/cmds/modules/mkdir/mkdir.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -94,5 +94,5 @@
 	/* Its a good idea to allocate path, plus we (may) need a copy of
 	 * path to tokenize if parents are specified */
-	if (NULL == (tmp = cli_strdup(path))) {
+	if (NULL == (tmp = strdup(path))) {
 		cli_error(CL_ENOMEM, "%s: path too big?", cmdname);
 		return 1;
@@ -129,7 +129,7 @@
 
 	/* TODO: Canonify the path prior to tokenizing it, see below */
-	dirs[i] = cli_strtok(tmp, "/");
+	dirs[i] = strtok(tmp, "/");
 	while (dirs[i] && i < 255)
-		dirs[++i] = cli_strtok(NULL, "/");
+		dirs[++i] = strtok(NULL, "/");
 
 	if (NULL == dirs[0])
Index: uspace/app/bdsh/cmds/modules/touch/touch.c
===================================================================
--- uspace/app/bdsh/cmds/modules/touch/touch.c	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/cmds/modules/touch/touch.c	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -38,4 +38,5 @@
 #include <dirent.h>
 #include <sys/types.h>
+#include <string.h>
 
 #include "config.h"
@@ -80,5 +81,5 @@
 
 	for (i = 1; i < argc; i ++) {
-		buff = cli_strdup(argv[i]);
+		buff = strdup(argv[i]);
 		dirp = opendir(buff);
 		if (dirp) {
Index: uspace/app/bdsh/exec.c
===================================================================
--- uspace/app/bdsh/exec.c	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/exec.c	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -81,8 +81,8 @@
 	}
 
-	path_tok = cli_strdup(PATH);
+	path_tok = strdup(PATH);
 
 	/* Extract the PATH env to a path[] array */
-	path[n] = cli_strtok(path_tok, PATH_DELIM);
+	path[n] = strtok(path_tok, PATH_DELIM);
 	while (NULL != path[n]) {
 		if ((strlen(path[n]) + x ) > PATH_MAX) {
@@ -92,5 +92,5 @@
 			break;
 		}
-		path[++n] = cli_strtok(NULL, PATH_DELIM);
+		path[++n] = strtok(NULL, PATH_DELIM);
 	}
 
@@ -115,5 +115,5 @@
 	char *tmp;
 
-	tmp = cli_strdup(find_command(cmd));
+	tmp = strdup(find_command(cmd));
 	free(found);
 
Index: uspace/app/bdsh/input.c
===================================================================
--- uspace/app/bdsh/input.c	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/input.c	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -58,9 +58,9 @@
 		return CL_EFAIL;
 
-	tmp = cli_strdup(usr->line);
+	tmp = strdup(usr->line);
 
-	cmd[n] = cli_strtok(tmp, " ");
+	cmd[n] = strtok(tmp, " ");
 	while (cmd[n] && n < WORD_MAX) {
-		cmd[++n] = cli_strtok(NULL, " ");
+		cmd[++n] = strtok(NULL, " ");
 	}
 
@@ -139,5 +139,5 @@
 	if (len == 0 || line[0] == '\n')
 		return;
-	usr->line = cli_strdup(line);
+	usr->line = strdup(line);
 
 	return;
Index: uspace/app/bdsh/util.c
===================================================================
--- uspace/app/bdsh/util.c	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/util.c	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -1,6 +1,3 @@
-/* Copyright (c) 2008, Tim Post <tinkertim@gmail.com>
- * Copyright (C) 1998 by Wes Peters <wes@softweyr.com>
- * Copyright (c) 1988, 1993 The Regents of the University of California.
- * All rights reserved by all copyright holders.
+/* Copyright (c) 2008, Tim Post <tinkertim@gmail.com> - All rights reserved
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,16 +28,4 @@
  */
 
-/* NOTES:
- * 1 - Various functions were adapted from FreeBSD (copyright holders noted above)
- *     these functions are identified with comments.
- *
- * 2 - Some of these have since appeared in libc. They remain here for various
- *     reasons, such as the eventual integration of garbage collection for things
- *     that allocate memory and don't automatically free it.
- *
- * 3 - Things that expect a pointer to an allocated string do _no_ sanity checking
- *     if developing on a simulator with no debugger, take care :)
- */
-
 #include <stdio.h>
 #include <string.h>
@@ -54,69 +39,4 @@
 
 extern volatile int cli_errno;
-
-/* some platforms do not have strdup, implement it here.
- * Returns a pointer to an allocated string or NULL on failure */
-char * cli_strdup(const char *s1)
-{
-	size_t len = strlen(s1) + 1;
-	void *ret = malloc(len);
-
-	if (ret == NULL) {
-		cli_errno = CL_ENOMEM;
-		return (char *) NULL;
-	}
-
-	cli_errno = CL_EOK;
-	return (char *) memcpy(ret, s1, len);
-}
-
-/* Ported from FBSD strtok.c 8.1 (Berkeley) 6/4/93 */
-char * cli_strtok_r(char *s, const char *delim, char **last)
-{
-	char *spanp, *tok;
-	int c, sc;
-
-	if (s == NULL && (s = *last) == NULL) {
-		cli_errno = CL_EFAIL;
-		return (NULL);
-	}
-
-cont:
-	c = *s++;
-	for (spanp = (char *)delim; (sc = *spanp++) != 0;) {
-		if (c == sc)
-			goto cont;
-	}
-
-	if (c == 0) {		/* no non-delimiter characters */
-		*last = NULL;
-		return (NULL);
-	}
-
-	tok = s - 1;
-
-	for (;;) {
-		c = *s++;
-		spanp = (char *)delim;
-		do {
-			if ((sc = *spanp++) == c) {
-				if (c == 0)
-					s = NULL;
-				else
-					s[-1] = '\0';
-				*last = s;
-				return (tok);
-			}
-		} while (sc != 0);
-	}
-}
-
-/* Ported from FBSD strtok.c 8.1 (Berkeley) 6/4/93 */
-char * cli_strtok(char *s, const char *delim)
-{
-	static char *last;
-
-	return (cli_strtok_r(s, delim, &last));
-}
 
 /* Count and return the # of elements in an array */
Index: uspace/app/bdsh/util.h
===================================================================
--- uspace/app/bdsh/util.h	(revision fc11b8a9a4cb9eb89129fd82cf7f9706cb5658de)
+++ uspace/app/bdsh/util.h	(revision 4cc0c9ee2a2687bb25d47f35bb2087c5d1aa7227)
@@ -3,9 +3,4 @@
 
 #include "scli.h"
-
-/* Internal string handlers */
-extern char * cli_strdup(const char *);
-extern char * cli_strtok_r(char *, const char *, char **);
-extern char * cli_strtok(char *, const char *);
 
 /* Utility functions */
