Always insert script directory in front of sys.path -- if there's no
sys.argv, insert "".  Note that "." is removed as a default component
of the path (see changes to getpath.c and Setup.in).
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 1b6fab8..1dc8e17 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -360,27 +360,27 @@
 	char **argv;
 {
 	object *av = makeargvobject(argc, argv);
+	object *path = sysget("path");
 	if (av == NULL)
 		fatal("no mem for sys.argv");
 	if (sysset("argv", av) != 0)
 		fatal("can't assign sys.argv");
-	if (argc > 0) {
-		object *path = sysget("path");
-		if (path != NULL) {
-			char *p = strrchr(argv[0], SEP);
-			int n;
-			object *a;
-			if (p == NULL)
-				n = 0;
-			else
-				n = p + 1 - argv[0];
-			a = newsizedstringobject(argv[0], n);
-			if (a == NULL)
-				fatal("no mem for sys.path insertion");
-			if (inslistitem(path, 0, a) < 0)
-				fatal("sys.path.insert(0) failed");
-			DECREF(a);
-		}
+	if (path != NULL) {
+		char *p = NULL;
+		int n;
+		object *a;
+		if (argc > 0 && argv[0] != NULL)
+			p = strrchr(argv[0], SEP);
+		if (p == NULL)
+			n = 0;
+		else
+			n = p + 1 - argv[0];
+		a = newsizedstringobject(argv[0], n);
+		if (a == NULL)
+			fatal("no mem for sys.path insertion");
+		if (inslistitem(path, 0, a) < 0)
+			fatal("sys.path.insert(0) failed");
+		DECREF(a);
 	}
 	DECREF(av);
 }