Why not use vec_accelerate?

Code:

vec_accelerate(vecDist, my->speedX, my->forceX, Afriction);
vec_accelerate(vecAdist, my->aspeedX, my->aforceX, Afriction);
c_move(me, vecDist, vecAdist, IGNORE_ME|IGNORE_YOU|IGNORE_PASSABLE|USE_AABB|GLIDE);



IMHO the upper solution simply is wrong, as you're accelerating the same variable TWICE per frame. Did you check consistency with different framerates?

The manual lsits the following implementation for accelerate:
Code:
Algorithm:
if (friction == 0)
distance = speed*time + 0.5*accel*time*time
speed = speed + accel*time
else
distance = accel*time/friction + (speed-accel/friction)*(1-exp(-friction*time))/friction
speed = accel/friction + (speed-accel/friction)*exp(-friction*time)



By doing this twice per frame on the same variable, you mess up time correction.