diff --git a/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch b/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch
index 9fc0ed0..b27bab5 100644
--- a/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch
+++ b/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch
@@ -1,96 +1,3 @@
-diff --git a/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch b/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch
-index ad6d33dae..e69de29bb 100644
---- a/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch
-+++ b/third_party/libtiff/0017-safe_skews_in_gtTileContig.patch
-@@ -1,88 +0,0 @@
--diff --git a/third_party/libtiff/tif_getimage.c b/third_party/libtiff/tif_getimage.c
--index 84cc1d1a7..82e19164e 100644
----- a/third_party/libtiff/tif_getimage.c
--+++ b/third_party/libtiff/tif_getimage.c
--@@ -31,6 +31,7 @@
--  */
-- #include "tiffiop.h"
-- #include <stdio.h>
--+#include <limits.h>
-- 
-- static int gtTileContig(TIFFRGBAImage*, uint32*, uint32, uint32);
-- static int gtTileSeparate(TIFFRGBAImage*, uint32*, uint32, uint32);
--@@ -629,6 +628,7 @@ gtTileContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
--     uint32 tw, th;
--     unsigned char* buf;
--     int32 fromskew, toskew;
--+    int64 safeskew;
--     uint32 nrow;
--     int ret = 1, flip;
--     uint32 this_tw, tocol;
--@@ -649,19 +647,37 @@ gtTileContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
--     flip = setorientation(img);
--     if (flip & FLIP_VERTICALLY) {
-- 	    y = h - 1;
---	    toskew = -(int32)(tw + w);
--+	    safeskew = 0;
--+	    safeskew -= tw;
--+	    safeskew -= w;
--     }
--     else {
-- 	    y = 0;
---	    toskew = -(int32)(tw - w);
--+	    safeskew = 0;
--+	    safeskew -= tw;
--+	    safeskew +=w;
--     }
--      
--+    if(safeskew > INT_MAX || safeskew < INT_MIN){
--+       _TIFFfree(buf);
--+       TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "%s", "Invalid skew");
--+       return (0);
--+    }
--+    toskew = safeskew;
--+
--     /*
--      *	Leftmost tile is clipped on left side if col_offset > 0.
--      */
--     leftmost_fromskew = img->col_offset % tw;
--     leftmost_tw = tw - leftmost_fromskew;
---    leftmost_toskew = toskew + leftmost_fromskew;
--+    safeskew = toskew;
--+    safeskew += leftmost_fromskew;
--+    if(safeskew > INT_MAX || safeskew < INT_MIN){
--+       _TIFFfree(buf);
--+       TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "%s", "Invalid skew");
--+       return (0);
--+    }
--+    leftmost_toskew = safeskew;
--     for (row = 0; row < h; row += nrow)
--     {
--         rowstoread = th - (row + img->row_offset) % th;
--@@ -704,9 +684,24 @@ gtTileContig(TIFFRGBAImage* img, uint32* raster, uint32 w, uint32 h)
-- 		/*
-- 		 * Rightmost tile is clipped on right side.
-- 		 */
---		fromskew = tw - (w - tocol);
--+		safeskew = tw;
--+		safeskew -= w;
--+		safeskew += tocol;
--+		if(safeskew > INT_MAX || safeskew < INT_MIN){
--+		        _TIFFfree(buf);
--+		        TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "%s", "Invalid skew");
--+		        return (0);
--+		}
--+		fromskew = safeskew;
-- 		this_tw = tw - fromskew;
---		this_toskew = toskew + fromskew;
--+		safeskew = toskew;
--+		safeskew += fromskew;
--+		if(safeskew > INT_MAX || safeskew < INT_MIN){
--+		        _TIFFfree(buf);
--+		        TIFFErrorExt(tif->tif_clientdata, TIFFFileName(tif), "%s", "Invalid skew");
--+		        return (0);
--+		}
--+		this_toskew = safeskew;
-- 	    }
-- 	    (*put)(img, raster+y*w+tocol, tocol, y, this_tw, nrow, fromskew, this_toskew, buf + pos);
-- 	    tocol += this_tw;
 diff --git a/third_party/libtiff/tif_getimage.c b/third_party/libtiff/tif_getimage.c
 index fc554ccab..fff3f7fde 100644
 --- a/third_party/libtiff/tif_getimage.c
diff --git a/third_party/libtiff/0028-nstrips-OOM.patch b/third_party/libtiff/0028-nstrips-OOM.patch
index 33a4b3d..97cc953 100644
--- a/third_party/libtiff/0028-nstrips-OOM.patch
+++ b/third_party/libtiff/0028-nstrips-OOM.patch
@@ -1,34 +1,3 @@
-diff --git a/third_party/libtiff/0028-nstrips-OOM.patch b/third_party/libtiff/0028-nstrips-OOM.patch
-index a6db66ee8..e69de29bb 100644
---- a/third_party/libtiff/0028-nstrips-OOM.patch
-+++ b/third_party/libtiff/0028-nstrips-OOM.patch
-@@ -1,26 +0,0 @@
--diff --git a/third_party/libtiff/tif_dirread.c b/third_party/libtiff/tif_dirread.c
--index 772ebaf7d..ab938eac9 100644
----- a/third_party/libtiff/tif_dirread.c
--+++ b/third_party/libtiff/tif_dirread.c
--@@ -41,6 +41,7 @@
-- 
-- #include "tiffiop.h"
-- #include <float.h>
--+#include <limits.h>
-- 
-- #define IGNORE 0          /* tag placeholder used below */
-- #define FAILED_FII    ((uint32) -1)
--@@ -3638,6 +3639,13 @@ TIFFReadDirectory(TIFF* tif)
-- 		    isTiled(tif) ? "tiles" : "strips");
-- 		goto bad;
-- 	}
--+	if (tif->tif_dir.td_nstrips > INT_MAX) {
--+		TIFFErrorExt(tif->tif_clientdata, module,
--+		    "Cannot handle %u number of %s",
--+		    tif->tif_dir.td_nstrips,
--+		    isTiled(tif) ? "tiles" : "strips");
--+		goto bad;
--+	}
-- 	tif->tif_dir.td_stripsperimage = tif->tif_dir.td_nstrips;
-- 	if (tif->tif_dir.td_planarconfig == PLANARCONFIG_SEPARATE)
-- 		tif->tif_dir.td_stripsperimage /= tif->tif_dir.td_samplesperpixel;
 diff --git a/third_party/libtiff/tif_dirread.c b/third_party/libtiff/tif_dirread.c
 index 5e62e8131..521dbf0a4 100644
 --- a/third_party/libtiff/tif_dirread.c
diff --git a/third_party/libtiff/README.pdfium b/third_party/libtiff/README.pdfium
index a370a49..16423ae 100644
--- a/third_party/libtiff/README.pdfium
+++ b/third_party/libtiff/README.pdfium
@@ -1,6 +1,6 @@
 Name: LibTIFF
 URL: http://www.simplesystems.org/libtiff/
-Version: 4.0.8
+Version: 4.0.9
 Security Critical: yes
 License: BSD
 
@@ -10,11 +10,8 @@
 Local Modifications:
 
 0000-build-config.patch: Local build configuration changes.
-0001-build-config.patch: Enable HAVE_SEARCH_H in tiffconf.h for VS 2015
 0006-HeapBufferOverflow-ChopUpSingleUncompressedStrip.patch: Fix a heap buffer overflow
 0008-HeapBufferOverflow-ChopUpSingleUncompressedStrip.patch: Fix a heap buffer overflow
 0017-safe_skews_in_gtTileContig.patch: return error if to/from skews overflow from int32.
-0025-upstream-OOM-gtTileContig: allocates the decoded buffer only after a first successful TIFFFillStrip.
-0026-upstream-null-dereference: properly evit when stoponerr is set and avoid null dereferences.
 0027-build-config.patch: #define variables so their value can be used by #if.
 0028-nstrips-OOM.patch: return error for excess number of tiles/strips.
