Do not segfault if PATH is unset.
diff --git a/findutils/which.c b/findutils/which.c
index eec5fdb..b2af5a8 100644
--- a/findutils/which.c
+++ b/findutils/which.c
@@ -38,15 +38,16 @@
 	argc--;
 
 	path_list = getenv("PATH");
-	if (!path_list)
-		path_list = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin";
-
-	/* Replace colons with zeros in path_parsed and count them */
-	for(i=strlen(path_list); i > 0; i--) 
-		if (path_list[i]==':') {
-			path_list[i]=0;
-			count++;
-		}
+	if (path_list != NULL) {
+		for(i=strlen(path_list); i > 0; i--)
+			if (path_list[i]==':') {
+				path_list[i]=0;
+				count++;
+			}
+	} else {
+		path_list = "/bin\0/sbin\0/usr/bin\0/usr/sbin\0/usr/local/bin";
+		count = 5;
+	}
 
 	while(argc-- > 0) { 
 		path_n = path_list;
diff --git a/testsuite/which/which-uses-default-path b/testsuite/which/which-uses-default-path
new file mode 100644
index 0000000..e2a2f38
--- /dev/null
+++ b/testsuite/which/which-uses-default-path
@@ -0,0 +1,8 @@
+BUSYBOX=$(type -p busybox)
+echo $BUSYBOX
+SAVED_PATH=$PATH
+unset PATH
+$BUSYBOX which ls
+STATUS=$?
+export PATH=$SAVED_PATH
+return $STATUS