Ok - figured it out in about 5 mins with coffee...

I didn't add the original speed vector to it, - real code now looks like this:
Code:
vec_set(tempV1, tempGun);
vec_scale(tempV1, -1);
tempV2 = vec_dot(normal, tempV1);
vec_set(tempBounce, normal);
vec_scale(tempBounce, tempV2 * 2);  
vec_scale(tempV1, -1);	//back to speed
vec_add(tempBounce, tempV1); //add speed to 2*dot*normal.  //new Bounce


Hope this helps someone.