diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile
index 5006c94bb380b3f0eda789ff6f6e9b7356a8ca65..f0f3cad6dc8ff6b227383d9e8f8e772f5c20eca4 100644
--- a/package/dropbear/Makefile
+++ b/package/dropbear/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dropbear
 PKG_VERSION:=0.53.1
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init
index d06d2d5349a6a970f277bac764d46653d11652ef..c909d2896543bd745ac929209e2111157a5e67e9 100755
--- a/package/dropbear/files/dropbear.init
+++ b/package/dropbear/files/dropbear.init
@@ -2,10 +2,13 @@
 # Copyright (C) 2006-2010 OpenWrt.org
 # Copyright (C) 2006 Carlos Sobrinho
 
-NAME=dropbear
-PROG=/usr/sbin/dropbear
 START=50
 STOP=50
+
+SERVICE_USE_PID=1
+
+NAME=dropbear
+PROG=/usr/sbin/dropbear
 PIDCOUNT=0
 EXTRA_COMMANDS="killclients"
 EXTRA_HELP="	killclients Kill ${NAME} processes except servers and yourself"
@@ -48,7 +51,8 @@ dropbear_start()
 	PIDCOUNT="$(( ${PIDCOUNT} + 1))"
 
 	# prepare parameters (initialise with pid file)
-	local args="-P /var/run/${NAME}.${PIDCOUNT}.pid"
+	local pid_file="/var/run/${NAME}.${PIDCOUNT}.pid"
+	local args="-P $pid_file"
 	local val
 	# A) password authentication
 	config_get_bool val "${section}" PasswordAuth 1
@@ -80,8 +84,7 @@ dropbear_start()
 
 	# execute program and return its exit code
 	[ "${verbosed}" -ne 0 ] && echo "${initscript}: section ${section} starting ${PROG} ${args}"
-	${PROG} ${args}
-	return $?
+	SERVICE_PID_FILE="$pid_file" service_start ${PROG} ${args}
 }
 
 keygen()
@@ -120,14 +123,17 @@ start()
 
 stop()
 {
-	# killing all server processes
-	local pidfile
-	for pidfile in `ls /var/run/${NAME}.*.pid`
-	 do
-		start-stop-daemon -q -K -s KILL -p "${pidfile}" -n "${NAME}"
-		rm -f "${pidfile}"
+	local pid_file pid_files
+	
+	pid_files=`ls /var/run/${NAME}.*.pid 2>/dev/null`
+	
+	[ -z "$pid_files" ] && return 1
+	
+	for pid_file in $pid_files; do
+		SERVICE_PID_FILE="$pid_file" service_stop ${PROG} && {
+			rm -f ${pid_file}
+		}
 	done
-	[ -z "${pidfile}" ] && echo "${initscript}: no pid files, if you get problems with start then try killclients"
 }
 
 killclients()