diff --git a/ChangeLog b/ChangeLog
index bd2c8791461af312c76aeaab8134b22e3f6fe0ae..66a2dfedc7db8bbe3385945347df7becf04220f1 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2005-11-10  Kevin P. Fleming  <kpfleming@digium.com>
 
+	* include/asterisk/linkedlists.h (AST_LIST_HEAD_SET_NOLOCK): properly initialize tail pointer when list head is directly set (issue #5669)
+
 	* app.c (ast_app_parse_options): ok, so we aren't all perfect... let's make the while loop actually work properly here (issue #5684)
 
 	* apps/app_disa.c (disa_exec): correct password file parsing (issue #5676)
diff --git a/include/asterisk/linkedlists.h b/include/asterisk/linkedlists.h
index fd2203cd7d111d6f87da45a591bcf77417ab2764..cfe84622540956e978fe2fc4cec5f15959292857 100755
--- a/include/asterisk/linkedlists.h
+++ b/include/asterisk/linkedlists.h
@@ -138,7 +138,7 @@ struct name {								\
 */
 #define AST_LIST_HEAD_SET(head, entry) do {				\
 	(head)->first = (entry);					\
-	(head)->last = NULL;						\
+	(head)->last = (entry);						\
 	ast_mutex_init(&(head)->lock);					\
 } while (0)
 
@@ -152,7 +152,7 @@ struct name {								\
 */
 #define AST_LIST_HEAD_SET_NOLOCK(head, entry) do {			\
 	(head)->first = (entry);					\
-	(head)->last = NULL;						\
+	(head)->last = (entry);						\
 } while (0)
 
 /*!