diff --git a/rsDebugHelper.h b/rsDebugHelper.h
new file mode 100644
index 0000000..2ac9afd
--- /dev/null
+++ b/rsDebugHelper.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_RS_DEBUG_HELPER_H
+#define ANDROID_RS_DEBUG_HELPER_H
+
+#include "rsUtils.h"
+#include "rsDefines.h"
+
+#ifndef RS_SERVER
+// This shouldn't ever be defined with RS_SERVER
+#define RS_OBJECT_DEBUG 0
+#endif
+
+#if RS_OBJECT_DEBUG
+#include <utils/CallStack.h>
+#endif
+
+namespace android {
+namespace renderscript {
+
+#if RS_OBJECT_DEBUG
+
+class DebugHelper {
+public:
+    DebugHelper() {
+        mStack.update(2);
+    }
+
+    void dump() {
+        mStack.dump();
+    }
+
+private:
+    CallStack mStack;
+};
+
+#else
+
+class DebugHelper {
+public:
+    DebugHelper() { }
+};
+
+#endif
+
+}  // namespace renderscript
+}  // namespace android
+
+#endif //ANDROID_RS_DEBUG_HELPER_H
+
diff --git a/rsObjectBase.cpp b/rsObjectBase.cpp
index b66bb73..17064a5 100644
--- a/rsObjectBase.cpp
+++ b/rsObjectBase.cpp
@@ -28,9 +28,10 @@
     mRSC = rsc;
     mNext = NULL;
     mPrev = NULL;
+    mDH = NULL;
 
 #if RS_OBJECT_DEBUG
-    mStack.update(2);
+    mDH = new DebugHelper();
 #endif
 
     rsAssert(rsc);
@@ -41,7 +42,9 @@
 ObjectBase::~ObjectBase() {
     //ALOGV("~ObjectBase %p  ref %i,%i", this, mUserRefCount, mSysRefCount);
 #if RS_OBJECT_DEBUG
-    mStack.dump();
+    mDH->dump();
+    delete mDH;
+    mDH = NULL;
 #endif
 
     if (mPrev || mNext) {
@@ -113,7 +116,7 @@
 #if RS_OBJECT_DEBUG
     //ALOGV("ObjectBase %p decU ref %i, %i", this, mUserRefCount, mSysRefCount);
     if (mUserRefCount <= 0) {
-        mStack.dump();
+        mDH->dump();
     }
 #endif
 
diff --git a/rsObjectBase.h b/rsObjectBase.h
index a111e0c..470c334 100644
--- a/rsObjectBase.h
+++ b/rsObjectBase.h
@@ -19,12 +19,7 @@
 
 #include "rsUtils.h"
 #include "rsDefines.h"
-
-#define RS_OBJECT_DEBUG 0
-
-#ifndef RS_SERVER
-#include <utils/CallStack.h>
-#endif
+#include "rsDebugHelper.h"
 
 namespace android {
 namespace renderscript {
@@ -91,10 +86,7 @@
     mutable const ObjectBase * mPrev;
     mutable const ObjectBase * mNext;
 
-#if RS_OBJECT_DEBUG
-    CallStack mStack;
-#endif
-
+    DebugHelper *mDH;
 };
 
 template<class T>
