diff --git a/pyopencl/c_wrapper/wrap_cl_core.h b/pyopencl/c_wrapper/wrap_cl_core.h
index 9dc2921b608d0e0f418c11148d2348119d0e4f52..1445cb7ee713409f8757c6323d031d690070b2b2 100644
--- a/pyopencl/c_wrapper/wrap_cl_core.h
+++ b/pyopencl/c_wrapper/wrap_cl_core.h
@@ -140,6 +140,7 @@ type_t image__get_fill_type(clobj_t img);
 error *event__get_profiling_info(clobj_t event, cl_profiling_info param,
                                  generic_info *out);
 error *event__wait(clobj_t event);
+void event__set_support_cb(clobj_t _evt, int support);
 error *event__set_callback(clobj_t _evt, cl_int type, void *pyobj);
 error *wait_for_events(const clobj_t *_wait_for, uint32_t num_wait_for);
 // Nanny Event
diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py
index dbc1ee8872820090cfdb08c11fe8d579eed78631..aaeb9ebe9c492c2990c28b9a7183230db58433ac 100644
--- a/pyopencl/cffi_cl.py
+++ b/pyopencl/cffi_cl.py
@@ -883,6 +883,17 @@ class Kernel(_Common):
 class Event(_Common):
     _id = 'event'
 
+    @classmethod
+    def _create(cls, ptr):
+        self = _Common._create.__func__(cls, ptr)
+        try:
+            if (self.context._get_cl_version() >= (1, 1) and
+                get_cl_header_version() >= (1, 1)):
+                _lib.event__set_support_cb(ptr, 1);
+        except:
+            pass
+        return self
+
     def __init__(self):
         pass
 
diff --git a/src/c_wrapper/event.cpp b/src/c_wrapper/event.cpp
index e53bb0a51888a46d7f9fa439bea12d118c6b302f..7dd2c3d76273c451a2935ab67153b95820b99abe 100644
--- a/src/c_wrapper/event.cpp
+++ b/src/c_wrapper/event.cpp
@@ -198,6 +198,13 @@ event__wait(clobj_t evt)
 }
 
 #if PYOPENCL_CL_VERSION >= 0x1010
+void
+event__set_support_cb(clobj_t _evt, int support)
+{
+    auto evt = static_cast<event*>(_evt);
+    evt->support_cb = support;
+}
+
 error*
 event__set_callback(clobj_t _evt, cl_int type, void *pyobj)
 {