Why won't this compile?



Hello,
 I have a simple function which works fine if I don't compile it.  But 
it crashes after compiling.
Any suggestions would be appreciated.

TIA,
 -sen


(%i99) build_info();

Maxima version: 5.18.1
Maxima build date: 16:8 6/27/2009
host type: i686-pc-linux-gnu
lisp-implementation-type: CMU Common Lisp
lisp-implementation-version: 19d Fedora Extras release 3.fc7 (19D)

(%o99)
fun(A,b,s,VF,x,h):= block([Y],
  Y[1]:  x,
  for i:2 thru s do
   Y[i]:  x + h*(sum(A[i,j]*VF(Y[j]),j,1,i-1)),
  x: expand(x + h*sum(b[i]*VF(Y[i]),i,1,s))
  )$

(%i101) block(A: matrix([1,1],[1,1]),  b: [1,1])$

(%i102) ans: fun(A,b,2,f,[1,1],.01);

(%o102) [1.02,1.02]
(%i103) compile(fun);

(%o103) [fun]
(%i104) ans: fun(A,b,2,f,[1,1],.01);

Subscript must be an integer:
i
 -- an error.  To debug this try debugmode(true);
(%i105)