--- /dev/null
+diff -Nur digikam-1.0.0.orig/libs/dimg/loaders/pngloader.cpp digikam-1.0.0/libs/dimg/loaders/pngloader.cpp
+--- digikam-1.0.0.orig/libs/dimg/loaders/pngloader.cpp 2009-12-21 11:20:36.000000000 +0200
++++ digikam-1.0.0/libs/dimg/loaders/pngloader.cpp 2010-01-20 20:18:51.000000000 +0200
+@@ -105,7 +105,7 @@
+ unsigned char buf[PNG_BYTES_TO_CHECK];
+
+ size_t membersRead = fread(buf, 1, PNG_BYTES_TO_CHECK, f);
+- if ((membersRead != PNG_BYTES_TO_CHECK) || !png_check_sig(buf, PNG_BYTES_TO_CHECK))
++ if ((membersRead != PNG_BYTES_TO_CHECK) || png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK))
+ {
+ kDebug() << "Not a PNG image file.";
+ fclose(f);
+@@ -322,7 +322,7 @@
+ #ifdef ENABLE_DEBUG_MESSAGES
+ kDebug() << "PNG in PNG_COLOR_TYPE_GRAY";
+ #endif
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ png_set_gray_to_rgb(png_ptr);
+
+ if (QSysInfo::ByteOrder == QSysInfo::LittleEndian) // Intel
+diff -Nur digikam-1.0.0.orig/libs/threadimageio/thumbnailbasic.cpp digikam-1.0.0/libs/threadimageio/thumbnailbasic.cpp
+--- digikam-1.0.0.orig/libs/threadimageio/thumbnailbasic.cpp 2009-12-21 11:20:45.000000000 +0200
++++ digikam-1.0.0/libs/threadimageio/thumbnailbasic.cpp 2010-01-20 20:19:20.000000000 +0200
+@@ -137,7 +137,7 @@
+ unsigned char buf[PNG_BYTES_TO_CHECK];
+
+ size_t itemsRead = fread(buf, 1, PNG_BYTES_TO_CHECK, f);
+- if (itemsRead != 1 || !png_check_sig(buf, PNG_BYTES_TO_CHECK))
++ if (itemsRead != 1 || png_sig_cmp(buf, 0, PNG_BYTES_TO_CHECK))
+ {
+ fclose(f);
+ return qimage;
+@@ -232,7 +232,7 @@
+ {
+ png_set_gray_to_rgb(png_ptr);
+ if (png_get_bit_depth(png_ptr, info_ptr) < 8)
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ int sizeOfUint = sizeof(unsigned int);