make 'where' Py_ssize_t
diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c
index 297bb07..0dc4805 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -585,11 +585,9 @@
     if (!PyArg_ParseTuple(args, "n|i:seek", &dist, &how))
         return NULL;
     else {
-        size_t where;
+        Py_ssize_t where;
         switch (how) {
         case 0: /* relative to start */
-            if (dist < 0)
-                goto onoutofrange;
             where = dist;
             break;
         case 1: /* relative to current position */
@@ -606,7 +604,7 @@
             PyErr_SetString(PyExc_ValueError, "unknown seek type");
             return NULL;
         }
-        if (where > self->size)
+        if (where > self->size || where < 0)
             goto onoutofrange;
         self->pos = where;
         Py_INCREF(Py_None);