diff -urNp a/src/include/realms.h b/src/include/realms.h
--- a/src/include/realms.h	2009-05-18 06:13:55.000000000 -0500
+++ b/src/include/realms.h	2009-07-11 16:08:11.000000000 -0500
@@ -27,6 +27,10 @@ RCSIDH(realms_h, "$Id$")
 #define HOME_STATE_ZOMBIE		(1)
 #define HOME_STATE_IS_DEAD		(2)
 
+#define HOME_POOL_NO_RESPONSE_INVALID	(0)
+#define HOME_POOL_NO_RESPONSE_FAIL	(1)
+#define HOME_POOL_NO_RESPONSE_SKIP	(2)
+
 typedef struct home_server {
 	const char	*name;
 
@@ -100,6 +104,7 @@ typedef struct home_pool_t {
 	home_pool_type_t	type;
 
 	int			server_type;
+	int			no_response_type;
 	CONF_SECTION		*cs;
 
 	const char		*virtual_server; /* for pre/post-proxy */
diff -urNp a/src/main/event.c b/src/main/event.c
--- a/src/main/event.c	2009-05-18 06:13:55.000000000 -0500
+++ b/src/main/event.c	2009-07-11 16:13:15.000000000 -0500
@@ -1093,7 +1093,8 @@ static void no_response_to_proxied_reque
 
 	home = request->home_server;
 
-	post_proxy_fail_handler(request);
+	if (request->home_pool->no_response_type != HOME_POOL_NO_RESPONSE_SKIP)
+		post_proxy_fail_handler(request);
 
 	/*
 	 *	Don't touch request due to race conditions
diff -urNp a/src/main/realms.c b/src/main/realms.c
--- a/src/main/realms.c	2009-05-18 06:13:55.000000000 -0500
+++ b/src/main/realms.c	2009-07-11 16:14:18.000000000 -0500
@@ -570,7 +570,7 @@ static int home_server_add(realm_config_
 	}
 #endif
 
-	if (home->response_window < 5) home->response_window = 5;
+	if (home->response_window < 1) home->response_window = 5;
 	if (home->response_window > 60) home->response_window = 60;
 
 	if (home->max_outstanding < 8) home->max_outstanding = 8;
@@ -579,7 +579,7 @@ static int home_server_add(realm_config_
 	if (home->ping_interval < 6) home->ping_interval = 6;
 	if (home->ping_interval > 120) home->ping_interval = 120;
 
-	if (home->zombie_period < 20) home->zombie_period = 20;
+	if (home->zombie_period < 1) home->zombie_period = 20;
 	if (home->zombie_period > 120) home->zombie_period = 120;
 
 	if (home->zombie_period < home->response_window) {
@@ -770,6 +770,7 @@ static int server_pool_add(realm_config_
 	pool = server_pool_alloc(name2, HOME_POOL_FAIL_OVER, server_type,
 				 num_home_servers);
 	pool->cs = cs;
+	pool->no_response_type = HOME_POOL_NO_RESPONSE_FAIL;
 
 
 	/*
@@ -830,6 +831,34 @@ static int server_pool_add(realm_config_
 		if (do_print) cf_log_info(cs, "\ttype = %s", value);
 	}
 
+	cp = cf_pair_find(cs, "no_response");
+	if (cp) {
+		static FR_NAME_NUMBER no_response_types[] = {
+			{ "fail", HOME_POOL_NO_RESPONSE_FAIL },
+			{ "skip-server", HOME_POOL_NO_RESPONSE_SKIP },
+			{ "skip_server", HOME_POOL_NO_RESPONSE_SKIP },
+			{ NULL, 0 }
+		};
+
+		value = cf_pair_value(cp);
+		if (!value) {
+			cf_log_err(cf_pairtoitem(cp),
+				   "No value given for no_response.");
+			goto error;
+		}
+
+		pool->no_response_type = fr_str2int(no_response_types, value, 0);
+		if (!pool->no_response_type) {
+			cf_log_err(cf_pairtoitem(cp),
+				   "Unknown no_response value \"%s\".",
+				   value);
+			goto error;
+		}
+
+		if (do_print) cf_log_info(cs, "\tno_response = %s", value);
+	}
+
+
 	cp = cf_pair_find(cs, "virtual_server");
 	if (cp) {
 		pool->virtual_server = cf_pair_value(cp);		
