restoreDynamics -is there a bug?

Hello
This is a cannon explosion test I created as the basis for a game. The Ball is a child to the cannon which means that no matter where the cannon is looking at, the ball will come out moving in its local X axis. If I press the left mouse button the cannon will fire. However, I initially stated the ball to be a dynamic actor, so when I enter the game it falls inside the cannon. This, although annoying, is not a big deal when I fire parallel to the ground. But when I raise the cannon the ball falls in a very faulty way. I thought i should deactivate the “Dynamic” flag and activate it at will, which is exactly before it launches, so it won’t have time to fall.
Now, the problem; the owner.restoreDynamics() command in the script doesn’t work. I read in another forum that this is a bug at the experimental versions (I used a preview 24 of v2.42) but it didn’t work at v2.41 either. Is this really a bug or do I do something wrong? My Python experience is very basic.

check the file
http://www.yourfilehost.com/media.php?cat=other&file=Cannons.blend

Wouldn’t it be a lot easier to use the AddObject actuator?

I tried that but I couldn’t get it to work. Maybe someone could give me a “hands on” example on the file I provide. And I still don’t know why the restoreDynamics doesn’t work…