diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 963a621e75c7a2ccdac12331dac1c3bbff39a1ac..4e734992e266a607869b73338d59a456f50cb81e 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1122,7 +1122,7 @@ static int inet_sk_reselect_saddr(struct sock *sk)
 
 	sk_setup_caps(sk, &rt->dst);
 
-	new_saddr = rt->rt_src;
+	new_saddr = fl4.saddr;
 
 	if (new_saddr == old_saddr)
 		return 0;