diff --git a/src/if_python3.c b/src/if_python3.c
index 5d45ba1..aa934cb 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -1436,7 +1436,11 @@
  * External interface
  */
     static void
-DoPyCommand(const char *cmd, rangeinitializer init_range, runner run, void *arg)
+DoPyCommand(const char *cmd,
+	    dict_T* locals,
+	    rangeinitializer init_range,
+	    runner run,
+	    void *arg)
 {
 #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
     char		*saved_locale;
@@ -1477,7 +1481,7 @@
     cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", ERRORS_ENCODE_ARG);
     Py_XDECREF(cmdstr);
 
-    run(PyBytes_AsString(cmdbytes), arg, &pygilstate);
+    run(PyBytes_AsString(cmdbytes), locals, arg, &pygilstate);
     Py_XDECREF(cmdbytes);
 
     PyGILState_Release(pygilstate);
@@ -1512,6 +1516,7 @@
 	    p_pyx = 3;
 
 	DoPyCommand(script == NULL ? (char *) eap->arg : (char *) script,
+		NULL,
 		init_range_cmd,
 		(runner) run_cmd,
 		(void *) eap);
@@ -1578,6 +1583,7 @@
 
     // Execute the file
     DoPyCommand(buffer,
+	    NULL,
 	    init_range_cmd,
 	    (runner) run_cmd,
 	    (void *) eap);
@@ -1590,6 +1596,7 @@
 	p_pyx = 3;
 
     DoPyCommand((char *)eap->arg,
+	    NULL,
 	    init_range_cmd,
 	    (runner)run_do,
 	    (void *)eap);
@@ -2137,9 +2144,10 @@
 }
 
     void
-do_py3eval(char_u *str, typval_T *rettv)
+do_py3eval(char_u *str, dict_T *locals, typval_T *rettv)
 {
     DoPyCommand((char *) str,
+	    locals,
 	    init_range_eval,
 	    (runner) run_eval,
 	    (void *) rettv);
