diff --git a/core/fpdfapi/page/cpdf_tilingpattern.cpp b/core/fpdfapi/page/cpdf_tilingpattern.cpp
index e414390..faa7eb8 100644
--- a/core/fpdfapi/page/cpdf_tilingpattern.cpp
+++ b/core/fpdfapi/page/cpdf_tilingpattern.cpp
@@ -6,9 +6,7 @@
 
 #include "core/fpdfapi/page/cpdf_tilingpattern.h"
 
-#include "core/fpdfapi/page/cpdf_allstates.h"
 #include "core/fpdfapi/page/cpdf_form.h"
-#include "core/fpdfapi/page/cpdf_pageobject.h"
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
 #include "core/fpdfapi/parser/cpdf_object.h"
 #include "core/fpdfapi/parser/cpdf_stream.h"
@@ -33,7 +31,7 @@
   return nullptr;
 }
 
-bool CPDF_TilingPattern::Load(CPDF_PageObject* pPageObj) {
+bool CPDF_TilingPattern::Load() {
   if (m_pForm)
     return true;
 
@@ -51,26 +49,7 @@
 
   const CFX_Matrix& matrix = parent_matrix();
   m_pForm = pdfium::MakeUnique<CPDF_Form>(document(), nullptr, pStream);
-
-  CPDF_AllStates allStates;
-  allStates.CopyStates(*pPageObj);
-  // Reset color state to default. The current pattern is set in the color
-  // state and this would lead to recursion problems. We also reset the
-  // clip path as it isn't relevant for pattern rendering either.
-  allStates.m_ColorState.SetDefault();
-  allStates.m_ClipPath.SetNull();
-  m_pForm->ParseContent(&allStates, &matrix, nullptr, nullptr);
+  m_pForm->ParseContent(nullptr, &matrix, nullptr, nullptr);
   m_BBox = pDict->GetRectFor("BBox");
   return true;
 }
-
-void CPDF_TilingPattern::Unload() {
-  m_pForm.reset();
-}
-
-CPDF_TilingPattern::Unloader::Unloader(CPDF_TilingPattern* pattern)
-    : m_pTilingPattern(pattern) {}
-
-CPDF_TilingPattern::Unloader::~Unloader() {
-  m_pTilingPattern->Unload();
-}
diff --git a/core/fpdfapi/page/cpdf_tilingpattern.h b/core/fpdfapi/page/cpdf_tilingpattern.h
index 3cca606..c79708d 100644
--- a/core/fpdfapi/page/cpdf_tilingpattern.h
+++ b/core/fpdfapi/page/cpdf_tilingpattern.h
@@ -16,19 +16,9 @@
 class CPDF_Document;
 class CPDF_Form;
 class CPDF_Object;
-class CPDF_PageObject;
 
 class CPDF_TilingPattern final : public CPDF_Pattern {
  public:
-  class Unloader {
-   public:
-    explicit Unloader(CPDF_TilingPattern* pTilingPattern);
-    ~Unloader();
-
-   private:
-    UnownedPtr<CPDF_TilingPattern> const m_pTilingPattern;
-  };
-
   CPDF_TilingPattern(CPDF_Document* pDoc,
                      CPDF_Object* pPatternObj,
                      const CFX_Matrix& parentMatrix);
@@ -37,8 +27,7 @@
   CPDF_TilingPattern* AsTilingPattern() override;
   CPDF_ShadingPattern* AsShadingPattern() override;
 
-  bool Load(CPDF_PageObject* pPageObj);
-  void Unload();
+  bool Load();
 
   bool colored() const { return m_bColored; }
   const CFX_FloatRect& bbox() const { return m_BBox; }
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index e816480..8f7dd84 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -2143,8 +2143,7 @@
                                           CPDF_PageObject* pPageObj,
                                           const CFX_Matrix& mtObj2Device,
                                           bool bStroke) {
-  CPDF_TilingPattern::Unloader unloader(pPattern);
-  if (!pPattern->Load(pPageObj))
+  if (!pPattern->Load())
     return;
 
   CFX_RenderDevice::StateRestorer restorer(m_pDevice);
diff --git a/testing/resources/pixel/bug_1161_expected.pdf.0.png b/testing/resources/pixel/bug_1161_expected.pdf.0.png
index 745b8c3..f54d0ec 100644
--- a/testing/resources/pixel/bug_1161_expected.pdf.0.png
+++ b/testing/resources/pixel/bug_1161_expected.pdf.0.png
Binary files differ
diff --git a/testing/resources/pixel/bug_1286.in b/testing/resources/pixel/bug_1286.in
deleted file mode 100644
index e3d0133..0000000
--- a/testing/resources/pixel/bug_1286.in
+++ /dev/null
@@ -1,73 +0,0 @@
-{{header}}
-{{object 1 0}} <<
-    /Type /Catalog
-    /Pages 2 0 R
->>
-endobj
-{{object 2 0}} <<
-  /Type /Pages
-  /Count 1
-  /Kids [3 0 R]
->>
-endobj
-{{object 3 0}} <<
-  /Type /Page
-  /Contents 5 0 R
-  /MediaBox [0 0 600 850]
-  /Parent 3 0 R
-  /Resources <<
-    /ColorSpace << /CS0 [/Pattern] >>
-    /ExtGState << /GS0 6 0 R /GS1 7 0 R >>
-    /Pattern << /P0 4 0 R >>
-    /ProcSet [/PDF /Text]
-  >>
->>
-endobj
-{{object 4 0}} <<
-  /Type /Pattern
-  /BBox [0 0 72 72]
-  /PaintType 1
-  /PatternType 1
-  /Resources << /ExtGState << /GS0 7 0 R >> >>
-  /TilingType 1
-  /XStep 72
-  /YStep 72
-  {{streamlen}}
->>
-stream
-0 0 72 72 re B
-endstream
-endobj
-{{object 5 0}} <<
-  {{streamlen}}
->>
-stream
-q
-/GS0 gs /Pattern cs /P0 scn
-50 700 100 100 re
-B
-Q
-
-q
-/GS1 gs /Pattern cs /P0 scn
-50 580 100 100 re
-B
-Q
-endstream
-endobj
-{{object 6 0}} <<
-  /Type /ExtGState
-  /CA 0.199997
-  /ca 0.199997
->>
-endobj
-{{object 7 0}} <<
-  /Type /ExtGState
-  /CA 1
-  /ca 1
->>
-endobj
-{{xref}}
-{{trailer}}
-{{startxref}}
-%%EOF
diff --git a/testing/resources/pixel/bug_1286_expected.pdf.0.png b/testing/resources/pixel/bug_1286_expected.pdf.0.png
deleted file mode 100644
index de21a23..0000000
--- a/testing/resources/pixel/bug_1286_expected.pdf.0.png
+++ /dev/null
Binary files differ
