                     }
                 }
                 
-                let sortedUpdatedIndexes = updatedIndexesSetInSortedAlbums.asArray().sorted(by: { $0.row < $1.row })
+                let sortedUpdatedIndexes = updatedIndexesSetInSortedAlbums.asArray(section: i).sorted(by: { $0.row < $1.row })
                 updatedAlbums.removeAll()
                 
                 for sortedUpdatedIndex in sortedUpdatedIndexes {
                     updatedAlbums.append(sortedAlbumsArray[i][sortedUpdatedIndex.row])
                 }
                 
-                DispatchQueue.main.async {
+                DispatchQueue.main.sync {
                     for subscriber in self.subscribers {
                         subscriber.assetsManager(manager: self, updatedAlbums: updatedAlbums, at: sortedUpdatedIndexes)
                     }

                }
                
                if let albumIndexPath = self.indexPath(forAlbum: album), isThumbnailChanged(changeDetails: assetsChangeDetails) {
                    DispatchQueue.main.async {
                        for subscriber in self.subscribers {
                            subscriber.assetsManager(manager: self, reloadedAlbum: album, at: albumIndexPath)
                        }

                        logc("Error on model manipulation logic. Failed to find insertes index in sortedAlbumsArray.")
                    }
                }
                DispatchQueue.main.sync {
                    for subscriber in self.subscribers {
                        subscriber.assetsManager(manager: self, insertedAlbums: insertedAlbums, at: insertedIndexesInSortedAlbums)
                    }
