diff --git a/src/land.c b/src/land.c
index 384d5bf..a2d2d52 100644
--- a/src/land.c
+++ b/src/land.c
@@ -1111,17 +1111,18 @@ static void misn_genList(unsigned int wid, int first) {
     window_destroyWidget(wid, "lstMission");
 
   /* List. */
+  j = 1; /* Make sure we don't accidently free the memory twise. */
   if(mission_ncomputer > 0) {
     /* there are missions. */
     misn_names = malloc(sizeof(char*) * mission_ncomputer);
     j = 0;
     for(i = 0; i < mission_ncomputer; i++)
-      if(mission_computer[i].title)
+      if(mission_computer[i].title != NULL)
         misn_names[j++] = strdup(mission_computer[i].title);
-  } 
-  if((mission_ncomputer == 0) || (j == 0)) {
-    /* No missions. */
-    if(j == 0) free(misn_names);
+  }
+  if((mission_ncomputer==0) || (j == 0)) { /* No missions. */
+    if(j == 0)
+      free(misn_names);
     misn_names = malloc(sizeof(char*));
     misn_names[0] = strdup("No Missions");
   }