$OpenBSD: patch-libpurple_protocols_silc_silc_c,v 1.4 2009/02/12 03:07:59 sthen Exp $
--- libpurple/protocols/silc/silc.c.orig	Mon Jan 12 14:05:38 2009
+++ libpurple/protocols/silc/silc.c	Wed Feb 11 18:20:43 2009
@@ -671,31 +671,12 @@ silcpurple_close(PurpleConnection *gc)
 	SilcPurpleTask task;
 #endif /* __SILC_TOOLKIT_VERSION */
 	GHashTable *ui_info;
-	const char *ui_name = NULL, *ui_website = NULL;
-	char *quit_msg;
 
 	g_return_if_fail(sg != NULL);
 
-	ui_info = purple_core_get_ui_info();
-	
-	if(ui_info) {
-		ui_name = g_hash_table_lookup(ui_info, "name");
-		ui_website = g_hash_table_lookup(ui_info, "website");
-	}
-	
-	if(!ui_name || !ui_website) {
-		ui_name = "Pidgin";
-		ui_website = PURPLE_WEBSITE;
-	}
-	quit_msg = g_strdup_printf(_("Download %s: %s"),
-							   ui_name, ui_website);
-
 	/* Send QUIT */
 	silc_client_command_call(sg->client, sg->conn, NULL,
-				 "QUIT", quit_msg,
-				 NULL);
-	g_free(quit_msg);
-
+				 "QUIT", NULL);
 	if (sg->conn)
 		silc_client_close_connection(sg->client, sg->conn);
 
@@ -1357,6 +1338,7 @@ silcpurple_send_im_resolved(SilcClient client,
 	char tmp[256];
 	SilcClientEntry client_entry;
 	SilcDList list;
+	gboolean free_list = FALSE;
 
 	convo = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, im->nick,
 						      sg->account);
@@ -1373,6 +1355,8 @@ silcpurple_send_im_resolved(SilcClient client,
 							im->nick, FALSE);
 		if (!clients)
 			goto err;
+
+		free_list = TRUE;
 	}
 
 	silc_dlist_start(clients);
@@ -1413,6 +1397,9 @@ silcpurple_send_im_resolved(SilcClient client,
 	purple_conversation_write(convo, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL));
 
  out:
+	if (free_list) {
+		silc_client_list_free(client, conn, clients);
+	}
 	g_free(im->nick);
 	g_free(im->message);
 	silc_free(im);
@@ -1835,9 +1822,6 @@ static PurpleCmdRet silcpurple_cmd_quit(PurpleConversa
 {
 	PurpleConnection *gc;
 	SilcPurple sg;
-	GHashTable *ui_info;
-	const char *ui_name = NULL, *ui_website = NULL;
-	char *quit_msg;
 								   
 	gc = purple_conversation_get_gc(conv);
 
@@ -1849,23 +1833,8 @@ static PurpleCmdRet silcpurple_cmd_quit(PurpleConversa
 	if (sg == NULL)
 		return PURPLE_CMD_RET_FAILED;
 
-	ui_info = purple_core_get_ui_info();
-	
-	if(ui_info) {
-		ui_name = g_hash_table_lookup(ui_info, "name");
-		ui_website = g_hash_table_lookup(ui_info, "website");
-	}
-	
-	if(!ui_name || !ui_website) {
-		ui_name = "Pidgin";
-		ui_website = PURPLE_WEBSITE;
-	}
-	quit_msg = g_strdup_printf(_("Download %s: %s"),
-							   ui_name, ui_website);
-
 	silc_client_command_call(sg->client, sg->conn, NULL,
-				 "QUIT", (args && args[0]) ? args[0] : quit_msg, NULL);
-	g_free(quit_msg);
+				 "QUIT", NULL);
 
 	return PURPLE_CMD_RET_OK;
 }
