diff --git a/extra/kdelibs/PKGBUILD b/extra/kdelibs/PKGBUILD
index 4812bc54c..e999c9d56 100644
--- a/extra/kdelibs/PKGBUILD
+++ b/extra/kdelibs/PKGBUILD
@@ -7,9 +7,9 @@
 #  - patch to fix unclickable plasmoid buttons on ARM
 
 pkgname=kdelibs
-pkgver=4.14.19
-_kdeappver=16.04.0
-pkgrel=2
+pkgver=4.14.20
+_kdeappver=16.04.1
+pkgrel=1
 pkgdesc="KDE Core Libraries"
 arch=('i686' 'x86_64')
 url='https://www.kde.org/'
@@ -20,26 +20,28 @@ depends=('attica-qt4' 'libxss' 'qca-qt4' 'libdbusmenu-qt4' 'polkit-qt4'
         'media-player-info' 'libutempter' 'qtwebkit' 'icu')
 makedepends=('cmake' 'automoc4' 'avahi' 'libgl' 'mesa')
 source=("http://download.kde.org/stable/applications/${_kdeappver}/src/$pkgname-$pkgver.tar.xz"
-        'kde-applications-menu.patch' 'archlinux-menu.patch' 'qt4.patch'
+        'kde-applications-menu.patch' 'archlinux-menu.patch' 'qt4.patch' kdelibs-gcc6.patch
         'arm-coronaoffscreen-input-fixes.diff')
-sha1sums=('82a3db2c013d269ba850c06c9d1ac53ef6c44623'
+sha1sums=('be5cf39d68ff43d01123e4926caf075ae7dc7a7b'
           '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
           '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
           'ed1f57ee661e5c7440efcaba7e51d2554709701c'
-          '8aba7252966f68d4b2eae2a6300031fefbea6300'
+          'e9c02b761910c34d0f3470645ac4df102cfce5df'
           '855150096763600c970aa307c8241b96da33b9ed')
 
 prepare() {
-       mkdir -p build
-       cd ${pkgname}-${pkgver}
-       # avoid file conflict with gnome-menus
-       patch -p1 -i ../kde-applications-menu.patch
-       # add Archlinux menu entry
-       patch -p1 -i ../archlinux-menu.patch
-       # qmake refers to Qt5
-       patch -p1 -i ../qt4.patch
-       # fix unclickable plasmoid buttons on ARM
-       patch -p1 -i ../arm-coronaoffscreen-input-fixes.diff
+  mkdir -p build
+  cd ${pkgname}-${pkgver}
+  # avoid file conflict with gnome-menus
+  patch -p1 -i ../kde-applications-menu.patch
+  # add Archlinux menu entry
+  patch -p1 -i ../archlinux-menu.patch
+  # qmake refers to Qt5
+  patch -p1 -i ../qt4.patch
+  # fix build with GCC 6 (Fedora)
+  patch -p1 -i ../kdelibs-gcc6.patch   
+  # fix unclickable plasmoid buttons on ARM
+  patch -p1 -i ../arm-coronaoffscreen-input-fixes.diff
 }
 
 build() {
diff --git a/extra/kdelibs/kdelibs-gcc6.patch b/extra/kdelibs/kdelibs-gcc6.patch
new file mode 100644
index 000000000..774548730
--- /dev/null
+++ b/extra/kdelibs/kdelibs-gcc6.patch
@@ -0,0 +1,65 @@
+diff -up kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp.gcc6 kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp
+--- kdelibs-4.14.17/khtml/dom/dom2_traversal.h.gcc6	2016-02-12 19:27:45.874888043 -0600
++++ kdelibs-4.14.17/khtml/dom/dom2_traversal.h	2016-02-12 19:26:11.777418711 -0600
+@@ -214,7 +214,7 @@ public:
+      *
+      */
+     enum ShowCode {
+-        SHOW_ALL                       = 0xFFFFFFFF,
++        SHOW_ALL                       = (int)0xFFFFFFFF,
+         SHOW_ELEMENT                   = 0x00000001,
+         SHOW_ATTRIBUTE                 = 0x00000002,
+         SHOW_TEXT                      = 0x00000004,
+--- kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp.gcc6	2016-02-11 23:06:08.000000000 -0600
++++ kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp	2016-02-12 19:14:07.708788182 -0600
+@@ -51,23 +51,23 @@ static void sighandler( int )
+ #endif
+ 
+ #ifdef __i386__
+-  #define ASM_REG(reg)              "%e"reg
+-  #define ASM_POP(reg)              "popl   %%e"reg"             \n\t"
+-  #define ASM_PUSH(reg)             "pushl  %%e"reg"             \n\t"
+-  #define ASM_XOR_REG(reg1, reg2)   "xorl   %%e"reg1", %%e"reg2" \n\t"
+-  #define ASM_XOR_VAR(var, reg)     "xorl   "var",     %%e"reg"  \n\t"
+-  #define ASM_CMP_REG(reg1, reg2)   "cmpl   %%e"reg1", %%e"reg2" \n\t"
+-  #define ASM_MOV_REG(reg1, reg2)   "movl   %%e"reg1", %%e"reg2" \n\t"
+-  #define ASM_MOV_VAR(var, reg)     "movl   "var",     %%e"reg"  \n\t"
++  #define ASM_REG(reg)              "%e" reg
++  #define ASM_POP(reg)              "popl   %%e" reg "             \n\t"
++  #define ASM_PUSH(reg)             "pushl  %%e" reg "             \n\t"
++  #define ASM_XOR_REG(reg1, reg2)   "xorl   %%e" reg1 ", %%e" reg2 " \n\t"
++  #define ASM_XOR_VAR(var, reg)     "xorl   " var ",     %%e" reg "  \n\t"
++  #define ASM_CMP_REG(reg1, reg2)   "cmpl   %%e" reg1 ", %%e" reg2 " \n\t"
++  #define ASM_MOV_REG(reg1, reg2)   "movl   %%e" reg1 ", %%e" reg2 " \n\t"
++  #define ASM_MOV_VAR(var, reg)     "movl   " var ",     %%e" reg "  \n\t"
+ #elif defined(__x86_64__)
+-  #define ASM_REG(reg)              "%r"reg
+-  #define ASM_POP(reg)              "popq   %%r"reg"             \n\t"
+-  #define ASM_PUSH(reg)             "pushq  %%r"reg"             \n\t"
+-  #define ASM_XOR_REG(reg1, reg2)   "xorq   %%r"reg1", %%r"reg2" \n\t"
+-  #define ASM_XOR_VAR(var, reg)     "xorq   "var",     %%r"reg"  \n\t"
+-  #define ASM_CMP_REG(reg1, reg2)   "cmpq   %%r"reg1", %%r"reg2" \n\t"
+-  #define ASM_MOV_REG(reg1, reg2)   "movq   %%r"reg1", %%r"reg2" \n\t"
+-  #define ASM_MOV_VAR(var, reg)     "movq   "var",     %%r"reg"  \n\t"
++  #define ASM_REG(reg)              "%r" reg
++  #define ASM_POP(reg)              "popq   %%r" reg "             \n\t"
++  #define ASM_PUSH(reg)             "pushq  %%r" reg "             \n\t"
++  #define ASM_XOR_REG(reg1, reg2)   "xorq   %%r" reg1 ", %%r" reg2 " \n\t"
++  #define ASM_XOR_VAR(var, reg)     "xorq   " var ",     %%r" reg "  \n\t"
++  #define ASM_CMP_REG(reg1, reg2)   "cmpq   %%r" reg1 ", %%r" reg2 " \n\t"
++  #define ASM_MOV_REG(reg1, reg2)   "movq   %%r" reg1 ", %%r" reg2 " \n\t"
++  #define ASM_MOV_VAR(var, reg)     "movq   " var ",     %%r" reg "  \n\t"
+ #endif
+ 
+ #ifdef __PPC__
+--- kdelibs-4.14.17/ConfigureChecks.cmake.gcc6	2016-02-11 23:06:08.000000000 -0600
++++ kdelibs-4.14.17/ConfigureChecks.cmake	2016-02-12 19:14:07.707788177 -0600
+@@ -244,7 +244,7 @@ check_prototype_exists(unsetenv stdlib.h
+ check_prototype_exists(usleep unistd.h              HAVE_USLEEP_PROTO)
+ check_prototype_exists(initgroups "unistd.h;sys/types.h;unistd.h;grp.h" HAVE_INITGROUPS_PROTO)
+ check_prototype_exists(setreuid unistd.h            HAVE_SETREUID_PROTO)
+-check_prototype_exists(trunc math.h                 HAVE_TRUNC)
++check_prototype_exists(truncf math.h                HAVE_TRUNC)
+ 
+ # check for existing datatypes
+