diff --git a/.gitattributes b/.gitattributes
index 44186f8b6176abf31022ef38914483c37d6340fd..11140e3671dd0fffcb8728874f4ffd9953ece972 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -286,11 +286,6 @@ testfont binary
 /src/modules/_Image_JPEG/acconfig.h foreign_ident
 /src/modules/_Image_JPEG/configure.in foreign_ident
 /src/modules/_Image_JPEG/image_jpeg.c foreign_ident
-/src/modules/_Image_PNG/Makefile.in foreign_ident
-/src/modules/_Image_PNG/acconfig.h foreign_ident
-/src/modules/_Image_PNG/configure.in foreign_ident
-/src/modules/_Image_PNG/image_png.c foreign_ident
-/src/modules/_Image_PNG/testsuite.in foreign_ident
 /src/modules/_Image_XFace/Makefile.in foreign_ident
 /src/modules/_Image_XFace/acconfig.h foreign_ident
 /src/modules/_Image_XFace/configure.in foreign_ident
diff --git a/src/modules/_Image_PNG/.cvsignore b/src/modules/_Image_PNG/.cvsignore
deleted file mode 100644
index 4c4abb584f6d9a7910fed717c046546ed81175a2..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/.cvsignore
+++ /dev/null
@@ -1,14 +0,0 @@
-.pure
-Makefile
-config.log
-config.status
-configure
-dependencies
-linker_options
-modlist_headers
-modlist_segment
-module_testsuite
-stamp-h
-stamp-h.in
-config.h
-config.h.in 
diff --git a/src/modules/_Image_PNG/.gitignore b/src/modules/_Image_PNG/.gitignore
deleted file mode 100644
index e9be9e87737786aa2ee941b8904d5d467fc32258..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-/.pure
-/Makefile
-/config.log
-/config.status
-/configure
-/dependencies
-/linker_options
-/modlist_headers
-/modlist_segment
-/module_testsuite
-/stamp-h
-/stamp-h.in
-/config.h
-/config.h.in
diff --git a/src/modules/_Image_PNG/Makefile.in b/src/modules/_Image_PNG/Makefile.in
deleted file mode 100644
index e85f42a96c67e7f6723bc2cf98c7d7170ec72990..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
-# $Id: Makefile.in,v 1.2 1998/03/28 14:53:51 grubba Exp $
-SRCDIR=@srcdir@
-VPATH=@srcdir@:@srcdir@/../..:../..
-OBJS=image_png.o
-MODULE_LDFLAGS=@LDFLAGS@ @LIBS@
-
-@dynamic_module_makefile@
-@dependencies@
diff --git a/src/modules/_Image_PNG/acconfig.h b/src/modules/_Image_PNG/acconfig.h
deleted file mode 100644
index 9a9d556ca4e9b553f6db4e1abfbcfb5964371ecc..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/acconfig.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * $Id: acconfig.h,v 1.1 1998/02/26 21:38:00 mirar Exp $
- */
-
-#ifndef GMP_MACHINE_H
-#define GMP_MACHINE_H
-
-@TOP@
-@BOTTOM@
-
-/* Define this if you have -lz */
-#undef HAVE_LIBZ
-
-#endif
diff --git a/src/modules/_Image_PNG/configure.in b/src/modules/_Image_PNG/configure.in
deleted file mode 100644
index c1b37e22d8efdc4f11c6347327f692a60c5ee9d5..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/configure.in
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id: configure.in,v 1.2 1998/03/28 14:53:37 grubba Exp $
-AC_INIT(image_png.c)
-AC_CONFIG_HEADER(config.h)
-AC_ARG_WITH(zlib,     [  --with(out)-zlib       Support gzip compression],[],[with_zlib=yes])
-
-sinclude(../module_configure.in)
-
-if test x$with_zlib = xyes ; then
-  AC_CHECK_HEADERS(zlib.h)
-  if test $ac_cv_header_zlib_h = yes ; then
-    AC_MSG_CHECKING([if libz.h is new enough])
-    AC_TRY_LINK([
-#include <zlib.h>
-    ],[
-int foo = (int)(Z_NO_COMPRESSION | Z_VERSION_ERROR);
-    ],[ AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no); ac_cv_header_zlib_h=no ])
-    if test $ac_cv_header_zlib_h = yes ; then
-      if test x$pike_cv_sys_os = xIRIX ; then
-        # The libz.so supplied with IRIX 6.3 needs these obscure symbols
-        # C++? It also differs which library which contains them.
-        AC_CHECK_LIB(Csup, __vtbl__9type_info)
-        AC_CHECK_LIB(C, __vtbl__9type_info)
-	AC_CHECK_LIB(Csup, __T_9__nothrow)
-	AC_HAVE_FUNCS(__vtbl__9type_info)
-	AC_HAVE_FUNCS(__T_9__nothrow)
-      fi
-      AC_CHECK_LIB(z, compress, [
-        AC_DEFINE(HAVE_LIBZ) 
-        LIBS="${LIBS-} -lz"
-      ] ,
-      AC_CHECK_LIB(gz, compress))
-    fi
-  fi
-fi
-
-AC_OUTPUT(Makefile,echo FOO >stamp-h )
diff --git a/src/modules/_Image_PNG/image_png.c b/src/modules/_Image_PNG/image_png.c
deleted file mode 100644
index 5f84aa2d48c5e0b0b7b0c62f2e663b944ce29422..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/image_png.c
+++ /dev/null
@@ -1,218 +0,0 @@
-#include "global.h"
-RCSID("$Id: image_png.c,v 1.1 1998/02/26 21:38:01 mirar Exp $");
-
-#include "config.h"
-
-#if !defined(HAVE_LIBZ) && !defined(HAVE_LIBGZ)
-#undef HAVE_ZLIB_H
-#endif
-
-#include "pike_macros.h"
-#include "object.h"
-#include "constants.h"
-#include "interpret.h"
-#include "svalue.h"
-#include "threads.h"
-#include "array.h"
-#include "mapping.h"
-#include "error.h"
-#include "stralloc.h"
-#include "dynamic_buffer.h"
-
-#ifdef HAVE_ZLIB
-
-#include <zlib.h>
-#include "../Image/image.h"
-
-static struct program *image_program=NULL;
-static struct program *colortable_program=NULL;
-
-#endif /* HAVE_ZLIB */
-
-static struct pike_string *param_blu;
-static struct pike_string *param_blaa;
-
-#ifdef HAVE_JPEGLIB_H
-
-/*
-**! module Image
-**! submodule PNG
-**!
-**! note
-**!	This module uses <tt>zlib</tt>.
-*/
-
-static void push_png_chunk(unsigned char *type,    /* 4 bytes */
-			   struct pike_string *data)
-{
-   /* 
-    *  0: 4 bytes of length of data block (=n)
-    *  4: 4 bytes of chunk type
-    *  8: n bytes of data
-    *  8+n: 4 bytes of CRC
-    */
-   
-   push_nbo_32bit(data->len);
-   push_string(make_binary_shared_string(4,type));
-   push_string(data);
-   push_nbo_32bit(crc32(crc32(0,NULL,0),data->str,data->len));
-   f_add(4);
-}
-
-/*
-**! method string _chunk(string type,string data)
-**! 	Encodes a PNG chunk.
-**!
-**! note
-**!	Please read about the PNG file format.
-*/
-
-static void image_png_chunk(INT32 args)
-{
-   struct pike_string *a,*b;
-
-   if (args!=2 ||
-       sp[-args].type!=T_STRING ||
-       sp[1-args].type!=T_STRING)
-      error("Image.PNG.chunk: Illegal argument(s)\n");
-   
-   a=sp[-args].u.string;
-   if (a->len!=4)
-      error("Image.PNG.chunk: Type string not 4 characters\n");
-   b=sp[1-args].u.string;
-   pop_n_elems(args-2);
-   sp-=2;
-   push_png_chunk(a->str,b);
-   free_string(a);
-   free_string(b);
-}
-
-
-/*
-**! method string encode(object image)
-**! method string encode(object image, mapping options)
-**! 	Encodes a PNG image. 
-**!
-**!     The <tt>options</tt> argument may be a mapping
-**!	containing zero or more encoding options:
-**!
-**!	<pre>
-**!	normal options:
-**!	    "quality":0..100
-**!		Set quality of result. Default is 75.
-**!	    "optimize":0|1
-**!		Optimize Huffman table. Default is on (1) for
-**!		images smaller than 50kpixels.
-**!	    "progressive":0|1
-**!		Make a progressive JPEG. Default is off.
-**!
-**!	advanced options:
-**!	    "smooth":1..100
-**!		Smooth input. Value is strength.
-**!	    "method":JPEG.IFAST|JPEG.ISLOW|JPEG.FLOAT|JPEG.DEFAULT|JPEG.FASTEST
-**!		DCT method to use.
-**!		DEFAULT and FASTEST is from the jpeg library,
-**!		probably ISLOW and IFAST respective.
-**!
-**!	wizard options:
-**!	    "baseline":0|1
-**!		Force baseline output. Useful for quality&lt;20.
-**!	</pre>
-**!
-**! note
-**!	Please read some about JPEG files. A quality 
-**!	setting of 100 does not mean the result is 
-**!	lossless.
-*/
-
-static void image_jpeg_encode(INT32 args)
-{
-}
-
-/*
-**! method object decode(string data)
-**! method object decode(string data, mapping options)
-**! 	Decodes a PNG image. 
-**!
-**!     The <tt>options</tt> argument may be a mapping
-**!	containing zero or more encoding options:
-**!
-**!	<pre>
-**!	advanced options:
-**!	    "block_smoothing":0|1
-**!		Do interblock smoothing. Default is on (1).
-**!	    "fancy_upsampling":0|1
-**!		Do fancy upsampling of chroma components. 
-**!		Default is on (1).
-**!	    "method":JPEG.IFAST|JPEG.ISLOW|JPEG.FLOAT|JPEG.DEFAULT|JPEG.FASTEST
-**!		DCT method to use.
-**!		DEFAULT and FASTEST is from the jpeg library,
-**!		probably ISLOW and IFAST respective.
-**!
-**!	wizard options:
-**!	    "scale_num":1..
-**!	    "scale_denom":1..
-**!	        Rescale the image when read from JPEG data.
-**!		My (Mirar) version (6a) of jpeglib can only handle
-**!		1/1, 1/2, 1/4 and 1/8. 
-**!
-**!	</pre>
-**!
-**! note
-**!	Please read some about JPEG files. 
-*/
-
-static void image_jpeg_decode(INT32 args)
-{
-}
-
-#endif /* HAVE_JPEGLIB_H */
-
-/*** module init & exit & stuff *****************************************/
-
-void f_index(INT32 args);
-
-void pike_module_exit(void)
-{
-}
-
-void pike_module_init(void)
-{
-#ifdef HAVE_JPEGLIB_H
-   push_string(make_shared_string("Image"));
-   push_int(0);
-   SAFE_APPLY_MASTER("resolv",2);
-   if (sp[-1].type==T_OBJECT) 
-   {
-      push_string(make_shared_string("image"));
-      f_index(2);
-      image_program=program_from_svalue(sp-1);
-   }
-   pop_n_elems(1);
-
-   push_string(make_shared_string("Image"));
-   push_int(0);
-   SAFE_APPLY_MASTER("resolv",2);
-   if (sp[-1].type==T_OBJECT) 
-   {
-      push_string(make_shared_string("colortable"));
-      f_index(2);
-      image_program=program_from_svalue(sp-1);
-   }
-   pop_n_elems(1);
-
-   if (image_program && image_colortable)
-   {
-      add_function("decode",image_png__chunk,
-		   "function(string,string:string)",
-		   OPT_TRY_OPTIMIZE);
-      add_function("decode",image_png_decode,
-		   "function(string,void|mapping(string:int):object)",0);
-      add_function("encode",image_png_encode,
-		   "function(object,void|mapping(string:int):string)",
-		   OPT_TRY_OPTIMIZE);
-   }
-
-#endif /* HAVE_JPEGLIB_H */
-
-}
diff --git a/src/modules/_Image_PNG/testsuite.in b/src/modules/_Image_PNG/testsuite.in
deleted file mode 100644
index c6a82e1e24acb577813f68cac38eb8335a8d61f9..0000000000000000000000000000000000000000
--- a/src/modules/_Image_PNG/testsuite.in
+++ /dev/null
@@ -1,4 +0,0 @@
-// $Id: testsuite.in,v 1.3 1998/03/28 14:53:23 grubba Exp $
-cond([[ master()->resolv("_Image_PNG")->encode ]],
-[[
-]])