diff --git a/gpu/include/GrContext.h b/gpu/include/GrContext.h
index 0671701..44e0c04 100644
--- a/gpu/include/GrContext.h
+++ b/gpu/include/GrContext.h
@@ -12,16 +12,20 @@
 
 #include "GrClip.h"
 #include "GrPaint.h"
-#include "GrPathRenderer.h"
 
+class GrDefaultPathRenderer;
+class GrDrawTarget;
 class GrFontCache;
 class GrGpu;
 struct GrGpuStats;
+class GrIndexBuffer;
 class GrIndexBufferAllocPool;
 class GrInOrderDrawBuffer;
+class GrPathRenderer;
 class GrResourceEntry;
 class GrResourceCache;
 class GrStencilBuffer;
+class GrVertexBuffer;
 class GrVertexBufferAllocPool;
 
 
@@ -551,7 +555,7 @@
     GrFontCache*        fFontCache;
 
     GrPathRenderer*         fCustomPathRenderer;
-    GrDefaultPathRenderer   fDefaultPathRenderer;
+    GrDefaultPathRenderer*  fDefaultPathRenderer;
 
     GrVertexBufferAllocPool*    fDrawBufferVBAllocPool;
     GrIndexBufferAllocPool*     fDrawBufferIBAllocPool;
diff --git a/gpu/src/GrContext.cpp b/gpu/src/GrContext.cpp
index d1de734..b3e902d 100644
--- a/gpu/src/GrContext.cpp
+++ b/gpu/src/GrContext.cpp
@@ -61,6 +61,7 @@
     delete fDrawBuffer;
     delete fDrawBufferVBAllocPool;
     delete fDrawBufferIBAllocPool;
+    GrSafeUnref(fDefaultPathRenderer);
     GrSafeUnref(fCustomPathRenderer);
     GrSafeUnref(fAAFillRectIndexBuffer);
     GrSafeUnref(fAAStrokeRectIndexBuffer);
@@ -1706,14 +1707,14 @@
     fGpu->printStats();
 }
 
-GrContext::GrContext(GrGpu* gpu) :
-    fDefaultPathRenderer(gpu->supportsTwoSidedStencil(),
-                         gpu->supportsStencilWrapOps()) {
-
+GrContext::GrContext(GrGpu* gpu) {
     fGpu = gpu;
     fGpu->ref();
     fGpu->setContext(this);
 
+    fDefaultPathRenderer = 
+        new GrDefaultPathRenderer(gpu->supportsTwoSidedStencil(),
+                                  gpu->supportsStencilWrapOps());
     fCustomPathRenderer = GrPathRenderer::CreatePathRenderer();
     fGpu->setClipPathRenderer(fCustomPathRenderer);
 
@@ -1785,8 +1786,8 @@
         fCustomPathRenderer->canDrawPath(path, fill)) {
         return fCustomPathRenderer;
     } else {
-        GrAssert(fDefaultPathRenderer.canDrawPath(path, fill));
-        return &fDefaultPathRenderer;
+        GrAssert(fDefaultPathRenderer->canDrawPath(path, fill));
+        return fDefaultPathRenderer;
     }
 }
 
diff --git a/gpu/include/GrDrawTarget.h b/gpu/src/GrDrawTarget.h
similarity index 100%
rename from gpu/include/GrDrawTarget.h
rename to gpu/src/GrDrawTarget.h
diff --git a/gpu/src/GrGpu.cpp b/gpu/src/GrGpu.cpp
index 53b5c03..cde851d 100644
--- a/gpu/src/GrGpu.cpp
+++ b/gpu/src/GrGpu.cpp
@@ -62,6 +62,8 @@
 
 GrGpu::~GrGpu() {
     this->releaseResources();
+    GrSafeUnref(fDefaultPathRenderer);
+    GrSafeUnref(fClientPathRenderer);
 }
 
 void GrGpu::abandonResources() {
diff --git a/gpu/include/GrPathRenderer.h b/gpu/src/GrPathRenderer.h
similarity index 100%
rename from gpu/include/GrPathRenderer.h
rename to gpu/src/GrPathRenderer.h
diff --git a/gpu/include/GrTesselatedPathRenderer.h b/gpu/src/GrTesselatedPathRenderer.h
similarity index 100%
rename from gpu/include/GrTesselatedPathRenderer.h
rename to gpu/src/GrTesselatedPathRenderer.h
diff --git a/gyp/gpu.gyp b/gyp/gpu.gyp
index 5869dca..11e39a7 100644
--- a/gyp/gpu.gyp
+++ b/gyp/gpu.gyp
@@ -87,7 +87,6 @@
         '../gpu/include/GrColor.h',
         '../gpu/include/GrConfig.h',
         '../gpu/include/GrContext.h',
-        '../gpu/include/GrDrawTarget.h',
         '../gpu/include/GrFontScaler.h',
         '../gpu/include/GrGLConfig.h',
         '../gpu/include/GrGLConfig_chrome.h',
@@ -102,7 +101,6 @@
         '../gpu/include/GrNoncopyable.h',
         '../gpu/include/GrPaint.h',
         '../gpu/include/GrPath.h',
-        '../gpu/include/GrPathRenderer.h',
         '../gpu/include/GrPathSink.h',
         '../gpu/include/GrPlotMgr.h',
         '../gpu/include/GrPoint.h',
@@ -120,7 +118,6 @@
         '../gpu/include/GrTArray.h',
         '../gpu/include/GrTBSearch.h',
         '../gpu/include/GrTDArray.h',
-        '../gpu/include/GrTesselatedPathRenderer.h',
         '../gpu/include/GrTextContext.h',
         '../gpu/include/GrTextStrike.h',
         '../gpu/include/GrTexture.h',
@@ -138,6 +135,7 @@
         '../gpu/src/GrContext.cpp',
         '../gpu/src/GrCreatePathRenderer_none.cpp',
         '../gpu/src/GrDrawTarget.cpp',
+        '../gpu/src/GrDrawTarget.h',
         '../gpu/src/GrGeometryBuffer.h',
         '../gpu/src/GrGLDefaultInterface_none.cpp',
         '../gpu/src/GrGLIndexBuffer.cpp',
@@ -169,6 +167,7 @@
         '../gpu/src/GrMatrix.cpp',
         '../gpu/src/GrMemory.cpp',
         '../gpu/src/GrPathRenderer.cpp',
+        '../gpu/src/GrPathRenderer.h',
         '../gpu/src/GrPathUtils.cpp',
         '../gpu/src/GrPathUtils.h',
         '../gpu/src/GrRectanizer.cpp',
@@ -181,6 +180,7 @@
         '../gpu/src/GrStencilBuffer.cpp',
         '../gpu/src/GrStencilBuffer.h',
         '../gpu/src/GrTesselatedPathRenderer.cpp',
+        '../gpu/src/GrTesselatedPathRenderer.h',
         '../gpu/src/GrTextContext.cpp',
         '../gpu/src/GrTextStrike.cpp',
         '../gpu/src/GrTextStrike_impl.h',
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index e450a95..c523ad8 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -24,6 +24,7 @@
 #include "SkTypeface.h"
 
 #include "GrGLInterface.h"
+#include "GrRenderTarget.h"
 
 #include "SkPDFDevice.h"
 #include "SkPDFDocument.h"
