diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index 29d4d73..e1b98bb 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -623,7 +623,11 @@ toggle_widget_visibility (EAttachmentButton *button,
 			if (e_attachment_button_get_expanded (button) &&
 			    (e_attachment_store_get_num_attachments (store) == 0))
 				return;
+			else
+				children = NULL;
 		}
+
+		g_list_free (children);
 	}
 
 	webkit_dom_html_element_set_hidden (
diff --git a/mail/e-mail-request.c b/mail/e-mail-request.c
index e00cc4d..a4e229f 100644
--- a/mail/e-mail-request.c
+++ b/mail/e-mail-request.c
@@ -196,7 +196,7 @@ handle_mail_request (GSimpleAsyncResult *res,
 
 	stream = g_memory_input_stream_new_from_data (
 		(gchar *) ba->data, ba->len, NULL);
-	g_simple_async_result_set_op_res_gpointer (res, stream, NULL);
+	g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
 }
 
 static GInputStream *
@@ -278,7 +278,7 @@ exit:
 		stream = get_empty_image_stream (
 			(gsize *) &request->priv->content_length);
 
-	g_simple_async_result_set_op_res_gpointer (res, stream, NULL);
+	g_simple_async_result_set_op_res_gpointer (res, stream, g_object_unref);
 }
 
 static void
@@ -384,6 +384,8 @@ mail_request_send_finish (SoupRequest *request,
 	if (stream == NULL) {
 		/* We must always return something */
 		stream = g_memory_input_stream_new ();
+	} else {
+		g_object_ref (stream);
 	}
 
 	return stream;
diff --git a/shell/e-shell-searchbar.c b/shell/e-shell-searchbar.c
index 262b082..5795407 100644
--- a/shell/e-shell-searchbar.c
+++ b/shell/e-shell-searchbar.c
@@ -940,6 +940,8 @@ shell_searchbar_get_preferred_width (GtkWidget *widget,
 		}
 	}
 
+	g_list_free (children);
+
 	*minimum_width = max_minimum + COLUMN_SPACING;
 	*natural_width = max_natural + COLUMN_SPACING;
 }
