| Index: src/core/SkTypeface.cpp | 
| diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp | 
| index d7da131d13b2db7786efafc33221133eb927aa6d..f9487870ccc537ad13e669083ab9022f554b6151 100644 | 
| --- a/src/core/SkTypeface.cpp | 
| +++ b/src/core/SkTypeface.cpp | 
| @@ -132,10 +132,15 @@ SkTypeface* SkTypeface::CreateFromName(const char name[], Style style) { | 
| } | 
|  | 
| SkTypeface* SkTypeface::CreateFromTypeface(const SkTypeface* family, Style s) { | 
| -    if (family && family->style() == s) { | 
| +    if (!family) { | 
| +        return SkTypeface::RefDefault(s); | 
| +    } | 
| + | 
| +    if (family->style() == s) { | 
| family->ref(); | 
| return const_cast<SkTypeface*>(family); | 
| } | 
| + | 
| SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); | 
| bool bold = s & SkTypeface::kBold; | 
| bool italic = s & SkTypeface::kItalic; | 
| @@ -143,7 +148,7 @@ SkTypeface* SkTypeface::CreateFromTypeface(const SkTypeface* family, Style s) { | 
| : SkFontStyle::kNormal_Weight, | 
| SkFontStyle::kNormal_Width, | 
| italic ? SkFontStyle::kItalic_Slant | 
| -                                                : SkFontStyle::kUpright_Slant); | 
| +                                              : SkFontStyle::kUpright_Slant); | 
| return fm->matchFaceStyle(family, newStyle); | 
| } | 
|  | 
|  |