bug? unexpected variable binding



Hello,
there is an unwanted side effect:
( something like variable capture )

(%i1) foo(a):= bar(a)$
(%i2) bar(x):= a$
(%i3) foo(1);
(%o3) 				       1
(%i4) bar(1);
(%o4) 				       a
(%i5) a:2$
(%i6) foo(1);
(%o6) 				       1
(%i7) bar(1);
(%o7) 				       2

This should not be intended. A bug?
Volker