diff --git a/tools/changelog.sh b/tools/changelog.sh
index e32d503b17abc7f288b422a169cd4946835843c9..664f346081b2441b047f08d400b4c497deb653e9 100755
--- a/tools/changelog.sh
+++ b/tools/changelog.sh
@@ -428,7 +428,7 @@ function main {
     fi
 
     # Read the commit fields (@ is needed to keep empty values)
-    raw_fields=("${(@ps:$SEP:)raw_commit}")
+    eval "raw_fields=(\"\${(@ps:$SEP:)raw_commit}\")"
     hash="${raw_fields[1]}"
     refs="${raw_fields[2]}"
     subject="${raw_fields[3]}"