diff --git a/src/land.c b/src/land.c
index 5b02c8d..c0b403c 100644
--- a/src/land.c
+++ b/src/land.c
@@ -567,6 +567,13 @@ static void shipyard_open(void) {
 
   /* Setup the ships to buy/sell. */
   ships = ship_getTech(&nships, land_planet->tech, PLANET_TECH_MAX);
+
+  if(nships <= 0) {
+    ships = malloc(sizeof(char*));
+    ships[0] = strdup("None");
+    nships = 1;
+  }
+
   window_addList(secondary_wid, 20, 40,
                  200, SHIPYARD_HEIGHT-80, "lstShipyard",
                  ships, nships, 0, shipyard_update);
@@ -593,6 +600,23 @@ static void shipyard_update(char* str) {
   char buf[80], buf2[16], buf3[16];
 
   shipname = toolkit_getList(secondary_wid, "lstShipyard");
+
+  /* No ships. */
+  if(strcmp(shipname, "None")==0) {
+    window_modifyImage(secondary_wid, "imgTarget", NULL);
+    window_disableButton(secondary_wid, "btnBuyShip");
+    window_disableButton(secondary_wid, "btnInfoShip");
+    snprintf(buf, 80,
+        "None\n"
+        "NA\n"
+        "NA\n"
+        "\n"
+        "NA\n"
+        "NA\n");
+    window_modifyText(secondary_wid, "txtDDesc", buf);
+    return;
+  }
+
   ship = ship_get(shipname);
 
   if(player_nships()==0) window_disableButton(secondary_wid, "btnYourShips");