diff --git a/src/modules/_Image_JPEG/.cvsignore b/src/modules/_Image_JPEG/.cvsignore
new file mode 100644
index 0000000000000000000000000000000000000000..74d2b84c04da8871ce906855e791ceaf696432ff
--- /dev/null
+++ b/src/modules/_Image_JPEG/.cvsignore
@@ -0,0 +1,14 @@
+.pure
+Makefile
+config.log
+config.status
+configure
+dependencies
+linker_options
+modlist_headers
+modlist_segment
+module_testsuite
+stamp-h
+stamp-h.in
+zlib_machine.h
+zlib_machine.h.in 
diff --git a/src/modules/_Image_JPEG/.gitignore b/src/modules/_Image_JPEG/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8858fb05ed4a0c301389804575e9c6ba9b0d2f20
--- /dev/null
+++ b/src/modules/_Image_JPEG/.gitignore
@@ -0,0 +1,14 @@
+/.pure
+/Makefile
+/config.log
+/config.status
+/configure
+/dependencies
+/linker_options
+/modlist_headers
+/modlist_segment
+/module_testsuite
+/stamp-h
+/stamp-h.in
+/zlib_machine.h
+/zlib_machine.h.in
diff --git a/src/modules/_Image_JPEG/configure.in b/src/modules/_Image_JPEG/configure.in
index e8886756d42ead0f85845c6372f34d00f15b5332..3e85347158db2e725ba99f83d57236fd121452bf 100644
--- a/src/modules/_Image_JPEG/configure.in
+++ b/src/modules/_Image_JPEG/configure.in
@@ -9,7 +9,7 @@ if test x$with_jpeglib = xyes ; then
   if test $ac_cv_header_jpeglib_h = yes ; then
     AC_CHECK_LIB(jpeg, jpeg_destroy, [
       AC_DEFINE(HAVE_LIBJPEG) 
-      LIBS="${LIBS-} -lz"
+      LIBS="${LIBS-} -ljpeg"
       ], 
       AC_CHECK_LIB(jpeg, jpeg_destroy))
   fi
diff --git a/src/modules/_Image_JPEG/image_jpeg.c b/src/modules/_Image_JPEG/image_jpeg.c
index 0337f2ef6f9ebac05ffa8b3881caf6c5cef1ef41..913687ef97794470bd419853205be5b4037323e9 100644
--- a/src/modules/_Image_JPEG/image_jpeg.c
+++ b/src/modules/_Image_JPEG/image_jpeg.c
@@ -9,13 +9,71 @@ RCSID("$id: $");
 
 #ifdef HAVE_JPEGLIB_H
 
+#include "jpeglib.h"
 
+#include "pike_macros.h"
+#include "object.h"
+#include "constants.h"
+#include "interpret.h"
+#include "svalue.h"
+#include "threads.h"
+#include "array.h"
+#include "error.h"
+#include "threads.h"
+
+#include "../Image/image.h"
+
+/*
+**! module Image
+**! submodule JPEG
+*/
+
+void my_exit_error(struct jpeg_common_struct *cinfo)
+{
+}
+
+void my_emit_message(struct jpeg_common_struct *cinfo,int msg_level)
+{
+}
+
+void my_output_message(struct jpeg_common_struct *cinfo)
+{
+}
+
+void my_format_message(struct jpeg_common_struct *cinfo,char *buffer)
+{
+}
+
+void my_reset_error_mgr(struct jpeg_common_struct *cinfo)
+{
+}
+
+/*
+**! method object decode
+*/
+
+static void image_jpeg_decode(INT32 args)
+{
+   struct jpeg_decompress_struct cinfo;
+   struct jpeg_error_mgr jerr;
+   
+   struct jpeg_error_mgr my_error_mgr=
+   { my_exit_error,
+     my_emit_message,
+     my_output_message,
+     my_format_message,
+     my_reset_error_mgr
+   };
+   
+}
 
 #endif /* HAVE_JPEGLIB_H */
 
 
 void pike_module_exit(void)
 {
+   add_function("decode",image_jpeg_decode,
+		"function(string:object)",0);
 }
 
 void pike_module_init(void)