Index: src/buddyicon.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddyicon.c,v retrieving revision 1.14 diff -u -p -r1.14 buddyicon.c --- src/buddyicon.c 14 Aug 2004 13:55:41 -0000 1.14 +++ src/buddyicon.c 21 Aug 2004 13:11:29 -0000 @@ -246,7 +246,7 @@ gaim_buddy_icon_cache(GaimBuddyIcon *ico if(!stat(old_icon, &st)) unlink(old_icon); else { - filename = g_build_filename(dirname, random, NULL); + filename = g_build_filename(dirname, old_icon, NULL); if(!stat(filename, &st)) unlink(filename); g_free(filename); Index: src/protocols/oscar/oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.644 diff -u -p -r1.644 oscar.c --- src/protocols/oscar/oscar.c 20 Aug 2004 22:05:16 -0000 1.644 +++ src/protocols/oscar/oscar.c 21 Aug 2004 13:11:31 -0000 @@ -2763,7 +2763,7 @@ static int gaim_parse_oncoming(aim_sessi /* Server stored icon stuff */ if (info->iconcsumlen) { const char *filename = NULL, *saved_b16 = NULL; - char *b16 = NULL; + char *b16 = NULL, *filepath = NULL; GaimBuddy *b = NULL; b16 = gaim_base16_encode(info->iconcsum, info->iconcsumlen); @@ -2777,6 +2777,14 @@ static int gaim_parse_oncoming(aim_sessi if (g_file_test(filename, G_FILE_TEST_EXISTS)) saved_b16 = gaim_blist_node_get_string((GaimBlistNode*)b, "icon_checksum"); + else { + filepath = g_build_filename(gaim_buddy_icons_get_cache_dir(), + filename, NULL); + if (g_file_test(filepath, G_FILE_TEST_EXISTS)) + saved_b16 = gaim_blist_node_get_string((GaimBlistNode*)b, + "icon_checksum"); + g_free(filepath); + } } else saved_b16 = NULL;