diff --git a/src/player.c b/src/player.c
index 1c6a081..c8a1f8a 100644
--- a/src/player.c
+++ b/src/player.c
@@ -1065,7 +1065,8 @@ void player_land(void) {
     tp = -1; // Temp planet.
     for(i = 0; i < cur_system->nplanets; i++) {
       d = vect_dist(&player->solid->pos, &cur_system->planets[i].pos);
-      if((tp == -1) || ((td == -1) || (td > d))) {
+      if(planet_hasService(&cur_system->planets[i], PLANET_SERVICE_LAND) &&
+						((tp == -1) || ((td == -1) || (td > d)))) {
         tp = i;
         td = d;
       }