diff --git a/Terminal.Gui/Core/Responder.cs b/Terminal.Gui/Core/Responder.cs
index 7f43bb17a..2a2d0128e 100644
--- a/Terminal.Gui/Core/Responder.cs
+++ b/Terminal.Gui/Core/Responder.cs
@@ -24,7 +24,7 @@ namespace Terminal.Gui {
public class Responder : IDisposable {
bool disposedValue;
-#if DEBUG
+#if DEBUG_IDISPOSABLE
///
/// For debug purposes to verify objects are being disposed properly
///
@@ -41,7 +41,7 @@ namespace Terminal.Gui {
{
Instances.Add (this);
}
-#endif
+#endif
///
/// Gets or sets a value indicating whether this can focus.
@@ -240,6 +240,11 @@ namespace Terminal.Gui {
// Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
Dispose (disposing: true);
GC.SuppressFinalize (this);
+#if DEBUG_IDISPOSABLE
+ WasDisposed = true;
+ Debug.Assert (DisposedCount == 0);
+ DisposedCount++;
+#endif
}
}
}
diff --git a/UnitTests/ScenarioTests.cs b/UnitTests/ScenarioTests.cs
index c6d6723ce..4524c8d5e 100644
--- a/UnitTests/ScenarioTests.cs
+++ b/UnitTests/ScenarioTests.cs
@@ -71,6 +71,11 @@ namespace Terminal.Gui {
Assert.Equal (1, iterations);
Assert.Equal (stackSize, iterations);
}
+#if DEBUG_IDISPOSABLE
+ foreach (var inst in Responder.Instances) {
+ Assert.True (inst.WasDisposed);
+ }
+#endif
}
[Fact]
@@ -120,7 +125,7 @@ namespace Terminal.Gui {
//Assert.Equal (1, iterations);
Assert.Equal (stackSize, iterations);
-#if DEBUG
+#if DEBUG_IDISPOSABLE
foreach (var inst in Responder.Instances) {
Assert.True (inst.WasDisposed);
}