diff --git a/sale.xml b/sale.xml
index f0138db2be..08c4ee8d77 100644
--- a/sale.xml
+++ b/sale.xml
@@ -68,18 +68,24 @@
-
-
-
+ states="{'invisible': '''not ((state in ('draft', 'quotation')) or (invoice_state == 'exception') or (packing_state == 'exception')) '''}"
+ icon="tryton-cancel"/>
+
+
+ states="{'invisible': '''invoice_state != 'exception' or state == 'cancel' '''}"
+ icon="tryton-go-next"/>
+ states="{'invisible': '''packing_state != 'exception' or state == 'cancel' '''}"
+ icon="tryton-go-next"/>
+