diff --git a/packaging/deb/postinst b/packaging/deb/postinst
index 0eb62920c6dec76f1bd8c4ac8069ef4d35416736..23bbc989e222698dada9dfe7123a53577889300c 100755
--- a/packaging/deb/postinst
+++ b/packaging/deb/postinst
@@ -149,14 +149,12 @@ else
     adduser --system --no-create-home --group --home /opt/${DAP_APP_NAME} ${DAP_APP_NAME} --shell /bin/false > /dev/null || true
 fi
 
-echo "[*] Check /etc/systemd/system/${DAP_APP_NAME}.service file..."
+echo "[*] Check if /etc/systemd/system/${DAP_APP_NAME}.service file is available..."
 if [ -e /etc/systemd/system/${DAP_APP_NAME}.service ]; then
-    echo "[*] Restarting ${DAP_APP_NAME} to implement changes"
-    systemctl stop ${DAP_APP_NAME}  >> /dev/null || true
-    echo "[*] Stopped ${DAP_APP_NAME}"
+    echo "[*] File found, restarting ${DAP_APP_NAME} to implement changes"
     systemctl daemon-reload || true
     systemctl start ${DAP_APP_NAME} || true
-    echo "[*] Started ${DAP_APP_NAME}"
+    echo "[!] Done"
 else
     echo "[!] Installing ${DAP_APP_NAME} as systemd service"
     ln -sf $DAP_PREFIX/share/${DAP_APP_NAME}.service /etc/systemd/system/${DAP_APP_NAME}.service || true
@@ -182,9 +180,11 @@ else
 
     #set python permissions    
     find ${DAP_PREFIX}/bin/python -type d -exec chmod 755 {} +
-    chmod 774 ${DAP_PREFIX}/bin/python/bin/*
+    chmod 774 ${DAP_PREFIX}/bin/python/bin/* || true
     chown -R ${DAP_APP_NAME}: ${DAP_PREFIX}
     echo "[*] Starting ${DAP_APP_NAME} service"
     systemctl start ${DAP_APP_NAME} || true
     echo "[!] Done"
 fi
+
+exit 0
\ No newline at end of file
diff --git a/packaging/deb/postrm b/packaging/deb/postrm
index b6cd2eb8deccd3053571445908aa5e00f35ac344..bb103d151246c41c15272e6c9a8295e3b7ab1709 100755
--- a/packaging/deb/postrm
+++ b/packaging/deb/postrm
@@ -1,17 +1,40 @@
-#! /bin/bash -e
-if [ "$1" == "purge" ] && [ -e /usr/share/debconf/confmodule ] ; then
-. /usr/share/debconf/confmodule
-db_purge
-fi
-GROUP_RM="cellframe-node"
+#!/bin/bash -e
 
-systemctl stop cellframe-node || true
-systemctl disable cellframe-node || true
+PRODUCT_NAME="cellframe-node"
+PRODUCT_PATH="/opt/${PRODUCT_NAME}"
+GDB_PATH=`cat ${PRODUCT_PATH}/etc/${PRODUCT_NAME}.cfg | grep -oP "^dap_global_db_path=\K.*"`
+CONFFILES="${PRODUCT_PATH}/etc/"
 
-#for username in `cat /etc/passwd | grep "/home" | cut -d ':' -f1`; do
-#  gpasswd -d $username $GROUP_RM || true
-#done
-#rm -r /opt/cellframe-node || true
-#groupdel cellframe-node || true
-#userdel cellframe-node || true
 
+case "$1" in
+    purge)
+    # Purge database
+    if [ -e /usr/share/debconf/confmodule ] ; then
+        . /usr/share/debconf/confmodule
+        db_purge
+    fi
+    # Remove user and group
+    echo "[*] Removing user cellframe-node"
+    userdel ${PRODUCT_NAME} > /dev/null || true
+    echo "[*] Removing group cellframe-node"
+    groupdel ${PRODUCT_NAME} > /dev/null || true
+
+    # Remove configuration file, logs and at least gdb path for now on purge
+    echo "[*] Removing configuration files for ${PRODUCT_NAME}"
+    rm -rf ${CONFFILES} || true
+    echo "[*] Removing log files for ${PRODUCT_NAME}"
+    rm -rf ${PRODUCT_PATH}/var/log || true
+    echo "[*] Removing databases for ${PRODUCT_NAME}"
+    rm -rf ${GDB_PATH} || true
+    ;;
+
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+exit 0
\ No newline at end of file