diff --git a/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java
index e31a2780e0..58e203ba61 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/GenericManaCost.java
@@ -68,7 +68,7 @@ public class GenericManaCost extends ManaCostImpl {
 
     @Override
     public void assignPayment(Game game, Ability ability, ManaPool pool, Cost costsToPay) {
-        this.assignColorless(ability, game, pool, mana, costsToPay);
+        this.assignGeneric(ability, game, pool, mana, costsToPay);
     }
 
     @Override
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java
index 9946a009b2..ac02b532ab 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/ManaCostImpl.java
@@ -151,7 +151,17 @@ public abstract class ManaCostImpl extends CostImpl implements ManaCost {
         return false;
     }
 
-    protected boolean assignColorless(Ability ability, Game game, ManaPool pool, int mana, Cost costToPay) {
+    protected void assignColorless(Ability ability, Game game, ManaPool pool, int mana, Cost costToPay) {
+        int conditionalCount = pool.getConditionalCount(ability, game, null, costToPay);
+        while (mana > payment.count() && (pool.count() > 0 || conditionalCount > 0)) {
+            if (pool.pay(ManaType.COLORLESS, ability, sourceFilter, game, costToPay)) {
+                this.payment.increaseColorless();
+            }
+            break;
+        }
+    }
+
+    protected boolean assignGeneric(Ability ability, Game game, ManaPool pool, int mana, Cost costToPay) {
         int conditionalCount = pool.getConditionalCount(ability, game, null, costToPay);
         while (mana > payment.count() && (pool.count() > 0 || conditionalCount > 0)) {
             if (pool.pay(ManaType.COLORLESS, ability, sourceFilter, game, costToPay)) {
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java
index edb39235e1..2e7b2a7a94 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/MonoHybridManaCost.java
@@ -71,7 +71,7 @@ public class MonoHybridManaCost extends ManaCostImpl {
     @Override
     public void assignPayment(Game game, Ability ability, ManaPool pool, Cost costToPay) {
         if (!assignColored(ability, game, pool, mana, costToPay)) {
-            assignColorless(ability, game, pool, mana2, costToPay);
+            assignGeneric(ability, game, pool, mana2, costToPay);
         }
     }
 
diff --git a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java
index 52383c43fa..b5e119a5fa 100644
--- a/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/mana/SnowManaCost.java
@@ -61,7 +61,7 @@ public class SnowManaCost extends ManaCostImpl {
 
     @Override
     public void assignPayment(Game game, Ability ability, ManaPool pool, Cost costToPay) {
-        this.assignColorless(ability, game, pool, 1, costToPay);
+        this.assignGeneric(ability, game, pool, 1, costToPay);
     }
 
     @Override