diff -Nur -x '*.orig' -x '*~' pidgin-2.5.5/pidgin/gtkconv.c pidgin-2.5.5.new/pidgin/gtkconv.c
--- pidgin-2.5.5/pidgin/gtkconv.c	2009-03-01 20:37:13.000000000 +0100
+++ pidgin-2.5.5.new/pidgin/gtkconv.c	2009-07-11 18:36:42.000000000 +0200
@@ -3956,6 +3956,7 @@
 	GdkPixbuf *pixbuf;
 	GtkTreeIter iter;
 	gboolean is_me = FALSE;
+	gboolean single_color = FALSE;
 	gboolean is_buddy;
 	gchar *tmp, *alias_key, *name, *alias;
 	int flags;
@@ -3992,8 +3993,14 @@
 				"send-name");
 		g_object_get(tag, "foreground-gdk", &color, NULL);
 	} else {
+	single_color = purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/chat/single_color_receive_name");
+	if (single_color) {
+	GtkTextTag *tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(GTK_IMHTML(gtkconv->imhtml)->text_buffer),"receive-name");
+	g_object_get(tag, "foreground-gdk", &color, NULL);
+	} else {
 		color = (GdkColor*)get_nick_color(gtkconv, name);
 	}
+	}
 
 #if GTK_CHECK_VERSION(2,6,0)
 	gtk_list_store_insert_with_values(ls, &iter,
@@ -4028,7 +4035,7 @@
 
 	if (pixbuf)
 		g_object_unref(pixbuf);
-	if (is_me && color)
+	if ((is_me || single_color) && color)
 		gdk_color_free(color);
 	g_free(alias_key);
 }
@@ -5465,18 +5472,27 @@
 			gtk_text_buffer_get_tag_table(buffer), str);
 
 	if (buddytag == NULL && create) {
-		if (highlight)
+		if (highlight) {
 			buddytag = gtk_text_buffer_create_tag(buffer, str,
 					"foreground", get_text_tag_color(gtk_text_tag_table_lookup(
 							gtk_text_buffer_get_tag_table(buffer), "highlight-name")),
 					"weight", PANGO_WEIGHT_BOLD,
 					NULL);
-		else
+		} else {
+			if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/conversations/chat/single_color_receive_name")) {
+				buddytag = gtk_text_buffer_create_tag(buffer, str,
+				"foreground", get_text_tag_color(gtk_text_tag_table_lookup(
+				gtk_text_buffer_get_tag_table(buffer), "receive-name")),
+				"weight", purple_find_buddy(purple_conversation_get_account(conv), who) ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL, NULL);
+		} else {
+
 			buddytag = gtk_text_buffer_create_tag(
 					buffer, str,
 					"foreground-gdk", get_nick_color(gtkconv, who),
 					"weight", purple_find_buddy(purple_conversation_get_account(conv), who) ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL,
 					NULL);
+		}
+		}
 
 		g_signal_connect(G_OBJECT(buddytag), "event",
 				G_CALLBACK(buddytag_event), conv);
@@ -7729,6 +7745,7 @@
 	purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/y", 0);
 	purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/width", 340);
 	purple_prefs_add_int(PIDGIN_PREFS_ROOT "/conversations/chat/height", 390);
+	purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/conversations/chat/single_color_receive_name", FALSE);
 
 	/* Conversations -> IM */
 	purple_prefs_add_none(PIDGIN_PREFS_ROOT "/conversations/im");
diff -Nur -x '*.orig' -x '*~' pidgin-2.5.5/pidgin/gtkprefs.c pidgin-2.5.5.new/pidgin/gtkprefs.c
--- pidgin-2.5.5/pidgin/gtkprefs.c	2009-07-11 18:30:36.000000000 +0200
+++ pidgin-2.5.5.new/pidgin/gtkprefs.c	2009-07-11 18:38:01.000000000 +0200
@@ -1045,6 +1045,8 @@
 
 	pidgin_prefs_checkbox(_("Show _formatting on incoming messages"),
 				PIDGIN_PREFS_ROOT "/conversations/show_incoming_formatting", vbox);
+	pidgin_prefs_checkbox(_("Use same colors for all nicks in group chat"),
+				PIDGIN_PREFS_ROOT "/conversations/chat/single_color_receive_name", vbox);
 	pidgin_prefs_checkbox(_("Close IMs immediately when the tab is closed"),
 				PIDGIN_PREFS_ROOT "/conversations/im/close_immediately", vbox);
 
