Insertion error in Binary Search tree
===

    void BST::insert(string word)
    {
       insert(buildWord(word),root);
    }
      //Above is the gateway insertion function that calls the function below
      //in order to build the Node, then passes the Node into the insert function
      //below that
    
    Node* BST::buildWord(string word)
    {
       Node* newWord = new Node;
       newWord->left = NULL;
       newWord->right = NULL;
       newWord->word = normalizeString(word);

       return newWord;
    }
       //The normalizeString() returns a lowercase string, no problems there
 
    void BST::insert(Node* newWord,Node* wordPntr)
    {
      if(wordPntr == NULL)
      {
      cout << "wordPntr is NULL" << endl;
      wordPntr = newWord;
      cout << wordPntr->word << endl;
      }
      else if(newWord->word.compare(wordPntr->word) < 0)
      {
         cout << "word alphabetized before" << endl;
         insert(newWord,wordPntr->left);
      }
      else if(newWord->word.compare(wordPntr->word) > 0)
      {
         cout << "word alphabetized after" << endl;
         insert(newWord, wordPntr->right);
      }
      else
      {
         delete newWord;
      }
    }


So my problem is this: I call the gateway insert() externally (also no problems with the inflow of data) and every time it tells me that the root, or the initial Node* is NULL. But that should only be the case before the first insert. 
It's possible it is quite obvious, and I have just been staring too long. Any help would be appreciated.

Best