diff --git a/ChangeLog b/ChangeLog
index 62e1b7a9c5d29e722cc344c2fdabd15948473fe0..78016cc9bb6e1eb93b57977e25edf621f8bb6022 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,7 +8,7 @@
 	* many files: Update applications to add an exit status variable, make priority jumping optional, and use new args parsing macros
 	* pbx.c cdr.c res/res_features.c apps/app_dial.c include/asterisk/cdr.h: Convert some built-in applications to use new args parsing macros.  Change ast_cdr_reset to take a pointer to an ast_flags structure instead of an integer for flags.
 	* channels/chan_agent.c: Don't loop forever on an invalid options string
-	* apps/app_disa.c: Fix to use correct arguments to ast_cdr_reset
+	* apps/app_disa.c apps/app_forkcdr.c: Fix to use correct arguments to ast_cdr_reset
 
 2005-11-05  Kevin P. Fleming  <kpfleming@digium.com>
 
diff --git a/apps/app_forkcdr.c b/apps/app_forkcdr.c
index 0019ec1a4adce7ca8d3a5d40c006925bb3b3cca8..ad8eaa0a734d03aa989dcd77509e17aa86c6089c 100755
--- a/apps/app_forkcdr.c
+++ b/apps/app_forkcdr.c
@@ -57,16 +57,23 @@ static void ast_cdr_fork(struct ast_channel *chan)
 {
 	struct ast_cdr *cdr;
 	struct ast_cdr *newcdr;
+	struct ast_flags flags = { AST_CDR_FLAG_KEEP_VARS };
+
 	if (!chan || !(cdr = chan->cdr))
 		return;
+
 	while (cdr->next)
 		cdr = cdr->next;
+	
 	if (!(newcdr = ast_cdr_dup(cdr)))
 		return;
+	
 	ast_cdr_append(cdr, newcdr);
-	ast_cdr_reset(newcdr, AST_CDR_FLAG_KEEP_VARS);
+	ast_cdr_reset(newcdr, &flags);
+	
 	if (!ast_test_flag(cdr, AST_CDR_FLAG_KEEP_VARS))
 		ast_cdr_free_vars(cdr, 0);
+	
 	ast_set_flag(cdr, AST_CDR_FLAG_CHILD | AST_CDR_FLAG_LOCKED);
 }