In particular, make sure that the setters when called on a const nil surface don't try to set surface->status.