diff --git a/src/if_py_both.h b/src/if_py_both.h
index d828358..8229458 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -56,7 +56,7 @@
     /* name,	    function,		calling,    documentation */
     {"write",	    OutputWrite,	1,	    ""},
     {"writelines",  OutputWritelines,	1,	    ""},
-    {"flush",       OutputFlush,        1,          ""},
+    {"flush",	    OutputFlush,	1,	    ""},
     { NULL,	    NULL,		0,	    NULL}
 };
 
@@ -506,8 +506,8 @@
     /* name,	     function,		calling,    documentation */
     {"command",	     VimCommand,	1,	    "Execute a Vim ex-mode command" },
     {"eval",	     VimEval,		1,	    "Evaluate an expression using Vim evaluator" },
-    {"bindeval",     VimEvalPy,         1,          "Like eval(), but returns objects attached to vim ones"},
-    {"strwidth",     VimStrwidth,       1,          "Screen string width, counts <Tab> as having width 1"},
+    {"bindeval",     VimEvalPy,		1,	    "Like eval(), but returns objects attached to vim ones"},
+    {"strwidth",     VimStrwidth,	1,	    "Screen string width, counts <Tab> as having width 1"},
     { NULL,	     NULL,		0,	    NULL }
 };
 
@@ -2432,17 +2432,32 @@
 convert_dl(PyObject *obj, typval_T *tv,
 				    pytotvfunc py_to_tv, PyObject *lookupDict)
 {
+# ifdef PY_USE_CAPSULE
     PyObject	*capsule;
+# else
+    PyCObject	*cobject;
+# endif
     char	hexBuf[sizeof(void *) * 2 + 3];
 
     sprintf(hexBuf, "%p", obj);
 
+# ifdef PY_USE_CAPSULE
     capsule = PyDict_GetItemString(lookupDict, hexBuf);
     if (capsule == NULL)
+# else
+    cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
+    if (cobject == NULL)
+# endif
     {
+# ifdef PY_USE_CAPSULE
 	capsule = PyCapsule_New(tv, NULL, NULL);
 	PyDict_SetItemString(lookupDict, hexBuf, capsule);
 	Py_DECREF(capsule);
+# else
+	cobject = PyCObject_FromVoidPtr(tv, NULL);
+	PyDict_SetItemString(lookupDict, hexBuf, cobject);
+	Py_DECREF(cobject);
+# endif
 	if (py_to_tv(obj, tv, lookupDict) == -1)
 	{
 	    tv->v_type = VAR_UNKNOWN;
@@ -2458,7 +2473,13 @@
     }
     else
     {
-	typval_T	*v = PyCapsule_GetPointer(capsule, NULL);
+	typval_T	*v;
+
+# ifdef PY_USE_CAPSULE
+	v = PyCapsule_GetPointer(capsule, NULL);
+# else
+	v = PyCObject_AsVoidPtr(cobject);
+# endif
 	copy_tv(v, tv);
     }
     return 0;
diff --git a/src/if_python.c b/src/if_python.c
index 23d58d1..0667b5e 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -71,6 +71,10 @@
 # define PySequenceMethods Py_ssize_t
 #endif
 
+#if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+# define PY_USE_CAPSULE
+#endif
+
 #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
 # define PyInt Py_ssize_t
 # define PyInquiry lenfunc
@@ -220,8 +224,13 @@
 #  define PyObject_Malloc dll_PyObject_Malloc
 #  define PyObject_Free dll_PyObject_Free
 # endif
-# define PyCapsule_New dll_PyCapsule_New
-# define PyCapsule_GetPointer dll_PyCapsule_GetPointer
+# ifdef PY_USE_CAPSULE
+#  define PyCapsule_New dll_PyCapsule_New
+#  define PyCapsule_GetPointer dll_PyCapsule_GetPointer
+# else
+#  define PyCObject_FromVoidPtr dll_PyCObject_FromVoidPtr
+#  define PyCObject_AsVoidPtr dll_PyCObject_AsVoidPtr
+# endif
 
 /*
  * Pointers for dynamic link
@@ -309,8 +318,13 @@
 static void* (*dll_PyObject_Malloc)(size_t);
 static void (*dll_PyObject_Free)(void*);
 # endif
+# ifdef PY_USE_CAPSULE
 static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
 static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
+# else
+static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
+static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
+# endif
 
 static HINSTANCE hinstPython = 0; /* Instance of python.dll */
 
@@ -403,7 +417,8 @@
     {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
     {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
     {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
-# if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
+# if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \
+	&& SIZEOF_SIZE_T != SIZEOF_INT
     {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
 # else
     {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
@@ -424,8 +439,13 @@
     {"PyObject_Malloc", (PYTHON_PROC*)&dll_PyObject_Malloc},
     {"PyObject_Free", (PYTHON_PROC*)&dll_PyObject_Free},
 # endif
+# ifdef PY_USE_CAPSULE
     {"PyCapsule_New", (PYTHON_PROC*)&dll_PyCapsule_New},
     {"PyCapsule_GetPointer", (PYTHON_PROC*)&dll_PyCapsule_GetPointer},
+# else
+    {"PyCObject_FromVoidPtr", (PYTHON_PROC*)&dll_PyCObject_FromVoidPtr},
+    {"PyCObject_AsVoidPtr", (PYTHON_PROC*)&dll_PyCObject_AsVoidPtr},
+# endif
     {"", NULL},
 };
 
diff --git a/src/if_python3.c b/src/if_python3.c
index c4e122c..a62971e 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -75,6 +75,9 @@
 # define CODEC_ERROR_HANDLER NULL
 #endif
 
+/* Python 3 does not support CObjects, always use Capsules */
+#define PY_USE_CAPSULE
+
 #define PyInt Py_ssize_t
 #define PyString_Check(obj) PyUnicode_Check(obj)
 #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER)
diff --git a/src/version.c b/src/version.c
index 9ab5188..074ce3e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    579,
+/**/
     578,
 /**/
     577,
