diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c
index ee16619..f87f6f8 100644
--- a/camel/camel-filter-driver.c
+++ b/camel/camel-filter-driver.c
@@ -449,6 +449,7 @@ do_delete (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterD
 	p->deleted = TRUE;
 	camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Delete");
 
+	printf ("      %s:\n", __FUNCTION__);
 	return NULL;
 }
 
@@ -469,6 +470,8 @@ do_forward_to (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFil
 			return NULL;
 	}
 
+	printf ("      %s:\n", __FUNCTION__);
+
 	camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Forward message to '%s'", argv[0]->value.string);
 	camel_session_forward_to (p->session, p->source, p->message, argv[0]->value.string, &p->error);
 
@@ -516,6 +519,7 @@ do_copy (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDri
 			if (p->error == NULL)
 				p->copied = TRUE;
 
+			printf ("      %s: '%s'\n", __FUNCTION__, folder);
 			camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Copy to folder %s",
 						 folder);
 		}
@@ -580,6 +584,7 @@ do_move (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDri
 
 			if (p->error == NULL) {
 				p->moved = TRUE;
+				printf ("      %s: %s\n", __FUNCTION__, folder);
 				camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Move to folder %s", folder);
 			}
 		}
@@ -587,6 +592,7 @@ do_move (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDri
 
 	/* implicit 'stop' with 'move' */
 	camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Stopped processing");
+	printf ("      %s: implicit stop on move\n", __FUNCTION__);
 	p->terminated = TRUE;
 
 	return NULL;
@@ -600,6 +606,7 @@ do_stop (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDri
 	camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Stopped processing");
 	d(fprintf (stderr, "terminating message processing\n"));
 	p->terminated = TRUE;
+	printf ("      %s:\n", __FUNCTION__);
 
 	return NULL;
 }
@@ -631,6 +638,7 @@ do_label (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDr
 		else
 			camel_message_info_set_user_flag (p->info, label, TRUE);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Set label to %s", label);
+		printf ("      %s: '%s'\n", __FUNCTION__, label);
 	}
 
 	return NULL;
@@ -648,6 +656,7 @@ do_color (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDr
 		else
 			camel_message_info_set_user_tag(p->info, "color", argv[0]->value.string);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Set color to %s", argv[0]->value.string);
+		printf ("      %s:\n", __FUNCTION__);
 	}
 
 	return NULL;
@@ -666,6 +675,7 @@ do_score (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDr
 		camel_message_info_set_user_tag(p->info, "score", value);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Set score to %d", argv[0]->value.number);
 		g_free (value);
+		printf ("      %s:\n", __FUNCTION__);
 	}
 
 	return NULL;
@@ -687,6 +697,7 @@ do_adjust_score(struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFi
 		camel_message_info_set_user_tag(p->info, "score", value);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Adjust score (%d) to %s", argv[0]->value.number, value);
 		g_free (value);
+		printf ("      %s:\n", __FUNCTION__);
 	}
 
 	return NULL;
@@ -706,6 +717,7 @@ set_flag (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDr
 		else
 			camel_message_info_set_flags(p->info, flags | CAMEL_MESSAGE_FOLDER_FLAGGED, ~0);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Set %s flag", argv[0]->value.string);
+		printf ("      %s: '%s'\n", __FUNCTION__, argv[0]->value.string);
 	}
 
 	return NULL;
@@ -725,6 +737,7 @@ unset_flag (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilter
 		else
 			camel_message_info_set_flags(p->info, flags | CAMEL_MESSAGE_FOLDER_FLAGGED, 0);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Unset %s flag", argv[0]->value.string);
+		printf ("      %s: '%s'\n", __FUNCTION__, argv[0]->value.string);
 	}
 
 	return NULL;
@@ -897,6 +910,7 @@ pipe_message (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilt
 	}
 
 	camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Piping message to %s", argv[0]->value.string);
+	printf ("      %s: '%s'\n", __FUNCTION__, argv[0]->value.string);
 	pipe_to_system (f, argc, argv, driver);
 
 	return NULL;
@@ -933,6 +947,7 @@ do_shell (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDr
 		p->shellfunc (driver, argc, (gchar **) args->pdata, p->shelldata);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Executing shell command: [%s]",
 					 command->str);
+		printf ("      %s: '%s'\n", __FUNCTION__, command->str);
 	}
 
  done:
@@ -953,6 +968,7 @@ do_beep (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilterDri
 	if (p->beep) {
 		p->beep (driver, p->beepdata);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Beep");
+		printf ("      %s:\n", __FUNCTION__);
 	}
 
 	return NULL;
@@ -968,6 +984,7 @@ play_sound (struct _ESExp *f, gint argc, struct _ESExpResult **argv, CamelFilter
 	if (p->playfunc && argc == 1 && argv[0]->type == ESEXP_RES_STRING) {
 		p->playfunc (driver, argv[0]->value.string, p->playdata);
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Play sound");
+		printf ("      %s:\n", __FUNCTION__);
 	}
 
 	return NULL;
@@ -1233,6 +1250,8 @@ camel_filter_driver_filter_mbox (CamelFilterDriver *driver,
 	goffset last = 0;
 	gint ret = -1;
 
+	printf ("%s: '%s'\n", __FUNCTION__, mbox);
+
 	fd = g_open (mbox, O_RDONLY|O_BINARY, 0);
 	if (fd == -1) {
 		g_set_error (
@@ -1514,8 +1533,10 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver,
 		info = camel_message_info_new_from_header (NULL, h);
 		freeinfo = TRUE;
 	} else {
-		if (camel_message_info_flags(info) & CAMEL_MESSAGE_DELETED)
+		if (camel_message_info_flags(info) & CAMEL_MESSAGE_DELETED) {
+			printf ("      %s: '%s' already deleted, doing nothing\n", __FUNCTION__, camel_message_info_subject (info));
 			return 0;
+		}
 
 		uid = camel_message_info_uid (info);
 
@@ -1556,6 +1577,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver,
 		case CAMEL_SEARCH_MATCHED:
 			filtered = TRUE;
 			camel_filter_driver_log (driver, FILTER_LOG_START, "%s", node->name);
+			printf ("      %s: '%s' applying '%s'\n", __FUNCTION__, camel_message_info_subject (info), node->name);
 
 			if (camel_debug(":filter"))
 				printf("filtering '%s' applying rule %s\n",
@@ -1591,6 +1613,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver,
 
 	/* *Now* we can set the DELETED flag... */
 	if (p->deleted) {
+		printf ("      %s: '%s' was deleted\n", __FUNCTION__, camel_message_info_subject (info));
 		if (p->source && p->uid && camel_folder_has_summary_capability (p->source))
 			camel_folder_set_message_flags(p->source, p->uid, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN, ~0);
 		else
@@ -1603,6 +1626,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver,
 		filtered = TRUE;
 		camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Copy to default folder");
 
+		printf ("      %s: '%s' coy to default folder '%s'\n", __FUNCTION__, camel_message_info_subject (info), p->defaultfolder ? camel_folder_get_full_name (p->defaultfolder) : "[NULL]");
 		if (camel_debug(":filter"))
 			printf("filtering '%s' copy %s to default folder\n",
 			       camel_message_info_subject(info)?camel_message_info_subject(info):"?no subject?",
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index dedcd58..c834a1e 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -118,6 +118,7 @@ filter_filter (CamelSession *session, CamelSessionThreadMsg *tmsg)
 	parent_store = camel_folder_get_parent_store (m->folder);
 	csp = CAMEL_SERVICE (parent_store)->session->junk_plugin;
 
+	printf ("%s: filtering folder '%s'\n", __FUNCTION__, full_name);
 	if (m->junk) {
 		/* Translators: The %s is replaced with a folder name where the operation is running. */
 		camel_operation_start (
@@ -133,6 +134,7 @@ filter_filter (CamelSession *session, CamelSessionThreadMsg *tmsg)
 			camel_operation_progress (NULL, pc);
 
 			if (msg) {
+				printf ("   %s: reporting junk '%s'\n", __FUNCTION__, camel_mime_message_get_subject (msg));
 				camel_junk_plugin_report_junk (csp, msg);
 				g_object_unref (msg);
 			}
@@ -154,6 +156,7 @@ filter_filter (CamelSession *session, CamelSessionThreadMsg *tmsg)
 			camel_operation_progress (NULL, pc);
 
 			if (msg) {
+				printf ("   %s: reporting NOT junk '%s'\n", __FUNCTION__, camel_mime_message_get_subject (msg));
 				camel_junk_plugin_report_notjunk (csp, msg);
 				g_object_unref (msg);
 			}
@@ -199,6 +202,7 @@ filter_filter (CamelSession *session, CamelSessionThreadMsg *tmsg)
 				continue;
 			}
 
+			printf ("   %s: filtering new message '%s'\n", __FUNCTION__, camel_message_info_subject (info));
 			status = camel_filter_driver_filter_message (m->driver, NULL, info, uid, m->folder, source_url, source_url, NULL);
 
 			camel_folder_free_message_info (m->folder, info);
diff --git a/camel/providers/local/camel-mbox-summary.c b/camel/providers/local/camel-mbox-summary.c
index 0679c29..276d61f 100644
--- a/camel/providers/local/camel-mbox-summary.c
+++ b/camel/providers/local/camel-mbox-summary.c
@@ -999,6 +999,7 @@ mbox_summary_sync(CamelLocalSummary *cls, gboolean expunge, CamelFolderChangeInf
 	if (quick && expunge) {
 		guint32 dcount =0;
 
+		printf ("      %s: expunging quickly from '%s'\n", __FUNCTION__, full_name);
 		if (camel_db_count_deleted_message_info (parent_store->cdb_w, full_name, &dcount, error) == -1)
 			return -1;
 		if (dcount)
@@ -1119,6 +1120,7 @@ camel_mbox_summary_sync_mbox(CamelMboxSummary *cls, guint32 flags, CamelFolderCh
 			gint read, junk;
 			d(printf("Deleting %s\n", uid));
 
+			printf ("      %s: deleting '%s'\n", __FUNCTION__, camel_message_info_subject (info));
 			if (((CamelLocalSummary *)cls)->index)
 				camel_index_delete_name(((CamelLocalSummary *)cls)->index, uid);
 
