diff -u orig/gnome-panel-2.27.4/applets/wncklet/window-list.c gnome-panel-2.27.4/applets/wncklet/window-list.c
--- orig/gnome-panel-2.27.4/applets/wncklet/window-list.c	2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.27.4/applets/wncklet/window-list.c	2009-08-26 20:30:29.000000000 +0200
@@ -36,6 +36,7 @@
 	
 	gboolean include_all_workspaces;
 	WnckTasklistGroupingType grouping;
+	WnckTasklistStyle style;
 	gboolean move_unminimized_windows;
   
 	GtkOrientation orientation;
@@ -53,11 +54,14 @@
 	GtkWidget *minimized_windows_label;
 	GtkWidget *move_minimized_radio;
 	GtkWidget *change_workspace_radio;
+	GtkWidget *style_icon_text_radio;
+	GtkWidget *style_icon_radio;
+	GtkWidget *style_text_radio;
 
 	GtkWidget *about;
 
 	/* gconf listeners id */
-	guint listeners [3];
+	guint listeners [4];
 } TasklistData;
 
 static void display_properties_dialog (BonoboUIComponent *uic,
@@ -87,6 +91,8 @@
 						  tasklist->include_all_workspaces);
 	wnck_tasklist_set_switch_workspace_on_unminimize (WNCK_TASKLIST (tasklist->tasklist),
 							  tasklist->move_unminimized_windows);
+	wnck_tasklist_set_style (WNCK_TASKLIST (tasklist->tasklist), 
+				 tasklist->style);
 }
 
 static void
@@ -176,12 +182,14 @@
 	gconf_client_notify_remove (client, tasklist->listeners[0]);
 	gconf_client_notify_remove (client, tasklist->listeners[1]);
 	gconf_client_notify_remove (client, tasklist->listeners[2]);
+	gconf_client_notify_remove (client, tasklist->listeners[3]);
 
 	g_object_unref (G_OBJECT (client));
 	
 	tasklist->listeners[0] = 0;
 	tasklist->listeners[1] = 0;
 	tasklist->listeners[2] = 0;
+	tasklist->listeners[3] = 0;
 
 	if (tasklist->properties_dialog)
 		gtk_widget_destroy (tasklist->properties_dialog);
@@ -269,6 +277,28 @@
 	return type;
 }
 
+static WnckTasklistStyle
+get_style_type (GConfValue *value)
+{
+	WnckTasklistStyle type = -1;
+	const char *str;
+
+	g_assert (value != NULL);
+
+	if (value->type == GCONF_VALUE_STRING) {
+		str = gconf_value_get_string (value);
+		if (g_ascii_strcasecmp (str, "icon_text") == 0) {
+			type = WNCK_TASKLIST_STYLE_ICON_TEXT;
+		} else if (g_ascii_strcasecmp (str, "icon") == 0) {
+			type = WNCK_TASKLIST_STYLE_ICON;
+		} else if (g_ascii_strcasecmp (str, "text") == 0) {
+			type = WNCK_TASKLIST_STYLE_TEXT;
+		}
+	}
+
+	return type;
+}
+
 static GtkWidget *
 get_grouping_button (TasklistData *tasklist,
 		     WnckTasklistGroupingType type)
@@ -287,6 +317,24 @@
 	}
 }
 
+static GtkWidget *
+get_style_button (TasklistData *tasklist,
+		  WnckTasklistStyle type)
+{
+	switch (type) {
+	default:
+	case WNCK_TASKLIST_STYLE_ICON_TEXT:
+		return tasklist->style_icon_text_radio;
+		break;
+	case WNCK_TASKLIST_STYLE_ICON:
+		return tasklist->style_icon_radio;
+		break;
+	case WNCK_TASKLIST_STYLE_TEXT:
+		return tasklist->style_text_radio;
+		break;
+	}
+}
+
 static void
 group_windows_changed (GConfClient  *client,
 		       guint         cnxn_id,
@@ -318,6 +366,35 @@
 }
 
 static void
+style_changed (GConfClient  *client,
+	       guint         cnxn_id,
+	       GConfEntry   *entry,
+	       TasklistData *tasklist)
+{
+	WnckTasklistStyle type;
+	GtkWidget *button;
+
+	if (!entry->value ||
+	    (entry->value->type != GCONF_VALUE_STRING))
+		return;
+
+	type = get_style_type (entry->value);
+	if (type == -1) {
+		g_warning ("tasklist: Unknown value for GConf key 'style'");
+		return;
+	}
+		
+	tasklist->style = type;
+	tasklist_update (tasklist);
+
+	button = get_style_button (tasklist, type);
+        if (button &&
+	    !gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button))) {
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+	}
+}
+
+static void
 tasklist_update_unminimization_radio (TasklistData *tasklist)
 {
 	GtkWidget *button;
@@ -387,6 +464,14 @@
 				NULL, NULL);
 	g_free (key);
 
+	key = panel_applet_gconf_get_full_key (PANEL_APPLET (tasklist->applet),
+					       "style");
+	tasklist->listeners[3] = gconf_client_notify_add(client, key,
+				(GConfClientNotifyFunc)style_changed,
+				tasklist,
+				NULL, NULL);
+	g_free (key);
+
 	g_object_unref (G_OBJECT (client));
 }
 
@@ -497,6 +582,18 @@
 	}
 	if (tasklist->grouping < 0)
 		tasklist->grouping = WNCK_TASKLIST_AUTO_GROUP; /* Default value */
+
+	error = NULL;
+	tasklist->style = -1;
+	value = panel_applet_gconf_get_value (applet, "style", &error);
+	if (error) {
+		g_error_free (error);
+	} else if (value) {
+		tasklist->style = get_style_type (value);
+		gconf_value_free (value);
+	}
+	if (tasklist->style < 0)
+		tasklist->style = WNCK_TASKLIST_STYLE_ICON_TEXT; /* Default value */
 	
 	error = NULL;
 	tasklist->move_unminimized_windows = panel_applet_gconf_get_bool (applet, "move_unminimized_windows", &error);
@@ -619,6 +716,19 @@
 }
 
 static void
+style_toggled (GtkToggleButton *button,
+	       TasklistData    *tasklist)
+{
+	if (gtk_toggle_button_get_active (button)) {
+		char *str;
+		str = g_object_get_data (G_OBJECT (button), "group_value");
+		panel_applet_gconf_set_string (PANEL_APPLET (tasklist->applet),
+					       "style", str,
+					       NULL);
+	}
+}
+
+static void
 group_windows_toggled (GtkToggleButton *button,
 		       TasklistData    *tasklist)
 {
@@ -630,6 +740,7 @@
 					       NULL);
 	}
 }
+
 static void
 move_minimized_toggled (GtkToggleButton *button,
 			TasklistData    *tasklist)
@@ -639,6 +750,7 @@
 				     gtk_toggle_button_get_active (button),
 				     NULL);
 }
+
 static void
 display_all_workspaces_toggled (GtkToggleButton *button,
 				TasklistData    *tasklist)
@@ -727,6 +839,16 @@
 			   NULL,
 			   "move_unminimized_windows" /* key */);
 
+	tasklist->style_icon_text_radio = WID ("style_icon_text_radio");
+	tasklist->style_icon_radio = WID ("style_icon_radio");
+	tasklist->style_text_radio = WID ("style_text_radio");
+
+	setup_sensitivity (tasklist, client, xml,
+			   "style_icon_text_radio",
+			   "style_icon_radio",
+			   "style_text_radio",
+			   "style" /* key */);
+
 	/* Window grouping: */
 	button = get_grouping_button (tasklist, tasklist->grouping);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
@@ -744,6 +866,24 @@
 	g_signal_connect (G_OBJECT (tasklist->always_group_radio), "toggled",
 			  (GCallback) group_windows_toggled, tasklist);
 
+
+	/* Window style: */
+	button = get_style_button (tasklist, tasklist->style);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
+	g_object_set_data (G_OBJECT (tasklist->style_icon_text_radio),
+			   "group_value", "icon_text");
+	g_object_set_data (G_OBJECT (tasklist->style_icon_radio),
+			   "group_value", "icon");
+	g_object_set_data (G_OBJECT (tasklist->style_text_radio),
+			   "group_value", "text");
+
+	g_signal_connect (G_OBJECT (tasklist->style_icon_text_radio), "toggled",
+			  (GCallback) style_toggled, tasklist);
+	g_signal_connect (G_OBJECT (tasklist->style_icon_radio), "toggled",
+			  (GCallback) style_toggled, tasklist);
+	g_signal_connect (G_OBJECT (tasklist->style_text_radio), "toggled",
+			  (GCallback) style_toggled, tasklist);
+
 	/* move window when unminimizing: */
 	tasklist_update_unminimization_radio (tasklist);
 	g_signal_connect (G_OBJECT (tasklist->move_minimized_radio), "toggled",
diff -u orig/gnome-panel-2.27.4/applets/wncklet/window-list.glade gnome-panel-2.27.4/applets/wncklet/window-list.glade
--- orig/gnome-panel-2.27.4/applets/wncklet/window-list.glade	2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.27.4/applets/wncklet/window-list.glade	2009-08-26 21:37:01.000000000 +0200
@@ -236,6 +236,90 @@
                 <property name="position">2</property>
               </packing>
             </child>
+            <child>
+              <widget class="GtkVBox" id="vbox15">
+                <property name="visible">True</property>
+                <property name="spacing">6</property>
+                <child>
+                  <widget class="GtkLabel" id="windows_style">
+                    <property name="visible">True</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">&lt;b&gt;Window List Appearance&lt;/b&gt;</property>
+                    <property name="use_markup">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkAlignment" id="alignment4">
+                    <property name="visible">True</property>
+                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                    <property name="left_padding">12</property>
+                    <child>
+                      <widget class="GtkVBox" id="vbox16">
+                        <property name="visible">True</property>
+                        <property name="spacing">6</property>
+                        <child>
+                          <widget class="GtkRadioButton" id="style_icon_text_radio">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Icon and Text</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkRadioButton" id="style_icon_radio">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Icon Only</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">style_icon_text_radio</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <widget class="GtkRadioButton" id="style_text_radio">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="label" translatable="yes">Text Only</property>
+                            <property name="use_underline">True</property>
+                            <property name="response_id">0</property>
+                            <property name="draw_indicator">True</property>
+                            <property name="group">style_icon_text_radio</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="fill">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
+                      </widget>
+                    </child>
+                  </widget>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
           </widget>
         </child>
         <child internal-child="action_area">
diff -u orig/gnome-panel-2.27.4/applets/wncklet/window-list.schemas.in gnome-panel-2.27.4/applets/wncklet/window-list.schemas.in
--- orig/gnome-panel-2.27.4/applets/wncklet/window-list.schemas.in	2009-04-19 19:45:09.000000000 +0200
+++ gnome-panel-2.27.4/applets/wncklet/window-list.schemas.in	2009-08-26 19:22:04.000000000 +0200
@@ -30,6 +30,20 @@
       </schema>
 
       <schema>
+        <key>/schemas/apps/window_list_applet/prefs/style</key>
+        <owner>window-list-applet</owner>
+        <type>string</type>
+        <default>icon_text</default>
+        <locale name="C">
+          <short>Window List Style</short>
+          <long>
+            Decides what style the window list will have. Possible values are
+	    "icon_text", "icon" and "text".
+          </long>
+        </locale>
+      </schema>
+
+      <schema>
         <key>/schemas/apps/window_list_applet/prefs/move_unminimized_windows</key>
         <owner>window-list-applet</owner>
         <type>bool</type>
