diff --git a/x11-toolkits/gtk-sharp20/Makefile b/x11-toolkits/gtk-sharp20/Makefile
index b38bc2c6c308eaaa5cc74af9566aa59a399b9150..dc2cbd290b27c76cf3ac55d07194cbaebdf31289 100644
--- a/x11-toolkits/gtk-sharp20/Makefile
+++ b/x11-toolkits/gtk-sharp20/Makefile
@@ -25,14 +25,8 @@ SHEBANG_FILES=	parser/*.pl
 GNU_CONFIGURE=	yes
 MAKE_ENV=	INSTALL_STRIP_FLAG=${STRIP}
 
-.include <bsd.port.pre.mk>
-
-.if defined(MONO_DEFAULT) && ${MONO_DEFAULT} > 6
-BROKEN=		fails to build with Mono version ${MONO_DEFAULT}: 'Range' is an ambiguous reference between 'System.Range' and 'Gtk.Range'
-.endif
-
 post-patch:
 	@${REINPLACE_CMD} -e 's|glib/.*\.h>|glib.h>|g' \
 		${WRKSRC}/glib/glue/*.c
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/x11-toolkits/gtk-sharp20/files/patch-sample_test_TestRange.cs b/x11-toolkits/gtk-sharp20/files/patch-sample_test_TestRange.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ac009e65f7002dc82bdabd699ed93acdab4c1253
--- /dev/null
+++ b/x11-toolkits/gtk-sharp20/files/patch-sample_test_TestRange.cs
@@ -0,0 +1,28 @@
+--- sample/test/TestRange.cs.orig	2016-09-21 11:49:20 UTC
++++ sample/test/TestRange.cs
+@@ -32,14 +32,14 @@ namespace WidgetViewer {
+ 
+ 			HScale hscale = new HScale (adjustment);
+ 			hscale.SetSizeRequest (150, -1);
+-			((Range) hscale).UpdatePolicy = UpdateType.Delayed;
++			((Gtk.Range) hscale).UpdatePolicy = UpdateType.Delayed;
+ 
+ 			hscale.Digits = 1;
+ 			hscale.DrawValue = true;
+ 			box2.PackStart (hscale, true, true, 0);
+ 
+ 			HScrollbar hscrollbar = new HScrollbar (adjustment);
+-			((Range) hscrollbar).UpdatePolicy = UpdateType.Continuous;
++			((Gtk.Range) hscrollbar).UpdatePolicy = UpdateType.Continuous;
+ 			box2.PackStart (hscrollbar, true, true, 0);
+ 
+ 			hscale = new HScale (adjustment);
+@@ -59,7 +59,7 @@ namespace WidgetViewer {
+ 			vscale.SetSizeRequest (-1, 200);
+ 			vscale.Digits = 2;
+ 			vscale.DrawValue = true;
+-			((Range) vscale).Inverted = true;
++			((Gtk.Range) vscale).Inverted = true;
+ 			hbox.PackStart (vscale, true, true, 0);
+ 
+ 			vscale = new VScale (adjustment);
diff --git a/x11-toolkits/gtk-sharp30/Makefile b/x11-toolkits/gtk-sharp30/Makefile
index 87f04bbe7fad70aca51a42d1c48c4dd35a983e13..7c7a2d72342d129f740a9b5dceb82f137afdbec3 100644
--- a/x11-toolkits/gtk-sharp30/Makefile
+++ b/x11-toolkits/gtk-sharp30/Makefile
@@ -24,14 +24,8 @@ SHEBANG_FILES=	parser/*.pl
 USE_PERL5=	run
 MAKE_ENV=	INSTALL_STRIP_FLAG=${STRIP}
 
-.include <bsd.port.pre.mk>
-
-.if defined(MONO_DEFAULT) && ${MONO_DEFAULT} > 6
-BROKEN=		fails to build with Mono version ${MONO_DEFAULT}: 'Range' is an ambiguous reference between 'System.Range' and 'Gtk.Range'
-.endif
-
 post-patch:
 	@${REINPLACE_CMD} -e 's|gmcs|mcs|g' \
 		${WRKSRC}/configure
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/x11-toolkits/gtk-sharp30/files/patch-sample_test_TestRange.cs b/x11-toolkits/gtk-sharp30/files/patch-sample_test_TestRange.cs
new file mode 100644
index 0000000000000000000000000000000000000000..ef5a1e2aff1a2290d68f72d158ac4d3c70ab6844
--- /dev/null
+++ b/x11-toolkits/gtk-sharp30/files/patch-sample_test_TestRange.cs
@@ -0,0 +1,11 @@
+--- sample/test/TestRange.cs.orig	2013-08-18 15:32:57 UTC
++++ sample/test/TestRange.cs
+@@ -57,7 +57,7 @@ namespace WidgetViewer {
+ 			vscale.SetSizeRequest (-1, 200);
+ 			vscale.Digits = 2;
+ 			vscale.DrawValue = true;
+-			((Range) vscale).Inverted = true;
++			((Gtk.Range) vscale).Inverted = true;
+ 			hbox.PackStart (vscale, true, true, 0);
+ 
+ 			vscale = new VScale (adjustment);