--- rtld.c 2016-04-18 13:49:44.514634102 +0000 +++ rtld_fixed.c 2016-04-18 13:53:35.996618166 +0000 @@ -3948,7 +3948,8 @@ if (req->sym_out == NULL || ELF_ST_BIND(req->sym_out->st_info) == STB_WEAK) { res = symlook_obj(&req1, &obj_rtld); - if (res == 0) { + if (res == 0 && (req->sym_out == NULL || + ELF_ST_BIND(req1.sym_out->st_info) != STB_WEAK)) { req->sym_out = req1.sym_out; req->defobj_out = req1.defobj_out; assert(req->defobj_out != NULL);