--- misc/nm.c 1969-12-31 16:00:00.000000000 -0800 +++ misc/nm.c 2012-09-29 12:36:22.000000000 -0700 @@ -496,7 +496,7 @@ void *cookie) uint32_t nsymbols; struct value_diff *value_diffs; - char *short_name, *has_suffix; + char *short_name, *suffix; enum bool is_framework; cmd_flags = (struct cmd_flags *)cookie; @@ -650,9 +650,20 @@ void *cookie) process_flags.lib_names[j] = (char *)dl + dl->dylib.name.offset; short_name = guess_short_name(process_flags.lib_names[j], - &is_framework, &has_suffix); - if(short_name != NULL) - process_flags.lib_names[j] = short_name; + &is_framework, &suffix); + if(short_name != NULL) { + if (suffix) { + char *combined_name; + asprintf(&combined_name, "%s%s", short_name, suffix); + if (combined_name) { + process_flags.lib_names[j] = combined_name; + free(short_name); + free(suffix); + } + } else { + process_flags.lib_names[j] = short_name; + } + } j++; } lc = (struct load_command *)