Hi Richard, I see what is going on with this now. Here's the example that had me stumpped. All it is doing is printing messages that prove that the override functions work, then it's calling the default versions from the cmd module itself. I was thinking way too much. import cmd class Illustrate(cmd.Cmd): "Illustrate the base class method use." def cmdloop(self, intro=None): print 'cmdloop(%s)' % intro return cmd.Cmd.cmdloop(self, intro) def preloop(self): print 'preloop()' def postloop(self): print 'postloop()' def parseline(self, line): print 'parseline(%s) =>' % line, ret = cmd.Cmd.parseline(self, line) print ret return ret def onecmd(self, s): print 'onecmd(%s)' % s return cmd.Cmd.onecmd(self, s) def emptyline(self): print 'emptyline()' return cmd.Cmd.emptyline(self) def default(self, line): print 'default(%s)' % line return cmd.Cmd.default(self, line) def precmd(self, line): print 'precmd(%s)' % line return cmd.Cmd.precmd(self, line) def postcmd(self, stop, line): print 'postcmd(%s, %s)' % (stop, line) return cmd.Cmd.postcmd(self, stop, line) def do_greet(self, line): print 'hello,', line def do_EOF(self, line): "Exit" return True if __name__ == '__main__': Illustrate().cmdloop('Illustrating the methods of cmd.Cmd') Jim ________________________________ This e-mail and any attachments to it are confidential and are intended solely for use of the individual or entity to whom they are addressed. If you have received this e-mail in error, please notify the sender immediately and then delete it. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this e-mail without the author's prior permission. The views expressed in this e-mail message do not necessarily represent the views of Highmark Inc., its subsidiaries, or affiliates.