diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 3987c02..658a3e2 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -2331,6 +2331,22 @@
                     return;
                 }
 
+                // Remove any empty folder
+                LongArrayMap<FolderInfo> emptyFolders = sBgFolders.clone();
+                for (ItemInfo item: sBgItemsIdMap) {
+                    long container = item.container;
+                    if (emptyFolders.containsKey(container)) {
+                        emptyFolders.remove(container);
+                    }
+                }
+                for (FolderInfo folder : emptyFolders) {
+                    long folderId = folder.id;
+                    sBgFolders.remove(folderId);
+                    sBgItemsIdMap.remove(folderId);
+                    sBgWorkspaceItems.remove(folder);
+                    itemsToRemove.add(folderId);
+                }
+
                 if (itemsToRemove.size() > 0) {
                     ContentProviderClient client = contentResolver.acquireContentProviderClient(
                             contentUri);
