diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index 60a6ea9..c2f83dc 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -183,7 +183,7 @@
     buf << "q\n";
     const CFX_Matrix& ctm = m_pObjHolder->GetLastCTM();
     if (!ctm.IsIdentity()) {
-      WriteMatrix(buf, ctm.GetInverse()) << " cm\n";
+      WriteMatrix(buf, ctm) << " cm\n";
     }
 
     ProcessDefaultGraphics(&buf);
diff --git a/fpdfsdk/fpdf_edit_embeddertest.cpp b/fpdfsdk/fpdf_edit_embeddertest.cpp
index 39c205c..22ce975 100644
--- a/fpdfsdk/fpdf_edit_embeddertest.cpp
+++ b/fpdfsdk/fpdf_edit_embeddertest.cpp
@@ -5267,24 +5267,7 @@
 
   UnloadPage(page);
 
-  // TODO(crbug.com/pdfium/2132): This should use HelloWorldChecksum().
-  const char* const kWrongChecksum = []() {
-    if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
-#if BUILDFLAG(IS_WIN)
-      return "0b5370959c7731c846a35066f0463aee";
-#elif BUILDFLAG(IS_MAC)
-      return "8715c645f7dccfb23e25a32da32ef6af";
-#else
-      return "b4a1a4a73668c5dd4b769db86334943b";
-#endif
-    }
-#if BUILDFLAG(IS_MAC)
-    return "6cb1bfe4f8bef5547eab41cdfad79d59";
-#else
-    return "0e6dd5f1332bb4c4b0cd3aa6a0b89943";
-#endif
-  }();
-  VerifySavedDocument(kExpectedWidth, kExpectedHeight, kWrongChecksum);
+  VerifySavedDocument(kExpectedWidth, kExpectedHeight, HelloWorldChecksum());
 }
 
 class FPDFEditMoveEmbedderTest : public EmbedderTest {
diff --git a/fpdfsdk/fpdf_editpath_embeddertest.cpp b/fpdfsdk/fpdf_editpath_embeddertest.cpp
index 91103aa..9a9fe63 100644
--- a/fpdfsdk/fpdf_editpath_embeddertest.cpp
+++ b/fpdfsdk/fpdf_editpath_embeddertest.cpp
@@ -186,12 +186,5 @@
 
   UnloadPage(page);
 
-  // TODO(crbug.com/pdfium/2132): This should use RectanglesChecksum().
-  const char* const kWrongChecksum = []() {
-    if (CFX_DefaultRenderDevice::UseSkiaRenderer()) {
-      return "f7c69f8d0bb92541d48dbbbba003396d";
-    }
-    return "37a215071985bd88079fedb56b001685";
-  }();
-  VerifySavedDocument(kExpectedWidth, kExpectedHeight, kWrongChecksum);
+  VerifySavedDocument(kExpectedWidth, kExpectedHeight, RectanglesChecksum());
 }
