diff --git a/lib/modules/Standards.pmod/EXIF.pmod b/lib/modules/Standards.pmod/EXIF.pmod
index 2b2f368dde64f86437c808e2bf2c0741dc9b567f..82ddf86330f639056773ac4b4a959d052f59d84b 100644
--- a/lib/modules/Standards.pmod/EXIF.pmod
+++ b/lib/modules/Standards.pmod/EXIF.pmod
@@ -3,7 +3,7 @@
 //! This module implements EXIF (Exchangeable image file format for
 //! Digital Still Cameras) 2.2 parsing.
 
-// $Id: EXIF.pmod,v 1.17 2003/04/14 13:06:48 nilsson Exp $
+// $Id: EXIF.pmod,v 1.18 2003/04/14 13:39:19 nilsson Exp $
 //  Johan Sch�n <js@roxen.com>, July 2001.
 //  Based on Exiftool by Robert F. Tobler <rft@cg.tuwien.ac.at>.
 //
@@ -258,11 +258,11 @@ static mapping CANON_D30_MAKERNOTE = ([
   0x0002:       ({"MN_Multi1",                  "CUSTOM", canon_multi1 }),
   0x0004:       ({"MN_Multi3",                  "CUSTOM", canon_multi3 }),
   0x0005:       ({"MN_Multi4",                  "CUSTOM", canon_multi4 }),
-  0x0006:	({"MN_ImageType",	    	0, ([]) }),
-  0x0007:	({"MN_FirmwareVersion",         0, ([]) }),
-  0x0008:	({"MN_ImageNumber", 	    	0, ([]) }),
-  0x0009:	({"MN_OwnerName", 	    	0, ([]) }),
-  0x000C:	({"MN_CameraSerialNumber",  	0, ([]) }),
+  0x0006:	({"MN_ImageType",	    	}),
+  0x0007:	({"MN_FirmwareVersion",         }),
+  0x0008:	({"MN_ImageNumber", 	    	}),
+  0x0009:	({"MN_OwnerName", 	    	}),
+  0x000C:	({"MN_CameraSerialNumber",  	}),
   //  0x000F:       ({"MN_CustomFunctions",         "CUSTOM", canon_custom }),
 ]);
 
@@ -276,20 +276,20 @@ static mapping nikon_iso(array(int) data) {
 
 // NIKON 990, D1 (more?)
 static mapping NIKON_990_MAKERNOTE = ([
-  0x0001:	({"MN_0x0001",	    	    	0, ([]) }),
+  0x0001:	({"MN_0x0001",	    	    	}),
   0x0002:	({"MN_ISOSetting",   	    	"CUSTOM", nikon_iso }),
-  0x0003:	({"MN_ColorMode",    	    	0, ([]) }),
-  0x0004:	({"MN_Quality",	    	    	0, ([]) }),
-  0x0005:	({"MN_Whitebalance", 	    	0, ([]) }),
-  0x0006:	({"MN_ImageSharpening",	    	0, ([]) }),
-  0x0007:	({"MN_FocusMode",    	    	0, ([]) }),
-  0x0008:	({"MN_FlashSetting", 	    	0, ([]) }),
-  0x000A:	({"MN_0x000A",	    	    	0, ([]) }),
-  0x000F:	({"MN_ISOSelection", 	    	0, ([]) }),
-  0x0080:	({"MN_ImageAdjustment",	    	0, ([]) }),
-  0x0082:	({"MN_AuxiliaryLens",	    	0, ([]) }),
-  0x0085:	({"MN_ManualFocusDistance",  	"FLOAT", ([]) }),
-  0x0086:	({"MN_DigitalZoomFactor",    	"FLOAT", ([]) }),
+  0x0003:	({"MN_ColorMode",    	    	}),
+  0x0004:	({"MN_Quality",	    	    	}),
+  0x0005:	({"MN_Whitebalance", 	    	}),
+  0x0006:	({"MN_ImageSharpening",	    	}),
+  0x0007:	({"MN_FocusMode",    	    	}),
+  0x0008:	({"MN_FlashSetting", 	    	}),
+  0x000A:	({"MN_0x000A",	    	    	}),
+  0x000F:	({"MN_ISOSelection", 	    	}),
+  0x0080:	({"MN_ImageAdjustment",	    	}),
+  0x0082:	({"MN_AuxiliaryLens",	    	}),
+  0x0085:	({"MN_ManualFocusDistance",  	"FLOAT" }),
+  0x0086:	({"MN_DigitalZoomFactor",    	"FLOAT" }),
   0x0088:	({"MN_AFFocusPosition",	    	"MAP",
 		    ([ "\00\00\00\00": "Center",
 		       "\00\01\00\00": "Top",
@@ -297,7 +297,7 @@ static mapping NIKON_990_MAKERNOTE = ([
 		       "\00\03\00\00": "Left",
 		       "\00\04\00\00": "Right",
 		    ])  }),
-  0x0010:	({"MN_DataDump",     	    	0, ([]) }),
+  0x0010:	({"MN_DataDump",     	    	}),
 ]);
 
 static mapping sanyo_specialmode(array(int) data) {
@@ -334,8 +334,8 @@ static mapping sanyo_jpegquality(array(int) data) {
 }
 
 static mapping SANYO_MAKERNOTE = ([
-  0x00ff:       ({"MN_StartOffset",             0, ([]) }),
-  0x0100:       ({"MN_JPEGThumbnail",           0, ([]) }),
+  0x00ff:       ({"MN_StartOffset",             }),
+  0x0100:       ({"MN_JPEGThumbnail",           }),
   0x0200:       ({"MN_SpecialMode",             "CUSTOM", sanyo_specialmode }),
   0x0201:       ({"MN_JPEGQuality",             "CUTSOM", sanyo_jpegquality }),
   0x0202:       ({"MN_Macro",                   "MAP",
@@ -343,10 +343,10 @@ static mapping SANYO_MAKERNOTE = ([
 		     1:"Macro",
 		     2:"View",
 		     3:"Manual" ]) }),
-  0x0204:       ({"MN_DigitalZoom",             0, ([]) }),
-  0x0207:       ({"MN_SoftwareRelease",         0, ([]) }),
-  0x0208:       ({"MN_PictInfo",                0, ([]) }),
-  0x0209:       ({"MN_CameraID",                0, ([]) }),
+  0x0204:       ({"MN_DigitalZoom",             }),
+  0x0207:       ({"MN_SoftwareRelease",         }),
+  0x0208:       ({"MN_PictInfo",                }),
+  0x0209:       ({"MN_CameraID",                }),
   0x020e:       ({"MN_SequentialShotMethod",    "MAP",
 		  ([ 0:"None",
 		     1:"Standard",
@@ -372,7 +372,7 @@ static mapping SANYO_MAKERNOTE = ([
 		     3:"Night",
 		     4:"User 1",
 		     5:"User 2" ]) }),
-  0x0223:       ({"MN_ManualFocalDistance",     0, ([]) }),
+  0x0223:       ({"MN_ManualFocalDistance",     }),
   0x0224:       ({"MN_SequentialShotInterval",  "MAP",
 		  ([ 0:"5 frames/s",
 		     1:"10 frames/s",
@@ -383,8 +383,8 @@ static mapping SANYO_MAKERNOTE = ([
 		     1:"Force",
 		     2:"Disabled",
 		     3:"Red eye" ]) }),
-  0x0e00:       ({"MN_PrintIMFlags",            0, ([]) }),
-  0x0f00:       ({"MN_DataDump",                0, ([]) }),
+  0x0e00:       ({"MN_PrintIMFlags",            }),
+  0x0f00:       ({"MN_DataDump",                }),
 ]);
 
 static mapping OLYMPUS_MAKERNOTE = ([
@@ -395,15 +395,15 @@ static mapping OLYMPUS_MAKERNOTE = ([
 		     2:"SHQ" ]) }),
   0x0202:       ({"MN_Macro",                   "MAP", ([ 0:"No", 1:"Yes" ]) }),
   0x0204:       ({"MN_DigitalZoom",             "MAP", ([ 0:"1x", 1:"2x" ]) }),
-  0x0207:       ({"MN_SoftwareRelease",         0, ([]) }),
-  0x0208:       ({"MN_PictInfo",                0, ([]) }),
-  0x0209:       ({"MN_CameraID",                0, ([]) }),
-  0x0f00:       ({"MN_DataDump",                0, ([]) }),
+  0x0207:       ({"MN_SoftwareRelease",         }),
+  0x0208:       ({"MN_PictInfo",                }),
+  0x0209:       ({"MN_CameraID",                }),
+  0x0f00:       ({"MN_DataDump",                }),
 ]);
 
 // Nikon E700/E800/E900/E900S/E910/E950
 static mapping NIKON_MAKERNOTE = ([
-  0x0002:       ({"MN_0x0002",                  0, ([]), }),
+  0x0002:       ({"MN_0x0002",                   }),
   0x0003:       ({"MN_Quality",                 "MAP",
 		  ([ 1:"VGA Basic",
 		     2:"VGA Normal",
@@ -431,11 +431,11 @@ static mapping NIKON_MAKERNOTE = ([
 		     4:"Flourescense",
 		     5:"Cloudy",
 		     6:"SpeedLight" ]) }),
-  0x0008:       ({"MN_Focus",                   0, ([]) }),
-  0x0009:       ({"MN_0x0009",                  0, ([]) }),
-  0x000a:       ({"MN_DigitalZoom",             0, ([]) }),
+  0x0008:       ({"MN_Focus",                   }),
+  0x0009:       ({"MN_0x0009",                  }),
+  0x000a:       ({"MN_DigitalZoom",             }),
   0x000b:       ({"MN_Converter",               "MAP", ([ 1:"Fisheye converter" ]) }),
-  0x0f00:       ({"MN_0x0f00",                  0, ([]) }),
+  0x0f00:       ({"MN_0x0f00",                  }),
 ]);
 
 static mapping CASIO_MAKERNOTE = ([
@@ -467,7 +467,7 @@ static mapping CASIO_MAKERNOTE = ([
 		  ([ 11:"Weak",
 		     13:"Normal",
 		     15:"Strong" ]) }),
-  0x0006:       ({"MN_ObjectDistance",          0, ([]) }),
+  0x0006:       ({"MN_ObjectDistance",          }),
   0x0007:       ({"MN_WhiteBalance",            "MAP",
 		  ([ 1:"Auto",
 		     2:"Tungsten",
@@ -500,8 +500,8 @@ static mapping CASIO_MAKERNOTE = ([
 ]);
 
 static mapping FUJIFILM_MAKERNOTE = ([
-  0x0000:       ({"MN_Version",                 0, ([]) }),
-  0x1000:       ({"MN_Quality",                 0, ([]) }),
+  0x0000:       ({"MN_Version",                 }),
+  0x1000:       ({"MN_Quality",                 }),
   0x1001:       ({"MN_Sharpness",               "MAP",
 		  ([ 1:"Soft",
 		     2:"Soft",
@@ -530,7 +530,7 @@ static mapping FUJIFILM_MAKERNOTE = ([
 		     1:"On",
 		     2:"Off",
 		     3:"Red-eye reduction" ]) }),
-  0x1011:       ({"MN_FlashStrength",           0, ([]) }),
+  0x1011:       ({"MN_FlashStrength",           }),
   0x1020:       ({"MN_Macro",                   "MAP", ([ 0:"Off", 1:"On" ]) }),
   0x1021:       ({"MN_FocusMode",               "MAP", ([ 0:"Auto focus", 1:"Manual focus" ]) }),
   0x1030:       ({"MN_SlowSync",                "MAP", ([ 0:"Off", 1:"On" ]) }),
@@ -550,62 +550,62 @@ static mapping FUJIFILM_MAKERNOTE = ([
 ]);
 
 static mapping TAG_INFO = ([
-  0x0001:       ({"InteroperabilityIndex",      0, ([]) }),
-  0x0002:       ({"InteroperabilityVersion",    0, ([]) }),
-  0x00fe:	({"NewSubFileType",  	    	0, ([]) }),
-  0x0100:	({"ImageWidth",      	    	0, ([]) }),
-  0x0101:	({"ImageLength",     	    	0, ([]) }),
-  0x0102:	({"BitsPerSample",   	    	0, ([]) }),
-  0x0103:	({"Compression",     	    	0, ([]) }),
-  0x0106:	({"PhotometricInterpretation",	0, ([]) }),
-  0x010a:       ({"FillOrder",                  0, ([]) }),
-  0x010d:       ({"DocumentName",               0, ([]) }),
-  0x010e:	({"ImageDescription", 	    	0, ([]) }),
-  0x010f:	({"Make",    	    	    	0, ([]) }),
-  0x0110:	({"Model",   	    	    	0, ([]) }),
-  0x0111:	({"StripOffsets",    	    	0, ([]) }),
-  0x0112:	({"Orientation",     	    	0, ([]) }),
-  0x0115:	({"SamplesPerPixel", 	    	0, ([]) }),
-  0x0116:	({"RowsPerStrip",    	    	0, ([]) }),
-  0x0117:	({"StripByteCounts", 	    	0, ([]) }),
-  0x011a:	({"XResolution",     	    	0, ([]) }),
-  0x011b:	({"YResolution",     	    	0, ([]) }),
-  0x011c:	({"PlanarConfiguration",     	0, ([]) }),
+  0x0001:       ({"InteroperabilityIndex",      }),
+  0x0002:       ({"InteroperabilityVersion",    }),
+  0x00fe:	({"NewSubFileType",  	    	}),
+  0x0100:	({"ImageWidth",      	    	}),
+  0x0101:	({"ImageLength",     	    	}),
+  0x0102:	({"BitsPerSample",   	    	}),
+  0x0103:	({"Compression",     	    	}),
+  0x0106:	({"PhotometricInterpretation",	}),
+  0x010a:       ({"FillOrder",                  }),
+  0x010d:       ({"DocumentName",               }),
+  0x010e:	({"ImageDescription", 	    	}),
+  0x010f:	({"Make",    	    	    	}),
+  0x0110:	({"Model",   	    	    	}),
+  0x0111:	({"StripOffsets",    	    	}),
+  0x0112:	({"Orientation",     	    	}),
+  0x0115:	({"SamplesPerPixel", 	    	}),
+  0x0116:	({"RowsPerStrip",    	    	}),
+  0x0117:	({"StripByteCounts", 	    	}),
+  0x011a:	({"XResolution",     	    	}),
+  0x011b:	({"YResolution",     	    	}),
+  0x011c:	({"PlanarConfiguration",     	}),
   0x0128:	({"ResolutionUnit",  	    	"MAP",
 		  ([ 1:	"Not Absolute",
 		     2:	"Inch",
 		     3:	"Centimeter", ]) }),
-  0x012d:       ({"TransferFunction",           0, ([]) }),
-  0x0131:	({"Software",	    	    	0, ([]) }),
-  0x0132:	({"DateTime",	    	    	0, ([]) }),
-  0x013b:	({"Artist",  	    	    	0, ([]) }),
-  0x013e:       ({"WhitePoint",                 0, ([]) }),
-  0x013f:       ({"PrimaryChromaticities",      0, ([]) }),
-  0x0142:	({"TileWidth",	    	    	0, ([]) }),
-  0x0143:	({"TileLength",	    	    	0, ([]) }),
-  0x0144:	({"TileOffsets",     	    	0, ([]) }),
-  0x0145:	({"TileByteCounts",  	    	0, ([]) }),
-  0x014a:	({"SubIFDs", 	    	    	0, ([]) }),
-  0x0156:       ({"TransferRange",              0, ([]) }),
-  0x015b:	({"JPEGTables",	    	    	0, ([]) }),
-  0x0200:       ({"JPEGProc",                   0, ([]) }),
-  0x0201:	({"JPEGInterchangeFormat",   	0, ([]) }), // from EXIFread
-  0x0202:	({"JPEGInterchangeFormatLength", 0, ([]) }), // from EXIFread
-  0x0211:	({"YCbCrCoefficients",	    	0, ([]) }),
-  0x0212:	({"YCbCrSubSampling",	    	0, ([]) }),
-  0x0213:	({"YCbCrPositioning",	    	0, ([]) }),
-  0x0214:	({"ReferenceBlackWhite",     	0, ([]) }),
-  0x1000:       ({"RelatedImageFileFormat",     0, ([]) }),
-  0x1001:       ({"RelatedImageWidth",          0, ([]) }),
-  0x1002:       ({"RelatedImageLength",         0, ([]) }),
-  0x828d:       ({"CFARepeatPatternDim",        0, ([]) }),
-  0x828f:	({"BatteryLevel",    	    	0, ([]) }),
-  0x8298:	({"Copyright",	    	    	0, ([]) }),
-  0x829a:	({"ExposureTime",    	    	"EXPOSURE", ([]) }),
-  0x829d:	({"FNumber", 	    	    	"FLOAT", ([]) }),
-  0x83bb:	({"IPTC_NAA",	    	    	0, ([]) }),
-  0x8769:       ({"ExifOffset",                 0, ([]) }),
-  0x8773:	({"InterColorProfile",	    	0, ([]) }),
+  0x012d:       ({"TransferFunction",           }),
+  0x0131:	({"Software",	    	    	}),
+  0x0132:	({"DateTime",	    	    	}),
+  0x013b:	({"Artist",  	    	    	}),
+  0x013e:       ({"WhitePoint",                 }),
+  0x013f:       ({"PrimaryChromaticities",      }),
+  0x0142:	({"TileWidth",	    	    	}),
+  0x0143:	({"TileLength",	    	    	}),
+  0x0144:	({"TileOffsets",     	    	}),
+  0x0145:	({"TileByteCounts",  	    	}),
+  0x014a:	({"SubIFDs", 	    	    	}),
+  0x0156:       ({"TransferRange",              }),
+  0x015b:	({"JPEGTables",	    	    	}),
+  0x0200:       ({"JPEGProc",                   }),
+  0x0201:	({"JPEGInterchangeFormat",   	}), // from EXIFread
+  0x0202:	({"JPEGInterchangeFormatLength", }), // from EXIFread
+  0x0211:	({"YCbCrCoefficients",	    	}),
+  0x0212:	({"YCbCrSubSampling",	    	}),
+  0x0213:	({"YCbCrPositioning",	    	}),
+  0x0214:	({"ReferenceBlackWhite",     	}),
+  0x1000:       ({"RelatedImageFileFormat",     }),
+  0x1001:       ({"RelatedImageWidth",          }),
+  0x1002:       ({"RelatedImageLength",         }),
+  0x828d:       ({"CFARepeatPatternDim",        }),
+  0x828f:	({"BatteryLevel",    	    	}),
+  0x8298:	({"Copyright",	    	    	}),
+  0x829a:	({"ExposureTime",    	    	"EXPOSURE" }),
+  0x829d:	({"FNumber", 	    	    	"FLOAT" }),
+  0x83bb:	({"IPTC_NAA",	    	    	}),
+  0x8769:       ({"ExifOffset",                 }),
+  0x8773:	({"InterColorProfile",	    	}),
   0x8822:	({"ExposureProgram", 	    	"MAP",
 		    ([ 0:	"Unidentified",
 		       1:	"Manual",
@@ -616,24 +616,24 @@ static mapping TAG_INFO = ([
 		       6:	"Program Action",
 		       7:	"Portrait Mode",
 		       8:	"Landscape Mode", ]) }),
-  0x8824:	({"SpectralSensitivity",     	0, ([]) }),
-  0x8825:	({"GPSInfo", 	    	    	0, ([]) }),
-  0x8827:	({"ISOSpeedRating", 	    	0, ([]) }),
-  0x8828:	({"OECF",    	    	    	0, ([]) }),
-  0x8829:	({"Interlace",	    	    	0, ([]) }),
-  0x882a:	({"TimeZoneOffset",  	    	0, ([]) }),
-  0x882b:	({"SelfTimerMode",   	    	0, ([]) }),
-  0x9000:       ({"ExifVersion",     	    	0, ([]) }), // from EXIFread
-  0x9003:       ({"DateTimeOriginal",	    	0, ([]) }),
-  0x9004:       ({"DateTimeDigitized",	    	0, ([]) }), // from EXIFread
+  0x8824:	({"SpectralSensitivity",     	}),
+  0x8825:	({"GPSInfo", 	    	    	}),
+  0x8827:	({"ISOSpeedRating", 	    	}),
+  0x8828:	({"OECF",    	    	    	}),
+  0x8829:	({"Interlace",	    	    	}),
+  0x882a:	({"TimeZoneOffset",  	    	}),
+  0x882b:	({"SelfTimerMode",   	    	}),
+  0x9000:       ({"ExifVersion",     	    	}), // from EXIFread
+  0x9003:       ({"DateTimeOriginal",	    	}),
+  0x9004:       ({"DateTimeDigitized",	    	}), // from EXIFread
   0x9101:       ({"ComponentsConfiguration", 	"CUSTOM", components_config }),
-  0x9102:	({"CompressedBitsPerPixel",  	0, ([]) }),
-  0x9201:	({"ShutterSpeedValue",	    	0, ([]) }),
-  0x9202:	({"ApertureValue",   	    	0, ([]) }),
-  0x9203:	({"BrightnessValue", 	    	0, ([]) }),
-  0x9204:	({"ExposureBiasValue",	    	"BIAS", ([]) }),
-  0x9205:	({"MaxApertureValue",	    	"FLOAT", ([]) }),
-  0x9206:	({"SubjectDistance", 	    	0, ([]) }),
+  0x9102:	({"CompressedBitsPerPixel",  	}),
+  0x9201:	({"ShutterSpeedValue",	    	}),
+  0x9202:	({"ApertureValue",   	    	}),
+  0x9203:	({"BrightnessValue", 	    	}),
+  0x9204:	({"ExposureBiasValue",	    	"BIAS" }),
+  0x9205:	({"MaxApertureValue",	    	"FLOAT" }),
+  0x9206:	({"SubjectDistance", 	    	}),
   0x9207:	({"MeteringMode",    	    	"MAP",
 		  ([  0:		    "Unidentified",
 		      1:		    "Average",
@@ -688,20 +688,20 @@ static mapping TAG_INFO = ([
 		      89:               "red-eye auto fired",
 		      93:               "red-eye auto fired (?)",
 		      95:               "red-eye auto fired (!)", ]) }),
-  0x920a:	({"FocalLength",     	    	"FLOAT", ([]) }),
-  0x920b:	({"FlashEnergy",     	    	0, ([]) }),
-  0x920c:	({"SpatialFrequencyResponse",	0, ([]) }),
-  0x920d:	({"Noise",   	    	    	0, ([]) }),
-  0x920e:	({"FocalPlaneXResolution",   	0, ([]) }),
-  0x920f:	({"FocalPlaneYResolution",   	0, ([]) }),
-  0x9210:	({"FocalPlaneResolutionUnit",	0, ([]) }),
-  0x9211:	({"ImageNumber",     	    	0, ([]) }),
-  0x9212:	({"SecurityClassification",  	0, ([]) }),
-  0x9213:	({"ImageHistory",    	    	0, ([]) }),
-  0x9214:	({"SubjectArea", 	    	0, ([]) }),
-  0x9215:	({"ExposureIndex",   	    	0, ([]) }),
-  0x9216:	({"TIFF_EPStandardID",	    	0, ([]) }),
-  0x9217:	({"SensingMethod",   	    	0, ([]) }),
+  0x920a:	({"FocalLength",     	    	"FLOAT" }),
+  0x920b:	({"FlashEnergy",     	    	}),
+  0x920c:	({"SpatialFrequencyResponse",	}),
+  0x920d:	({"Noise",   	    	    	}),
+  0x920e:	({"FocalPlaneXResolution",   	}),
+  0x920f:	({"FocalPlaneYResolution",   	}),
+  0x9210:	({"FocalPlaneResolutionUnit",	}),
+  0x9211:	({"ImageNumber",     	    	}),
+  0x9212:	({"SecurityClassification",  	}),
+  0x9213:	({"ImageHistory",    	    	}),
+  0x9214:	({"SubjectArea", 	    	}),
+  0x9215:	({"ExposureIndex",   	    	}),
+  0x9216:	({"TIFF_EPStandardID",	    	}),
+  0x9217:	({"SensingMethod",   	    	}),
   0x927c:       ({"MakerNote",	    	    	"MAKE_MODEL",
 		    ([
 		      "NIKON_E990":  ({"TAGS", NIKON_990_MAKERNOTE}),
@@ -712,28 +712,28 @@ static mapping TAG_INFO = ([
 		      "SANYO DIGITAL CAMERA": ({"TAGS", SANYO_MAKERNOTE}),
 		      "CASIO": ({"TAGS", CASIO_MAKERNOTE}),
 		      "": ({ 0, ([]) }) ]) }),
-  0x9286:       ({"UserComment",                0, ([]) }),
-  0x9290:       ({"SubSecTime",                 0, ([]) }),
-  0x9291:       ({"SubSecTimeOriginal",         0, ([]) }),
-  0x9292:       ({"SubSecTimeDigitized",        0, ([]) }),
-  0xa000:       ({"FlashPixVersion",	       	0, ([]) }),
-  0xa001:       ({"ColorSpace",	    	    	0, ([]) }),
-  0xa002:       ({"PixelXDimension",   	    	0, ([]) }),
-  0xa003:       ({"PixelYDimension",   	    	0, ([]) }),
-  0xa004:       ({"RelatedSoundFile",           0, ([]) }),
-  0xa005:       ({"ExifInterabilityOffset",     0, ([]) }),
-  0xa20b:       ({"FlashEnergy",                0, ([]) }),
-  0xa20c:       ({"SpatialFrequencyResponse",   0, ([]) }),
-  0xa20e:       ({"FocalPlaneXResolution",      0, ([]) }),
-  0xa20f:       ({"FocalPlaneYResolution",      0, ([]) }),
-  0xa210:       ({"FocalPlaneResolutionUnit",   0, ([]) }),
-  0xa214:       ({"SubjectLocation",            0, ([]) }),
-  0xa215:       ({"ExposureIndex",              0, ([]) }),
-  0xa217:       ({"SensingMethod",              0, ([]) }),
-  0xa300:       ({"FileSource",                 0, ([]) }),
-  0xa301:       ({"SceneType",                  0, ([]) }),
-  0xa302:       ({"CFAPattern",                 0, ([]) }),
-  0xa401:       ({"CustomRendered",             0, ([]) }),
+  0x9286:       ({"UserComment",                }),
+  0x9290:       ({"SubSecTime",                 }),
+  0x9291:       ({"SubSecTimeOriginal",         }),
+  0x9292:       ({"SubSecTimeDigitized",        }),
+  0xa000:       ({"FlashPixVersion",	       	}),
+  0xa001:       ({"ColorSpace",	    	    	}),
+  0xa002:       ({"PixelXDimension",   	    	}),
+  0xa003:       ({"PixelYDimension",   	    	}),
+  0xa004:       ({"RelatedSoundFile",           }),
+  0xa005:       ({"ExifInterabilityOffset",     }),
+  0xa20b:       ({"FlashEnergy",                }),
+  0xa20c:       ({"SpatialFrequencyResponse",   }),
+  0xa20e:       ({"FocalPlaneXResolution",      }),
+  0xa20f:       ({"FocalPlaneYResolution",      }),
+  0xa210:       ({"FocalPlaneResolutionUnit",   }),
+  0xa214:       ({"SubjectLocation",            }),
+  0xa215:       ({"ExposureIndex",              }),
+  0xa217:       ({"SensingMethod",              }),
+  0xa300:       ({"FileSource",                 }),
+  0xa301:       ({"SceneType",                  }),
+  0xa302:       ({"CFAPattern",                 }),
+  0xa401:       ({"CustomRendered",             }),
   0xa402:       ({"ExposureMode",               "MAP",
 		  ([  0:                "Auto exposure",
 		      1:                "Manual exposure",
@@ -741,8 +741,8 @@ static mapping TAG_INFO = ([
   0xa403:       ({"WhiteBalance",               "MAP",
 		  ([  0:                "Auto",
 		      1:                "Manual", ]) }),
-  0xa404:       ({"DigitalZoomRatio",           "FLOAT", ([]) }),
-  0xa405:       ({"FocalLengthIn35mmFilm",      0, ([]) }),
+  0xa404:       ({"DigitalZoomRatio",           "FLOAT" }),
+  0xa405:       ({"FocalLengthIn35mmFilm",      }),
   0xa406:       ({"SceneCaptureType",           "MAP",
 		  ([  0:                "Standard",
 		      1:                "Landscape",
@@ -766,13 +766,13 @@ static mapping TAG_INFO = ([
 		  ([  0:                "Normal",
 		      1:                "Soft",
 		      2:                "Hard", ]) }),
-  0xa40b:       ({"DeviceSettingDescription",   0, ([]) }),
+  0xa40b:       ({"DeviceSettingDescription",   }),
   0xa40c:       ({"SubjectDistanceRange",       "MAP",
 		  ([  0:                "Unknown",
 		      1:                "Macro",
 		      2:                "Close view",
 		      3:                "Distant view", ]) }),
-  0xa420:       ({"ImageUniqueID",              "ASCII", ([]) }),
+  0xa420:       ({"ImageUniqueID",              "ASCII" }),
 ]);
 
 static mapping TAG_TYPE_INFO =
@@ -824,9 +824,19 @@ static mapping parse_tag(Stdio.File file, mapping tags, mapping exif_info,
   int tag_count=long_value(file->read(4), order);
   string make,model;
 
-  [string tag_name, string tag_format, mapping|function tag_map]=
-    exif_info[tag_id] || ({ sprintf("%s0x%x", (exif_info->prefix||"Tag"),
-				    tag_id), 0, ([]) });
+  string tag_name, tag_format;
+  mapping|function tag_map;
+  array temp = exif_info[tag_id];
+  if(!temp || !sizeof(temp)) {
+    tag_name = sprintf("%s0x%x", (exif_info->prefix||"Tag"), tag_id);
+    tag_format = 0;
+    tag_map = ([]);
+  }
+  else {
+    tag_name = temp[0];
+    tag_format = sizeof(temp)>1?temp[1]:0;
+    tag_map = sizeof(temp)>2?temp[2]:([]);
+  }
 
   if(tag_format=="MAKE_MODEL")
   {