Oh, here's another one. calling: allqueue(REDRAWVIEW3D, 0); at the end of Scene.link() will make sure you've updated the 3dView to incorporate the new changes to the scene. This is the reason objects don't always get draw when they're being linked to scene.