Hi Ian, The problem is that your SRCALPHA flag wasn't respected. I think this is a bug that has been fixed in svn/1.8 (although I'm not 100% sure, I'll check). The simplest workaround is probably to specify a 32 bit depth, like this:
sadly, there were a number of small bugs with getting surface settings right - checking the values of get_flags() and get_bitsize() help make sure pygame respected the code you wrote.