diff --git a/Mage.Sets/src/mage/sets/planarchaos/DustElemental.java b/Mage.Sets/src/mage/sets/planarchaos/DustElemental.java
index 34035273a9..2e910edd37 100644
--- a/Mage.Sets/src/mage/sets/planarchaos/DustElemental.java
+++ b/Mage.Sets/src/mage/sets/planarchaos/DustElemental.java
@@ -29,7 +29,6 @@ package mage.sets.planarchaos;
 
 import java.util.UUID;
 import mage.MageInt;
-import mage.abilities.Ability;
 import mage.abilities.common.EntersBattlefieldTriggeredAbility;
 import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect;
 import mage.abilities.keyword.FlashAbility;
@@ -38,12 +37,7 @@ import mage.abilities.keyword.FearAbility;
 import mage.cards.CardImpl;
 import mage.constants.CardType;
 import mage.constants.Rarity;
-import mage.constants.Zone;
 import mage.filter.common.FilterControlledCreaturePermanent;
-import mage.game.Game;
-import mage.game.permanent.Permanent;
-import mage.players.Player;
-import mage.target.common.TargetControlledPermanent;
 
 /**
  *
@@ -65,8 +59,9 @@ public class DustElemental extends CardImpl {
         // Flying; fear
         this.addAbility(FlyingAbility.getInstance());
         this.addAbility(FearAbility.getInstance());
+        
         // When Dust Elemental enters the battlefield, return three creatures you control to their owner's hand.
-        this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter,1,3)));
+        this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(filter, 3)));
     }
 
     public DustElemental(final DustElemental card) {
diff --git a/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java b/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java
index e2415496f2..e9804d375c 100644
--- a/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java
+++ b/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java
@@ -68,7 +68,7 @@ public class StormfrontRiders extends CardImpl {
         // Flying
         this.addAbility(FlyingAbility.getInstance());
         // When Stormfront Riders enters the battlefield, return two creatures you control to their owner's hand.
-        this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(new FilterControlledCreaturePermanent("creatures you control"),1,2)));
+        this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(new FilterControlledCreaturePermanent("creatures you control"), 2)));
         // Whenever Stormfront Riders or another creature is returned to your hand from the battlefield, put a 1/1 white Soldier creature token onto the battlefield.
         this.addAbility(new ZoneChangeAllTriggeredAbility(Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.HAND, new CreateTokenEffect(new SoldierToken()),
                 filter,"Whenever {this} or another creature is returned to your hand from the battlefield, ", false));
diff --git a/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java b/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java
index a5aabf6310..e5cf0b2943 100644
--- a/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java
+++ b/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java
@@ -27,14 +27,13 @@
  */
 package mage.abilities.effects.common;
 
-import java.util.UUID;
 import mage.abilities.Ability;
 import mage.abilities.effects.OneShotEffect;
+import mage.cards.CardsImpl;
 import mage.constants.Outcome;
 import mage.constants.Zone;
 import mage.filter.common.FilterControlledPermanent;
 import mage.game.Game;
-import mage.game.permanent.Permanent;
 import mage.players.Player;
 import mage.target.common.TargetControlledPermanent;
 import mage.util.CardUtil;
@@ -44,27 +43,18 @@ import mage.util.CardUtil;
  * @author Plopmans
  */
 public class ReturnToHandChosenControlledPermanentEffect extends OneShotEffect {
-    
+
     private final FilterControlledPermanent filter;
     private int number;
-    private int minNumber;
-    
+
     public ReturnToHandChosenControlledPermanentEffect(FilterControlledPermanent filter) {
         this(filter, 1);
     }
+
     public ReturnToHandChosenControlledPermanentEffect(FilterControlledPermanent filter, int number) {
         super(Outcome.ReturnToHand);
         this.filter = filter;
         this.number = number;
-        this.minNumber = number;
-        this.staticText = getText();
-    }
-    
-        public ReturnToHandChosenControlledPermanentEffect(FilterControlledPermanent filter, int minNumber, int maxNumber) {
-        super(Outcome.ReturnToHand);
-        this.filter = filter;
-        this.number = maxNumber;
-        this.minNumber = minNumber;
         this.staticText = getText();
     }
 
@@ -72,10 +62,7 @@ public class ReturnToHandChosenControlledPermanentEffect extends OneShotEffect {
         super(effect);
         this.filter = effect.filter;
         this.number = effect.number;
-        this.minNumber = this.minNumber;
     }
-    
-
 
     @Override
     public ReturnToHandChosenControlledPermanentEffect copy() {
@@ -84,15 +71,13 @@ public class ReturnToHandChosenControlledPermanentEffect extends OneShotEffect {
 
     @Override
     public boolean apply(Game game, Ability source) {
-        Player player = game.getPlayer(source.getControllerId());
-        if (player != null) {
-            TargetControlledPermanent target = new TargetControlledPermanent(minNumber, number, filter, true);
-            if (player.choose(this.outcome, target, source.getSourceId(), game)) {
-                for (UUID targetCreatureId : target.getTargets()) {
-                    Permanent permanent = game.getPermanent(targetCreatureId);
-                    if (permanent != null) {
-                        player.moveCardToHandWithInfo(permanent, source.getSourceId(), game, Zone.BATTLEFIELD);
-                    }
+        Player controller = game.getPlayer(source.getControllerId());
+        if (controller != null) {
+            int available = game.getBattlefield().count(filter, source.getSourceId(), source.getControllerId(), game);
+            if (available > 0) {
+                TargetControlledPermanent target = new TargetControlledPermanent(Math.min(number, available), number, filter, true);
+                if (controller.chooseTarget(this.outcome, target, source, game)) {
+                    controller.moveCards(new CardsImpl(target.getTargets()), Zone.BATTLEFIELD, Zone.HAND, source, game);
                 }
             }
             return true;