diff --git a/filter/e-filter-rule.c b/filter/e-filter-rule.c
index f76c929..cff0b8b 100644
--- a/filter/e-filter-rule.c
+++ b/filter/e-filter-rule.c
@@ -721,7 +721,7 @@ static GtkWidget *
 filter_rule_get_widget (EFilterRule *rule,
                         ERuleContext *context)
 {
-	GtkGrid *hgrid, *vgrid, *inruleame;
+	GtkGrid *hgrid, *vgrid, *inframe;
 	GtkWidget *parts, *add, *label, *name, *w;
 	GtkWidget *combobox;
 	GtkWidget *scrolledwindow;
@@ -773,14 +773,6 @@ filter_rule_get_widget (EFilterRule *rule,
 	gtk_grid_set_column_spacing (hgrid, 12);
 	gtk_container_add (GTK_CONTAINER (vgrid), GTK_WIDGET (hgrid));
 
-	text = g_strdup_printf ("<b>%s</b>",
-		_("Find items that meet the following conditions"));
-	label = gtk_label_new (text);
-	gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
-	gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-	gtk_container_add (GTK_CONTAINER (vgrid), label);
-	g_free (text);
-
 	/* this is the parts table, it should probably be inside a scrolling list */
 	rows = g_list_length (rule->parts);
 	parts = gtk_table_new (rows, 2, FALSE);
@@ -794,16 +786,16 @@ filter_rule_get_widget (EFilterRule *rule,
 	/* only set to automatically clean up the memory */
 	g_object_set_data_full ((GObject *) vgrid, "data", data, g_free);
 
-	hgrid = GTK_GRID (gtk_grid_new ());
-	gtk_grid_set_column_spacing (hgrid, 12);
-
 	if (context->flags & E_RULE_CONTEXT_GROUPING) {
 		const gchar *thread_types[] = {
-			N_("If all conditions are met"),
-			N_("If any conditions are met")
+			N_("all the following conditions"),
+			N_("any of the following conditions")
 		};
 
-		label = gtk_label_new_with_mnemonic (_("_Find items:"));
+		hgrid = GTK_GRID (gtk_grid_new ());
+		gtk_grid_set_column_spacing (hgrid, 12);
+
+		label = gtk_label_new_with_mnemonic (_("_Find items which match:"));
 		combobox = gtk_combo_box_text_new ();
 
 		for (i = 0; i < 2; i++) {
@@ -821,9 +813,17 @@ filter_rule_get_widget (EFilterRule *rule,
 		g_signal_connect (
 			combobox, "changed",
 			G_CALLBACK (filter_rule_grouping_changed_cb), rule);
-	}
 
-	gtk_container_add (GTK_CONTAINER (vgrid), GTK_WIDGET (hgrid));
+		gtk_container_add (GTK_CONTAINER (vgrid), GTK_WIDGET (hgrid));
+	} else {
+		text = g_strdup_printf ("<b>%s</b>",
+			_("Find items that meet the following conditions"));
+		label = gtk_label_new (text);
+		gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+		gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+		gtk_container_add (GTK_CONTAINER (vgrid), label);
+		g_free (text);
+	}
 
 	hgrid = GTK_GRID (gtk_grid_new ());
 	gtk_grid_set_column_spacing (hgrid, 12);
@@ -863,20 +863,6 @@ filter_rule_get_widget (EFilterRule *rule,
 
 	hgrid = GTK_GRID (gtk_grid_new ());
 	gtk_grid_set_column_spacing (hgrid, 3);
-
-	add = gtk_button_new_with_mnemonic (_("A_dd Condition"));
-	gtk_button_set_image (
-		GTK_BUTTON (add), gtk_image_new_from_stock (
-		GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON));
-	g_signal_connect (
-		add, "clicked",
-		G_CALLBACK (more_parts), data);
-	gtk_grid_attach (hgrid, add, 0, 0, 1, 1);
-
-	gtk_container_add (GTK_CONTAINER (vgrid), GTK_WIDGET (hgrid));
-
-	hgrid = GTK_GRID (gtk_grid_new ());
-	gtk_grid_set_column_spacing (hgrid, 3);
 	gtk_widget_set_vexpand (GTK_WIDGET (hgrid), TRUE);
 	gtk_widget_set_valign (GTK_WIDGET (hgrid), GTK_ALIGN_FILL);
 
@@ -885,11 +871,14 @@ filter_rule_get_widget (EFilterRule *rule,
 	label = gtk_label_new ("");
 	gtk_grid_attach (hgrid, label, 0, 0, 1, 1);
 
-	inruleame = GTK_GRID (gtk_grid_new ());
-	gtk_grid_set_row_spacing (inruleame, 6);
-	gtk_widget_set_vexpand (GTK_WIDGET (inruleame), TRUE);
-	gtk_widget_set_valign (GTK_WIDGET (inruleame), GTK_ALIGN_FILL);
-	gtk_grid_attach_next_to (hgrid, GTK_WIDGET (inruleame), label, GTK_POS_RIGHT, 1, 1);
+	inframe = GTK_GRID (gtk_grid_new ());
+	gtk_grid_set_row_spacing (inframe, 6);
+	gtk_orientable_set_orientation (GTK_ORIENTABLE (inframe), GTK_ORIENTATION_VERTICAL);
+	gtk_widget_set_hexpand (GTK_WIDGET (inframe), TRUE);
+	gtk_widget_set_halign (GTK_WIDGET (inframe), GTK_ALIGN_FILL);
+	gtk_widget_set_vexpand (GTK_WIDGET (inframe), TRUE);
+	gtk_widget_set_valign (GTK_WIDGET (inframe), GTK_ALIGN_FILL);
+	gtk_grid_attach_next_to (hgrid, GTK_WIDGET (inframe), label, GTK_POS_RIGHT, 1, 1);
 
 	l = rule->parts;
 	i = 0;
@@ -922,7 +911,21 @@ filter_rule_get_widget (EFilterRule *rule,
 	gtk_widget_set_valign (scrolledwindow, GTK_ALIGN_FILL);
 	gtk_widget_set_hexpand (scrolledwindow, TRUE);
 	gtk_widget_set_halign (scrolledwindow, GTK_ALIGN_FILL);
-	gtk_container_add (GTK_CONTAINER (inruleame), scrolledwindow);
+	gtk_container_add (GTK_CONTAINER (inframe), scrolledwindow);
+
+	hgrid = GTK_GRID (gtk_grid_new ());
+	gtk_grid_set_column_spacing (hgrid, 3);
+
+	add = gtk_button_new_with_mnemonic (_("A_dd Condition"));
+	gtk_button_set_image (
+		GTK_BUTTON (add), gtk_image_new_from_stock (
+		GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON));
+	g_signal_connect (
+		add, "clicked",
+		G_CALLBACK (more_parts), data);
+	gtk_grid_attach (hgrid, add, 0, 0, 1, 1);
+
+	gtk_container_add (GTK_CONTAINER (inframe), GTK_WIDGET (hgrid));
 
 	gtk_widget_show_all (GTK_WIDGET (vgrid));
 
diff --git a/mail/em-filter-rule.c b/mail/em-filter-rule.c
index 1fa27f0..901d79b 100644
--- a/mail/em-filter-rule.c
+++ b/mail/em-filter-rule.c
@@ -586,7 +586,7 @@ get_widget (EFilterRule *fr,
 	g_free (msg);
 
 	hgrid = GTK_GRID (gtk_grid_new ());
-	gtk_grid_set_column_spacing (hgrid, 12);
+	gtk_grid_set_column_spacing (hgrid, 3);
 	gtk_widget_set_hexpand (GTK_WIDGET (hgrid), TRUE);
 	gtk_widget_set_halign (GTK_WIDGET (hgrid), GTK_ALIGN_FILL);
 	gtk_container_add (GTK_CONTAINER (widget), GTK_WIDGET (hgrid));
@@ -595,7 +595,7 @@ get_widget (EFilterRule *fr,
 	gtk_grid_attach (hgrid, label, 0, 0, 1, 1);
 
 	inframe = gtk_grid_new ();
-	gtk_grid_set_column_spacing (GTK_GRID (inframe), 12);
+	gtk_grid_set_row_spacing (GTK_GRID (inframe), 6);
 	gtk_orientable_set_orientation (GTK_ORIENTABLE (inframe), GTK_ORIENTATION_VERTICAL);
 	gtk_widget_set_hexpand (inframe, TRUE);
 	gtk_widget_set_halign (inframe, GTK_ALIGN_FILL);
@@ -614,20 +614,6 @@ get_widget (EFilterRule *fr,
 	/* only set to automatically clean up the memory */
 	g_object_set_data_full ((GObject *) hgrid, "data", data, g_free);
 
-	hgrid = GTK_GRID (gtk_grid_new ());
-	gtk_grid_set_column_spacing (hgrid, 3);
-
-	add = gtk_button_new_with_mnemonic (_("Add Ac_tion"));
-	gtk_button_set_image (
-		GTK_BUTTON (add), gtk_image_new_from_stock (
-		GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON));
-	g_signal_connect (
-		add, "clicked",
-		G_CALLBACK (more_parts), data);
-	gtk_grid_attach (hgrid, add, 0, 0, 1, 1);
-
-	gtk_container_add (GTK_CONTAINER (inframe), GTK_WIDGET (hgrid));
-
 	l = ff->actions;
 	while (l) {
 		part = l->data;
@@ -654,6 +640,20 @@ get_widget (EFilterRule *fr,
 
 	gtk_container_add (GTK_CONTAINER (inframe), scrolledwindow);
 
+	hgrid = GTK_GRID (gtk_grid_new ());
+	gtk_grid_set_column_spacing (hgrid, 3);
+
+	add = gtk_button_new_with_mnemonic (_("Add Ac_tion"));
+	gtk_button_set_image (
+		GTK_BUTTON (add), gtk_image_new_from_stock (
+		GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON));
+	g_signal_connect (
+		add, "clicked",
+		G_CALLBACK (more_parts), data);
+	gtk_grid_attach (hgrid, add, 0, 0, 1, 1);
+
+	gtk_container_add (GTK_CONTAINER (inframe), GTK_WIDGET (hgrid));
+
 	g_object_set_data (G_OBJECT (add), "scrolled-window", scrolledwindow);
 
 	g_signal_connect (
