diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index bcd84dd..5b157d2 100755
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -223,6 +223,14 @@
 
 ////////////////////////////////////////////////////////////////////////////////
 
+bool GrContext::isConfigTexturable(GrPixelConfig config) const {
+    return fGpu->caps()->isConfigTexturable(config);
+}
+
+bool GrContext::npotTextureTileSupport() const {
+    return fGpu->caps()->npotTextureTileSupport();
+}
+
 GrTexture* GrContext::createTexture(const GrSurfaceDesc& desc, const void* srcData,
                                     size_t rowBytes) {
     return fGpu->createTexture(desc, true, srcData, rowBytes);
@@ -230,6 +238,11 @@
 
 GrTexture* GrContext::refScratchTexture(const GrSurfaceDesc& inDesc, ScratchTexMatch match,
                                         bool calledDuringFlush) {
+    // Currently we don't recycle compressed textures as scratch.
+    if (GrPixelConfigIsCompressed(inDesc.fConfig)) {
+        return NULL;
+    }
+
     // kNoStencil has no meaning if kRT isn't set.
     SkASSERT((inDesc.fFlags & kRenderTarget_GrSurfaceFlag) ||
              !(inDesc.fFlags & kNoStencil_GrSurfaceFlag));
@@ -338,14 +351,6 @@
     return fGpu->wrapBackendRenderTarget(desc);
 }
 
-///////////////////////////////////////////////////////////////////////////////
-
-bool GrContext::supportsIndex8PixelConfig() const {
-    const GrDrawTargetCaps* caps = fGpu->caps();
-    return caps->isConfigTexturable(kIndex_8_GrPixelConfig);
-}
-
-
 ////////////////////////////////////////////////////////////////////////////////
 
 void GrContext::clear(const SkIRect* rect,
