diff --git a/experimental/PdfViewer/SkPdfFont.h b/experimental/PdfViewer/SkPdfFont.h
index 71f98db..4a66edf 100644
--- a/experimental/PdfViewer/SkPdfFont.h
+++ b/experimental/PdfViewer/SkPdfFont.h
@@ -12,7 +12,7 @@
 #ifndef SkPdfFont_DEFINED
 #define SkPdfFont_DEFINED
 
-#include "SkPdfGraphicsState.h"
+#include "SkPdfContext.h"
 #include "SkPdfHeaders_autogen.h"
 #include "SkPdfMapper_autogen.h"
 #include "SkPdfUtils.h"
diff --git a/experimental/PdfViewer/SkPdfGraphicsState.cpp b/experimental/PdfViewer/SkPdfGraphicsState.cpp
index 2a01b14..b52f22c 100644
--- a/experimental/PdfViewer/SkPdfGraphicsState.cpp
+++ b/experimental/PdfViewer/SkPdfGraphicsState.cpp
@@ -8,16 +8,6 @@
 #include "SkPdfGraphicsState.h"
 
 #include "SkDashPathEffect.h"
-#include "SkPdfNativeTokenizer.h"
-
-SkPdfContext::SkPdfContext(SkPdfNativeDoc* doc)
-    : fPdfDoc(doc)
-    , fTmpPageAllocator(new SkPdfAllocator()) {
-}
-
-SkPdfContext::~SkPdfContext() {
-    delete fTmpPageAllocator;
-}
 
 void SkPdfGraphicsState::applyGraphicsState(SkPaint* paint, bool stroking) {
     if (stroking) {
diff --git a/experimental/PdfViewer/SkPdfGraphicsState.h b/experimental/PdfViewer/SkPdfGraphicsState.h
index 00bfeef..029633d 100644
--- a/experimental/PdfViewer/SkPdfGraphicsState.h
+++ b/experimental/PdfViewer/SkPdfGraphicsState.h
@@ -12,12 +12,8 @@
 #include "SkPaint.h"
 #include "SkPdfConfig.h"
 #include "SkPdfUtils.h"
-#include "SkTDStackNester.h"
 
-class SkPdfAllocator;
 class SkPdfFont;
-class SkPdfDoc;
-class SkPdfNativeDoc;
 class SkPdfNativeObject;
 class SkPdfResourceDictionary;
 class SkPdfSoftMaskDictionary;
@@ -80,7 +76,7 @@
     }
 };
 
-/** \class SkTDStackNester
+/**
  *   Operates on stroking or non-stroking properties.
  */
 struct SkPdfGraphicsState {
@@ -355,20 +351,4 @@
     void applyGraphicsState(SkPaint* paint, bool stroking);
 };
 
-/** \class SkPdfContext
- *   The context of the drawing. The document we draw from, the current stack of objects, ...
- */
-class SkPdfContext {
-public:
-    SkTDStackNester<SkPdfNativeObject*>  fObjectStack;
-    SkTDStackNester<SkPdfGraphicsState>  fStateStack;
-    SkPdfGraphicsState              fGraphicsState;
-    SkPdfNativeDoc*                 fPdfDoc;
-    SkPdfAllocator*                 fTmpPageAllocator;
-    SkMatrix                        fOriginalMatrix;
-
-    SkPdfContext(SkPdfNativeDoc* doc);
-    ~SkPdfContext();
-};
-
 #endif  // SkPdfGraphicsState_DEFINED
diff --git a/experimental/PdfViewer/inc/SkPdfContext.h b/experimental/PdfViewer/inc/SkPdfContext.h
new file mode 100644
index 0000000..48c5472
--- /dev/null
+++ b/experimental/PdfViewer/inc/SkPdfContext.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkMatrix.h"
+#include "SkTDStackNester.h"
+#include "SkPdfGraphicsState.h"
+
+class SkPdfAllocator;
+class SkPdfNativeDoc;
+class SkPdfNativeObject;
+
+/** \class SkPdfContext
+ *   The context of the drawing. The document we draw from, the current stack of objects, ...
+ */
+class SkPdfContext {
+public:
+    SkTDStackNester<SkPdfNativeObject*>  fObjectStack;
+    SkTDStackNester<SkPdfGraphicsState>  fStateStack;
+    SkPdfGraphicsState              fGraphicsState;
+    SkPdfNativeDoc*                 fPdfDoc;
+    SkPdfAllocator*                 fTmpPageAllocator;
+    SkMatrix                        fOriginalMatrix;
+
+    SkPdfContext(SkPdfNativeDoc* doc);
+    ~SkPdfContext();
+};
diff --git a/experimental/PdfViewer/src/SkPdfContext.cpp b/experimental/PdfViewer/src/SkPdfContext.cpp
new file mode 100644
index 0000000..2ce01e7
--- /dev/null
+++ b/experimental/PdfViewer/src/SkPdfContext.cpp
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkPdfContext.h"
+#include "SkPdfNativeTokenizer.h"
+
+SkPdfContext::SkPdfContext(SkPdfNativeDoc* doc)
+    : fPdfDoc(doc)
+    , fTmpPageAllocator(new SkPdfAllocator()) {
+}
+
+SkPdfContext::~SkPdfContext() {
+    delete fTmpPageAllocator;
+}
diff --git a/gyp/pdfviewer_lib.gyp b/gyp/pdfviewer_lib.gyp
index fd6d0fc..de9f057 100644
--- a/gyp/pdfviewer_lib.gyp
+++ b/gyp/pdfviewer_lib.gyp
@@ -11,8 +11,10 @@
       'sources': [
         # FIXME: Include directory is named "inc" (instead of "include") in
         # order to not be considered the public API.
+        '../experimental/PdfViewer/inc/SkPdfContext.h',
         '../experimental/PdfViewer/inc/SkPdfRenderer.h',
 
+        '../experimental/PdfViewer/src/SkPdfContext.cpp',
         '../experimental/PdfViewer/src/SkPdfRenderer.cpp',
         '../experimental/PdfViewer/src/SkTDStackNester.h',
 
