diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp
index e058d214c1f2aee22e1d1133f32deab465707dc7..cc65f93ee95da26147e4f188d52b62e9d8e9fda2 100644
--- a/src/wrapper/wrap_cl.hpp
+++ b/src/wrapper/wrap_cl.hpp
@@ -3722,6 +3722,11 @@ namespace pyopencl
 
   // {{{ deferred implementation bits
 
+  inline py::object create_event_wrapper_from_int(intptr_t cl_event_as_int)
+  {
+    return py::object(handle_from_new_ptr(new event((cl_event)cl_event_as_int, true)));
+  }
+
   inline py::object create_mem_object_wrapper(cl_mem mem)
   {
     cl_mem_object_type mem_obj_type;
diff --git a/src/wrapper/wrap_cl_part_1.cpp b/src/wrapper/wrap_cl_part_1.cpp
index c97d907bb2dc56ec9d6c9768eefd98103b9d6ea9..d441718ff200b2089838d58f2d2247d18baeb600 100644
--- a/src/wrapper/wrap_cl_part_1.cpp
+++ b/src/wrapper/wrap_cl_part_1.cpp
@@ -105,6 +105,9 @@ void pyopencl_expose_part_1()
       .def(py::self == py::self)
       .def(py::self != py::self)
       .def("__hash__", &cls::hash)
+      .def("from_cl_event_as_int", create_event_wrapper_from_int,
+	   py::args("cl_event_as_int"))
+      .staticmethod("from_cl_event_as_int")
       ;
   }
   {