FYI, the following code has been reported by Mac OS X and NetBSD users to correctly detect the absence of FastCGI on those platforms: def isFastCGI(self): import socket, sys for family in (socket.AF_UNIX, socket.AF_INET): try: s=socket.fromfd(sys.stdin.fileno(),family,socket.SOCK_STREAM) if not s.getsockname(): # Socket doesn't have an address; it might be a BSD-style # socketpair() pipe, as used on Mac OS/X and others continue except: pass else: return True return False BSD-style socketpairs appear to return None (on OS/X) or '' (on NetBSD) when their 'sockname()' method is called. Thus, the above code only returns True if sys.stdin is a socket, but not a socketpair() pipe. This code also correctly detects the presence of FastCGI on Linux. It has not been tested on any other operating systems, to my knowledge. I'm not a subscriber to this list, as I don't use Quixote. I'm posting here because in my Googling to find a solution to the above problem, earlier discussions on this list pointed me in the right direction to solve the problem. So, I thought I'd return the favor. Hope this is helpful.