diff --git a/src/colour.c b/src/colour.c
index 7e53257..74d3a0c 100644
--- a/src/colour.c
+++ b/src/colour.c
@@ -38,9 +38,11 @@ glColour cNeutral       = { .r = 0.9, .g = 1.0, .b = 0.3, .a = 1. }; /**< Neutra
 glColour cFriend        = { .r = 0.0, .g = 1.0, .b = 0.0, .a = 1. }; /**< Friend object colour. */
 glColour cHostile       = { .r = 0.9, .g = 0.2, .b = 0.2, .a = 1. }; /**< Hostile object colour. */
 /* Radar */
-glColour cRadar_player  = { .r = 0.4, .g = 0.8, .b = 0.4, .a = 1. }; /**< Player colour on radar. */
-glColour cRadar_targ    = { .r = 0.0, .g = 0.7, .b = 1.0, .a = 1. }; /**< Targetted object colour.*/
-glColour cRadar_weap    = { .r = 0.8, .g = 0.2, .b = 0.2, .a = 1. }; /**< Weapon colour on radar. */
+glColour cRadar_player  = { .r = 0.4, .g = 0.8, .b = 0.4, .a = 1. }; /**<Player colour on radar. */
+glColour cRadar_tPilot  = { .r = 0.0, .g = 1.0, .b = 1.0, .a = 1. }; /**<Targetted object colour.*/
+glColour cRadar_tPlanet = { .r = 0.4, .g = 0.0, .b = 1.0, .a = 1. }; /**<Targetted planet colour.*/
+glColour cRadar_weap    = { .r = 0.8, .g = 0.2, .b = 0.2, .a = 1. }; /**< Weapon colour on radar.*/
+
 /* Bars. */
 glColour cShield        = { .r = 0.2, .g = 0.2, .b = 0.8, .a = 1. }; /**< Shield bar colour. */
 glColour cArmour        = { .r = 0.5, .g = 0.5, .b = 0.5, .a = 1. }; /**< Armour bar colour. */
diff --git a/src/colour.h b/src/colour.h
index bfdcdba..5f2ca31 100644
--- a/src/colour.h
+++ b/src/colour.h
@@ -49,7 +49,8 @@ extern glColour cFriend;
 extern glColour cHostile;
 /* Radar. */
 extern glColour cRadar_player;
-extern glColour cRadar_targ;
+extern glColour cRadar_tPilot;
+extern glColour cRadar_tPlanet;
 extern glColour cRadar_weap;
 /* Health. */
 extern glColour cShield;
diff --git a/src/map.c b/src/map.c
index 7e69723..5237486 100644
--- a/src/map.c
+++ b/src/map.c
@@ -8,6 +8,7 @@
 #include "space.h"
 #include "opengl.h"
 #include "mission.h"
+#include "colour.h"
 #include "map.h"
 
 #define MAP_WDWNAME     "Star Map"
@@ -329,8 +330,8 @@ static void map_render(double bx, double by, double w, double h) {
     /* Check to make sure system is known of adjacent to known (or marked). */
     if(!sys_isMarked(sys) && !space_sysReachable(sys)) continue;
 
-    /* System Colours. */
-    if(sys == cur_system) col = &cRadar_targ;
+    /* System colours. */
+    if(sys == cur_system) col = &cRadar_tPlanet;
     else if(!sys_isKnown(sys) || (sys->nplanets == 0)) col = &cInert;
     else col = faction_getColour(sys->faction);
     COLOUR(*col);
diff --git a/src/physics.h b/src/physics.h
index 5d557b5..403b244 100644
--- a/src/physics.h
+++ b/src/physics.h
@@ -8,7 +8,7 @@
 #define VANGLE(v)   ((v).angle)
 
 #define MOD(x,y)    (sqrt((x)*(x) + (y)*(y)))
-#define ANGLE(x,y)  (((x)==0.) ? 0. : atan2(y,x))
+#define ANGLE(x,y)  (atan2(y,x))
 
 #define vect_dist(v,u)  MOD((v)->x-(u)->x, (v)->y-(u)->y)
 #define vect_odist(v)   MOD((v)->x, (v)->y)
diff --git a/src/player.c b/src/player.c
index 8c79925..deb2bba 100644
--- a/src/player.c
+++ b/src/player.c
@@ -1186,7 +1186,7 @@ static void gui_renderPilot(const Pilot* p) {
         sx = 0.85 * x;
         sy = 0.85 * y;
 
-        COLOUR(cRadar_targ);
+        COLOUR(cRadar_tPilot);
         glBegin(GL_LINES);
           glVertex2d(x, y);
           glVertex2d(sx, sy);
@@ -1207,7 +1207,7 @@ static void gui_renderPilot(const Pilot* p) {
 
   glBegin(GL_QUADS);
     /* Colours. */
-    if(p->id == player->target) col = &cRadar_targ;
+    if(p->id == player->target) col = &cRadar_tPilot;
     else if(pilot_isDisabled(p)) col = &cInert;
     else if(pilot_isFlag(p, PILOT_BRIBED)) col = &cNeutral;
     else if(pilot_isFlag(p, PILOT_HOSTILE)) col = &cHostile;
diff --git a/src/space.c b/src/space.c
index 921e208..186ae91 100644
--- a/src/space.c
+++ b/src/space.c
@@ -78,6 +78,8 @@ static Star* stars = NULL;  /* Star array. */
 static int nstars = 0;      /* Total stars. */
 static int mstars = 0;      /* Memory stars are taking. */
 
+extern int planet_target;   /* player.c */
+
 /* Intern. */
 /* Planet load. */
 static int planet_parse(Planet* planet, const xmlNodePtr parent);
@@ -107,28 +109,60 @@ void planets_minimap(const double res, const double w,
   int i;
   int cx, cy, x, y, r, rc;
   double p;
+  double a, tx, ty;
   Planet* planet;
   glColour* col;
 
   if(shape == RADAR_CIRCLE) rc = (int)(w*w);
 
-  glBegin(GL_POINTS);
   for(i = 0; i < cur_system->nplanets; i++) {
     planet = cur_system->planets[i];
 
+    /* Get the colour. */
     col = faction_getColour(planet->faction);
-    if((col != &cHostile) && !planet_hasService(planet, PLANET_SERVICE_BASIC))
+    if(i == planet_target)
+      col = &cRadar_tPlanet;
+    else if((col != &cHostile) && !planet_hasService(planet, PLANET_SERVICE_BASIC))
       col = &cInert;  /* Override non-hostile planets without services. */
     COLOUR(*col);
 
+    /* Some parameters. */
     r = (int)(cur_system->planets[i]->gfx_space->sw / res);
     cx = (int)((cur_system->planets[i]->pos.x - player->solid->pos.x) / res);
     cy = (int)((cur_system->planets[i]->pos.y - player->solid->pos.y) / res);
 
+    /* Check if in range. */
+    if(shape == RADAR_RECT) {
+      /* Out of range. */
+      if((ABS(cx) - r> 2/2.) || (ABS(cy) - r > h/2.))
+        continue;
+    }
+    else if(shape == RADAR_CIRCLE) {
+      x = cx-r;
+      y = cy-r;
+      /* Out of range. */
+      if(x*x + y*y > rc) {
+        if(planet_target == i) {
+          /* Draw a line like the one for pilots. */
+          a = ANGLE(cx, cy);
+          tx = w*cos(a);
+          ty = w*sin(a);
+
+          COLOUR(cRadar_tPlanet);
+          glBegin(GL_LINES);
+            glVertex2d( tx, ty );
+            glVertex2d( 0.85*tx, 0.85*ty);
+          glEnd();
+        }
+        continue;
+      }
+    }
     x = 0;
     y = r;
     p = (5. - (double)(r*3)) / 4.;
 
+    glBegin(GL_POINTS);
+
     PIXEL(cx,   cy+y);
     PIXEL(cx,   cy-y);
     PIXEL(cx+y, cy);
@@ -162,8 +196,8 @@ void planets_minimap(const double res, const double w,
             PIXEL(cx-y, cy-x);
           }
     }
+    glEnd();
   }
-  glEnd();
 }
 #undef PIXEL