subst problems



Does anyone know a better command than subst for changing variables in expressions not containing integrate?  I can't get subst to work right sometimes.

(%i1) 2*p+2*m*k=y$
(%i2) subst(p, m*k);
(%o2) 2*p+2*m*k=y

It has no affect.

Rich