diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index 7f43552..74ffbe3 100644
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -2069,6 +2069,11 @@
     }
 
     private void destroyImpl() {
+        int drawGLFunction = nativeGetDrawGLFunction(mNativeClass);
+        ViewRootImpl viewRoot = mWebView.getViewRootImpl();
+        Log.d(LOGTAG, String.format("destroyImpl, functor %x, viewroot == null %b, isHWAccel %b",
+                                    drawGLFunction, (viewRoot == null),
+                                    mWebView.isHardwareAccelerated()));
         mCallbackProxy.blockMessages();
         clearHelpers();
         if (mListBoxDialog != null) {
@@ -5296,9 +5301,12 @@
 
         updateHwAccelerated();
 
+        int drawGLFunction = nativeGetDrawGLFunction(mNativeClass);
+        ViewRootImpl viewRoot = mWebView.getViewRootImpl();
+        Log.d(LOGTAG, String.format("destroyImpl, functor %x, viewroot == null %b, isHWAccel %b",
+                                    drawGLFunction, (viewRoot == null),
+                                    mWebView.isHardwareAccelerated()));
         if (mWebView.isHardwareAccelerated()) {
-            int drawGLFunction = nativeGetDrawGLFunction(mNativeClass);
-            ViewRootImpl viewRoot = mWebView.getViewRootImpl();
             if (drawGLFunction != 0 && viewRoot != null) {
                 viewRoot.detachFunctor(drawGLFunction);
             }
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 766a199..a6e7862 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -250,6 +250,7 @@
 }
 
 void OpenGLRenderer::detachFunctor(Functor* functor) {
+    ALOGD("opengl renderer %p detaching functor %p", this, functor);
     mFunctors.remove(functor);
 }
 
@@ -302,7 +303,7 @@
 
 status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
     interrupt();
-    detachFunctor(functor);
+    mFunctors.remove(functor);
 
     if (mDirtyClip) {
         setScissorFromClip();
