diff --git a/src/freedombone-app-gnusocial b/src/freedombone-app-gnusocial
index 9953be4ebbbaf9c4e9decfecbd00dced9aa3bd25..982ac2753ec0179f908d940685b2310b1bcbdba2 100755
--- a/src/freedombone-app-gnusocial
+++ b/src/freedombone-app-gnusocial
@@ -208,7 +208,7 @@ function gnusocial_create_database {
 }
 
 function gnusocial_running_script {
-    if ! grep -Fxq "install_gnusocial" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
 
diff --git a/src/freedombone-app-irc b/src/freedombone-app-irc
index bc8ceb40e91b3ba0ee858a33a69eb0fd30339a1e..55db2911b4e21742c5840731d08f2642fc771f14 100755
--- a/src/freedombone-app-irc
+++ b/src/freedombone-app-irc
@@ -256,7 +256,7 @@ function configure_firewall_for_irc {
     if [ ! -d /etc/ngircd ]; then
         return
     fi
-    if grep -Fxq "configure_firewall_for_irc" ${COMPLETION_FILE}; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
     if [[ ${INSTALLED_WITHIN_DOCKER} == "yes" ]]; then
diff --git a/src/freedombone-app-rss b/src/freedombone-app-rss
index 73af2fb55c4491d5b281fc17e30de7ee8f13ebd4..eb04038b3677d4feb6993aa0dbb4f71377a97918 100755
--- a/src/freedombone-app-rss
+++ b/src/freedombone-app-rss
@@ -114,7 +114,7 @@ function upgrade_rss {
 
         # remove any previous install
         if [ -d $RSS_READER_PATH/g2ttree-mobile ]; then
-            if grep -Fxq "install_rss_mobile_reader" $COMPLETION_FILE; then
+            if [[ $(is_completed "install_rss_mobile_reader") == "1" ]]; then
                 sed -i '/install_rss_mobile_reader/d' $COMPLETION_FILE
                 sed -i '/rss mobile reader commit/d' $COMPLETION_FILE
                 rm -rf $RSS_READER_PATH/g2ttree-mobile
@@ -523,7 +523,7 @@ function install_rss_gnusocial {
     set_repo_commit $RSS_READER_GNUSOCIAL_PATH "rss reader gnusocial commit" "$RSS_READER_GNUSOCIAL_COMMIT" $RSS_READER_GNUSOCIAL_REPO
     chown -R www-data:www-data $RSS_READER_GNUSOCIAL_PATH
 
-    if grep -Fxq "install_rss_gnusocial" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
 
@@ -560,14 +560,14 @@ function install_rss_mobile_reader {
 
     # remove any previous install
     if [ -d $RSS_READER_PATH/g2ttree-mobile ]; then
-        if grep -Fxq "install_rss_mobile_reader" $COMPLETION_FILE; then
+        if [[ $(is_completed "install_rss_mobile_reader") == "1" ]]; then
             sed -i '/install_rss_mobile_reader/d' $COMPLETION_FILE
             sed -i '/rss mobile reader commit/d' $COMPLETION_FILE
             rm -rf $RSS_READER_PATH/g2ttree-mobile
         fi
     fi
 
-    if grep -Fxq "install_rss_mobile_reader" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
 
diff --git a/src/freedombone-base-email b/src/freedombone-base-email
index 3207ad771f78d36c310d1705b402d5d975e0125d..c85f22ff05f710099c50065f7ded80993259248e 100755
--- a/src/freedombone-base-email
+++ b/src/freedombone-base-email
@@ -248,7 +248,7 @@ function email_client {
     if [ ! -d /etc/exim4 ]; then
         return
     fi
-    if grep -Fxq "email_client" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
     apt-get -y install mutt-patched lynx abook
@@ -607,7 +607,7 @@ function import_email {
       Now on your internet router forward ports
      25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}
 "
-    if grep -Fxq "import_email" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         if [[ $SYSTEM_TYPE == "mail"* ]]; then
             function_check backup_to_friends_servers
             backup_to_friends_servers
@@ -673,7 +673,7 @@ function install_email {
     if [[ $SYSTEM_TYPE == "mesh"* ]]; then
         return
     fi
-    if grep -Fxq "install_email" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
     apt-get -y remove postfix
diff --git a/src/freedombone-utils-firewall b/src/freedombone-utils-firewall
index 7cae81c7f03e79e7dc423e1f1ff8738e6a4a61e9..36ec3984fb4373ec8bfec4f4eebefd9726cd4764 100755
--- a/src/freedombone-utils-firewall
+++ b/src/freedombone-utils-firewall
@@ -102,7 +102,7 @@ function configure_firewall {
 }
 
 function configure_firewall_ping {
-    if grep -Fxq "configure_firewall_ping" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
     # Only allow ping for mesh installs
diff --git a/src/freedombone-utils-setup b/src/freedombone-utils-setup
index 84b8101d1da584f732df4ea9c0ac6275f2fced10..499508aed5706397b3f3d34837ddca7aab2733ec 100755
--- a/src/freedombone-utils-setup
+++ b/src/freedombone-utils-setup
@@ -110,7 +110,7 @@ function initial_setup {
 function search_for_attached_usb_drive {
     # If a USB drive is attached then search for email,
     # gpg, ssh keys and emacs configuration
-    if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
+    if [[ $(is_completed $FUNCNAME) == "1" ]]; then
         return
     fi
     if [ -b $USB_DRIVE ]; then