root@astbuntu:/var/src# diff -uNr asterisk-1.2.19/cdr.c asterisk-1.2.21.1/cdr.c --- asterisk-1.2.19/cdr.c 2007-05-18 17:56:20.000000000 -0300 +++ asterisk-1.2.21.1/cdr.c 2007-06-21 19:29:50.000000000 -0300 @@ -37,7 +37,7 @@ #include "asterisk.h" -ASTERISK_FILE_VERSION(__FILE__, "$Revision: 65172 $") +ASTERISK_FILE_VERSION(__FILE__, "$Revision: 70948 $") #include "asterisk/lock.h" #include "asterisk/channel.h" @@ -736,7 +736,8 @@ newflag = ast_cdr_amaflags2int(flag); if (newflag) { for (cdr = chan->cdr; cdr; cdr = cdr->next) { - cdr->amaflags = newflag; + if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) + cdr->amaflags = newflag; } }