diff --git a/src/post_modules/GTK/Makefile.in b/src/post_modules/GTK/Makefile.in
index 716d5dab90d0514021ee2b25e1996d73156cc0e5..f2780335a242055f9b7ab5e6cbfe7afc801df1b9 100644
--- a/src/post_modules/GTK/Makefile.in
+++ b/src/post_modules/GTK/Makefile.in
@@ -8,7 +8,6 @@ MODULE_LDFLAGS=@LDFLAGS@ @LIBS@ @PGTK_LIBS@ @LIBGLADE_LIBS@
 MODULE_CFLAGS=@PGTK_CFLAGS@ @LIBGLADE_CFLAGS@
 CONFIG_HEADERS=config.h
 
-
 # OK.. This is somewhat confusing
 # 
 # WITH_GTK == 1
@@ -20,15 +19,18 @@ CONFIG_HEADERS=config.h
 
 MYRUNPIKE=../../pike -DNOT_INSTALLED -m../../master.pike
 
+
 override:  sources@WITH_GTK@
 	@:
 
 @dynamic_module_makefile@
 
+QMAKE=$(RUNPIKE) $(SRCDIR)/make.pike $(MAKE)
+
 sources1:
 	$(RUNPIKE) $(SRCDIR)/make_sources.pike $(SRCDIR)/source
 	$(RUNPIKE) $(SRCDIR)/build_pgtk.pike $(SRCDIR)
-	$(MAKE) $(MAKE_FLAGS) "OBJS=`cat files_to_compile`" all
+	$(QMAKE) $(MAKEFLAGS) "OBJS=`cat files_to_compile`" all
 
 sources0:
 	echo Pike-GTK disabled.
diff --git a/src/post_modules/GTK/configure.in b/src/post_modules/GTK/configure.in
index a585a80dadcf3da8e0fbea5618704c1851a7835c..e3b449eb01e26a6c51fad2578341b37e20141361 100644
--- a/src/post_modules/GTK/configure.in
+++ b/src/post_modules/GTK/configure.in
@@ -11,6 +11,9 @@ AC_DEFINE(FUNCPROTO)
 AC_HEADER_STDC
 AC_CHECK_HEADERS( signal.h arpa/inet.h )
 
+AC_ARG_WITH(GL,  [  --without-GTK     no support for GTK],[without_GTK=yes],[without_GTK=no])
+
+if test "x$without_GTK" = "xno" ; then
 
 dnl aclocal.m4 generated automatically by aclocal 1.3
 
@@ -361,7 +364,7 @@ else
  else
   have_GL=no
  fi
-
+fi
 fi
 
 CFLAGS="$GL_CFLAGS $CFLAGS"
@@ -384,7 +387,8 @@ if test "x$have_GL" = "xyes" ; then
     echo "*********************************************"
   fi
 fi
-
+else
+  WITH_GTK=0
 fi
 
 AC_OUTPUT(Makefile options)
diff --git a/src/post_modules/GTK/make.pike b/src/post_modules/GTK/make.pike
new file mode 100644
index 0000000000000000000000000000000000000000..e04ab925250ca677228ecf259315aa50eb4c2a52
--- /dev/null
+++ b/src/post_modules/GTK/make.pike
@@ -0,0 +1,13 @@
+string process_argv( string from )
+{
+  if( from == "wj" ) return 0;
+  if( from == "w" ) return 0;
+  if( from == "--") return 0;
+  if( from == "1") return 0;
+  return replace( from , "-g", "" );
+}
+
+int main( int argc, array argv )
+{
+  exit(Process.create_process( map( argv[1..], process_argv ) -({0}) )->wait());
+}