It seems to me that undo is a basic command for GTP, whether gnugo implements it successfully or not. If the point is to make GTP a standard, it has to be in there...Don Dailey mentioned the need for an undo. It would be slightly nontrivial to put this into GNU Go. The undo in the play_ascii.c and play_gmp.c uses the sgf tree which is presently ignored in play_gtp.c.