According to the reference, ios.flush should write any pending data to the output steam. My experience, though, is that, unless you have written a newline, nothing is output, even if you call flush. For example, $defout.print "Hello, world!" produces nothing $defout.print "Hello, world!" $defout.flush produces nothing $defout.print Hello, world!\n" produces "Hello, world!". Can someone explain this to me? Have I just misread the documentation? I've seen this with a number of interpreters, including 1.6.5 on linux, which is what I'm running at the moment.