Index: main/channel.c =================================================================== --- main/channel.c (revision 286645) +++ main/channel.c (working copy) @@ -815,7 +815,7 @@ tmp->cid.cid_num = ast_strdup(cid_num); if (!ast_strlen_zero(name_fmt)) { - char *slash; + char *slash, *slash2; /* Almost every channel is calling this function, and setting the name via the ast_string_field_build() call. * And they all use slightly different formats for their name string. * This means, to set the name here, we have to accept variable args, and call the string_field_build from here. @@ -830,7 +830,12 @@ va_end(ap2); tech = ast_strdupa(tmp->name); if ((slash = strchr(tech, '/'))) { - *slash = '\0'; + if ((slash2 = strchr(slash+1, '/'))) { + tech = slash+1; + *slash2 = '\0'; + } else { + *slash = '\0'; + } } }