diff -ru ccontrol-0.9.1+20060806/ccontrol.c ccontrol-0.9.1+20060806-new/ccontrol.c
--- ccontrol-0.9.1+20060806/ccontrol.c	2006-08-06 14:19:40.000000000 +1000
+++ ccontrol-0.9.1+20060806-new/ccontrol.c	2007-11-01 23:38:04.000000000 +1000
@@ -330,6 +330,23 @@
 
 	/* This handles open failure if fd < 0. */
 	sec = read_config(configname, dirname, fd);
+
+    /* If the config file says this app is a directory, it means
+     * that the command can be found _in_ that directory. */
+    /* FIXME: Handle absolute directory properly */
+    /* (Protip: if the config option is set to "cc" and there is a subdir
+     * called "cc' then I don't want this ISDIR thing returning true and stuffing things up,
+     * so we _only_ fiddle the path if it is absolute. */
+    if (sec.names[type][0] == '/'
+            && stat(sec.names[type], &st) == 0
+            && S_ISDIR(st.st_mode)) {
+        /* +2 for '/' and '\0' */
+        sec.names[type] = realloc_array(sec.names[type], strlen(sec.names[type]) + strlen(argv[0]) + 2);
+        /* TODO: Make this more efficient... */
+        strcat(sec.names[type], "/");
+        strcat(sec.names[type], argv[0]);
+    }
+
 	fstat(fd, &st);
 
 	/* Run low priority; people like to use apps while compiling. */
