diff --git a/package/dnsmasq/files/dnsmasq.init b/package/dnsmasq/files/dnsmasq.init
index 4acba5b8463e0c4f44b1cafd67eb96d9694c4c5c..ef1a8e98b554b650437c115e1f933ee64306e713 100644
--- a/package/dnsmasq/files/dnsmasq.init
+++ b/package/dnsmasq/files/dnsmasq.init
@@ -300,6 +300,7 @@ dhcp_add() {
 	leasetime="${leasetime:-12h}"
 	start="$(dhcp_calc "${start:-100}")"
 	limit="${limit:-150}"
+	[ "$limit" -gt 0 ] && limit=$((limit-1))
 	eval "$(ipcalc.sh $ipaddr $netmask $start $limit)"
 	if [ "$dynamicdhcp" = "0" ]; then END="static"; fi
 	append args "--dhcp-range=$networkid,$START,$END,$NETMASK,$leasetime${options:+ $options}"