diff --git a/src/freedombone-utils-firewall b/src/freedombone-utils-firewall
index 8700815a6b94f955587cef14d25cd943fc8a6942..543c91a9c258f98117df737591f605ee46dff31a 100755
--- a/src/freedombone-utils-firewall
+++ b/src/freedombone-utils-firewall
@@ -346,10 +346,11 @@ function domain_to_hex_string {
     segment=$(echo "$domain" | awk -F '.' "{print \$$ctr}")
     while [ ${#segment} -gt 0 ]
     do
-        if [ ${#segment} -lt 10 ]; then
-            echo -n "|0${#segment}|$segment"
+        hexnum=$(echo "obase=16; $segment" | bc)
+        if [ ${hexnum} -lt 2 ]; then
+            echo -n "|0${hexnum}|$segment"
         else
-            echo -n "|${#segment}|$segment"
+            echo -n "|$hexnum|$segment"
         fi
         ctr=$((ctr + 1))
         segment=$(echo "$domain" | awk -F '.' "{print \$$ctr}")