diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index bedf0cf1d159bf924ee7418feb1587dcbfeaa542..fd21df6ab4c8074ef49d7b5d490113c1fe45ea57 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -96,12 +96,12 @@ static ast_mutex_t usecnt_lock = AST_MUTEX_INITIALIZER;
 /* Protect the interface list (of sip_pvt's) */
 static ast_mutex_t agentlock = AST_MUTEX_INITIALIZER;
 
-int recordagentcalls = 0;
-char recordformat[AST_MAX_BUF];
-char recordformatext[AST_MAX_BUF];
-int createlink = 0;
-char urlprefix[AST_MAX_BUF];
-char savecallsin[AST_MAX_BUF];
+static int recordagentcalls = 0;
+static char recordformat[AST_MAX_BUF];
+static char recordformatext[AST_MAX_BUF];
+static int createlink = 0;
+static char urlprefix[AST_MAX_BUF];
+static char savecallsin[AST_MAX_BUF];
 
 #define GETAGENTBYCALLERID	"AGENTBYCALLERID"
 
@@ -354,7 +354,7 @@ static struct ast_frame  *agent_read(struct ast_channel *ast)
 	}
 	CLEANUP(ast,p);
 	ast_mutex_unlock(&p->lock);
-	if (f == &answer_frame)
+	if (recordagentcalls && f == &answer_frame)
 		agent_start_monitoring(ast,0);
 	return f;
 }
@@ -484,7 +484,8 @@ static int agent_call(struct ast_channel *ast, char *dest, int timeout)
 			ast_setstate(ast, AST_STATE_RINGING);
 		else {
 			ast_setstate(ast, AST_STATE_UP);
-			agent_start_monitoring(ast,0);
+			if (recordagentcalls)
+				agent_start_monitoring(ast,0);
 			p->acknowledged = 1;
 		}
 		res = 0;