diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh
index 69051132eda2c918de9c5bab04cbb23dd86fb5c9..bc18d1ec9aee94df768c76b0213c19c849184abd 100644
--- a/package/ppp/files/ppp.sh
+++ b/package/ppp/files/ppp.sh
@@ -59,7 +59,7 @@ start_pppd() {
 	local defaultroute
 	config_get_bool defaultroute "$cfg" defaultroute 1
 	[ "$defaultroute" -eq 1 ] && \
-		defaultroute="defaultroute replacedefaultroute" || defaultroute=""
+		defaultroute="defaultroute replacedefaultroute" || defaultroute="nodefaultroute"
 
 	local interval="${keepalive##*[, ]}"
 	[ "$interval" != "$keepalive" ] || interval=5
@@ -77,7 +77,9 @@ start_pppd() {
 	local peerdns
 	config_get_bool peerdns "$cfg" peerdns $peer_default
 
-	echo -n "" > /tmp/resolv.conf.auto
+	if [ "$peerdns" -eq 1 ] || [ ! -e /tmp/resolv.conf.auto ]; then
+		echo -n "" > /tmp/resolv.conf.auto
+	fi
 
 	[ "$peerdns" -eq 1 ] && {
 		peerdns="usepeerdns"