diff --git a/Documents/bin/spammer b/Documents/bin/spammer
index d1f9fc05506cbd61e74f67e67543eb41c47f8a38..dab9fd8b84ee48bb96e2c60669dc22f48b4be029 100755
--- a/Documents/bin/spammer
+++ b/Documents/bin/spammer
@@ -1,23 +1,19 @@
 #!/bin/sh
 set -eu
 
+# In case of an error, backof and reexec.
+trap 'echo "Caught error, restarting..." >&2; sleep 1; exec $HOME/Documents/bin/spammer' EXIT
+
 export PATH="$HOME/Documents/bin:$PATH"
 URL='https://patchbay.pub/pubsub/1446c969-9a54-4b5b-83e0-bf88f22f289d'
 
 while true
 do
-    message="$(curl --silent "$URL" || true)"
-    exitstatus="$?"
-    # Backoff in case of an error.
-    if [ -z "${message:-}" ] || [ "$exitstatus" -gt '0' ]
-    then
-        sleep 1
-        break
-    fi
+    message="$(curl --silent "$URL")"
     logger --tag "spammer" "$message"
     if echo "$message" | grep --silent '^message='
     then
-        message="$(echo "$message" | sed 's/message=//; s/+/ /g')"
+        message="$(echo "$message" | urldecode | sed 's/message=//')"
     fi
     echo "$message" | notify \
         --urgency low \