diff --git a/lib/modules/Graphics.pmod/Graph.pmod/test.pike b/lib/modules/Graphics.pmod/Graph.pmod/test.pike
index 6d6334a5aa32fe9cd44bd52f19ef450e72900d0f..068e848483bdab77d54859028e011daa13cd213a 100755
--- a/lib/modules/Graphics.pmod/Graph.pmod/test.pike
+++ b/lib/modules/Graphics.pmod/Graph.pmod/test.pike
@@ -7,28 +7,44 @@ import ".";
 constant data = ([ "data":
 		   ({ ({1.0}), ({2.0}), ({1.0}), ({2.0}) }),
                 ]);
+mapping verify;
 
-void main(int num, array(string) args)
+int main(int num, array(string) args)
 {
   int w = has_value(args, "-w")||has_value(args, "--write");
+  verify = data + ([]);
 
   Image.Image image;
 
   image = Graphics.Graph.bars(data);
   if(w) Stdio.write_file("bars.gif", Image.GIF.encode(image));
+  if(!equal(data,verify))
+    error("Destructive change of argument data.\n");
 
   image = Graphics.Graph.pie(data);
   if(w) Stdio.write_file("pie.gif", Image.GIF.encode(image));
+  if(!equal(data,verify))
+    error("Destructive change of argument data.\n");
 
   image = Graphics.Graph.sumbars(data);
   if(w) Stdio.write_file("sumbars.gif", Image.GIF.encode(image));
+  if(!equal(data,verify))
+    error("Destructive change of argument data.\n");
 
   image = Graphics.Graph.line(data);
   if(w) Stdio.write_file("line.gif", Image.GIF.encode(image));
+  if(!equal(data,verify))
+    error("Destructive change of argument data.\n");
 
   image = Graphics.Graph.norm(data);
   if(w) Stdio.write_file("norm.gif", Image.GIF.encode(image));
+  if(!equal(data,verify))
+    error("Destructive change of argument data.\n");
 
   image = Graphics.Graph.graph(data);
   if(w) Stdio.write_file("graph.gif", Image.GIF.encode(image));
+  if(!equal(data,verify))
+    error("Destructive change of argument data.\n");
+
+  return 0;
 }