Well, STDOUT is the default value that $stdout points to, but since it is a constant, it can't (or, heh, shouldn't?) be redefined. See http://stackoverflow.com/questions/6671716/what-is-the-difference-between-rubys-stdout-and-stdout.

So, this change was necessary so that the capture_stdout method used by the spec could temporarily redirect the output by redefining $stdout.