EvilSOD,
Thanks for your response.
What you offered might be to far over my head, but this is what I put together:

function test()
{
var SPEED = 1;
//TARGET = get the vector of your target. eg. you.x
c_trace(holdIMAGE.x,camera.pan,ACTIVATE_SONAR);
//SPEED = set the speed of turning in 'degrees per frame'
//get TARGET's direction from ME

VECTOR pos, temp;
vec_set(pos.x, target.x);
//vec_to_angle(temp.x, vec_sub(pos.x, holdIMAGE.x));
vec_to_angle(camera.pan,vec_diff(NULL,holdIMAGE.x,camera.x));
//calculate the 'difference' from MY current direction
vec_sub(temp.x, camera.x);
//limit 'difference' change-per-frame
vec_set(temp.x, vector( clamp(ang(temp.x), -SPEED, SPEED), 0, 0));
//vec_scale(temp.x, time_step);
vec_add(camera.pan, temp.x);
wait(1);

}
This test() will zip me to the target image,
(holdIMAGE is the vector of the media_loop sprite which is an ENTITY, but not a you(? every time I tried it with you it would crash))


...but when I tried to put a 'while' statement to slow the turn down, it just kept spinning

function test_with_while()
{
var SPEED = 1;
//TARGET = get the vector of your target. eg. you.x
c_trace(holdIMAGE.x,camera.pan,ACTIVATE_SONAR);
//SPEED = set the speed of turning in 'degrees per frame'
//get TARGET's direction from ME

while(holdIMAGE.x != camera.x){
VECTOR pos, temp;
vec_set(pos.x, target.x);
//vec_to_angle(temp.x, vec_sub(pos.x, holdIMAGE.x));
vec_to_angle(camera.pan,vec_diff(NULL,holdIMAGE.x,camera.x));
//calculate the 'difference' from MY current direction
vec_sub(temp.x, camera.x);
//limit 'difference' change-per-frame
vec_set(temp.x, vector( clamp(ang(temp.x), -SPEED, SPEED), 0, 0));
//vec_scale(temp.x, time_step);
vec_add(camera.pan, temp.x);
wait(1);
}

}

If you have any sujestions on what I'm missing here, pleae offer, otherwise, thanks again for your input.

WINBERRY