Stop bullet objects from being drawn at the wrong angle?

So I've got a bullet object that uses a bullet sprite. The sprite has only one sub-image, the bullet facing right. I've set it in the step event so that the bullet's angle changes with its direction, and when the bullet is created by the shooting script called by the player, it initializes the bullet's direction to be the same as the player's at the time of the shot. However, for the first frame of its existence, the bullet is facing right, before the angle adjusts to the correct direction. For smaller bullets this is barely noticable, but for larger projectiles this becomes very apparent. Here's how I tried to fix this but it's not working:

//SNIPPET FROM SHOOTING SCRIPT
var bullet;
bullet = instance_create_layer(x+offsetX,y+offsetY, "Instances", o_bullet);
bullet.dir = dir; // init the bullet's dir to be the same as player's at time time of the shot

//o_bullet CREATE EVENT
initialDir = -1;
dir = initialDir;

//STEP EVENT
image_angle = dir;

//DRAW EVENT
if(dir != initialDir){
draw_self();
}