anchor.diff:              St1 = add_error({bad_env_form,function}, St0),
               {Env0,St1}
       end;
  -pass_ewc_form([set,Pattern|Es], Env, St) ->
  -    pass_eval_set(Pattern, Es, Env, St);
  -pass_ewc_form(F, Env0, St0) ->
  +pass_ewc_form([set|Args], Env, St) ->
  +    pass_eval_set(Args, Env, St);
  +pass_ewc_form(F0, Env, St0) ->
       %% First expand enough to test top form, if so process again.
  -    case pass_expand_expr(F, Env0, St0, false) of
  -        {yes,Exp,St1} ->                        %Top form expanded
  -            pass_ewc_form(Exp, Env0, St1);
  +    case pass_expand_expr(F0, Env, St0, false) of
  +        {yes,F1,St1} ->                         %Top form expanded
  +            pass_ewc_form(F1, Env, St1);
           {no,F1,St1} ->                          %Not expanded
  -	    case pass_eval_expr(F1, Env0, St1) of
  -		{error,E} ->
  -		    {Env0,add_error({bad_env_form,{expression,E}}, St1)};
  -		_ -> {Env0,St1}			%Ignore value
  -	    end
  +            try
  +                lfe_eval:expr(F1, Env),
  +                {Env,St1}
  +            catch
  +                _:_ ->
  +                    {Env,add_error({bad_env_form,expression}, St1)}
  +            end
       end.
   
   function_arity([lambda,Args|_]) ->
  
positive.code:     {['progn'|Pfs1],Env1,St1};
  pass_form(['eval-when-compile'|Ewcs0], 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 = 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.
  
negative.code:     case pass_define_macro(Def, Env0, St0) of
          {yes,Env1,St1} -> {Env1,St1};
          no ->
              St1 = add_error({bad_env_form,macro}, St0),
              {Env0,St1}
      end;
  pass_ewc_form(['define-function',Name,Def], Env0, St0) ->
      case function_arity(Def) of
  