diff --git a/gm/blurs.cpp b/gm/blurs.cpp
index 988fbe2..f3808d2 100644
--- a/gm/blurs.cpp
+++ b/gm/blurs.cpp
@@ -6,6 +6,7 @@
  * found in the LICENSE file.
  */
 #include "gm.h"
+#include "SkBlurMask.h"
 #include "SkBlurMaskFilter.h"
 
 namespace skiagm {
@@ -59,8 +60,9 @@
             paint.setColor(SK_ColorBLUE);
             for (size_t i = 0; i < SK_ARRAY_COUNT(gRecs); i++) {
                 if (gRecs[i].fStyle != NONE) {
-                    SkMaskFilter* mf = SkBlurMaskFilter::Create(
-                            SkIntToScalar(20), gRecs[i].fStyle, flags);
+                    SkMaskFilter* mf = SkBlurMaskFilter::Create(gRecs[i].fStyle,
+                                           SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(20)),
+                                           flags);
                     paint.setMaskFilter(mf)->unref();
                 } else {
                     paint.setMaskFilter(NULL);
@@ -72,10 +74,9 @@
             }
             // draw text
             {
-                SkMaskFilter* mf = SkBlurMaskFilter::Create(
-                        SkIntToScalar(4),
-                        SkBlurMaskFilter::kNormal_BlurStyle,
-                        flags);
+                SkMaskFilter* mf = SkBlurMaskFilter::Create(SkBlurMaskFilter::kNormal_BlurStyle,
+                                           SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(4)),
+                                           flags);
                 paint.setMaskFilter(mf)->unref();
                 SkScalar x = SkIntToScalar(70);
                 SkScalar y = SkIntToScalar(400);
