Blob Blame History Raw
diff -up evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c.imapx-expunge-processing evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c
--- evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c.imapx-expunge-processing	2015-01-05 16:33:18.000000000 +0100
+++ evolution-data-server-3.12.11/camel/providers/imapx/camel-imapx-server.c	2015-05-21 12:11:37.466409336 +0200
@@ -1930,6 +1930,13 @@ imapx_untagged_expunge (CamelIMAPXServer
 	if (job != NULL)
 		return TRUE;
 
+	job = imapx_match_active_job (is, IMAPX_JOB_COPY_MESSAGE, NULL);
+	/* Ignore EXPUNGE responses when not running a COPY(MOVE)_MESSAGE job */
+	if (!job) {
+		c (is->tagprefix, "ignoring untagged expunge: %lu\n", is->priv->context->id);
+		return TRUE;
+	}
+
 	c (is->tagprefix, "expunged: %lu\n", is->priv->context->id);
 
 	g_mutex_lock (&is->priv->select_lock);
@@ -5476,6 +5483,14 @@ imapx_job_copy_messages_start (CamelIMAP
 	return imapx_command_copy_messages_step_start (is, job, 0, error);
 }
 
+static gboolean
+imapx_job_copy_messages_matches (CamelIMAPXJob *job,
+				 CamelIMAPXMailbox *mailbox,
+				 const gchar *uid)
+{
+	return camel_imapx_job_has_mailbox (job, mailbox);
+}
+
 /* ********************************************************************** */
 
 static void
@@ -8518,6 +8533,7 @@ camel_imapx_server_copy_message (CamelIM
 	job->pri = IMAPX_PRIORITY_COPY_MESSAGE;
 	job->type = IMAPX_JOB_COPY_MESSAGE;
 	job->start = imapx_job_copy_messages_start;
+	job->matches = imapx_job_copy_messages_matches;
 
 	camel_imapx_job_set_mailbox (job, mailbox);