As a side effect of calling PySys_SetArgv (setpythonargv), the
directory containing argv[0] is inserted in front of sys.path.
If argv[0] contains no directory, an empty string is inserted.
If argv is empty, nothing happens.
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 8937c85..1b6fab8 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -364,5 +364,23 @@
 		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);
+		}
+	}
 	DECREF(av);
 }