--- HelenOS/uspace/app/bdsh/cmds/builtins/cd/cd.c	2012-03-22 21:23:03.000000000 +0530
+++ /home/ketan/HelenOS/uspace/app/bdsh/cmds/builtins/cd/cd.c	2012-04-04 14:38:50.097408003 +0530
@@ -81,7 +81,29 @@
 	/* We have the correct # of arguments
      * TODO: handle tidle (~) expansion? */
 
-	rc = chdir(argv[1]);
+
+	/* Handles 'cd -' */
+	if (argv[1][0] == '-'  && argv[1][1] == '\0')
+	{
+		char * buffer = (char *) malloc(PATH_MAX);
+		if (!buffer) {
+			cli_error(CL_ENOMEM, "%s: ", cmdname);
+			return CMD_FAILURE;
+		}
+		memset(buffer, 0, sizeof(PATH_MAX));
+		getpwd(buffer, PATH_MAX);
+		if(*buffer == '\0')
+		{
+			cli_error(CL_EFAIL, "PWD Parameter not set");
+			return CMD_FAILURE;
+		}
+		else
+			rc = chdir(buffer);
+	}
+	else
+	{
+		rc = chdir(argv[1]);
+	}
 
 	if (rc == 0) {
 		cli_set_prompt(usr);
