diff --git a/.gitattributes b/.gitattributes
index d8fb2c4ac07090dae4adc2207151fd72e1b3b0fe..ecca60cc6b4219136645e8f0492b08273c87c8ea 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -80,6 +80,7 @@ testfont binary
 /lib/modules/Stdio.pmod/Terminfo.pmod foreign_ident
 /lib/modules/Stdio.pmod/module.pmod foreign_ident
 /lib/modules/Yabu.pmod/module.pmod foreign_ident
+/lib/modules/_Image.pmod/module.pmod foreign_ident
 /lib/modules/error.pmod foreign_ident
 /man/hilfe.1 foreign_ident
 /man/pike.1 foreign_ident
diff --git a/lib/modules/_Image.pmod/module.pmod b/lib/modules/_Image.pmod/module.pmod
new file mode 100644
index 0000000000000000000000000000000000000000..d73995b240fe8f81d08d7cf8534598010e885691
--- /dev/null
+++ b/lib/modules/_Image.pmod/module.pmod
@@ -0,0 +1,47 @@
+//! module Image
+//! $Id: module.pmod,v 1.1 1999/05/28 12:40:11 mirar Exp $
+
+
+//! method object(Image.Image) load()
+//! method object(Image.Image) load(object file)
+//! method object(Image.Image) load(string filename)
+//! method object(Image.Layer) load_layer()
+//! method object(Image.Layer) load_layer(object file)
+//! method object(Image.Layer) load_layer(string filename)
+//! method mapping _load()
+//! method mapping _load(object file)
+//! method mapping _load(string filename)
+//!	Helper function to load an image from a file.
+//!	If no filename is given, Stdio.stdin is used.
+//! 	The result is the same as from the decode functions
+//!	in <ref>Image.ANY</ref>.
+//! note:
+//! 	All data is read, ie nothing happens until the file is closed.
+//!	Throws upon error.
+
+mapping _load(void|object|string file)
+{
+   if (!file) file=Stdio.stdin;
+   else if (stringp(file))
+   {
+      object f=Stdio.stdin();
+      if (!f->open(file,"r"))
+	 error("Image._load: Can't open %O for input.\n",file);
+      file=f;
+   }
+   return Image.ANY._decode(file->read());
+}
+
+object(Image.Layer) load_layer(void|object|string file)
+{
+   mapping m=_load(file);
+   if (m->alpha)
+      return Image.Layer( (["image":m->image,"alpha":m->alpha]) );
+   else
+      return Image.Layer( (["image":m->image]) );
+}
+
+object(Image.Image) load(void|object|string file)
+{
+   return _load(file)->image;
+}