diff --git a/formats/Makefile b/formats/Makefile
index 2d2090333692d7673065838e30d51283ba07364b..108e85e8099a6915648352168410999b9f6bedfd 100644
--- a/formats/Makefile
+++ b/formats/Makefile
@@ -48,7 +48,7 @@ format_ogg_vorbis.so : format_ogg_vorbis.o
 	$(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -logg -lvorbis -lvorbisenc -lm
 
 install: all
-	for x in $(FORMAT_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
+	for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
 
 uninstall:
 
diff --git a/pbx/Makefile b/pbx/Makefile
index 0bdb057c236d7a55791c27766b4aa2c20a5f3c40..e8eb087acf39fd9a54f7ebae81d8d3222b74f559 100644
--- a/pbx/Makefile
+++ b/pbx/Makefile
@@ -3,7 +3,7 @@
 # 
 # Makefile for PBX modules
 #
-# Copyright (C) 1999-2005, Mark Spencer
+# Copyright (C) 1999-2006, Digium, Inc.
 #
 # Mark Spencer <markster@digium.com>
 #
@@ -11,13 +11,17 @@
 # the GNU General Public License
 #
 
-PBX_LIBS=pbx_config.so pbx_spool.so pbx_dundi.so pbx_loopback.so pbx_realtime.so \
-         pbx_ael.so
+MODS:=$(patsubst %.c,%.so,$(wildcard pbx_*.c))
 
-# Add GTK console if appropriate
-#PBX_LIBS+=$(shell $(CROSS_COMPILE_BIN)gtk-config --cflags >/dev/null 2>/dev/null && echo "pbx_gtkconsole.so")
-# Add KDE Console if appropriate
-#PBX_LIBS+=$(shell [ "$$QTDIR" != "" ] && echo "pbx_kdeconsole.so")
+#GTK=$(shell $(CROSS_COMPILE_BIN)gtk-config --cflags >/dev/null 2>/dev/null && echo "OK")
+ifeq (${GTK},)
+  MODS:=$(filter-out pbx_gtkconsole.so,$(MODS))
+endif
+
+#KDE=$(shell [ "$$QTDIR" != "" ] && echo "OK")
+ifeq (${GTK},)
+  MODS:=$(filter-out pbx_kdeconsole.so,$(MODS))
+endif
 
 GTK_FLAGS=`${CROSS_COMPILE_BIN}gtk-config --cflags gthread`
 GTK_LIBS=`${CROSS_COMPILE_BIN}gtk-config --libs gthread`
@@ -26,15 +30,15 @@ KDE_FLAGS=-I$(KDEDIR)/include -I$(KDEDIR)/include/kde -I$(QTDIR)/include
 KDE_LIBS=-L$(KDEDIR)/lib -L$(QTDIR)/lib -lqt -lkdecore -lkdeui
 
 ifeq (${OSARCH},CYGWIN)
-CYGSOLINK=-Wl,--out-implib=lib$@.a -Wl,--export-all-symbols
-CYGSOLIB=-L.. -L. -L../res -lasterisk.dll 
+  CYGSOLINK=-Wl,--out-implib=lib$@.a -Wl,--export-all-symbols
+  CYGSOLIB=-L.. -L. -L../res -lasterisk.dll 
 else
-CFLAGS+=-fPIC
+  CFLAGS+=-fPIC
 endif
 
 KDE_CONSOLE_OBJS=pbx_kdeconsole_main.o pbx_kdeconsole.o 
 
-all: depend $(PBX_LIBS)
+all: depend $(MODS)
 
 clean:
 	rm -f *.so *.o .depend
@@ -68,7 +72,7 @@ ifneq ($(wildcard .depend),)
 endif
 
 install: all
-	for x in $(PBX_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
+	for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
 
 uninstall: