oh yeah, it probably crashes because bullet_speed is a vector, sry.
Then just write this line into your while loop:
bullet_speed.z = 40 * time_step;

Did you remove that polygon flag instruction?