diff -Naur Python-2.7.9-orig/Modules/_ctypes/_ctypes.c Python-2.7.9/Modules/_ctypes/_ctypes.c
--- Python-2.7.9-orig/Modules/_ctypes/_ctypes.c	2014-12-10 18:59:51.000000000 +0300
+++ Python-2.7.9/Modules/_ctypes/_ctypes.c	2014-12-11 13:50:23.088200000 +0300
@@ -3202,11 +3202,28 @@
     mangled_name = alloca(strlen(name) + 1 + 1 + 1 + 3); /* \0 _ @ %d */
     if (!mangled_name)
         return NULL;
+    /* Issue: for stdcall decorated export functions MSVC compiler adds
+     * underscore, but GCC compiler create them without. This is
+     * visible by example for _ctypes_test.pyd module.
+     * As well functions from system libraries are without underscore.
+     * Solutions:
+     * - If a python module is build with gcc option --add-stdcall-alias
+     * the module will contain XXX as alias for function XXX@ as result
+     * first search in this method will succeed.
+     * - Distutil may use compiler to create def-file, to modify it as
+     * add underscore alias and with new def file to create module.
+     * - Or may be just to search for function without underscore.
+     */
     for (i = 0; i < 32; ++i) {
         sprintf(mangled_name, "_%s@%d", name, i*4);
         address = (PPROC)GetProcAddress(handle, mangled_name);
         if (address)
             return address;
+        /* search for function without underscore as weel */
+        sprintf(mangled_name, "%s@%d", name, i*4);
+        address = (PPROC)GetProcAddress(handle, mangled_name);
+        if (address)
+            return address;
     }
     return NULL;
 #endif
