Why does this code work in one place but not another?

I have a class. Inside the class are two public functions. One calls this:

MovieClip(root)["bmc"+PuzzleGlobals.puzzleAbbrev].addChild(this);

And the other calls this:

MovieClip(root)["bmc"+PuzzleGlobals.puzzleAbbrev].addChild(fwgame);

fwgame is declared like this (before the addChild):

var fwgame:FireworkGame = new FireworkGame();

trace (fwgame); //traces correct object

trace (MovieClip(root)[“bmc”+PuzzleGlobals.puzzleAbbrev]); //returns a 1009 error

The first line of code works. The second line returns a 1009 error, “Cannot access a property or method of a null object reference.”

Why would it be doing that?