diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 501a50c41a17c6ed9bc10bde91155e005c309b14..b538b70ecc41e5fa0b1df340cc7ff63726831532 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -9976,8 +9976,9 @@ static void build_route(struct sip_pvt *p, struct sip_request *req, int backward
 		free_old_route(p->route);
 		p->route = NULL;
 	}
-	
-	p->route_persistant = backwards;
+
+	/* We only want to create the route set the first time this is called */
+	p->route_persistant = 1;
 	
 	/* Build a tailq, then assign it to p->route when done.
 	 * If backwards, we add entries from the head so they end up