first hunk: from commit f6030a3204a9b87e9b346e6eff4ce1117382fc86

--- lib/m4sugar/m4sugar.m4.orig	Fri Jul  2 19:22:08 2010
+++ lib/m4sugar/m4sugar.m4	Tue Mar 29 10:59:54 2011
@@ -1973,7 +1973,7 @@ m4_define([m4_defun],
 # m4_defun'd, we can add a parameter, similar to the third parameter
 # to m4_defun.
 m4_define([m4_defun_init],
-[m4_define([$1], [$3])m4_defun([$1],
+[m4_define([$1], [$3[]])m4_defun([$1],
    [$2[]_m4_popdef(]m4_dquote($[0])[)m4_indir(]m4_dquote($[0])dnl
 [m4_if(]m4_dquote($[#])[, [0], [], ]m4_dquote([,$]@)[))], [m4_pushdef])])
 
@@ -2126,6 +2126,7 @@ m4_define([m4_provide],
 [m4_ifdef([m4_provide($1)], [],
 [m4_set_add([_m4_provide], [$1], [m4_define([m4_provide($1)],
   m4_ifdef([_m4_diverting], [_m4_defn([_m4_diverting])]))])])])
+m4_provide([AM_SANITY_CHECK])
 
 
 # m4_provide_if(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
@@ -3277,13 +3278,10 @@ m4_pattern_forbid([^dnl$])
 #
 # Use the raw builtin to avoid tripping up include tracing.
 # Meanwhile, avoid m4_copy, since it temporarily undefines m4_defn.
-m4_ifdef([__m4_version__],
-[m4_debugmode([+do])
 m4_define([m4_defn], _m4_defn([_m4_defn]))
 m4_define([m4_dumpdef], _m4_defn([_m4_dumpdef]))
 m4_define([m4_popdef], _m4_defn([_m4_popdef]))
-m4_define([m4_undefine], _m4_defn([_m4_undefine]))],
-[m4_builtin([include], [m4sugar/foreach.m4])
+m4_define([m4_undefine], _m4_defn([_m4_undefine]))
 m4_wrap_lifo([m4_if(__line__, [0], [m4_pushdef([m4_location],
 ]]m4_dquote(m4_dquote(m4_dquote(__file__:__line__)))[[)])])])
 
