diff --git a/tools/quartus/run_mif b/tools/quartus/run_mif
index 244879681e39b95e0b9f650c6db407c4c446d9da..c0421cbb976aa66fdc2d611a6d98fb34c25609bf 100755
--- a/tools/quartus/run_mif
+++ b/tools/quartus/run_mif
@@ -121,9 +121,13 @@ echo "CONTENT BEGIN" >> ${quartusdir}/${project_rev}.mif
 
 unb_info $0 "Writing ${quartusdir}/${project_rev}.reg contents to ${quartusdir}/${project_rev}.mif"
 
+tr '\n' '\0' < ${quartusdir}/${project_rev}.reg > ${quartusdir}/${project_rev}.reg_tmp
+cat ${quartusdir}/${project_rev}.reg_tmp > ${quartusdir}/${project_rev}.reg
+rm -f ${quartusdir}/${project_rev}.reg_tmp
+
 address=0
 charcnt=0
-while IFS= read -r -n1 char
+while IFS= read -r -d $'\0' -n1 char
 do
   # 4 bytes per word address: print one address per 4 chars
   if [ $charcnt -eq 0 ] ; then