diff --git a/postfix/tasks/main.yml b/postfix/tasks/main.yml
index fb14d196e91a5effd8c98a40ebe7b12b84b18a3f..ad53dbfc3b02038b33405b1ffb56d4c4bc9c03ec 100644
--- a/postfix/tasks/main.yml
+++ b/postfix/tasks/main.yml
@@ -103,6 +103,7 @@
   template:
     src: virtual.j2
     dest: /etc/postfix/virtual
+  when: virtual_aliases is defined or postfix_virtual_domains|count > 0
   notify:
     - postmap virtual
   tags:
diff --git a/postfix/templates/main.cf.j2 b/postfix/templates/main.cf.j2
index 784102c9d1c32818ba0de246546d2276ab01ed75..346026e8b7344c309411a80484ee95e9928001da 100644
--- a/postfix/templates/main.cf.j2
+++ b/postfix/templates/main.cf.j2
@@ -84,7 +84,9 @@ tls_ssl_options = NO_COMPRESSION
 
 alias_maps = cdb:/etc/aliases
 alias_database = cdb:/etc/aliases
+{% if virtual_aliases is defined or postfix_virtual_domains|count > 0 %}
 virtual_alias_maps = cdb:/etc/postfix/virtual
+{% endif %}
 
 {% if postfix_virtual_domains|count > 0 %}
 virtual_mailbox_domains = {{ postfix_virtual_domains | join(", ") }}