    import types

    def joinCSVFields(fields):
        """
        Returns a CSV record (eg a string) from a sequence of fields.
        Fields containing commands (,) or double quotes (") are quotes
        and double quotes are escaped (""). The terminating newline is
        NOT included.
        """
        newFields = []
        for field in fields:
            assert type(field) is types.StringType
            if field.find('"')!=-1:
                newField = '"' + field.replace('"', '""') + '"'
            elif field.find(',')!=-1 or field.find('\n')!=-1 or field.find('\r')!=-1:
                newField = '"' + field + '"'
            else:
                newField = field
            newFields.append(newField)
        return ','.join(newFields)