anchor.diff:      {Pfs1,Env1,St1} = pass_forms(Pfs0, Env0, St0),
       {['progn'|Pfs1],Env1,St1};
   pass_form(['eval-when-compile'|Ewcs0], Env0, St0) ->
  -    {Ecws1,Env1,St1} = pass_ewc(Ewcs0, Env0, St0),
  -    {['progn'|Ecws1],Env1,St1};
  -pass_form(['define-macro'|Def]=F, Env0, St0) ->
  +    {Env1,St1} = pass_ewc(Ewcs0, Env0, St0),
  +    {['progn'],Env1,St1};			%Must return a valid form
  +pass_form(['define-macro'|Def], Env0, St0) ->
       case pass_define_macro(Def, Env0, St0) of
           {yes,Env1,St1} ->
               {['progn'],Env1,St1};               %Must return a valid form
  -        {no,St1} ->
  -            %% Ignore it and pass it on to generate error later.
  -            {F,Env0,St1}
  +        no ->
  +	    St1 = add_error({bad_form,macro}, St0),
  +            {['progn'],Env0,St1}		%Must return a valid form
       end;
   pass_form(F, Env, St0) ->
       %% First expand enough to test top form, if so process again.
  
positive.code: %% -compile([export_all]).
  
  -import(lfe_env, [new/0,add_fbinding/4,is_fbound/3,
                    add_mbinding/3,is_mbound/2,get_mbinding/2]).
  
  -import(lfe_lib, [is_symb_list/1,is_proper_list/1]).
  
  
negative.code: pass_expand_expr(E, _, St, _) -> {no,E,St}.
  
  %% pass_define_macro([Name,Def], Line, Env, State) ->
  %%     {yes,Env,State} | no.
  %%  Add the macro definition to the environment. We do a small format
  %%  check.
  
  