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);