diff --git a/flow/embedded_views.cc b/flow/embedded_views.cc
index 32acb94..1fb1d24 100644
--- a/flow/embedded_views.cc
+++ b/flow/embedded_views.cc
@@ -36,7 +36,8 @@
   vector_.push_back(element);
 };
 
-void MutatorsStack::PushBackdropFilter(const DlImageFilter& filter) {
+void MutatorsStack::PushBackdropFilter(
+    std::shared_ptr<const DlImageFilter> filter) {
   std::shared_ptr<Mutator> element = std::make_shared<Mutator>(filter);
   vector_.push_back(element);
 };
diff --git a/flow/embedded_views.h b/flow/embedded_views.h
index 5e801de..394fa9d 100644
--- a/flow/embedded_views.h
+++ b/flow/embedded_views.h
@@ -70,8 +70,8 @@
   explicit Mutator(const SkMatrix& matrix)
       : type_(kTransform), matrix_(matrix) {}
   explicit Mutator(const int& alpha) : type_(kOpacity), alpha_(alpha) {}
-  explicit Mutator(const DlImageFilter& filter)
-      : type_(kBackdropFilter), filter_(&filter) {}
+  explicit Mutator(std::shared_ptr<const DlImageFilter> filter)
+      : type_(kBackdropFilter), filter_(filter) {}
 
   const MutatorType& GetType() const { return type_; }
   const SkRect& GetRect() const { return rect_; }
@@ -119,15 +119,18 @@
  private:
   MutatorType type_;
 
+  // TODO(cyanglaz): Remove union.
+  //  https://github.com/flutter/flutter/issues/108470
   union {
     SkRect rect_;
     SkRRect rrect_;
     SkMatrix matrix_;
     SkPath* path_;
     int alpha_;
-    const DlImageFilter* filter_;
   };
 
+  std::shared_ptr<const DlImageFilter> filter_;
+
 };  // Mutator
 
 // A stack of mutators that can be applied to an embedded platform view.
@@ -148,7 +151,7 @@
   void PushClipPath(const SkPath& path);
   void PushTransform(const SkMatrix& matrix);
   void PushOpacity(const int& alpha);
-  void PushBackdropFilter(const DlImageFilter& filter);
+  void PushBackdropFilter(std::shared_ptr<const DlImageFilter> filter);
 
   // Removes the `Mutator` on the top of the stack
   // and destroys it.
diff --git a/flow/mutators_stack_unittests.cc b/flow/mutators_stack_unittests.cc
index cfc642d..a460125 100644
--- a/flow/mutators_stack_unittests.cc
+++ b/flow/mutators_stack_unittests.cc
@@ -91,11 +91,21 @@
 
 TEST(MutatorsStack, PushBackdropFilter) {
   MutatorsStack stack;
-  auto filter = DlBlurImageFilter(5, 5, DlTileMode::kClamp);
-  stack.PushBackdropFilter(filter);
-  auto iter = stack.Bottom();
-  ASSERT_TRUE(iter->get()->GetType() == MutatorType::kBackdropFilter);
-  ASSERT_TRUE(iter->get()->GetFilter() == filter);
+  const int num_of_mutators = 10;
+  for (int i = 0; i < num_of_mutators; i++) {
+    auto filter = std::make_shared<DlBlurImageFilter>(i, 5, DlTileMode::kClamp);
+    stack.PushBackdropFilter(filter);
+  }
+
+  auto iter = stack.Begin();
+  int i = 0;
+  while (iter != stack.End()) {
+    ASSERT_EQ(iter->get()->GetType(), MutatorType::kBackdropFilter);
+    ASSERT_EQ(iter->get()->GetFilter().asBlur()->sigma_x(), i);
+    ++iter;
+    ++i;
+  }
+  ASSERT_EQ(i, num_of_mutators);
 }
 
 TEST(MutatorsStack, Pop) {
