diff --git a/package/ppp/files/ppp.sh b/package/ppp/files/ppp.sh
index 8dfdab7a0baa808dfc0420770cdd51d4afe69cd0..23fcb89ffd0b45c4e625f32a02a20da8c9215394 100644
--- a/package/ppp/files/ppp.sh
+++ b/package/ppp/files/ppp.sh
@@ -51,9 +51,16 @@ start_pppd() {
 	interval="${keepalive##*[, ]}"
 	[ "$interval" != "$keepalive" ] || interval=5
 
-	config_get_bool peerdns "$cfg" peerdns 1 
-	[ "$peerdns" -eq 1 ] && peerdns="usepeerdns" || peerdns="" 
-	
+	config_get_bool peerdns "$cfg" peerdns 1
+	[ "$peerdns" -eq 1 ] && peerdns="usepeerdns" || {
+		peerdns=""
+		config_get dns "$config" dns
+		for dns in $dns; do
+			grep -q "$dns" /tmp/resolv.conf.auto 2>/dev/null || \
+				echo "nameserver $dns" >> /tmp/resolv.conf.auto
+		done
+	}
+
 	config_get demand "$cfg" demand
 	[ -n "$demand" ] && echo "nameserver 1.1.1.1" > /tmp/resolv.conf.auto