diff --git a/l10n_mx_facturae/models/account_invoice.py b/l10n_mx_facturae/models/account_invoice.py
index cf453f4193f4a268058338d3512ade514cd184e2..1899068a21266e38771f2d8d0dbf1a57cb5c2ac0 100644
--- a/l10n_mx_facturae/models/account_invoice.py
+++ b/l10n_mx_facturae/models/account_invoice.py
@@ -297,10 +297,10 @@ class AccountInvoice(models.Model):
                 )
                 cfdi.action_validate()
 
-    @signals.invoice_cancel.connect
-    def action_cancel(self, cr, uid, ids, context=None):
-        context = dict(context or {})
-        for account_invoice in self.browse(cr, uid, ids, context=context):
+    @api.multi
+    def action_cancel(self,):
+        res = super(AccountInvoice, self).action_cancel()
+        for account_invoice in self:
             # Maybe a third test could review state, but since
             # button cancel only is displayed in open state, we decided to not
             # used third test
@@ -309,6 +309,7 @@ class AccountInvoice(models.Model):
                     account_invoice.cfdi_folio_fiscal
             ):
                 account_invoice.cfdi_id.action_cancel()
+        return res
 
     @staticmethod
     def _sanitize(text):