diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index c8fbf3d..050fc4a 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -958,7 +958,7 @@
     fSlideMenu = new SkOSMenu;
     this->addMenu(fSlideMenu);
 
-    this->setColorType(kPMColor_SkColorType);
+    this->setColorType(kN32_SkColorType);
     this->setVisibleP(true);
     this->setClipToBounds(false);
 
@@ -1449,7 +1449,7 @@
 
         SkBaseDevice* device = orig->getDevice();
         SkBitmap bmp;
-        if (device->accessBitmap(false).copyTo(&bmp, kPMColor_SkColorType)) {
+        if (device->accessBitmap(false).copyTo(&bmp, kN32_SkColorType)) {
             static int gSampleGrabCounter;
             SkString name;
             name.printf("sample_grab_%d.png", gSampleGrabCounter++);
@@ -1552,7 +1552,7 @@
     kUnknown_SkColorType,           // none -> none
     kUnknown_SkColorType,           // a8 -> none
     kARGB_4444_SkColorType,         // 565 -> 4444
-    kPMColor_SkColorType,           // 4444 -> 8888
+    kN32_SkColorType,               // 4444 -> 8888
     kRGB_565_SkColorType,           // 8888 -> 565
     kRGB_565_SkColorType,           // 8888 -> 565
     kUnknown_SkColorType,           // index8 -> none
diff --git a/samplecode/SampleDitherBitmap.cpp b/samplecode/SampleDitherBitmap.cpp
index a3ebafa..e05d074 100644
--- a/samplecode/SampleDitherBitmap.cpp
+++ b/samplecode/SampleDitherBitmap.cpp
@@ -84,7 +84,7 @@
     DitherBitmapView() {
         fResult = test_pathregion();
         fBM8 = make_bitmap();
-        fBM8.copyTo(&fBM32, kPMColor_SkColorType);
+        fBM8.copyTo(&fBM32, kN32_SkColorType);
 
         this->setBGColor(0xFFDDDDDD);
     }
diff --git a/samplecode/SampleEncode.cpp b/samplecode/SampleEncode.cpp
index 4769fbb..080c05f 100644
--- a/samplecode/SampleEncode.cpp
+++ b/samplecode/SampleEncode.cpp
@@ -43,7 +43,7 @@
                       SkIntToScalar(width)/2, paint);
 
     switch (ct) {
-        case kPMColor_SkColorType:
+        case kN32_SkColorType:
             bm->swap(device);
             break;
         case kRGB_565_SkColorType: {
@@ -81,7 +81,7 @@
 
 // configs to build the original bitmap in. Can be at most these 3
 static const SkColorType gColorTypes[] = {
-    kPMColor_SkColorType,
+    kN32_SkColorType,
     kRGB_565_SkColorType,
     kIndex_8_SkColorType,   // opaque
     kIndex_8_SkColorType    // alpha
diff --git a/samplecode/SampleFilter.cpp b/samplecode/SampleFilter.cpp
index 7b2c551..e17a33c 100644
--- a/samplecode/SampleFilter.cpp
+++ b/samplecode/SampleFilter.cpp
@@ -91,7 +91,7 @@
         make_bm(&fBM8);
         fBM8.copyTo(&fBM4444, kARGB_4444_SkColorType);
         fBM8.copyTo(&fBM16, kRGB_565_SkColorType);
-        fBM8.copyTo(&fBM32, kPMColor_SkColorType);
+        fBM8.copyTo(&fBM32, kN32_SkColorType);
 
         this->setBGColor(0xFFDDDDDD);
     }
diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp
index 28671d6..8d58b9b 100644
--- a/samplecode/SampleFilterFuzz.cpp
+++ b/samplecode/SampleFilterFuzz.cpp
@@ -116,7 +116,7 @@
         case kAlpha_8_SkColorType:
         case kRGB_565_SkColorType:
             return true;
-        case kPMColor_SkColorType:
+        case kN32_SkColorType:
             return kPremul_SkAlphaType == info.alphaType() ||
                    kOpaque_SkAlphaType == info.alphaType();
         default:
diff --git a/samplecode/SampleTiling.cpp b/samplecode/SampleTiling.cpp
index 735b990..9ffcceb 100644
--- a/samplecode/SampleTiling.cpp
+++ b/samplecode/SampleTiling.cpp
@@ -55,7 +55,7 @@
 }
 
 static const SkColorType gColorTypes[] = {
-    kPMColor_SkColorType,
+    kN32_SkColorType,
     kRGB_565_SkColorType,
 };
 static const int gWidth = 32;
