diff --git a/PKGBUILD b/PKGBUILD
index e936f65610d0bf757d6fa431ca869700a3db84b2..9fc776d8dbd11a62b0709923b8a52d645ee34697 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,19 +3,26 @@
 
 pkgname=dillo
 pkgver=2.1.1
-pkgrel=4
+pkgrel=5
 pkgdesc="A small, fast graphical web browser built on FLTK"
 arch=(i686 x86_64)
 url="http://www.dillo.org"
 license=('GPL')
-depends=('fltk2' 'libjpeg' 'perl' 'openssl' 'libpng' 'gcc-libs' 'libxcursor' 'libxi' 'libxinerama')
+depends=('fltk2' 'libjpeg' 'perl' 'openssl' 'libpng' 'gcc-libs' 'libxcursor'
+         'libxi' 'libxinerama')
 backup=(etc/dillo/{dillorc,dpidrc})
-source=(http://www.dillo.org/download/$pkgname-$pkgver.tar.bz2)
-md5sums=('93f674f2a42d90a1cdb88a6972325954')
+source=(http://www.dillo.org/download/$pkgname-$pkgver.tar.bz2
+        libpng14.patch)
+md5sums=('93f674f2a42d90a1cdb88a6972325954'
+         '5336bd3a3b4698c5250ce59e4f2ff91a')
 
 build() {
-  cd $startdir/src/$pkgname-$pkgver
-  ./configure --prefix=/usr --sysconfdir=/etc --enable-cookies --enable-dlgui --enable-ssl
+  cd "$srcdir/$pkgname-$pkgver"
+
+  patch -Np1 -i "$srcdir/libpng14.patch" || return 1
+
+  ./configure --prefix=/usr --sysconfdir=/etc --enable-cookies --enable-dlgui \
+              --enable-ssl
   make || return 1
-  make DESTDIR=$startdir/pkg install
+  make DESTDIR="$pkgdir" install
 }
diff --git a/libpng14.patch b/libpng14.patch
new file mode 100644
index 0000000000000000000000000000000000000000..10c45351ee7c5ce284df6630dc23d1ee0dc9b88d
--- /dev/null
+++ b/libpng14.patch
@@ -0,0 +1,12 @@
+diff -upr dillo-2.1.1.orig/src/png.c dillo-2.1.1/src/png.c
+--- dillo-2.1.1.orig/src/png.c	2010-01-23 04:09:50.000000000 +0200
++++ dillo-2.1.1/src/png.c	2010-01-23 04:12:34.000000000 +0200
+@@ -345,7 +345,7 @@ static void Png_write(DilloPng *png, voi
+             return;            /* need MORE data */
+          }
+          /* check the image signature - DON'T update ipbufstart! */
+-         if (!png_check_sig(png->ipbuf, DATASIZE)) {
++         if (png_sig_cmp(png->ipbuf, 0, DATASIZE)) {
+             /* you lied to me about it being a PNG image */
+             MSG_WARN("\"%s\" is not a PNG file.\n", URL_STR(png->url));
+             png->state = IS_finished;