diff --git a/videocodec/OMXVideoDecoderVP9HWR.cpp b/videocodec/OMXVideoDecoderVP9HWR.cpp
index ec97bac..8497f09 100644
--- a/videocodec/OMXVideoDecoderVP9HWR.cpp
+++ b/videocodec/OMXVideoDecoderVP9HWR.cpp
@@ -344,26 +344,13 @@
 
 OMX_ERRORTYPE OMXVideoDecoderVP9HWR::ProcessorDeinit(void)
 {
-    mOMXBufferHeaderTypePtrNum = 0;
-    memset(&mGraphicBufferParam, 0, sizeof(mGraphicBufferParam));
-
     destroyDecoder();
     unsigned int i = 0;
-
-    for (i = 0; i < MAX_NATIVE_BUFFER_COUNT; i++) {
-        delete extMIDs[i]->m_surface;
-        free(extMIDs[i]);
-    }
-
     if (mWorkingMode == GRAPHICBUFFER_MODE) {
         for (i = 0; i < mOMXBufferHeaderTypePtrNum; i++) {
             if (extMIDs[i]->m_surface != NULL) {
                 vaDestroySurfaces(mVADisplay, extMIDs[i]->m_surface, 1);
             }
-            if (extMIDs[i]->m_usrAddr != NULL) {
-                free(extMIDs[i]->m_usrAddr);
-                extMIDs[i]->m_usrAddr = NULL;
-            }
         }
 
     } else if (mWorkingMode == RAWDATA_MODE) {
@@ -374,6 +361,12 @@
             }
         }
     }
+    mOMXBufferHeaderTypePtrNum = 0;
+    memset(&mGraphicBufferParam, 0, sizeof(mGraphicBufferParam));
+    for (i = 0; i < MAX_NATIVE_BUFFER_COUNT; i++) {
+        delete extMIDs[i]->m_surface;
+        free(extMIDs[i]);
+    }
 
     return OMXComponentCodecBase::ProcessorDeinit();
 }
