diff --git a/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike b/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike
index a95aac8bd71bcab097e41cea6322651925c732e8..cb11f059fcc8ffb3b63e47841d4b85c5bc7f644e 100644
--- a/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike
+++ b/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike
@@ -1479,6 +1479,7 @@ int evaluate_method(mixed q)
   return val;
 }
 
+// Polymorphic overloader.
 array generate_overload_func_for(array(FuncData) d,
 				 int indent,
 				 int min_possible_arg,
@@ -1580,6 +1581,11 @@ array generate_overload_func_for(array(FuncData) d,
 
   if(best_method == -1)
   {
+    if (min_args == max_args) {
+      error("Can't differentiate between %d implementations of %s().\n",
+	    sizeof(d), name);
+    }
+
     /* Switch on number of arguments */
     out+=({PC.Token(sprintf("%*nswitch(args) {\n",indent))});
     for(int a=min_args;a<=max_args;a++)