diff --git a/extra/webkit2gtk/PKGBUILD b/extra/webkit2gtk/PKGBUILD
index 01c80798f..fe0afbd5f 100644
--- a/extra/webkit2gtk/PKGBUILD
+++ b/extra/webkit2gtk/PKGBUILD
@@ -3,13 +3,12 @@
 
 # ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
 #  - do not use LLINT assembly for v5/v6
-#  - strip -O3 from cmake generated makefiles, solves ICE
 #  - remove Atomics.cpp from build for v5/v6 - https://bugs.webkit.org/show_bug.cgi?id=161900
 
 highmem=1
 
 pkgname=webkit2gtk
-pkgver=2.16.4
+pkgver=2.16.5
 pkgrel=1
 pkgdesc="GTK+ Web content engine library"
 arch=(i686 x86_64)
@@ -17,20 +16,18 @@ url="https://webkitgtk.org/"
 license=(custom)
 depends=(libxt libxslt enchant geoclue2 gst-plugins-base-libs
          libsecret libwebp harfbuzz-icu gtk3 libnotify hyphen)
-makedepends=(gtk2 gperf gobject-introspection ruby gtk-doc cmake python python2)
+makedepends=(gtk2 gperf gobject-introspection ruby gtk-doc cmake python python2 ninja)
 optdepends=('gtk2: Netscape plugin support'
             'gst-plugins-base: free media decoding'
             'gst-plugins-good: media decoding'
             'gst-libav: nonfree media decoding')
-options=(!emptydirs)
-
 source=(https://webkitgtk.org/releases/webkitgtk-${pkgver}.tar.xz{,.asc}
-        icu59.patch gcc7-memcpy.patch
+        icu59.patch gcc7.patch
         remove_atomics.patch)
-sha256sums=('f9aba4338319bd539785345144e28c8027dc8cb526b2e443e0c8f2c0239f5128'
+sha256sums=('8e0396f3428e757898c5856e642eed4fcd5a20ae03d96d3eaa03b76634be7dd4'
             'SKIP'
             'eb791b9c8dcb84996904846dedf8c3ddf1a5fde32330177f3f0071510bd8ca6d'
-            '025e36bef353f850598a9bd9d91bc1aa2e2f75db9f46c252ec2f861726299189'
+            '0c8e7e0b7cb4379d59eca4a93df84c984a44feb979ad1b6c1f964192290e25f5'
             '410449817b1b181737538be10d96d6d8aec134285f6288e80c96fbfdd5d19519')
 validpgpkeys=('D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3')
 
@@ -39,7 +36,7 @@ prepare() {
   cd webkitgtk-$pkgver
 
   patch -Np1 -i ../icu59.patch
-  patch -Np1 -i ../gcc7-memcpy.patch  # https://bugs.webkit.org/show_bug.cgi?id=173407
+  patch -Np1 -i ../gcc7.patch  # https://bugs.webkit.org/show_bug.cgi?id=173407
 
   sed -i '1s/python$/&2/' Tools/gtk/generate-gtkdoc
   rm -r Source/ThirdParty/gtest/
@@ -55,26 +52,20 @@ build() {
   # do not use LLINT assembly for v5/v6
   [[ $CARCH == "arm" || $CARCH == "armv6h" ]] && CONFIG="-DENABLE_JIT=OFF"
 
-  cmake -DPORT=GTK -DCMAKE_BUILD_TYPE=Release \
+  cmake -G Ninja -DPORT=GTK -DCMAKE_BUILD_TYPE=Release \
         -DCMAKE_SKIP_RPATH=ON -DCMAKE_INSTALL_PREFIX=/usr \
         -DLIB_INSTALL_DIR=/usr/lib -DLIBEXEC_INSTALL_DIR=/usr/lib/webkit2gtk-4.0 \
         -DENABLE_GTKDOC=ON -DPYTHON_EXECUTABLE=/usr/bin/python2 $CONFIG ../webkitgtk-$pkgver
-
-  # strip -O3 from cmake generated makefiles
-  find ./ -type f -exec sed -i -e 's/-O3//g' {} \;
-
-  make
+  ninja
 }
 
 package() {
   cd build
-  make DESTDIR="$pkgdir" install
+  DESTDIR="$pkgdir" ninja install
 
-  install -m755 -d "$pkgdir/usr/share/licenses/webkit2gtk"
-  cd "$srcdir/webkitgtk-$pkgver/Source"
-  for f in $(find -name 'COPYING*' -or -name 'LICENSE*'); do
-    echo $f >> "$pkgdir/usr/share/licenses/webkit2gtk/LICENSE"
-    cat $f >> "$pkgdir/usr/share/licenses/webkit2gtk/LICENSE"
-    echo "" >> "$pkgdir/usr/share/licenses/webkit2gtk/LICENSE"
-  done
+  cd ../webkitgtk-$pkgver/Source
+  while IFS= read -d $'\0' -r _f; do
+    echo "### $_f ###"; cat "$_f"; echo
+  done < <(find . -name 'COPYING*' -or -name 'LICENSE*' -print0) \
+    | install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
 }
diff --git a/extra/webkit2gtk/gcc7-memcpy.patch b/extra/webkit2gtk/gcc7.patch
similarity index 53%
rename from extra/webkit2gtk/gcc7-memcpy.patch
rename to extra/webkit2gtk/gcc7.patch
index e2ad3f9bb..6f13d0a34 100644
--- a/extra/webkit2gtk/gcc7-memcpy.patch
+++ b/extra/webkit2gtk/gcc7.patch
@@ -1,6 +1,19 @@
-diff -u -r webkitgtk-2.16.4/Source/WTF/wtf/text/StringImpl.h webkitgtk-2.16.4-memcpy/Source/WTF/wtf/text/StringImpl.h
---- webkitgtk-2.16.4/Source/WTF/wtf/text/StringImpl.h	2017-02-20 17:20:15.000000000 +0100
-+++ webkitgtk-2.16.4-memcpy/Source/WTF/wtf/text/StringImpl.h	2017-06-21 09:45:07.835653812 +0200
+diff -u -r webkitgtk-2.16.5/Source/cmake/OptionsCommon.cmake webkitgtk-2.16.5-gcc7/Source/cmake/OptionsCommon.cmake
+--- webkitgtk-2.16.5/Source/cmake/OptionsCommon.cmake	2017-05-06 10:48:27.000000000 +0200
++++ webkitgtk-2.16.5-gcc7/Source/cmake/OptionsCommon.cmake	2017-06-27 13:15:26.858090686 +0200
+@@ -38,7 +38,9 @@
+ define_property(TARGET PROPERTY FOLDER INHERITED BRIEF_DOCS "folder" FULL_DOCS "IDE folder name")
+ 
+ if (COMPILER_IS_GCC_OR_CLANG)
++    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-expansion-to-defined -Wno-implicit-fallthrough")
+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing")
++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-expansion-to-defined -Wno-implicit-fallthrough")
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing -fno-rtti")
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y")
+ endif ()
+diff -u -r webkitgtk-2.16.5/Source/WTF/wtf/text/StringImpl.h webkitgtk-2.16.5-gcc7/Source/WTF/wtf/text/StringImpl.h
+--- webkitgtk-2.16.5/Source/WTF/wtf/text/StringImpl.h	2017-02-20 17:20:15.000000000 +0100
++++ webkitgtk-2.16.5-gcc7/Source/WTF/wtf/text/StringImpl.h	2017-06-27 13:13:57.801527350 +0200
 @@ -581,29 +581,7 @@
      // FIXME: Does this really belong in StringImpl?
      template <typename T> static void copyChars(T* destination, const T* source, unsigned numCharacters)