diff --git a/chrome/renderer/print_web_view_helper.cc b/chrome/renderer/print_web_view_helper.cc
index cdf31277e5f90745bc33ffb37050c5f441304a87..c1014aeacb951b75e72bcc5e2d42633e16c75f8f 100644
--- a/chrome/renderer/print_web_view_helper.cc
+++ b/chrome/renderer/print_web_view_helper.cc
@@ -373,25 +373,31 @@ void PrintWebViewHelper::UpdatePrintableSizeInPrintParameters(
       &content_width_in_points, &content_height_in_points,
       &margin_top_in_points, &margin_right_in_points,
       &margin_bottom_in_points, &margin_left_in_points);
-
 #if defined(OS_MACOSX)
-  params->page_size = gfx::Size(
-      static_cast<int>(content_width_in_points +
-          margin_left_in_points + margin_right_in_points),
-      static_cast<int>(content_height_in_points +
-          margin_top_in_points + margin_bottom_in_points));
-
-  params->printable_size = gfx::Size(static_cast<int>(content_width_in_points),
-      static_cast<int>(content_height_in_points));
+  // On the Mac, the printable area is in points, don't do any scaling based
+  // on dpi.
+  int dpi = printing::kPointsPerInch;
 #else
+  int dpi = static_cast<int>(params->dpi);
+#endif  // defined(OS_MACOSX)
   params->printable_size = gfx::Size(
-      static_cast<int>(ConvertUnitDouble(
-          content_width_in_points, printing::kPointsPerInch, params->dpi)),
-      static_cast<int>(ConvertUnitDouble(
-          content_height_in_points, printing::kPointsPerInch, params->dpi)));
-#endif
-  params->margin_top = static_cast<int>(margin_top_in_points);
-  params->margin_left = static_cast<int>(margin_left_in_points);
+      static_cast<int>(ConvertUnitDouble(content_width_in_points,
+          printing::kPointsPerInch, dpi)),
+      static_cast<int>(ConvertUnitDouble(content_height_in_points,
+          printing::kPointsPerInch, dpi)));
+
+  params->page_size = gfx::Size(
+      static_cast<int>(ConvertUnitDouble(content_width_in_points +
+          margin_left_in_points + margin_right_in_points,
+          printing::kPointsPerInch, dpi)),
+      static_cast<int>(ConvertUnitDouble(content_height_in_points +
+          margin_top_in_points + margin_bottom_in_points,
+          printing::kPointsPerInch, dpi)));
+
+  params->margin_top = static_cast<int>(ConvertUnitDouble(
+      margin_top_in_points, printing::kPointsPerInch, dpi));
+  params->margin_left = static_cast<int>(ConvertUnitDouble(
+      margin_left_in_points, printing::kPointsPerInch, dpi));
 }
 
 bool PrintWebViewHelper::InitPrintSettings(WebFrame* frame) {