def METHOD_NAME(self, val, currency='EUR', cents=True, separator=' e',
                adjective=False):
    # change negword because base.to_currency() does not need space after
    backup_negword = self.negword
    self.negword = self.negword[:-1]
    result = super(Num2Word_PT, self).METHOD_NAME(
        val, currency=currency, cents=cents, separator=separator,
        adjective=adjective)
    # undo the change on negword
    self.negword = backup_negword
    # transforms "milhões euros" em "milhões de euros"
    cr1, _ = self.CURRENCY_FORMS[currency]
    for ext in (
            'milhão', 'milhões', 'bilião',
            'biliões', 'trilião', 'triliões'):
        if re.match('.*{} (?={})'.format(ext, cr1[1]), result):
            result = result.replace(
                '{}'.format(ext), '{} de'.format(ext), 1
            )
    # do not print "e zero cêntimos"
    result = result.replace(' e zero cêntimos', '')
    return result