diff --git a/package/base-files/files/lib/functions.sh b/package/base-files/files/lib/functions.sh
index 72d954db3cb7bb6cb215df94e4b24c4c1bd10e8f..8d045fa642554e1bf11c633c86c7ce96414695da 100755
--- a/package/base-files/files/lib/functions.sh
+++ b/package/base-files/files/lib/functions.sh
@@ -165,7 +165,7 @@ insert_modules() {
 
 default_prerm() {
 	local name
-	name=$(echo $(basename $1) | cut -d. -f1)
+	name=$(basename ${1%.*})
 	[ -f /usr/lib/opkg/info/${name}.prerm-pkg ] && . /usr/lib/opkg/info/${name}.prerm-pkg
 	for i in `cat /usr/lib/opkg/info/${name}.list | grep "^/etc/init.d/"`; do
 		$i disable
@@ -175,7 +175,7 @@ default_prerm() {
 
 default_postinst() {
 	local pkgname rusers
-	pkgname=$(echo $(basename $1) | cut -d. -f1)
+	pkgname=$(basename ${1%.*})
 	rusers=$(grep "Require-User:" ${IPKG_INSTROOT}/usr/lib/opkg/info/${pkgname}.control)
 	[ -n "$rusers" ] && {
 		local user group uid gid