+static gint imap_remove_folder(Folder *folder, FolderItem *item)
+{
+ GNode *node, *next;
+
+ g_return_val_if_fail(item != NULL, -1);
+ g_return_val_if_fail(item->folder != NULL, -1);
+ g_return_val_if_fail(item->node != NULL, -1);
+ g_return_val_if_fail(item->no_select == FALSE, -1);
+
+ node = item->node->children;
+ while (node != NULL) {
+ next = node->next;
+ if (imap_remove_folder(folder, FOLDER_ITEM(node->data)) < 0)
+ return -1;
+ node = next;
+ }
+ debug_print("IMAP removing %s\n", item->path);
+
+ if (imap_remove_all_msg(folder, item) < 0)
+ return -1;
+ return imap_remove_folder_real(folder, item);
+}
+