diff --git a/roles/postfix/tasks/main.yml b/roles/postfix/tasks/main.yml
index 0ec06961a1cca9d5f249bdd3042bb168649e90e9..5a87473c1ffaef774c550994734659c99918b84b 100644
--- a/roles/postfix/tasks/main.yml
+++ b/roles/postfix/tasks/main.yml
@@ -28,6 +28,7 @@
 
 - name: Generate postmaps
   command: /usr/sbin/postmap {{ item }}
+  when: item | changed
   loop:
     - /etc/postfix/canonical
     - /etc/postfix/mime_header_checks
diff --git a/upgrade.yml b/upgrade.yml
index d7809463608eb6bd77b73c1b62a1101cf8cb2001..27798c1586d464ba55a70fd8162a880b65285caa 100755
--- a/upgrade.yml
+++ b/upgrade.yml
@@ -33,6 +33,8 @@
         # occ return code is 3 when ownCloud is already latest version
         - upgrade_owncloud.rc != 0
         - upgrade_owncloud.rc != 3
+      changed_when:
+        - upgrade_owncloud.rc != 3
 
     - name: Upgrade owncloud output
       debug: