diff --git a/calendar/libecal/e-cal.c b/calendar/libecal/e-cal.c
index 94ed245..d108828 100644
--- a/calendar/libecal/e-cal.c
+++ b/calendar/libecal/e-cal.c
@@ -726,7 +726,7 @@ async_report_idle (ECal *ecal,
 	data->ecal = g_object_ref (ecal);
 	data->error = error;
 
-	g_idle_add (idle_async_error_reply_cb, data);
+	g_idle_add_full (G_PRIORITY_DEFAULT, idle_async_error_reply_cb, data, NULL);
 }
 
 /**
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index ad3bec2..3464d0a 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -2887,7 +2887,7 @@ camel_folder_search_free (CamelFolder *folder,
  * Marks @folder as deleted and performs any required cleanup.
  *
  * This also emits the #CamelFolder::deleted signal from an idle source on
- * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  **/
 void
 camel_folder_delete (CamelFolder *folder)
@@ -2928,7 +2928,7 @@ camel_folder_delete (CamelFolder *folder)
 	signal_data->folder = g_object_ref (folder);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		folder_emit_deleted_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
@@ -2941,7 +2941,7 @@ camel_folder_delete (CamelFolder *folder)
  * Marks @folder as renamed.
  *
  * This also emits the #CamelFolder::renamed signal from an idle source on
- * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * NOTE: This is an internal function used by camel stores, no locking
  * is performed on the folder.
@@ -2978,7 +2978,7 @@ camel_folder_rename (CamelFolder *folder,
 	signal_data->folder_name = old_name;  /* transfer ownership */
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		folder_emit_renamed_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
diff --git a/camel/camel-imapx-server.c b/camel/camel-imapx-server.c
index d106189..26544aa 100644
--- a/camel/camel-imapx-server.c
+++ b/camel/camel-imapx-server.c
@@ -6903,7 +6903,7 @@ imapx_server_dispose (GObject *object)
 
 	if (server->parser_thread) {
 		if (server->parser_thread == g_thread_self ())
-			g_idle_add (&join_helper, server->parser_thread);
+			g_idle_add_full (G_PRIORITY_HIGH, &join_helper, server->parser_thread, NULL);
 		else
 			g_thread_join (server->parser_thread);
 		server->parser_thread = NULL;
diff --git a/camel/camel-operation.c b/camel/camel-operation.c
index 8646627..b396200 100644
--- a/camel/camel-operation.c
+++ b/camel/camel-operation.c
@@ -275,7 +275,7 @@ camel_operation_push_message (GCancellable *cancellable,
 
 	if (g_queue_is_empty (&operation->priv->status_stack))
 		node->source_id = g_idle_add_full (
-			G_PRIORITY_DEFAULT_IDLE,
+			G_PRIORITY_DEFAULT,
 			(GSourceFunc) operation_emit_status_cb,
 			status_node_ref (node),
 			(GDestroyNotify) status_node_unref);
diff --git a/camel/camel-service.c b/camel/camel-service.c
index 3250b6a..5cf9e92 100644
--- a/camel/camel-service.c
+++ b/camel/camel-service.c
@@ -409,7 +409,7 @@ service_queue_notify_connection_status (CamelService *service)
 	session = camel_service_get_session (service);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		service_notify_connection_status_cb,
 		g_object_ref (service),
 		(GDestroyNotify) g_object_unref);
diff --git a/camel/camel-session.c b/camel/camel-session.c
index ffbf661..df6f254 100644
--- a/camel/camel-session.c
+++ b/camel/camel-session.c
@@ -53,7 +53,7 @@
 	(G_TYPE_INSTANCE_GET_PRIVATE \
 	((obj), CAMEL_TYPE_SESSION, CamelSessionPrivate))
 
-#define JOB_PRIORITY G_PRIORITY_LOW
+#define JOB_PRIORITY G_PRIORITY_DEFAULT
 
 #define d(x)
 
diff --git a/camel/camel-store.c b/camel/camel-store.c
index 2051162..b81c372 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -1257,7 +1257,7 @@ G_DEFINE_QUARK (camel-store-error-quark, camel_store_error)
  * @folder_info: information about the created folder
  *
  * Emits the #CamelStore::folder-created signal from an idle source on
- * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * This function is only intended for Camel providers.
  *
@@ -1280,7 +1280,7 @@ camel_store_folder_created (CamelStore *store,
 	signal_data->folder_info = camel_folder_info_clone (folder_info);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		store_emit_folder_created_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
@@ -1291,7 +1291,7 @@ camel_store_folder_created (CamelStore *store,
  * @folder_info: information about the deleted folder
  *
  * Emits the #CamelStore::folder-deleted signal from an idle source on
- * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * This function is only intended for Camel providers.
  *
@@ -1314,7 +1314,7 @@ camel_store_folder_deleted (CamelStore *store,
 	signal_data->folder_info = camel_folder_info_clone (folder_info);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		store_emit_folder_deleted_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
@@ -1325,7 +1325,7 @@ camel_store_folder_deleted (CamelStore *store,
  * @folder: the #CamelFolder that was opened
  *
  * Emits the #CamelStore::folder-opened signal from an idle source on
- * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * This function is only intended for Camel providers.
  *
@@ -1348,7 +1348,7 @@ camel_store_folder_opened (CamelStore *store,
 	signal_data->folder = g_object_ref (folder);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		store_emit_folder_opened_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
@@ -1360,7 +1360,7 @@ camel_store_folder_opened (CamelStore *store,
  * @folder_info: information about the renamed folder
  *
  * Emits the #CamelStore::folder-renamed signal from an idle source on
- * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * This function is only intended for Camel providers.
  *
@@ -1386,7 +1386,7 @@ camel_store_folder_renamed (CamelStore *store,
 	signal_data->folder_name = g_strdup (old_name);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		store_emit_folder_renamed_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
diff --git a/camel/camel-subscribable.c b/camel/camel-subscribable.c
index ceb18d0..b73395e 100644
--- a/camel/camel-subscribable.c
+++ b/camel/camel-subscribable.c
@@ -611,7 +611,7 @@ camel_subscribable_unsubscribe_folder_finish (CamelSubscribable *subscribable,
  * @folder_info: information about the subscribed folder
  *
  * Emits the #CamelSubscribable::folder-subscribed signal from an idle source
- * on the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * on the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * This function is only intended for Camel providers.
  *
@@ -636,7 +636,7 @@ camel_subscribable_folder_subscribed (CamelSubscribable *subscribable,
 	signal_data->folder_info = camel_folder_info_clone (folder_info);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		subscribable_emit_folder_subscribed_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
@@ -647,7 +647,7 @@ camel_subscribable_folder_subscribed (CamelSubscribable *subscribable,
  * @folder_info: information about the unsubscribed folder
  *
  * Emits the #CamelSubscribable::folder-unsubscribed signal from an idle source
- * on the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT_IDLE.
+ * on the main loop.  The idle source's priority is #G_PRIORITY_DEFAULT.
  *
  * This function is only intended for Camel providers.
  *
@@ -672,7 +672,7 @@ camel_subscribable_folder_unsubscribed (CamelSubscribable *subscribable,
 	signal_data->folder_info = camel_folder_info_clone (folder_info);
 
 	camel_session_idle_add (
-		session, G_PRIORITY_DEFAULT_IDLE,
+		session, G_PRIORITY_DEFAULT,
 		subscribable_emit_folder_unsubscribed_cb,
 		signal_data, (GDestroyNotify) signal_data_free);
 }
diff --git a/libedataserver/e-gdbus-templates.c b/libedataserver/e-gdbus-templates.c
index ef3e476..5d99703 100644
--- a/libedataserver/e-gdbus-templates.c
+++ b/libedataserver/e-gdbus-templates.c
@@ -1015,7 +1015,7 @@ e_gdbus_op_cancelled_cb (GCancellable *cancellable,
 
 	/* do this on idle, because this callback should be left
 	 * as soon as possible, with no sync calls being done */
-	op_data->cancel_idle_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, e_gdbus_op_cancelled_idle_cb, cd, cancel_data_free);
+	op_data->cancel_idle_id = g_idle_add_full (G_PRIORITY_DEFAULT, e_gdbus_op_cancelled_idle_cb, cd, cancel_data_free);
 }
 
 static void
