--- channel.c 2005-03-21 03:43:56.000000000 +0530 +++ channel.c.modified 2005-03-21 03:43:27.000000000 +0530 @@ -2318,8 +2318,10 @@ /* Append variables from clone channel into original channel */ /* XXX Is this always correct? We have to in order to keep MACROS working XXX */ - if (AST_LIST_FIRST(&clone->varshead)) - AST_LIST_INSERT_TAIL(&original->varshead, AST_LIST_FIRST(&clone->varshead), entries); + AST_LIST_TRAVERSE_SAFE_BEGIN(&clone->varshead, varptr, entries) { + AST_LIST_INSERT_TAIL(&original->varshead, varptr, entries); + } + AST_LIST_TRAVERSE_SAFE_END; } /* Assumes channel will be locked when called */