А это точно синглтон ? Такое я сам никогда не использовал - просто
не представляю "зачем". Однако, классический Singleton выглядит
так: 
Singleton.h 
class Singleton 
{ 
 
  private:
static Singleton * p_instance; 
  Singleton() {} Singleton( const
Singleton& ); 
  Singleton& operator=( Singleton& ); 
  public: static
Singleton * getInstance() 
  { 
     if(!p_instance)           
            p_instance = new Singleton(); 
     return p_instance; 
  } 
}; 
// Singleton.cpp 
#include "Singleton.h" 
Singleton* Singleton::p_instance = 0; 
Такая проверка у тебя есть ? 
.. 
if(!p_instance) p_instance = new Singleton();
..
http://cpp-reference.ru/patterns/creational-patterns/singleton/