diff --git a/src/player.c b/src/player.c
index 827d626..bfa7d65 100644
--- a/src/player.c
+++ b/src/player.c
@@ -250,6 +250,7 @@ void player_render(void) {
   Pilot* p;
   Vec2 v;
   glColour* c;
+  gl_font* f;
 
   // Render the player target graphics.
   if(player_target != PLAYER_ID) {
@@ -349,20 +350,34 @@ void player_render(void) {
     vect_csetmin(&v, VX(gui.pos_weapon) + (gui.weapon.w - i)/2., VY(gui.pos_weapon) - 10 - gl_defFont.h);
     gl_print(&gui.smallFont, &v, &cGrey, "None");
   } else {
+    f = &gl_defFont;
     if(player->ammo == NULL) {
-      i = gl_printWidth(&gui.smallFont, "%s", player->secondary->outfit->name);
+      i = gl_printWidth(f, "%s", player->secondary->outfit->name);
+      if(i > gui.weapon.w) {
+        // Font is too big.
+        f = &gui.smallFont;
+        i = gl_printWidth(f, "%s", player->secondary->outfit->name);
+      }
       vect_csetmin(&v, VX(gui.pos_weapon) + (gui.weapon.w - i)/2.,
-            VY(gui.pos_weapon) - (gui.weapon.h - gui.smallFont.h)/2.);
-      gl_print(&gui.smallFont, &v, &cConsole, "%s", player->secondary->outfit->name);
+            VY(gui.pos_weapon) - (gui.weapon.h - f->h)/2.);
+      gl_print(f, &v, &cConsole, "%s", player->secondary->outfit->name);
     } else {
-      i = gl_printWidth(&gui.smallFont, "%s", player->secondary->outfit->name);
+      // Use the ammunitions name.
+      i = gl_printWidth(f, "%s", player->secondary->outfit->name);
+      if(i > gui.weapon.w) {
+        // Font is too big.
+        f = &gui.smallFont;
+        i = gl_printWidth(f, "%s", player->ammo->outfit->name);
+      }
       vect_csetmin(&v, VX(gui.pos_weapon) + (gui.weapon.w - i)/2.,
             VY(gui.pos_weapon) - 5);
-      gl_print(&gui.smallFont, &v, NULL, "%s", player->ammo->outfit->name);
-      i = gl_printWidth(NULL, "%d", player->ammo->quantity);
+      gl_print(f, &v, NULL, "%s", player->ammo->outfit->name);
+
+      // Print ammo underneath to the left.
+      i = gl_printWidth(&gui.smallFont, "%d", player->ammo->quantity);
       vect_csetmin(&v, VX(gui.pos_weapon) + (gui.weapon.w - i)/2.,
             VY(gui.pos_weapon) - 10 - gl_defFont.h);
-      gl_print(NULL, &v, &cConsole, "%d", player->ammo->quantity);
+      gl_print(&gui.smallFont, &v, &cConsole, "%d", player->ammo->quantity);
     }
   }