diff --git a/postfix/tasks/main.yml b/postfix/tasks/main.yml
index 0522055b66de37758e2fb3b87413e01cbca74822..9af48035e6fd391149cb3daf66876b455d0923a0 100644
--- a/postfix/tasks/main.yml
+++ b/postfix/tasks/main.yml
@@ -105,6 +105,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 e27e9b533ee8669edde8cc9466752648f6a222a2..988b60a64dfecee8b7ae4926c29fd09fb1f1d1aa 100644
--- a/postfix/templates/main.cf.j2
+++ b/postfix/templates/main.cf.j2
@@ -98,7 +98,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 and postfix_enable_dovecot %}
 virtual_mailbox_domains = {{ postfix_virtual_domains | join(", ") }}