Call Py_SetProgramName() instead of redefining getprogramname(),
reflecting changes in the runtime around 1.5 or earlier.
diff --git a/Demo/embed/demo.c b/Demo/embed/demo.c
index 9a1883f..579ba07 100644
--- a/Demo/embed/demo.c
+++ b/Demo/embed/demo.c
@@ -2,16 +2,14 @@
 
 #include "Python.h"
 
-static char *argv0;
-
 void initxyzzy(); /* Forward */
 
 main(argc, argv)
 	int argc;
 	char **argv;
 {
-	/* Save a copy of argv0 */
-	argv0 = argv[0];
+	/* Pass argv[0] to the Python interpreter */
+	Py_SetProgramName(argv[0]);
 
 	/* Initialize the Python interpreter.  Required. */
 	Py_Initialize();
@@ -32,6 +30,7 @@
 	PyRun_SimpleString("import sys\n");
 	PyRun_SimpleString("print sys.builtin_module_names\n");
 	PyRun_SimpleString("print sys.modules.keys()\n");
+	PyRun_SimpleString("print sys.executable\n");
 	PyRun_SimpleString("print sys.argv\n");
 
 	/* Note that you can call any public function of the Python
@@ -45,13 +44,6 @@
 	/*NOTREACHED*/
 }
 
-/* This function is called by the interpreter to get its own name */
-char *
-getprogramname()
-{
-	return argv0;
-}
-
 /* A static module */
 
 static PyObject *