diff --git a/src/Avalonia.Base/Utilities/DeferredSetter.cs b/src/Avalonia.Base/Utilities/DeferredSetter.cs
deleted file mode 100644
index fe9b0e58a0..0000000000
--- a/src/Avalonia.Base/Utilities/DeferredSetter.cs
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-
-namespace Avalonia.Utilities
-{
- ///
- /// A utility class to enable deferring assignment until after property-changed notifications are sent.
- /// Used to fix #855.
- ///
- /// The type of value with which to track the delayed assignment.
- internal sealed class DeferredSetter
- {
- private readonly SingleOrQueue _pendingValues;
- private bool _isNotifying;
-
- public DeferredSetter()
- {
- _pendingValues = new SingleOrQueue();
- }
-
- private static void SetAndRaisePropertyChanged(AvaloniaObject source, AvaloniaProperty property, ref TSetRecord backing, TSetRecord value)
- {
- var old = backing;
-
- backing = value;
-
- source.RaisePropertyChanged(property, old, value);
- }
-
- public bool SetAndNotify(
- AvaloniaObject source,
- AvaloniaProperty property,
- ref TSetRecord backing,
- TSetRecord value)
- {
- if (!_isNotifying)
- {
- using (new NotifyDisposable(this))
- {
- SetAndRaisePropertyChanged(source, property, ref backing, value);
- }
-
- if (!_pendingValues.Empty)
- {
- using (new NotifyDisposable(this))
- {
- while (!_pendingValues.Empty)
- {
- SetAndRaisePropertyChanged(source, property, ref backing, _pendingValues.Dequeue());
- }
- }
- }
-
- return true;
- }
-
- _pendingValues.Enqueue(value);
-
- return false;
- }
-
- public bool SetAndNotifyCallback(AvaloniaProperty property, ISetAndNotifyHandler setAndNotifyHandler, ref TValue backing, TValue value)
- where TValue : TSetRecord
- {
- if (!_isNotifying)
- {
- using (new NotifyDisposable(this))
- {
- setAndNotifyHandler.HandleSetAndNotify(property, ref backing, value);
- }
-
- if (!_pendingValues.Empty)
- {
- using (new NotifyDisposable(this))
- {
- while (!_pendingValues.Empty)
- {
- setAndNotifyHandler.HandleSetAndNotify(property, ref backing, (TValue)_pendingValues.Dequeue());
- }
- }
- }
-
- return true;
- }
-
- _pendingValues.Enqueue(value);
-
- return false;
- }
-
- ///
- /// Disposable that marks the property as currently notifying.
- /// When disposed, marks the property as done notifying.
- ///
- private readonly struct NotifyDisposable : IDisposable
- {
- private readonly DeferredSetter _setter;
-
- internal NotifyDisposable(DeferredSetter setter)
- {
- _setter = setter;
- _setter._isNotifying = true;
- }
-
- public void Dispose()
- {
- _setter._isNotifying = false;
- }
- }
- }
-
- ///
- /// Handler for set and notify requests.
- ///
- /// Value type.
- internal interface ISetAndNotifyHandler
- {
- ///
- /// Handles deferred setter requests to set a value.
- ///
- /// Property being set.
- /// Backing field reference.
- /// New value.
- void HandleSetAndNotify(AvaloniaProperty property, ref TValue backing, TValue value);
- }
-}