diff --git a/src/qcam/dng_writer.cpp b/src/qcam/dng_writer.cpp
index ea4616f63d8e..cbd8bed3e6d0 100644
--- a/src/qcam/dng_writer.cpp
+++ b/src/qcam/dng_writer.cpp
@@ -316,9 +316,7 @@ int DNGWriter::write(const char *filename, const Camera *camera,
 		TIFFSetField(tif, EXIFTAG_EXPOSURETIME, exposureTime);
 	}
 
-	TIFFCheckpointDirectory(tif);
-	exifIFDOffset = TIFFCurrentDirOffset(tif);
-	TIFFWriteDirectory(tif);
+	TIFFWriteCustomDirectory(tif, &exifIFDOffset);
 
 	/* Update the IFD offsets and close the file. */
 	TIFFSetDirectory(tif, 0);
