Main authors: Michele Comitini Federico Di Gregorio For the win32 port: Jason Erickson Additional Help: Tom Jenkins (COPY FROM/COPY TO backport)