diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c
index 2aa5679b7b..02f988f6cf 100755
--- a/src/mod/applications/mod_dptools/mod_dptools.c
+++ b/src/mod/applications/mod_dptools/mod_dptools.c
@@ -3510,7 +3510,7 @@ static switch_call_cause_t pickup_outgoing_channel(switch_core_session_t *sessio
 
 	tech_pvt = switch_core_session_alloc(nsession, sizeof(*tech_pvt));
 	tech_pvt->key = switch_core_session_strdup(nsession, pickup);
-	switch_event_dup(&tech_pvt->vars, var_event);
+
 
 	switch_core_session_set_private(nsession, tech_pvt);
 	
@@ -3534,7 +3534,9 @@ static switch_call_cause_t pickup_outgoing_channel(switch_core_session_t *sessio
 	pickup_add_session(nsession, pickup);
 	switch_channel_set_flag(nchannel, CF_PICKUP);
 	switch_channel_set_flag(nchannel, CF_NO_PRESENCE);
-	
+
+	switch_event_dup(&tech_pvt->vars, var_event);
+
 	goto done;
 
   error:
diff --git a/src/switch_ivr_originate.c b/src/switch_ivr_originate.c
index efe855b565..9bddf694d9 100644
--- a/src/switch_ivr_originate.c
+++ b/src/switch_ivr_originate.c
@@ -2580,6 +2580,16 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
 					local_clobber = switch_true(lc);
 				}
 
+				if (switch_channel_test_flag(originate_status[i].peer_channel, CF_NO_PRESENCE)) {
+					if (var_event) {
+						switch_event_del_header(var_event, "presence_id");
+					}
+					if (local_var_event) {
+						switch_event_del_header(local_var_event, "presence_id");
+					}
+				}
+
+
 				if (local_clobber) {
 					if (var_event) {
 						switch_event_header_t *header;