diff --git a/src/OpenTK.GLWidget/GLWidget.cs b/src/OpenTK.GLWidget/GLWidget.cs
index c1d3c5e4..e2c0efad 100644
--- a/src/OpenTK.GLWidget/GLWidget.cs
+++ b/src/OpenTK.GLWidget/GLWidget.cs
@@ -177,34 +177,47 @@ namespace OpenTK
Dispose(false);
}
-#if GTK3
///
/// Destroys this , disposing it and destroying it in the context of GTK.
///
public override void Destroy()
-#else
+ {
+ GC.SuppressFinalize(this);
+ Dispose(true);
+
+ base.Destroy();
+ }
+
+#if !GTK3
///
/// Disposes the current object, releasing any native resources it was using.
///
///
public override void Dispose()
-#endif
{
GC.SuppressFinalize(this);
Dispose(true);
-#if GTK3
- base.Destroy();
-#else
- base.Dispose();
-#endif
- }
+ base.Dispose();
+ }
+#endif
+
+#if GTK3
+ ///
+ /// Disposes the current object, releasing any native resources it was using.
+ ///
+ ///
+ protected override void Dispose(bool disposing)
+ {
+ base.Dispose(disposing);
+#else
///
/// Disposes the current object, releasing any native resources it was using.
///
///
public virtual void Dispose(bool disposing)
{
+#endif
if (disposing)
{
_GraphicsContext.MakeCurrent(_WindowInfo);