diff --git a/src/gpu/GrTextContext.cpp b/src/gpu/GrTextContext.cpp
index 8f0f1cf..5a2c315 100644
--- a/src/gpu/GrTextContext.cpp
+++ b/src/gpu/GrTextContext.cpp
@@ -152,13 +152,13 @@
         if (fStrike->getGlyphAtlas(glyph, scaler)) {
             goto HAS_ATLAS;
         }
-
+#if 0 // M30 specific revert of font cache improvement to fix https://code.google.com/p/chromium/issues/detail?id=303803
         // try to clear out an unused atlas before we flush
         fContext->getFontCache()->freeAtlasExceptFor(fStrike);
         if (fStrike->getGlyphAtlas(glyph, scaler)) {
             goto HAS_ATLAS;
         }
-
+#endif
         // before we purge the cache, we must flush any accumulated draws
         this->flushGlyphs();
         fContext->flush();
diff --git a/src/ports/SkFontHost_fontconfig.cpp b/src/ports/SkFontHost_fontconfig.cpp
index 012ce90..0db44b2 100644
--- a/src/ports/SkFontHost_fontconfig.cpp
+++ b/src/ports/SkFontHost_fontconfig.cpp
@@ -109,6 +109,15 @@
         return NULL;
     }
 
+    // check if we, in fact, already have this. perhaps fontconfig aliased the
+    // requested name to some other name we actually have...
+    rec.fFamilyName = outFamilyName.c_str();
+    rec.fStyle = outStyle;
+    face = SkTypefaceCache::FindByProcAndRef(find_proc, &rec);
+    if (face) {
+        return face;
+    }
+
     face = SkNEW_ARGS(FontConfigTypeface, (outStyle, indentity, outFamilyName));
     SkTypefaceCache::Add(face, style);
 //    SkDebugf("add face <%s> <%s> %p [%d]\n", familyName, outFamilyName.c_str(), face, face->getRefCnt());
diff --git a/tests/FontMgrTest.cpp b/tests/FontMgrTest.cpp
index 6b6ee9a..00ff79b 100644
--- a/tests/FontMgrTest.cpp
+++ b/tests/FontMgrTest.cpp
@@ -11,6 +11,27 @@
 #include "SkFontMgr.h"
 #include "SkTypeface.h"
 
+/*
+ *  If the font backend is going to "alias" some font names to other fonts
+ *  (e.g. sans -> Arial) then we want to at least get the same typeface back
+ *  if we request the alias name multiple times.
+ */
+static void test_badnames(skiatest::Reporter* reporter) {
+    const char* inName = "sans";
+    SkAutoTUnref<SkTypeface> first(SkTypeface::CreateFromName(inName, SkTypeface::kNormal));
+    
+    SkString name;
+    for (int i = 0; i < 10; ++i) {
+        SkAutoTUnref<SkTypeface> face(SkTypeface::CreateFromName(inName, SkTypeface::kNormal));
+#if 0
+        face->getFamilyName(&name);
+        printf("request %s, received %s, first id %x received %x\n",
+               inName, name.c_str(), first->uniqueID(), face->uniqueID());
+#endif
+        REPORTER_ASSERT(reporter, first->uniqueID() == face->uniqueID());
+    }
+}
+
 static void test_fontiter(skiatest::Reporter* reporter, bool verbose) {
     SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
     int count = fm->countFamilies();
@@ -49,6 +70,7 @@
 
 static void TestFontMgr(skiatest::Reporter* reporter) {
     test_fontiter(reporter, FLAGS_verboseFontMgr);
+    test_badnames(reporter);
 }
 
 #include "TestClassDef.h"
