diff --git a/package/network/config/ltq-vdsl-app/files/dsl_control b/package/network/config/ltq-vdsl-app/files/dsl_control
index c4c3c0d6011dcf62fd203231b832419a3d4592f6..1d8a902f69189c895dd4da7ac3f9f15181324cdd 100644
--- a/package/network/config/ltq-vdsl-app/files/dsl_control
+++ b/package/network/config/ltq-vdsl-app/files/dsl_control
@@ -220,6 +220,8 @@ start_service() {
 }
 
 stop_service() {
+	# do not use dsl_cmd to not block when this is locked up by some other proess
+	echo quit > /tmp/pipe/dsl_cpe0_cmd
 	DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
 	DSL_INTERFACE_STATUS="DOWN" \
 		/sbin/dsl_notify.sh