Index: /trunk/src/VBox/Main/include/VirtualBoxClientImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/VirtualBoxClientImpl.h	(revision 62257)
+++ /trunk/src/VBox/Main/include/VirtualBoxClientImpl.h	(revision 62258)
@@ -34,5 +34,5 @@
 {
 public:
-    DECLARE_CLASSFACTORY()
+    DECLARE_CLASSFACTORY_SINGLETON(VirtualBoxClient)
 
     // Do not use any ATL registry support.
Index: /trunk/src/VBox/Main/src-client/xpcom/module.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/xpcom/module.cpp	(revision 62257)
+++ /trunk/src/VBox/Main/src-client/xpcom/module.cpp	(revision 62258)
@@ -6,5 +6,5 @@
 
 /*
- * Copyright (C) 2006-2015 Oracle Corporation
+ * Copyright (C) 2006-2016 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -62,15 +62,18 @@
  *  Suitable for IN-PROC components.
  */
-class SessionClassFactory : public Session
+class VirtualBoxClientClassFactory : public VirtualBoxClient
 {
 public:
-    virtual ~SessionClassFactory() {
+    virtual ~VirtualBoxClientClassFactory()
+    {
         FinalRelease();
         instance = 0;
     }
-    static nsresult getInstance (Session **inst) {
+    static nsresult GetInstance(VirtualBoxClient **inst)
+    {
         int rv = NS_OK;
-        if (instance == 0) {
-            instance = new SessionClassFactory();
+        if (instance == 0)
+        {
+            instance = new VirtualBoxClientClassFactory();
             if (instance) {
                 instance->AddRef(); // protect FinalConstruct()
@@ -89,5 +92,6 @@
         return rv;
     }
-    static nsresult releaseInstance () {
+    static nsresult FactoryDestructor()
+    {
         if (instance)
             instance->Release();
@@ -96,18 +100,13 @@
 
 private:
-    static Session *instance;
+    static VirtualBoxClient *instance;
 };
 
-/** @note this is for singleton; disabled for now */
-//
-//Session *SessionClassFactory::instance = 0;
-//
-//NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR_WITH_RC (
-//    Session, SessionClassFactory::getInstance
-//)
+VirtualBoxClient *VirtualBoxClientClassFactory::instance = nsnull;
+
 
 NS_GENERIC_FACTORY_CONSTRUCTOR_WITH_RC(Session)
 
-NS_GENERIC_FACTORY_CONSTRUCTOR_WITH_RC(VirtualBoxClient)
+NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR_WITH_RC(VirtualBoxClient, VirtualBoxClientClassFactory::GetInstance)
 
 /**
@@ -123,6 +122,4 @@
         NULL, // registration function
         NULL, // deregistration function
-/** @note this is for singleton; disabled for now */
-//        SessionClassFactory::releaseInstance,
         NULL, // destructor function
         NS_CI_INTERFACE_GETTER_NAME(SessionWrap), // interfaces function
@@ -136,5 +133,5 @@
         NULL, // registration function
         NULL, // deregistration function
-        NULL, // destructor function
+        VirtualBoxClientClassFactory::FactoryDestructor, // destructor function
         NS_CI_INTERFACE_GETTER_NAME(VirtualBoxClientWrap), // interfaces function
         NULL, // language helper
