Hi Below is a small script. My question is what is the correct way to exit after using the adbapi stuff. The script as it stands just hangs the terminal until I Ctrl-Z and kill it. sample run jon> python simpledb.py jon jon jon Done 0 finished {1026: <connection object at 0x8228048>} 0 [<_MainThread(MainThread, started)>, <Thread(PoolThread-136416140-1, started)>] Jon import sys import threading import pprint from twisted.enterprise import adbapi from twisted.internet import reactor dbname,user,passwd = sys.argv[1:4] class SomeTable(adbapi.Augmentation): def getSomeData(self): self.done = 1 qry = "select * from SomeTable" return self.runQuery(qry).addCallbacks(self.operationDone,self.operationError) def operationDone(self, done): print "Done" self.done =0 def operationError(self,err): print err dbpool = adbapi.ConnectionPool("psycopg","dbname=%s user=%s" % (dbname,user)) db1=SomeTable(dbpool) db1.getSomeData() while 1 == db1.done: reactor.iterate() print db1.done print "finished" reactor.crash() reactor.stop() dbpool.close() print dbpool.connections print reactor.running print threading.enumerate()