--- old/prism-d3d-native/src/D3DContext.cc	2012-02-18 02:09:23.415080900 +0400
+++ new/prism-d3d-native/src/D3DContext.cc	2012-02-18 02:09:23.172067000 +0400
@@ -210,11 +210,8 @@
     pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
 
     if (pResourceMgr == NULL) {
-        res = D3DResourceManager::CreateInstance(this, &pResourceMgr);
-    } else {
-        res = pResourceMgr->Init(this);
+        pResourceMgr = D3DResourceManager::CreateInstance(this);
     }
-    RETURN_STATUS_IF_FAILED(res);
 
     D3DUtils_SetIdentityMatrix(&world);
     D3DUtils_SetIdentityMatrix(&projection);
--- old/prism-d3d-native/src/D3DResourceManager.cc	2012-02-18 02:09:27.662323800 +0400
+++ new/prism-d3d-native/src/D3DResourceManager.cc	2012-02-18 02:09:27.428310400 +0400
@@ -166,43 +166,17 @@
 }
 
 
-HRESULT
-D3DResourceManager::CreateInstance(D3DContext *pCtx,
-                                   D3DResourceManager** ppResourceMgr)
-{
-    HRESULT res;
-
+D3DResourceManager* D3DResourceManager::CreateInstance(D3DContext *pCtx) {
     TraceLn(NWT_TRACE_INFO, "D3DRM::CreateInstance");
 
-    *ppResourceMgr = new D3DResourceManager();
-    if (FAILED(res = (*ppResourceMgr)->Init(pCtx))) {
-        delete *ppResourceMgr;
-        *ppResourceMgr = NULL;
-    }
-    return res;
+    return new D3DResourceManager(pCtx);
 }
 
-D3DResourceManager::D3DResourceManager()
-{
-    TraceLn(NWT_TRACE_INFO, "D3DRM::D3DRM");
-
-    this->pCtx = NULL;
+D3DResourceManager::D3DResourceManager(D3DContext *pCtx) {
+    this->pCtx = pCtx;
     this->pHead = NULL;
 }
 
-HRESULT
-D3DResourceManager::Init(D3DContext *pCtx)
-{
-    TraceLn1(NWT_TRACE_INFO, "D3DRM::Init pCtx=%x", pCtx);
-    if (this->pCtx != pCtx ||
-        (this->pCtx != NULL &&
-         this->pCtx->Get3DDevice() != pCtx->Get3DDevice()))
-    {
-        ReleaseAll();
-    }
-    this->pCtx = pCtx;
-    return S_OK;
-}
 
 D3DResourceManager::~D3DResourceManager()
 {
--- old/prism-d3d-native/src/D3DResourceManager.h	2012-02-18 02:09:31.985571100 +0400
+++ new/prism-d3d-native/src/D3DResourceManager.h	2012-02-18 02:09:31.746557400 +0400
@@ -171,13 +171,11 @@
  * via the ReleaseResource() method so that they can be stopped being managed.
  */
 class D3DResourceManager {
-	 
+
 public:
            
-    HRESULT Init(D3DContext *pCtx);
-
-	//  delete this instance
-	~D3DResourceManager();
+    //  delete this instance
+   ~D3DResourceManager();
 
     // Releases and deletes all resources managed by this manager.
     void ReleaseAll();
@@ -207,11 +205,10 @@
 
     HRESULT CreateVertexBuffer(D3DVertexBufferResource **ppVB);
 
-static
-    HRESULT CreateInstance(D3DContext *pCtx, D3DResourceManager **ppResMgr);
+    static D3DResourceManager* CreateInstance(D3DContext *pCtx);
 
 private:
-    D3DResourceManager();
+    D3DResourceManager(D3DContext *pCtx);
 
     HRESULT CreateOSPSurface(UINT width, UINT height,
                              D3DFORMAT fmt,