--- pyid3lib-0.5.1/pyid3lib.cc.orig	2007-08-08 23:53:08.000000000 +0300
+++ pyid3lib-0.5.1/pyid3lib.cc	2007-08-08 23:53:12.000000000 +0300
@@ -10,13 +10,19 @@
 #include <id3/id3lib_frame.h>
 #include <id3/tag.h>
 
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+#endif
+
 typedef struct
 {
     PyObject_HEAD
 
     ID3_Tag* tag;
     ID3_Frame** frames;
-    int size, alloc;
+    Py_ssize_t size, alloc;
 } ID3Object;
 
 typedef struct
@@ -80,13 +86,24 @@
 
 
 static PySequenceMethods tag_as_sequence = {
+#if PY_VERSION_HEX >= 0x02050000
+    (lenfunc)id3_length,
+#else
     (inquiry)id3_length,
+#endif
     NULL,
     NULL,
+#if PY_VERSION_HEX >= 0x02050000
+    (ssizeargfunc)id3_item,
+    (ssizessizeargfunc)id3_slice,
+    (ssizeobjargproc)id3_ass_item,
+    (ssizessizeobjargproc)id3_ass_slice,
+#else
     (intargfunc)id3_item,
     (intintargfunc)id3_slice,
     (intobjargproc)id3_ass_item,
     (intintobjargproc)id3_ass_slice,
+#endif
     (objobjproc)id3_contains,
     NULL,
     NULL,
@@ -824,7 +841,7 @@
 static ID3_Frame* frame_from_dict( ID3_FrameID fid, PyObject* dict )
 {
     char* data;
-    int size;
+    Py_ssize_t size;
     
     ID3_Field* field;
     ID3_FieldID flid;
