diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc
index e5f19269da43ff2104790fea63a8e1a52237f064..c5e027c7bc60c2dd07299aaeaf10ea3c6ada7a6f 100755
--- a/src/freedombone-app-irc
+++ b/src/freedombone-app-irc
@@ -144,6 +144,7 @@ function remove_irc {
     if [[ $(app_is_installed irc) == "0" ]]; then
         return
     fi
+    remove_watchdog_daemon ngircd
     systemctl stop ngircd
     apt-get -y remove --purge ngircd
     apt-get -y remove --purge irssi
@@ -263,15 +264,7 @@ function install_irc_server {
 
     systemctl restart ngircd
 
-    # keep the daemon running
-    echo '' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo '# keep irc daemon running' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo 'IRC_RUNNING=$(pgrep ngircd > /dev/null && echo Running)' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo 'if [ ! $IRC_RUNNING ]; then' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo '  systemctl start ngircd' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo '  echo -n $CURRENT_DATE >> $LOGFILE' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo '  echo " IRC daemon restarted" >> $LOGFILE' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
-    echo 'fi' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    add_watchdog_daemon ngircd
 
     if ! grep -q $"IRC Server" /home/$MY_USERNAME/README; then
         echo '' >> /home/$MY_USERNAME/README
diff --git a/src/freedombone-utils-watchdog b/src/freedombone-utils-watchdog
index e629bec9d80ef5e2a6fdc30eeaa1aa0fb6f7ea08..025957f99eb97d4829789543a86ec2c3d08198e4 100755
--- a/src/freedombone-utils-watchdog
+++ b/src/freedombone-utils-watchdog
@@ -9,7 +9,8 @@
 #                    Freedom in the Cloud
 #
 # Watchdog functions to keep systems running even if they crash
-# systemd itself may be able to handle this to a large extent
+# systemd itself can handle this, but some debian packages are in
+# twilight world where they still use the older init scripts
 #
 # License
 # =======
@@ -48,4 +49,24 @@ function install_watchdog_script {
     echo 'install_watchdog_script' >> $COMPLETION_FILE
 }
 
+function add_watchdog_daemon {
+    daemon_name=$1
+
+    echo '' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo "# keep ${daemon_name} daemon running" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo "RUNNING=$(pgrep ${daemon_name} > /dev/null && echo Running)" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo 'if [ ! $RUNNING ]; then' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo "  systemctl start ${daemon_name}" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo '  echo -n $CURRENT_DATE >> $LOGFILE' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo "  echo \"${daemon_name} daemon restarted\" >> \$LOGFILE" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo 'fi' >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+    echo "# End of ${daemon_name}" >> /usr/bin/$WATCHDOG_SCRIPT_NAME
+}
+
+function remove_watchdog_daemon {
+    daemon_name=$1
+
+    sed -i "/# keep ${daemon_name} daemon running/,/# End of ${daemon_name}/d" /usr/bin/$WATCHDOG_SCRIPT_NAME
+}
+
 # NOTE: deliberately no exit 0