in read2 it never quits when I write quit, why? def read(): expr = raw_input("Lisp> ") if expr != "quit": print parse(expr) read() else: print "Good session!" def read2(): expr = "" while expr != "quit": expr = raw_input("Lisp> ") print parse(expr) read2() print "Good session!"