Adding A Context Command To The Shelf When Loading Plug-in

Hello everyone,
I have written a tool with API, and I try to use mel to create a toolbutton in the shelf.
My purpose is somehow like the "lassoToolCreateUI.mel" does in "lassoTool" example.
When I load my plug-in, it would call the proc in mel to create a toolbutton to the shelf.

I just do the same thing as "lassoToolCreateUI.mel" does, and there is one problem about optionVar...

CODE
global proc lassoToolCreateUI()
{
    string $lassoToolContextName;
    string $lassoToolToolButtonName;

    if (optionVar -exists lassoToolContextName) {
        print "Oh NO!!";  // always return here in maya 8.5!!!
        return;
    }

    $lassoToolContextName = eval "lassoToolContext";
    $lassoToolToolButtonName = toolButton
        -doubleClickCommand "toolPropertyWindow"
        -cl toolCluster
        -p  Shelf1
        -t  $lassoToolContextName
        -i1 "lassoTool.xpm"
;

    optionVar -sv lassoToolContextName $lassoToolContextName
              -sv lassoToolToolButtonName $lassoToolToolButtonName;
}

In maya 7.0, this example works fine.
However, in maya 8.5, this proc always return after checking the existence of lassoToolContextName...
Why does it happen? When this proc is called at the first time, the argument lassoToolContextName should not exist, why optionVar returns true for the query?
Do I set something wrong in maya 8.5?

Thanks in advance~
Ryan