diff --git a/polymer/eduke32/build/src/engine.c b/polymer/eduke32/build/src/engine.c
index 3a4a61ea6..5d99cd437 100644
--- a/polymer/eduke32/build/src/engine.c
+++ b/polymer/eduke32/build/src/engine.c
@@ -8150,7 +8150,8 @@ static int32_t loadpalette(void)
 // Returns:
 //  - if generated fog shade tables, their first palnum P (fog pals are [P .. P+3])
 //  - if didn't (no room), 0
-//  - on error, -1
+//  - on error, -1 (didn't read enough data)
+//  - -2: error, we already wrote an error message ourselves
 int32_t loadlookups(int32_t fp, uint8_t **basepaltabptr)
 {
     uint8_t numlookups;
@@ -8167,10 +8168,10 @@ int32_t loadlookups(int32_t fp, uint8_t **basepaltabptr)
         if (kread(fp, &palnum, 1) != 1)
             return -1;
 
-        if (palnum == 0 || palnum >= 256-RESERVEDPALS)
+        if (palnum >= 256-RESERVEDPALS)
         {
             initprintf("ERROR: attempt to load lookup at reserved pal %d\n", palnum);
-            return -1;
+            return -2;
         }
 
         if (kread(fp, remapbuf, 256) != 256)
diff --git a/polymer/eduke32/source/astub.c b/polymer/eduke32/source/astub.c
index d5abe6108..418a4247c 100644
--- a/polymer/eduke32/source/astub.c
+++ b/polymer/eduke32/source/astub.c
@@ -2866,7 +2866,8 @@ static int32_t ReadPaletteTable(void)
 
     if (g_firstFogPal < 0)
     {
-        initprintf("ERROR loading PALOOKUP.DAT: failed reading enough data\n");
+        if (g_firstFogPal == -1)
+            initprintf("ERROR loading PALOOKUP.DAT: failed reading enough data\n");
         return 1;
     }
 
diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c
index 672d23db1..0c5a21945 100644
--- a/polymer/eduke32/source/game.c
+++ b/polymer/eduke32/source/game.c
@@ -10644,7 +10644,12 @@ static void G_LoadExtraPalettes(void)
     kclose(fp);
 
     if (g_firstFogPal < 0)
-        G_GameExit("\nERROR loading 'lookup.dat': failed reading enough data.");
+    {
+        if (g_firstFogPal == -1)
+            G_GameExit("\nERROR loading 'lookup.dat': failed reading enough data.");
+        else
+            G_GameExit("\nERROR loading 'lookup.dat'.");
+    }
 
     // Make color index 255 of default/water/slime palette black.
     Bmemset(&palette[255*3], 0, 3);