diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.c b/src/mod/endpoints/mod_dingaling/mod_dingaling.c
index d76279e20f..367f93c3c4 100644
--- a/src/mod/endpoints/mod_dingaling/mod_dingaling.c
+++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.c
@@ -1487,20 +1487,20 @@ static switch_status_t channel_outgoing_channel(switch_core_session_t *session,
 			*dnis++ = '\0';
 		}
 
+		if ((mdl_profile->user_flags & LDL_FLAG_COMPONENT)) {
+			if ((p = strchr(profile_name, '@'))) {
+				*p++ = '\0';
+				u = profile_name;
+				profile_name = p;
+				snprintf(ubuf, sizeof(ubuf), "%s@%s/talk", u, profile_name);
+				user = ubuf;
+			} else {
+				terminate_session(new_session,  __LINE__, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+				return SWITCH_STATUS_GENERR;
+			}
+		} 
+
 		if ((mdl_profile = switch_core_hash_find(globals.profile_hash, profile_name))) {
-			if ((mdl_profile->user_flags & LDL_FLAG_COMPONENT)) {
-				if ((p = strchr(profile_name, '@'))) {
-					*p++ = '\0';
-					u = profile_name;
-					profile_name = p;
-					snprintf(ubuf, sizeof(ubuf), "%s@%s/talk", u, profile_name);
-					user = ubuf;
-				} else {
-					terminate_session(new_session,  __LINE__, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-					return SWITCH_STATUS_GENERR;
-				}
-			} 
-			
 			if (strchr(outbound_profile->caller_id_number, '@')) {
 				snprintf(ubuf, sizeof(ubuf), "%s/talk", outbound_profile->caller_id_number);
 				user = ubuf;