Creating sprites from a surface always adds the surface to owned surfaces, disposing it with the sprite.
I fixed it by changing Sprite.cs:135 from AddNewFrames(surface, true, Point.Empty, Point.Empty, size, true);
to AddNewFrames(surface, ownSurface, Point.Empty, Point.Empty, size, true);
OK thanks for finding this.
OK thanks for finding this. I've fixed it in the svn trunk.