diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AshlingThePilgrimTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AshlingThePilgrimTest.java
index ba25535c3a..7dfb3c0c5c 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AshlingThePilgrimTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/lrw/AshlingThePilgrimTest.java
@@ -1,5 +1,7 @@
 package org.mage.test.cards.single.lrw;
 
+import mage.abilities.keyword.TrampleAbility;
+import mage.constants.ManaType;
 import mage.constants.PhaseStep;
 import mage.constants.Zone;
 import mage.counters.CounterType;
@@ -15,6 +17,11 @@ public class AshlingThePilgrimTest extends CardTestPlayerBase {
     private static final String ashling = "Ashling the Pilgrim";
     private static final String ashAbility = "{1}{R}: ";
     private static final String cshift = "Cloudshift";
+    private static final String slbrt = "Soulbright Flamekin";
+    private static final String slbrtAbility = "{2}: ";
+    private static final String sqlch = "Squelch";
+    private static final String crps = "Walking Corpse";
+    private static final String mrdr = "Murder";
 
     @Test
     public void testAshling() {
@@ -115,4 +122,89 @@ public class AshlingThePilgrimTest extends CardTestPlayerBase {
         assertPermanentCount(playerA, ashling, 0);
         assertLife(playerA, 17);
     }
+
+    @Test
+    public void testAshlingExtraActivations() {
+        addCard(Zone.BATTLEFIELD, playerA, "Mountain", 10);
+        addCard(Zone.BATTLEFIELD, playerA, ashling);
+
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+
+        setStopAt(1, PhaseStep.END_TURN);
+        execute();
+
+        assertAllCommandsUsed();
+        assertPermanentCount(playerA, ashling, 0);
+        assertLife(playerA, 17);
+    }
+
+    @Test
+    public void testAshlingSoulbright() {
+        addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6);
+        addCard(Zone.BATTLEFIELD, playerA, ashling);
+        addCard(Zone.BATTLEFIELD, playerA, slbrt);
+
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, slbrtAbility, ashling);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, slbrtAbility, ashling);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, slbrtAbility, ashling);
+        waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+
+        setStopAt(1, PhaseStep.END_TURN);
+        execute();
+
+        assertAllCommandsUsed();
+        assertPermanentCount(playerA, ashling, 0);
+        assertPermanentCount(playerA, slbrt, 0);
+        assertLife(playerA, 17);
+    }
+
+    @Test
+    public void testAshlingStifle() {
+        addCard(Zone.BATTLEFIELD, playerA, "Volcanic Island", 8);
+        addCard(Zone.BATTLEFIELD, playerA, ashling);
+        addCard(Zone.HAND, playerA, sqlch);
+
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, ashAbility);
+        castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, sqlch);
+        activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, ashAbility);
+
+        setStopAt(1, PhaseStep.END_TURN);
+        execute();
+
+        assertAllCommandsUsed();
+        assertPermanentCount(playerA, ashling, 1);
+        assertCounterCount(playerA, ashling, CounterType.P1P1, 2);
+        assertLife(playerA, 20);
+    }
+
+    @Test
+    public void testSoulbrightFizzle() {
+        addCard(Zone.BATTLEFIELD, playerA, "Badlands", 9);
+        addCard(Zone.BATTLEFIELD, playerA, "Upwelling");
+        addCard(Zone.BATTLEFIELD, playerA, crps);
+        addCard(Zone.BATTLEFIELD, playerA, slbrt);
+        addCard(Zone.HAND, playerA, mrdr);
+
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, slbrtAbility, crps);
+        castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, mrdr, crps);
+        waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, slbrtAbility, slbrt);
+        activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, slbrtAbility, slbrt);
+        waitStackResolved(1, PhaseStep.PRECOMBAT_MAIN);
+
+        setStopAt(1, PhaseStep.PRECOMBAT_MAIN);
+        execute();
+
+        assertAllCommandsUsed();
+        assertManaPool(playerA, ManaType.RED, 0);
+        assertAbility(playerA, slbrt, TrampleAbility.getInstance(), true);
+    }
 }