diff --git a/Modules/_io/_iomodule.h b/Modules/_io/_iomodule.h
index 1383ffc..bc0e452 100644
--- a/Modules/_io/_iomodule.h
+++ b/Modules/_io/_iomodule.h
@@ -70,14 +70,6 @@
  * Offset type for positioning.
  */
 
-/* Printing a variable of type off_t correctly and without producing
-   compiler warnings is surprisingly painful.  We identify an integer
-   type whose size matches off_t and then: (1) cast the off_t to that
-   integer type and (2) use the appropriate conversion specification
-   for printf.  The cast is necessary: gcc complains about formatting
-   a long with "%lld" even when both long and long long have the same
-   precision. */
-
 #if defined(MS_WIN64) || defined(MS_WINDOWS)
 
 /* Windows uses long long for offsets */
@@ -86,33 +78,26 @@
 # define PyLong_FromOff_t   PyLong_FromLongLong
 # define PY_OFF_T_MAX       PY_LLONG_MAX
 # define PY_OFF_T_MIN       PY_LLONG_MIN
-# define PY_PRIdOFF         "I64d" /* format to use in printf with type off_t */
-# define PY_OFF_T_COMPAT    PY_LONG_LONG /* type compatible with off_t */
+
 #else
 
 /* Other platforms use off_t */
 typedef off_t Py_off_t;
-#if (HAVE_LONG_LONG && SIZEOF_OFF_T == SIZEOF_LONG_LONG)
+#if (SIZEOF_OFF_T == SIZEOF_SIZE_T)
+# define PyLong_AsOff_t     PyLong_AsSsize_t
+# define PyLong_FromOff_t   PyLong_FromSsize_t
+# define PY_OFF_T_MAX       PY_SSIZE_T_MAX
+# define PY_OFF_T_MIN       PY_SSIZE_T_MIN
+#elif (SIZEOF_OFF_T == SIZEOF_LONG_LONG)
 # define PyLong_AsOff_t     PyLong_AsLongLong
 # define PyLong_FromOff_t   PyLong_FromLongLong
 # define PY_OFF_T_MAX       PY_LLONG_MAX
 # define PY_OFF_T_MIN       PY_LLONG_MIN
-# define PY_PRIdOFF         "lld"
-# define PY_OFF_T_COMPAT    PY_LONG_LONG
 #elif (SIZEOF_OFF_T == SIZEOF_LONG)
 # define PyLong_AsOff_t     PyLong_AsLong
 # define PyLong_FromOff_t   PyLong_FromLong
 # define PY_OFF_T_MAX       LONG_MAX
 # define PY_OFF_T_MIN       LONG_MIN
-# define PY_PRIdOFF         "ld"
-# define PY_OFF_T_COMPAT    long
-#elif (SIZEOF_OFF_T == SIZEOF_SIZE_T)
-# define PyLong_AsOff_t     PyLong_AsSsize_t
-# define PyLong_FromOff_t   PyLong_FromSsize_t
-# define PY_OFF_T_MAX       PY_SSIZE_T_MAX
-# define PY_OFF_T_MIN       PY_SSIZE_T_MIN
-# define PY_PRIdOFF         "zd"
-# define PY_OFF_T_COMPAT    Py_ssize_t
 #else
 # error off_t does not match either size_t, long, or long long!
 #endif
diff --git a/Modules/_io/bufferedio.c b/Modules/_io/bufferedio.c
index e3deb10..d8b6471 100644
--- a/Modules/_io/bufferedio.c
+++ b/Modules/_io/bufferedio.c
@@ -580,8 +580,7 @@
     if (n < 0) {
         if (!PyErr_Occurred())
             PyErr_Format(PyExc_IOError,
-                         "Raw stream returned invalid position %" PY_PRIdOFF,
-			 (PY_OFF_T_COMPAT)n);
+                         "Raw stream returned invalid position %zd", n);
         return -1;
     }
     self->abs_pos = n;
@@ -613,8 +612,7 @@
     if (n < 0) {
         if (!PyErr_Occurred())
             PyErr_Format(PyExc_IOError,
-                         "Raw stream returned invalid position %" PY_PRIdOFF,
-			 (PY_OFF_T_COMPAT)n);
+                         "Raw stream returned invalid position %zd", n);
         return -1;
     }
     self->abs_pos = n;
