diff --git a/src/processor/stackwalker_ppc64.cc b/src/processor/stackwalker_ppc64.cc
index 4fd9e740..fb2bac3c 100644
--- a/src/processor/stackwalker_ppc64.cc
+++ b/src/processor/stackwalker_ppc64.cc
@@ -32,6 +32,7 @@
 // See stackwalker_ppc64.h for documentation.
 
 
+#include "common/scoped_ptr.h"
 #include "processor/stackwalker_ppc64.h"
 #include "google_breakpad/processor/call_stack.h"
 #include "google_breakpad/processor/memory_region.h"
@@ -112,7 +113,7 @@ StackFrame* StackwalkerPPC64::GetCallerFrame(const CallStack* stack,
     return NULL;
   }
 
-  StackFramePPC64* frame = new StackFramePPC64();
+  scoped_ptr<StackFramePPC64> frame(new StackFramePPC64());
 
   frame->context = last_frame->context;
   frame->context.srr0 = instruction;
@@ -138,7 +139,7 @@ StackFrame* StackwalkerPPC64::GetCallerFrame(const CallStack* stack,
   // return address value may access the context.srr0 field of StackFramePPC64.
   frame->instruction = frame->context.srr0 - 8;
 
-  return frame;
+  return frame.release();
 }