Index: frmts/nitf/nitfimage.c
===================================================================
--- frmts/nitf/nitfimage.c	(révision 11896)
+++ frmts/nitf/nitfimage.c	(copie de travail)
@@ -728,6 +728,21 @@
         }
     }
 
+    /* Add a transparent color if they are none. Absent subblocks will be then transparent */
+    if (psImage->bNoDataSet == FALSE && psImage->nBands == 1 && psImage->nBitsPerSample == 8)
+    {
+      NITFBandInfo *psBandInfo = psImage->pasBandInfo;
+      if (psBandInfo->nSignificantLUTEntries < 256-1)
+      {
+        psBandInfo->pabyLUT[0+psBandInfo->nSignificantLUTEntries] = 0;
+        psBandInfo->pabyLUT[256+psBandInfo->nSignificantLUTEntries] = 0;
+        psBandInfo->pabyLUT[512+psBandInfo->nSignificantLUTEntries] = 0;
+        psImage->bNoDataSet = TRUE;
+        psImage->nNoDataValue = psBandInfo->nSignificantLUTEntries;
+        psBandInfo->nSignificantLUTEntries ++;
+      }
+    }
+
 /* -------------------------------------------------------------------- */
 /*  We override the coordinates found in IGEOLO in case a BLOCKA is     */
 /*  present. According to the BLOCKA specification, it repeats earth    */
Index: frmts/nitf/nitfdataset.cpp
===================================================================
--- frmts/nitf/nitfdataset.cpp	(révision 11896)
+++ frmts/nitf/nitfdataset.cpp	(copie de travail)
@@ -239,7 +239,7 @@
             sEntry.c1 = psBandInfo->pabyLUT[  0 + iColor];
             sEntry.c2 = psBandInfo->pabyLUT[256 + iColor];
             sEntry.c3 = psBandInfo->pabyLUT[512 + iColor];
-            sEntry.c4 = 255;
+            sEntry.c4 = (psImage->bNoDataSet && psImage->nNoDataValue == iColor) ? 0 : 255;
 
             poColorTable->SetColorEntry( iColor, &sEntry );
         }

