diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h
index 8dbd5dd5cdaa0840b8c802ef2baa637e9b474098..ef54ed4446dab27c76468d88eb85a482db909c51 100644
--- a/include/asterisk/linkedlists.h
+++ b/include/asterisk/linkedlists.h
@@ -381,7 +381,8 @@ struct {								\
   used to link entries of this list together.
 
   Note: The link field in the appended entry is \b not modified, so if it is
-  actually the head of a list itself, the entire list will be appended.
+  actually the head of a list itself, the entire list will be appended
+  temporarily (until the next AST_LIST_INSERT_TAIL is performed).
  */
 #define AST_LIST_INSERT_TAIL(head, elm, field) do {			\
       if (!(head)->first) {						\
@@ -431,7 +432,7 @@ struct {								\
 		while (curelm->field.next != (elm))			\
 			curelm = curelm->field.next;			\
 		curelm->field.next = (elm)->field.next;			\
-		if ((head)->last == curelm->field.next)			\
+		if ((head)->last == (elm))				\
 			(head)->last = curelm;				\
 	}								\
 } while (0)