diff --git a/ChangeLog b/ChangeLog
index 4368877fe0384a7a9f1f49fc45a40b475ecc0b68..8096a223e55b7550f05c4e1f40aa2df99e9fac9b 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2005-11-20  Josh Roberson <josh@asteriasgi.com>
 
+	* pbx/pbx_spool.c: Fix crash in spooler if set/setvar declared incorrectly. (issue #5806)
+
 	* apps/app_meetme.c: fix 'X' option in MeetMe, with slight modification. (issue #5773)
 
 	* apps/app_voicemail.c: Make sure we're copying the read digits when calling voicemail without a box. (issue #5774)
diff --git a/pbx/pbx_spool.c b/pbx/pbx_spool.c
index 96531b5f95b09ea44169e3c978a5741c6b666cd2..4af23c40061c609941b245918cc8d06907346022 100755
--- a/pbx/pbx_spool.c
+++ b/pbx/pbx_spool.c
@@ -202,11 +202,16 @@ static int apply_outgoing(struct outgoing *o, char *fn, FILE *f)
 				} else if (!strcasecmp(buf, "setvar") || !strcasecmp(buf, "set")) {
 					c2 = c;
 					strsep(&c2, "=");
-					var = ast_variable_new(c, c2);
-					if (var) {
-						var->next = o->vars;
-						o->vars = var;
+					if (c2)
+					{
+						var = ast_variable_new(c, c2);
+						if (var) {
+							var->next = o->vars;
+							o->vars = var;
+						}
 					}
+					else
+						ast_log(LOG_WARNING, "Malformed \"%s\" argument.  Should be \"%s: variable=value\"\n", buf, buf);
 				} else if (!strcasecmp(buf, "account")) {
 					var = ast_variable_new("CDR(accountcode|r)", c);
 					if (var) {