diff --git a/app/src/main/java/de/kuschku/libquassel/client/QClient.java b/app/src/main/java/de/kuschku/libquassel/client/QClient.java
index c97a4a042250a6a12e4e13ec29ad258bad3f1eaf..32949f18e88a3a239fafe826bc60a7a6fe03c492 100644
--- a/app/src/main/java/de/kuschku/libquassel/client/QClient.java
+++ b/app/src/main/java/de/kuschku/libquassel/client/QClient.java
@@ -80,7 +80,7 @@ public class QClient extends AClient {
     private final NotificationManager notificationManager;
     private final List<String> initRequests = new LinkedList<>();
     private final List<Integer> backlogRequests = new LinkedList<>();
-    private final Map<String, SyncFunction> bufferedSyncs = new HashMap<>();
+    private final Map<String, List<SyncFunction>> bufferedSyncs = new HashMap<>();
     private final QBacklogManager backlogManager;
     private QBufferViewManager bufferViewManager;
     // local
@@ -347,7 +347,10 @@ public class QClient extends AClient {
         if (bufferedSyncs.size() > 0) {
             String key = hashName(className, objectName);
             if (bufferedSyncs.containsKey(key)) {
-                provider.handle(bufferedSyncs.get(key));
+                List<SyncFunction> functions = bufferedSyncs.get(key);
+                for (SyncFunction function : functions)
+                    provider.handle(function);
+                bufferedSyncs.remove(key);
             }
         }
     }
@@ -429,6 +432,8 @@ public class QClient extends AClient {
 
     public void bufferSync(@NonNull SyncFunction packedFunc) {
         String key = hashName(packedFunc.className, packedFunc.objectName);
-        bufferedSyncs.put(key, packedFunc);
+        if (!bufferedSyncs.containsKey(key))
+            bufferedSyncs.put(key, new LinkedList<>());
+        bufferedSyncs.get(key).add(packedFunc);
     }
 }