cut/paste vs batch vs pipe -- inconsistent results



I am trying to use "let" rules to manipulate
limits of integrals.

The following works using cut/past into a terminal
running maxima command mode.  It also works when put in a 
file "ex1.mc" and invoked with

maxima < ex1.mc

It fails (or does something different than in the above cases, anyway,)
when invoked as 

batch ("ex1.mc");

from a maxima session.

The code..
===========
op: 'diff(v(t) * exp(f*t),t) * exp(-f*t) ;
op1: exp(f*t) * (op=u(t));

let (limit(v(t),t,0,plus),0);
let (limit(v(t),t,1,minus),v1);
let (limit(r(t),t,0,plus),0);
let (limit(r(t),t,1,minus),r1);
let (limit(exp(t) *v(t),t,0,plus),0);
let (limit(exp(t) *v(t),t,1,minus),exp(1) * v1);
let (limit(exp(f*t) *v(t),t,0,plus),0);
let (limit(exp(f*t) *v(t),t,1,minus),exp(f) * v1);

op2: ev(integrate(lhs(op1),t,0,1) = integrate(rhs(op1),t,0,1),limit);
op3: rat(letsimp(expand(op2)));
===============
In the first 2 cases, op3 comes out as


                                     1
                                    /
                             f      [    f t
(D12)/R/                   %E  v1 = I  %E    u(t) dt
                                    ]
                                    /
                                     0



In the "batch" version, I get


                                                        1   
                                                       /
                    f t                    f t         [    f t
(D13)/R/ (limit   %E    v(t)) - (limit   %E    v(t)) = I  %E    u(t) dt
          t -> 1-                t -> 0+               ]
                                                       /
                                                        0



The "let" rules don't seem to be applied.

Is this expected behavior, evidence of a bug, or a blunder on my part?

						Thanks
							Steve