From 975fec2222321b35ea6807c2c3e3f723a8a841e7 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthony.minessale@gmail.com>
Date: Mon, 10 Mar 2008 18:38:01 +0000
Subject: [PATCH] fix issue

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7852 d0543943-73ff-0310-b7d9-9358b9ac24b2
---
 src/switch_core_session.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/switch_core_session.c b/src/switch_core_session.c
index dfb416c7fc..16351f2d59 100644
--- a/src/switch_core_session.c
+++ b/src/switch_core_session.c
@@ -1000,7 +1000,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_exten(switch_core_se
 	char *dpstr;
 	int argc, x, count = 0;
 	char *expanded = NULL;
-	switch_caller_profile_t *profile, *new_profile, *pp;
+	switch_caller_profile_t *profile, *new_profile, *pp = NULL;
 	switch_channel_t *channel = switch_core_session_get_channel(session);
 	switch_dialplan_interface_t *dialplan_interface = NULL;
 	switch_caller_extension_t *extension = NULL;
@@ -1062,12 +1062,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_exten(switch_core_se
 
 	new_profile->caller_extension = extension;
 
-	for(pp = profile->caller_extension->children; pp && pp->next; pp = pp->next);
-
-	if (pp) {
-		pp->next = new_profile;
-	} else {
-		profile->caller_extension->children = new_profile;
+	if (profile->caller_extension) {
+		for(pp = profile->caller_extension->children; pp && pp->next; pp = pp->next);
+ 
+		if (pp) {
+			pp->next = new_profile;
+		} else {
+			profile->caller_extension->children = new_profile;
+		}
 	}
 
 	while (switch_channel_ready(channel) && extension->current_application) {