diff --git a/Assets/Scripts/InventoryStuff/ScrollDetails.cs b/Assets/Scripts/InventoryStuff/ScrollDetails.cs
index 7547bc9823afb1ace44ebd58f0aba70eeef69860..d9ae92cb9bfe4b2a1539d0e4f4e47e6279e7c137 100644
--- a/Assets/Scripts/InventoryStuff/ScrollDetails.cs
+++ b/Assets/Scripts/InventoryStuff/ScrollDetails.cs
@@ -41,6 +41,7 @@ public static ScrollDetails Instance
     public bool AutomaticHintGenerationActive = true;
 
     private bool DynamicScrollDone = true;
+    private bool DynamicScrollInQue = false;
 
     void Awake()
     {
@@ -152,7 +153,7 @@ public void MagicButtonTrigger()
 
         IEnumerator _MagicButton()
         {
-            while (!DynamicScrollDone)
+            while (!DynamicScrollDone || DynamicScrollInQue)
                 yield return null; // Wait for last assignment
 
             DynamicScrollDone = false;
@@ -190,8 +191,13 @@ public void NewAssignmentTrigger()
 
         IEnumerator _NewAssignment()
         {
+            if(DynamicScrollInQue)
+                yield break; // only need next in que to finish
+
+            DynamicScrollInQue = true;
             while (!DynamicScrollDone)
                 yield return null; // if we dont wait => server will crash
+            DynamicScrollInQue = false;
 
             DynamicScrollDone = false;
             yield return SendView("/scroll/dynamic");