diff --git a/samplecode/SampleComplexClip.cpp b/samplecode/SampleComplexClip.cpp
index 8aee1bf..c7c4896 100644
--- a/samplecode/SampleComplexClip.cpp
+++ b/samplecode/SampleComplexClip.cpp
@@ -1,34 +1,9 @@
 #include "SampleCode.h"
 #include "SkCanvas.h"
-#include "SkParsePath.h"
 #include "SkPath.h"
-#include "SkRandom.h"
 #include "SkView.h"
 
-static void scale_to_width(SkPath* path, SkScalar dstWidth) {
-    const SkRect& bounds = path->getBounds();
-    SkScalar scale = dstWidth / bounds.width();
-    SkMatrix matrix;
-
-    matrix.setScale(scale, scale);
-    path->transform(matrix);
-}
-
-static const struct {
-    SkPaint::Style  fStyle;
-    SkPaint::Join   fJoin;
-    int             fStrokeWidth;
-} gRec[] = {
-    { SkPaint::kFill_Style,             SkPaint::kMiter_Join,   0 },
-    { SkPaint::kStroke_Style,           SkPaint::kMiter_Join,   0 },
-    { SkPaint::kStroke_Style,           SkPaint::kMiter_Join,   10 },
-    { SkPaint::kStrokeAndFill_Style,    SkPaint::kMiter_Join,   10 },
-};
-
-#define TEST_INVERSE 1
-
 class ComplexClipView : public SkView {
-    SkScalar    fWidth;
 public:
 	ComplexClipView() {
     }
@@ -116,8 +91,7 @@
         canvas->scale(3 * SK_Scalar1 / 4, 3 * SK_Scalar1 / 4);
         canvas->save();
 
-        int invALimit = TEST_INVERSE ? 2 : 1;
-        for (int invA = 0; invA < invALimit; ++invA) {
+        for (int invA = 0; invA < 2; ++invA) {
             for (int op = 0; op < SK_ARRAY_COUNT(gOps); ++op) {
                 int idx = invA * SK_ARRAY_COUNT(gOps) + op;
                 if (!(idx % 3)) {
