diff --git a/third_party/libopenjpeg20/jp2.c b/third_party/libopenjpeg20/jp2.c
index 47f83a1..6e910a9 100644
--- a/third_party/libopenjpeg20/jp2.c
+++ b/third_party/libopenjpeg20/jp2.c
@@ -902,7 +902,7 @@ static OPJ_BOOL opj_jp2_check_color(opj_image_t *image, opj_jp2_color_t *color,
 				opj_event_msg(p_manager, EVT_ERROR, "Invalid component/palette index for direct mapping %d.\n", pcol);
 				is_sane = OPJ_FALSE;
 			}
-			else if (pcol_usage[pcol] && cmap[i].mtyp == 1) {
+			else if (pcol_usage[pcol] && cmap[i].mtyp != 0) {
 				opj_event_msg(p_manager, EVT_ERROR, "Component %d is mapped twice.\n", pcol);
 				is_sane = OPJ_FALSE;
 			}
@@ -982,8 +982,8 @@ static void opj_jp2_apply_pclr(opj_image_t *image, opj_jp2_color_t *color)
       assert( pcol == 0 );
       new_comps[i] = old_comps[cmp];
     } else {
-      assert( i == pcol );
-      new_comps[pcol] = old_comps[cmp];
+      assert( i == pcol ); // probably wrong?
+      new_comps[i] = old_comps[cmp];
     }
 
 		/* Palette mapping: */
@@ -1007,11 +1007,11 @@ static void opj_jp2_apply_pclr(opj_image_t *image, opj_jp2_color_t *color)
 		cmp = cmap[i].cmp; pcol = cmap[i].pcol;
 		src = old_comps[cmp].data;
     assert( src );
-		max = new_comps[pcol].w * new_comps[pcol].h;
+		max = new_comps[i].w * new_comps[i].h;
 
 		/* Direct use: */
     if(cmap[i].mtyp == 0) {
-      assert( cmp == 0 );
+      assert( cmp == 0 ); // probably wrong.
       dst = new_comps[i].data;
       assert( dst );
       for(j = 0; j < max; ++j) {
@@ -1019,8 +1019,8 @@ static void opj_jp2_apply_pclr(opj_image_t *image, opj_jp2_color_t *color)
       }
     }
     else {
-      assert( i == pcol );
-      dst = new_comps[pcol].data;
+      assert( i == pcol ); // probably wrong?
+      dst = new_comps[i].data;
       assert( dst );
       for(j = 0; j < max; ++j) {
         /* The index */
