See http://minnow.cc.gatech.edu/squeak/3272