$OpenBSD: patch-Modules_selectmodule_c,v 1.3 2012/04/27 08:18:59 rpointel Exp $
--- Modules/selectmodule.c.orig	Tue Apr 10 01:07:34 2012
+++ Modules/selectmodule.c	Fri Apr 13 07:45:44 2012
@@ -1208,6 +1208,7 @@ static PyTypeObject kqueue_queue_Type;
  */
 
 #define KQ_OFF(x) offsetof(kqueue_event_Object, x)
+#if !defined(__OpenBSD__)
 static struct PyMemberDef kqueue_event_members[] = {
     {"ident",           T_UINTPTRT,     KQ_OFF(e.ident)},
     {"filter",          T_SHORT,        KQ_OFF(e.filter)},
@@ -1217,6 +1218,19 @@ static struct PyMemberDef kqueue_event_members[] = {
     {"udata",           T_UINTPTRT,     KQ_OFF(e.udata)},
     {NULL} /* Sentinel */
 };
+#else
+static struct PyMemberDef kqueue_event_members[] = {
+    {"ident",           T_UINT,         KQ_OFF(e.ident)},
+    {"filter",          T_SHORT,        KQ_OFF(e.filter)},
+    {"flags",           T_USHORT,       KQ_OFF(e.flags)},
+    {"fflags",          T_UINT,         KQ_OFF(e.fflags)},
+    {"data",            T_INT,          KQ_OFF(e.data)},
+    {"udata",           T_UINTPTRT,     KQ_OFF(e.udata)},
+    {NULL} /* Sentinel */
+};
+# undef INTPTRT_FMT_UNIT
+# define INTPTRT_FMT_UNIT   "i"
+#endif
 #undef KQ_OFF
 
 static PyObject *
@@ -1278,10 +1292,10 @@ kqueue_event_richcompare(kqueue_event_Object *s, kqueu
             Py_TYPE(s)->tp_name, Py_TYPE(o)->tp_name);
         return NULL;
     }
-    if (((result = s->e.ident - o->e.ident) == 0) &&
+    if (((result = (int)(s->e.ident - o->e.ident)) == 0) &&
         ((result = s->e.filter - o->e.filter) == 0) &&
         ((result = s->e.flags - o->e.flags) == 0) &&
-        ((result = s->e.fflags - o->e.fflags) == 0) &&
+        ((result = (int)(s->e.fflags - o->e.fflags)) == 0) &&
         ((result = s->e.data - o->e.data) == 0) &&
         ((result = s->e.udata - o->e.udata) == 0)
        ) {
