diff --git a/rsyslog/files/rsyslog.default.conf b/rsyslog/files/rsyslog.default.conf
index dfc3470..4d9e561 100644
--- a/rsyslog/files/rsyslog.default.conf
+++ b/rsyslog/files/rsyslog.default.conf
@@ -3,45 +3,34 @@
 {% for modname in global.modules %}
 $ModLoad {{ modname }}
 {% endfor %}
-
 {% if global.preserve_fqdn == true %}
 $PreserveFQDN on
 {% else %}
 $PreserveFQDN off
 {% endif %}
-
 {% if global.non_kernel_facility is defined and global.non_kernel_facility == true %}
 $KLogPermitNonKernelFacility on
 {% endif %}
-
 {% if global.omit_local_logging is defined and global.omit_local_logging == true %}
 $OmitLocalLogging on
 {% endif %}
-
 {% if global.msg_reduction == true %}
 $RepeatedMsgReduction on
 {% endif %}
-
 {% if global.max_message_size is defined %}
 $MaxMessageSize {{ global.max_message_size }}
 {% endif %}
-
 {% if global.system_log_rate_limit_interval is defined %}
 $SystemLogRateLimitInterval {{ global.system_log_rate_limit_interval }}
 {% endif %}
-
 {% if global.system_log_rateLimit_burst is defined %}
 $SystemLogRateLimitBurst {{ global.system_log_rateLimit_burst }}
 {% endif %}
-
-
 $DirCreateMode {{ global.perm_dir }}
 $PrivDropToUser {{ global.run_user }}
 $PrivDropToGroup {{ global.run_group }}
 $WorkDirectory {{ global.spool_dir }}
-
 $IncludeConfig {{ global.rsyslog_d }}/*.conf
-
 {% if global.format is defined %}
 $template {{ global.format.name }},{{ global.format.template }}
 $ActionFileDefaultTemplate {{ global.format.name }}
@@ -49,7 +38,6 @@
 $template RSYSLOG_TraditionalFileFormat
 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
 {% endif %}
-
 {%- for name,config in global.output.file.iteritems() %}
 {% if config.owner is defined %}
 $FileOwner {{ config['owner'] }}
@@ -64,16 +52,14 @@
 $Umask {{ config['umask'] }}
 {% endif %}
 {{ config['filter'] }}     {% if config.sync == true %}-{% endif %}{{ name }}
-{% endfor %}
-
+{% endfor -%}
 {% if global.output.console is defined %}
 {% for name,config in global.output.console.iteritems() -%}
 {{ config['filter'] }}      {{ config['action'] }}
-{% endfor %}
+{% endfor -%}
 {% endif %}
-
 {% if global.output.remote is defined %}
-{% for name,config in global.output.console.iteritems() -%}
+{% for name,config in global.output.remote.iteritems() -%}
 {{ config['filter'] }}      {{ config['action'] }}
-{% endfor %}
+{% endfor -%}
 {% endif %}
