diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java
index 20c792cc3..569cc2ea2 100644
--- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java
+++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/CellSelector.java
@@ -83,8 +83,19 @@ public class CellSelector extends ScrollArea {
 			
 			PointF p = Camera.main.screenToCamera( (int) event.current.x, (int) event.current.y );
 
-			//Prioritizes a mob sprite if it and a tile overlap, so long as the mob sprite isn't more than 4 pixels into a tile the mob doesn't occupy.
-			//The extra check prevents large mobs from blocking the player from clicking adjacent tiles
+			//Prioritizes a sprite if it and a tile overlap, so long as that sprite isn't more than 4 pixels into another tile.
+			//The extra check prevents large sprites from blocking the player from clicking adjacent tiles
+
+			//hero first
+			if (Dungeon.hero.sprite != null && Dungeon.hero.sprite.overlapsPoint( p.x, p.y )){
+				PointF c = DungeonTilemap.tileCenterToWorld(Dungeon.hero.pos);
+				if (Math.abs(p.x - c.x) <= 12 && Math.abs(p.y - c.y) <= 12) {
+					select(Dungeon.hero.pos);
+					return;
+				}
+			}
+
+			//then mobs
 			for (Char mob : Dungeon.level.mobs.toArray(new Mob[0])){
 				if (mob.sprite != null && mob.sprite.overlapsPoint( p.x, p.y )){
 					PointF c = DungeonTilemap.tileCenterToWorld(mob.pos);
@@ -95,7 +106,7 @@ public class CellSelector extends ScrollArea {
 				}
 			}
 
-			//Does the same but for heaps
+			//then heaps
 			for (Heap heap : Dungeon.level.heaps.valueList()){
 				if (heap.sprite != null && heap.sprite.overlapsPoint( p.x, p.y)){
 					PointF c = DungeonTilemap.tileCenterToWorld(heap.pos);