diff --git a/src/if_python.c b/src/if_python.c
index 8185fc1..95be357 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -343,6 +343,16 @@
 {
     int i;
 
+#if defined(UNIX) && defined(FEAT_PYTHON3)
+    /* Can't have Python and Python3 loaded at the same time, it may cause a
+     * crash. */
+    if (python3_loaded())
+    {
+	EMSG(_("E999: Python: Cannot use :py and :py3 in one session"));
+	return FAIL;
+    }
+#endif
+
     if (hinstPython)
 	return OK;
     hinstPython = load_dll(libname);
@@ -519,6 +529,14 @@
     --recurse;
 }
 
+#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON3)) || defined(PROTO)
+    int
+python_loaded()
+{
+    return (hinstPython != 0);
+}
+#endif
+
     static int
 Python_Init(void)
 {
diff --git a/src/if_python3.c b/src/if_python3.c
index 238f968..8958e0a 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -306,7 +306,7 @@
  */
 static void end_dynamic_python3(void)
 {
-    if (hinstPy3)
+    if (hinstPy3 != 0)
     {
 	close_dll(hinstPy3);
 	hinstPy3 = 0;
@@ -323,7 +323,17 @@
     int i;
     void *ucs_from_string, *ucs_from_string_and_size;
 
-    if (hinstPy3)
+#if defined(UNIX) && defined(FEAT_PYTHON)
+    /* Can't have Python and Python3 loaded at the same time, it may cause a
+     * crash. */
+    if (python_loaded())
+    {
+	EMSG(_("E999: Python: Cannot use :py and :py3 in one session"));
+	return FAIL;
+    }
+#endif
+
+    if (hinstPy3 != 0)
 	return OK;
     hinstPy3 = load_dll(libname);
 
@@ -506,6 +516,14 @@
     --recurse;
 }
 
+#if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON)) || defined(PROTO)
+    int
+python3_loaded()
+{
+    return (hinstPy3 != 0);
+}
+#endif
+
 static int Python3_Init(void)
 {
     if (!py3initialised)
diff --git a/src/proto/if_python.pro b/src/proto/if_python.pro
index 793b6ee..ec12402 100644
--- a/src/proto/if_python.pro
+++ b/src/proto/if_python.pro
@@ -1,6 +1,7 @@
 /* if_python.c */
 int python_enabled __ARGS((int verbose));
 void python_end __ARGS((void));
+int python_loaded __ARGS((void));
 void ex_python __ARGS((exarg_T *eap));
 void ex_pyfile __ARGS((exarg_T *eap));
 void python_buffer_free __ARGS((buf_T *buf));
diff --git a/src/proto/if_python3.pro b/src/proto/if_python3.pro
index f9921e1..9c132c3 100644
--- a/src/proto/if_python3.pro
+++ b/src/proto/if_python3.pro
@@ -1,6 +1,7 @@
 /* if_python3.c */
 int python3_enabled __ARGS((int verbose));
 void python3_end __ARGS((void));
+int python3_loaded __ARGS((void));
 void ex_py3 __ARGS((exarg_T *eap));
 void ex_py3file __ARGS((exarg_T *eap));
 void python3_buffer_free __ARGS((buf_T *buf));
