diff --git a/src/core/gl_surface_qt.cpp b/src/core/gl_surface_qt.cpp
index cc2809af1561e55f33f7009dc3299eeb82f2db1b..bc1b8b399a62bb8a76623d85fac5b657d5128260 100644
--- a/src/core/gl_surface_qt.cpp
+++ b/src/core/gl_surface_qt.cpp
@@ -262,7 +262,7 @@ protected:
     ~GLSurfaceQtWGL();
 
 private:
-    PbufferGLSurfaceWGL *m_surfaceBuffer;
+    scoped_refptr<PbufferGLSurfaceWGL> m_surfaceBuffer;
     DISALLOW_COPY_AND_ASSIGN(GLSurfaceQtWGL);
 };
 
@@ -291,10 +291,7 @@ bool GLSurfaceQtWGL::Initialize()
 
 void GLSurfaceQtWGL::Destroy()
 {
-    if (m_surfaceBuffer) {
-        delete m_surfaceBuffer;
-        m_surfaceBuffer = 0;
-    }
+    m_surfaceBuffer = 0;
 }
 
 void *GLSurfaceQtWGL::GetHandle()