diff --git a/pi_mqtt_gpio/server.py b/pi_mqtt_gpio/server.py
index cc47e133a7f9684c69a9d4e19acd8bba91cd598f..99ad62f3f7f8e13962a757940cab19f8ca509be7 100644
--- a/pi_mqtt_gpio/server.py
+++ b/pi_mqtt_gpio/server.py
@@ -1169,7 +1169,9 @@ def main(args):
         # If configured to do so, publish the initial states of the outputs
         initial_setting = out_conf.get("initial")
         if initial_setting is not None and out_conf.get("publish_initial", False):
-            payload = out_conf["on_payload" if initial_setting else "off_payload"]
+            payload = out_conf[
+                "on_payload" if initial_setting == "high" else "off_payload"
+            ]
             client.publish(
                 "%s/%s/%s" % (topic_prefix, OUTPUT_TOPIC, out_conf["name"]),
                 retain=out_conf["retain"],