diff --git a/UPGRADE.txt b/UPGRADE.txt
index c3139b9a526326f90cd7103785d90b957e6bd6be..ff8d3597a8ce16d97af32a36022d035a99a86db5 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -92,6 +92,10 @@ From 1.6.2 to 1.8:
   definition specifies those fields as float,double or similar they will now
   be logged with microsecond accuracy instead of a whole integer.
 
+* chan_sip will no longer set up a local call forward when receiving a
+  482 Loop Detected response. The dialplan will just continue from where it
+  left off.
+
 From 1.6.1 to 1.6.2:
 
 * SIP no longer sends the 183 progress message for early media by
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 3f923858a9306dfdac7cc3d169e548918eb91f5d..b439bf104b3960f4554d3a7ea8ff9cc8ae0584ed 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -19132,16 +19132,7 @@ static void handle_response(struct sip_pvt *p, int resp, const char *rest, struc
 						ast_queue_control(p->owner, AST_CONTROL_BUSY);
 					}
 					break;
-				case 482: /*!
-					\note SIP is incapable of performing a hairpin call, which
-					is yet another failure of not having a layer 2 (again, YAY
-					 IETF for thinking ahead).  So we treat this as a call
-					 forward and hope we end up at the right place... */
-					ast_debug(1, "Hairpin detected, setting up call forward for what it's worth\n");
-					if (p->owner)
-						ast_string_field_build(p->owner, call_forward,
-								       "Local/%s@%s", p->username, p->context);
-					/* Fall through */
+				case 482: /* Loop Detected */
 				case 480: /* Temporarily Unavailable */
 				case 404: /* Not Found */
 				case 410: /* Gone */