diff --git a/src/freedombone-app-icecast b/src/freedombone-app-icecast
index 92add372914929049a5d559cde746b4e88ee35bf..6e13fcfedd5f90edb3e46f01f3c016b1a2104cbe 100755
--- a/src/freedombone-app-icecast
+++ b/src/freedombone-app-icecast
@@ -10,6 +10,10 @@
 #
 # Icecast application
 #
+# Notes: An attempt was made to get ices2 running with systemd, but that
+#        was very unsuccessful. Instead there's a hacky cron entry which
+#        starts icecast2 and ices2 if necessary
+#
 # License
 # =======
 #
@@ -55,6 +59,22 @@ function icecast_update_daemon {
         rm /etc/init.d/icecast2
     fi
 
+    echo '#!/bin/sh' > /usr/bin/stop_icecast
+    echo 'kill $(pidof ices2)' >> /usr/bin/stop_icecast
+    echo 'systemctl stop icecast2' >> /usr/bin/stop_icecast
+    chmod +x /usr/bin/stop_icecast
+
+    # Note that the sleep here actually is important
+    echo '#!/bin/bash' > /usr/bin/start_icecast
+    echo 'isrunning=$(ps aux | grep ices2)' >> /usr/bin/start_icecast
+    echo 'if [[ "$isrunning" != *"ices-playlist"* ]]; then' >> /usr/bin/start_icecast
+    echo '    systemctl start icecast2' >> /usr/bin/start_icecast
+    echo '    sleep 3' >> /usr/bin/start_icecast
+    echo '    cd /etc/ices2' >> /usr/bin/start_icecast
+    echo '    ices2 ices-playlist.xml' >> /usr/bin/start_icecast
+    echo 'fi' >> /usr/bin/start_icecast
+    chmod +x /usr/bin/start_icecast
+
     echo '[Unit]' > /etc/systemd/system/icecast2.service
     echo 'Description=Icecast' >> /etc/systemd/system/icecast2.service
     echo 'After=network.target' >> /etc/systemd/system/icecast2.service
@@ -63,46 +83,37 @@ function icecast_update_daemon {
     echo '[Service]' >> /etc/systemd/system/icecast2.service
     echo 'User=icecast2' >> /etc/systemd/system/icecast2.service
     echo 'Group=icecast' >> /etc/systemd/system/icecast2.service
-    echo "ExecStart=/usr/bin/icecast2 -c /etc/icecast2/icecast.xml" >> /etc/systemd/system/icecast2.service
+    echo 'ExecStart=/usr/bin/icecast2 -c /etc/icecast2/icecast.xml' >> /etc/systemd/system/icecast2.service
     echo 'Restart=on-failure' >> /etc/systemd/system/icecast2.service
     echo 'RestartSec=10' >> /etc/systemd/system/icecast2.service
     echo '' >> /etc/systemd/system/icecast2.service
     echo '[Install]' >> /etc/systemd/system/icecast2.service
     echo 'WantedBy=multi-user.target' >> /etc/systemd/system/icecast2.service
 
-    echo '[Unit]' > /etc/systemd/system/ices2.service
-    echo 'Description=Icecast' >> /etc/systemd/system/ices2.service
-    echo 'After=network.target' >> /etc/systemd/system/ices2.service
-    echo 'After=tor.service' >> /etc/systemd/system/ices2.service
-    echo 'After=icecast2.service' >> /etc/systemd/system/ices2.service
-    echo '' >> /etc/systemd/system/ices2.service
-    echo '[Service]' >> /etc/systemd/system/ices2.service
-    echo 'Type=oneshot' >> /etc/systemd/system/ices2.service
-    echo 'User=icecast2' >> /etc/systemd/system/ices2.service
-    echo 'Group=icecast' >> /etc/systemd/system/ices2.service
-    echo "ExecStart=/usr/bin/ices2 /etc/ices2/ices-playlist.xml" >> /etc/systemd/system/ices2.service
-    echo '' >> /etc/systemd/system/ices2.service
-    echo '[Install]' >> /etc/systemd/system/ices2.service
-    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/ices2.service
-
+    chown -R icecast2:icecast /etc/ices2
+    chown -R icecast2:icecast /etc/icecast2
     systemctl daemon-reload
     systemctl enable icecast2
-    systemctl enable ices2
-    systemctl restart icecast2
-    systemctl restart ices2
+
+    if ! grep -q "start_icecast" /etc/crontab; then
+        echo '*/1            * *   *   *   root /usr/bin/start_icecast > /dev/null' >> /etc/crontab
+    fi
 }
 
 function change_password_icecast {
     curr_username="$1"
     new_user_password="$2"
 
+    stop_icecast
+
     sed -i  -e "s|<source-password>[^<]*</source-password>|<source-password>$new_user_password</source-password>|" \
         -e "s|<relay-password>[^<]*</relay-password>|<relay-password>$new_user_password</relay-password>|" \
         -e "s|<admin-password>[^<]*</admin-password>|<admin-password>$new_user_password</admin-password>|" \
         /etc/icecast2/icecast.xml
+    sed -i "s|<password>.*|<password>${new_user_password}</password>|g" /etc/ices2/ices-playlist.xml
 
     ${PROJECT_NAME}-pass -u "$curr_username" -a icecast -p "$new_user_password"
-    systemctl restart icecast2
+    start_icecast
 }
 
 function logging_on_icecast {
@@ -153,8 +164,8 @@ function icecast_add_file_to_playlist {
     done
 
     chown icecast2:icecast $ICECAST_PLAYLIST_FILE
-    systemctl restart icecast2
-    systemctl restart ices2
+    stop_icecast
+    start_icecast
 }
 
 function icecast_import_from_directory {
@@ -265,7 +276,8 @@ function icecast_format_drive {
 
 function icecast_edit_playlist {
     editor $ICECAST_PLAYLIST_FILE
-    systemctl restart icecast2
+    stop_icecast
+    start_icecast
 }
 
 function icecast_change_login {
@@ -432,6 +444,13 @@ function restore_remote_icecast {
 function remove_icecast {
     nginx_dissite icecast
 
+    sed -i '/start_icecast/d' /etc/crontab
+    stop_icecast
+    systemctl disable icecast2
+    rm /etc/systemd/system/icecast2.service
+    rm /usr/bin/start_icecast
+    rm /usr/bin/stop_icecast
+
     if [ -f /etc/nginx/sites-available/icecast ]; then
         rm /etc/nginx/sites-available/icecast
     fi
@@ -441,6 +460,14 @@ function remove_icecast {
     fi
 
     apt-get -yq remove --purge icecast2
+
+    if [ -d /etc/icecast2 ]; then
+        rm -rf /etc/icecast2
+    fi
+    if [ -d /etc/ices2 ]; then
+        rm -rf /etc/ices2
+    fi
+    sed -i '/icecast/d' $COMPLETION_FILE
 }
 
 function install_icecast {
@@ -475,6 +502,7 @@ function install_icecast {
     sed -i "s|<admin-user>.*|<admin-user>$MY_USERNAME</admin-user>|g" /etc/icecast2/icecast.xml
     sed -i "s|<admin>.*|<admin>$MY_EMAIL_ADDRESS</admin>|g" /etc/icecast2/icecast.xml
     sed -i "s|<location>.*|<location>The Interwebs</location>|g" /etc/icecast2/icecast.xml
+    #sed -i 's|<!-- <bind-address>.*|<bind-address>127.0.0.1</bind-address>|g' /etc/icecast2/icecast.xml
 
     if [ ! -d /var/www/icecast/htdocs ]; then
         mkdir -p /var/www/icecast/htdocs
@@ -539,7 +567,7 @@ function install_icecast {
     echo '        <input>' >> /etc/ices2/ices-playlist.xml
     echo '            <module>playlist</module>' >> /etc/ices2/ices-playlist.xml
     echo '            <param name="type">basic</param>' >> /etc/ices2/ices-playlist.xml
-    echo '            <param name="file">playlist.txt</param>' >> /etc/ices2/ices-playlist.xml
+    echo "            <param name=\"file\">$ICECAST_PLAYLIST_FILE</param>" >> /etc/ices2/ices-playlist.xml
     echo '            <!-- random play -->' >> /etc/ices2/ices-playlist.xml
     echo '            <param name="random">0</param>' >> /etc/ices2/ices-playlist.xml
     echo '            <!-- if the playlist get updated that start at the beginning -->' >> /etc/ices2/ices-playlist.xml
@@ -633,7 +661,7 @@ function install_icecast {
     icecast_update_daemon
     nginx_ensite icecast
     systemctl restart nginx
-    systemctl restart icecast2
+    start_icecast
 
     APP_INSTALLED=1
 }