--- pygame-1.9.1release/src/surface.c.orig	2012-01-06 15:05:14.457829356 +0100
+++ pygame-1.9.1release/src/surface.c	2012-01-06 15:05:26.009829217 +0100
@@ -1722,7 +1722,7 @@
 {
     SDL_Surface *surf = PySurface_AsSurface (self);
     /* Need to use 64bit vars so this works on 64 bit pythons. */
-    Uint64 r, g, b, a;
+    unsigned long r, g, b, a;
 
     if (!PyArg_ParseTuple (args, "(kkkk)", &r, &g, &b, &a))
         return NULL;
@@ -1734,10 +1734,12 @@
     printf("what are: %d, %d, %d, %d\n", surf->format->Rmask, surf->format->Gmask, surf->format->Bmask, surf->format->Amask);
     */
 
-    surf->format->Rmask = (Uint32)r;
-    surf->format->Gmask = (Uint32)g;
-    surf->format->Bmask = (Uint32)b;
-    surf->format->Amask = (Uint32)a;
+    SDL_PixelFormat *spf = surf->format;
+    
+    spf->Rmask = (Uint32)r;
+    spf->Gmask = (Uint32)g;
+    spf->Bmask = (Uint32)b;
+    spf->Amask = (Uint32)a;
 
     Py_RETURN_NONE;
 }
@@ -1762,7 +1764,7 @@
 surf_set_shifts (PyObject *self, PyObject *args)
 {
     SDL_Surface *surf = PySurface_AsSurface (self);
-    Uint64 r, g, b, a;
+    unsigned long r, g, b, a;
 
     if (!PyArg_ParseTuple (args, "(kkkk)", &r, &g, &b, &a))
         return NULL;