diff --git a/metis_l1_prep.pro b/metis_l1_prep.pro
index 85a7191bd346025692bb8293bee3cd596ebe2515..367201950e1c04804714d2ed0b0179f7443f9968 100755
--- a/metis_l1_prep.pro
+++ b/metis_l1_prep.pro
@@ -151,15 +151,33 @@ pro metis_l1_prep
 
 	; join the metadata extension header to the primary header removing useless keywords
 
-	i = where(strmid(primary_header, 0, 8) eq 'COMP_RAT')
-	j = where(strmid(metadata_extension_header, 0, 8) eq 'EXTNAME ')
-	k = where(strmid(metadata_extension_header, 0, 8) eq 'TFORM1  ')
+	del_tags = list( $
+		'XTENSION', $
+		'BITPIX', $
+		'NAXIS', $
+		'NAXIS1', $
+		'NAXIS2', $
+		'PCOUNT', $
+		'GCOUNT', $
+		'TFIELDS', $
+		'TTYPE1', $
+		'TFORM1', $
+		'TTYPE2', $
+		'TFORM2', $
+		'EXTNAME', $
+		'CHECKSUM', $
+		'DATASUM', $
+		'END' $
+	)
 
-	primary_header = [ $
-		primary_header[0 : i], $
-		metadata_extension_header[j + 1 : k - 1], $
-		primary_header[i + 1: *] $
-	]
+	foreach item, metadata_extension_header do begin
+		tag = strmid(item, 0, 8)
+		tag = tag.trim()
+		if ~ isa(del_tags.where(tag)) then begin
+			value = fxpar(metadata_extension_header, tag, comment = comment)
+			fxaddpar, primary_header, tag, value, comment, before = 'CHECKSUM'
+		endif
+	endforeach
 
 	; rebin the image if binning was applied during the acquisition and check for the data quality
 	; NOTE - this is done only for image data products
@@ -285,8 +303,8 @@ pro metis_l1_prep
 	fxaddpar, primary_header, 'BSCALE', 1, 'Ratio of physical to array value at 0 offset', before = 'DATAMIN'
 	fxaddpar, primary_header, 'BZERO', 0, 'Physical value for the array value 0', before = 'DATAMIN'
 	fxaddpar, primary_header, 'BTYPE', metis_datatype[datatype], 'Science data object type', before = 'DATAMIN'
-	fxaddpar, primary_header, 'BUNIT', 'DN', 'Units of physical value, after application of BSCALE and BZERO', before = 'DATAMIN'
-	fxaddpar, primary_header, 'BLANK', 0
+	fxaddpar, primary_header, 'BUNIT', 'DN', 'Units of physical value', before = 'DATAMIN'
+	fxaddpar, primary_header, 'BLANK', 0, 'Data value used to mark undefined pixels', after = 'BUNIT'
 	fxaddpar, primary_header, 'DATAMIN', min(data, /nan)
 	fxaddpar, primary_header, 'DATAMAX', max(data, /nan)
 	fxaddpar, primary_header, 'IDB_VERS', input.idb_version, '', before = 'HDR_VERS'