diff --git a/pbx/Makefile b/pbx/Makefile
index c8a348321c6b2a275883b9ba8e153c07357ed902..21f4928d8a4fea274e5a7f8911639088ab1c6c91 100755
--- a/pbx/Makefile
+++ b/pbx/Makefile
@@ -20,11 +20,6 @@ PBX_LIBS=pbx_config.so pbx_spool.so pbx_dundi.so pbx_loopback.so pbx_realtime.so
 # Add KDE Console if appropriate
 #PBX_LIBS+=$(shell [ "$$QTDIR" != "" ] && echo "pbx_kdeconsole.so")
 
-#
-# Obsolete modules
-#
-#PBX_LIBS+=pbx_wilcalu.so
-
 GTK_FLAGS=`${CROSS_COMPILE_BIN}gtk-config --cflags gthread`
 GTK_LIBS=`${CROSS_COMPILE_BIN}gtk-config --libs gthread`
 MOC=$(QTDIR)/bin/moc
@@ -69,7 +64,6 @@ endif
 
 install: all
 	for x in $(PBX_LIBS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
-	if ! [ -f pbx_wilcalu.so ]; then rm -f $(DESTDIR)$(MODULES_DIR)/pbx_wilcalu.so; fi
 
 depend: .depend
 
diff --git a/pbx/pbx_wilcalu.c b/pbx/pbx_wilcalu.c
deleted file mode 100755
index 5b86ba5bb5775bec1aff6f2a9cf0e6666996c75b..0000000000000000000000000000000000000000
--- a/pbx/pbx_wilcalu.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/** @file pbx_wilcalu.c 
- *
- * Asterisk -- A telephony toolkit for Linux.
- *
- * Trivial application to playback a sound file
- * 
- * Copyright (C) 1999, Mark Spencer
- *
- * Mark Spencer <markster@digium.com>
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License
-
- *  Autodialer for Asterisk 
- *  Redirect dialstring thru fifo "/var/run/autodial.ctl"
- *  Format of string is :
- *  "tech/tele,filename&" ie. "tor1/23,file&"
- */
- 
-#include "asterisk/lock.h"
-#include "asterisk/file.h"
-#include "asterisk/logger.h"
-#include "asterisk/channel.h"
-#include "asterisk/pbx.h"
-#include "asterisk/module.h"
-#include "asterisk/translate.h"
-#include "asterisk/options.h"
-#include "asterisk/utils.h"
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include "astconf.h"
-
-
-/* Globals */
-const   char dialfile[255];
-static  char *tdesc = "Wil Cal U (Auto Dialer)";
-static  pthread_t autodialer_thread;
-static  char buf[257];
-static  char lastbuf[257]; /* contains last partial buffer */
-static  char sendbuf[257];
-STANDARD_LOCAL_USER;
-LOCAL_USER_DECL;
-
-/* prototype */
-static void *dialstring(void *string);
-
-/*  types */
-struct alarm_data {
-	time_t	alarm_time;
-	int	snooze_len;
-	void	*dialstr;
-};
-
-static void *autodial(void *ignore)
-{
-	pthread_t dialstring_thread;
-	char * sendbufptr=sendbuf;
-	int fd=open(dialfile,O_RDONLY|O_NONBLOCK);
-	int flags = fcntl(fd, F_GETFL);
-	struct pollfd fds[1];
-
-	fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);
-	if (option_debug)
-		ast_log(LOG_DEBUG, "Entered Wil-Calu fd=%d\n",fd);
-	if(fd<0) {
-		ast_log(LOG_WARNING, "Autodial: Unable to open file\n");
-		pthread_exit(NULL);
-	}
-	memset(buf,0,257);
-	memset(lastbuf,0,257);
-	memset(sendbuf,0,257);
-	while(1){
-		ssize_t bytes;
-		void *pass;
-
-		memset(buf,0,257);
-		fds[0].fd = fd;
-		fds[0].events = POLLIN;
-		poll(fds, 1, -1);
-		bytes=read(fd,buf,256);
-
-		if(bytes>0){
-			int x;
-			buf[(int)bytes]=0;
-			ast_log(LOG_DEBUG, "WilCalu : Read Buf %s\n",buf);
-			sendbufptr=sendbuf;
-			for(x=0; lastbuf[x]!=0 && x<257; x++);
-			if(x) {
-				memcpy(sendbuf, lastbuf, x);
-				sendbufptr+=x;
-				memset(lastbuf, 0, 257);
-			}
-			/* Process bytes read */
-			for(x=0; x<bytes; x++){
-				/* if & then string is complete */
-				if(buf[x]=='&'){
-					if(NULL!=(pass=(void *)strdup(sendbuf))){
-						ast_pthread_create(&dialstring_thread, NULL, dialstring, pass);
-						sendbufptr=sendbuf;
-						memset(sendbuf, 0, 257);
-					}
-					else {
-						perror("Autodial: Strdup failed");
-						close(fd);
-						pthread_exit(NULL);
-					}
-				} else {
-					if(buf[x]=='\n')
-						continue;
-					*sendbufptr=buf[x];
-					sendbufptr++;
-					*sendbufptr=0;
-				}
-			}
-			if(sendbufptr!=sendbuf)
-				memcpy(lastbuf, sendbuf, sendbufptr-sendbuf+1);
-		}
-	}
-	close(fd);
-	pthread_exit(NULL);
-	return NULL;
-}
-
-static void *snooze_alarm(void *pass)
-{
-	pthread_t dialstring_thread;
-	struct alarm_data *data = (struct alarm_data *) pass;
-
-	sleep(data->snooze_len);
-	ast_pthread_create(&dialstring_thread, NULL, dialstring, data->dialstr);
-	/* dialstring will free data->dialstr */
-	free(pass);
-	pthread_exit(NULL);
-	return NULL;
-}
-
-static void  set_snooze_alarm(char *dialstr, int snooze_len)
-{
-	pthread_t snooze_alarm_thread;
-	struct alarm_data *pass;
-
-	ast_log(LOG_DEBUG, "Answered: Snooze Requested\n");
-	if (NULL==(pass=malloc(sizeof(struct alarm_data)))){
-		perror("snooze_alarm: data");
-		pthread_exit(NULL);
-	}
-	if (NULL==(pass->dialstr=(void *)strdup(dialstr))){
-		free(pass);
-		perror("snooze_alarm: dialstr");
-		pthread_exit(NULL);
-	}
-	pass->snooze_len=snooze_len;
-	ast_pthread_create(&snooze_alarm_thread,NULL,snooze_alarm,pass);
-}
-			
-static void *dialstring(void *string)
-{
-	struct ast_channel *channel;
-	char *bufptr,*destptr;
-	int  ms=10000;		/* ms affects number of rings */
-	int  cnt=0,first;
-	char tech[256];
-	char tele[256];
-	char filename[256];
-	int  answered=0;
-
-	for(first=0, bufptr=(char *)string, destptr=tech; *bufptr&&cnt<256; cnt++){
-		if(*bufptr=='/' && !first) {
-			*destptr=0;
-			destptr=tele;
-			first=1;
-		}
-		else if(*bufptr==',') {
-			*destptr=0;
-			destptr=filename;
-		} else {
-			*destptr=*bufptr;
-			destptr++;
-		}
-		bufptr++;
-	} 
-	*destptr=0;
-	ast_log(LOG_DEBUG, "Printing string arg: %s Eos\n", (char *)string);
-	if(strlen(tech)+strlen(tele)+strlen(filename) > 256) {
-		ast_log(LOG_ERROR, "Autodial:Error string too long\n");
-		free(string);
-		pthread_exit(NULL);
-	}
-	ast_log(LOG_DEBUG, "Autodial Tech %s(%d) Tele %s(%d) Filename %s(%d)\n",tech, (int)strlen(tech), tele, (int)strlen(tele), filename, (int)strlen(filename));
-
-	channel=ast_request(tech,AST_FORMAT_SLINEAR,tele);
-	if(channel!=NULL){
-		ast_call(channel,tele,10000);
-	} else {
-		ast_log(LOG_ERROR, "Autodial:Sorry unable to obtain channel\n");
-		free(string);
-		pthread_exit(NULL);
-	}
-	if(channel->_state==AST_STATE_UP)
-		ast_log(LOG_DEBUG, "Autodial:Line is Up\n");
-	while(ms>0){
-		struct ast_frame *f;
-
-		ms=ast_waitfor(channel,ms);
-		f=ast_read(channel);
-		if(!f){
-			ast_log(LOG_DEBUG, "Autodial:Hung Up\n");
-			break;
-		}
-		if (f->frametype==AST_FRAME_CONTROL) {
-			if (f->subclass==AST_CONTROL_ANSWER) {
-				ast_log(LOG_DEBUG, "Autodial:Phone Answered\n");
-				if (channel->_state==AST_STATE_UP) {
-					char res;
-
-					ast_streamfile(channel,filename,0);
-					/* Press Five for snooze */
-					res=ast_waitstream(channel, "37");
-					if(res=='3'){
-						answered=1;
-						set_snooze_alarm((char *)string,60);
-						ast_streamfile(channel,"demo-thanks",0);
-						ast_waitstream(channel, "");
-					}
-					else if(res=='7'){
-						answered=1;
-						ast_streamfile(channel,"demo-thanks",0);
-						ast_waitstream(channel, "");
-					}
-					ast_stopstream(channel);
-					ms=0;
-				}
-			}
-			else if (f->subclass==AST_CONTROL_RINGING)
-				ast_log(LOG_DEBUG, "Autodial:Phone Ringing end\n");
-		}
-		ast_frfree(f);
-	}
-	if(!answered)
-		set_snooze_alarm((char *) string, 5);
-	free(string);
-	ast_hangup(channel);
-	ast_log(LOG_DEBUG, "Autodial:Hung up channel\n");
-	pthread_exit(NULL);
-	return NULL;
-}
-
-int unload_module(void)
-{
-	STANDARD_HANGUP_LOCALUSERS;
-	unlink(dialfile);
-	return 0;
-}
-
-int load_module(void)
-{
-	int val;
-
-	snprintf((char *)dialfile, sizeof(dialfile), "%s/%s", ast_config_AST_RUN_DIR, "autodial.ctl");
-	if((val=mkfifo(dialfile, 0700))) {
-		if(errno!=EEXIST){
-			ast_log(LOG_ERROR, "Error:%d Creating Autodial FIFO\n",errno);
-			return 0;
-		}
-	}
-	ast_pthread_create(&autodialer_thread, NULL, autodial, NULL);
-	return 0;
-}
-
-char *description(void)
-{
-	return tdesc;
-}
-
-int usecount(void)
-{
-	int res;
-	STANDARD_USECOUNT(res);
-	return res;
-}
-
-char *key()
-{
-	return ASTERISK_GPL_KEY;
-}