diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index a16064ba0caf2bee3bcc87ffa111811d44927d60..76ff9f4fe89d7258895df5bc32857f64d6d603cf 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -985,6 +985,8 @@ int ipv6_dev_get_saddr(struct net_device *daddr_dev,
 			}
 
 			/* Rule 4: Prefer home address -- not implemented yet */
+			if (hiscore.rule < 4)
+				hiscore.rule++;
 
 			/* Rule 5: Prefer outgoing interface */
 			if (hiscore.rule < 5) {