diff --git a/src/cfgparse.c b/src/cfgparse.c
index 31a2b83..c6e4b12 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -3082,33 +3082,10 @@
 		 * We must still support older configurations, so let's find out whether those
 		 * parameters have been set or must be copied from contimeouts.
 		 */
-		if (curproxy != &defproxy) {
-			if (!curproxy->timeout.tarpit ||
-			    curproxy->timeout.tarpit == defproxy.timeout.tarpit) {
-				/* tarpit timeout not set. We search in the following order:
-				 * default.tarpit, curr.connect, default.connect.
-				 */
-				if (defproxy.timeout.tarpit)
-					curproxy->timeout.tarpit = defproxy.timeout.tarpit;
-				else if (curproxy->timeout.connect)
-					curproxy->timeout.tarpit = curproxy->timeout.connect;
-				else if (defproxy.timeout.connect)
-					curproxy->timeout.tarpit = defproxy.timeout.connect;
-			}
-			if ((curproxy->cap & PR_CAP_BE) &&
-			    (!curproxy->timeout.queue ||
-			     curproxy->timeout.queue == defproxy.timeout.queue)) {
-				/* queue timeout not set. We search in the following order:
-				 * default.queue, curr.connect, default.connect.
-				 */
-				if (defproxy.timeout.queue)
-					curproxy->timeout.queue = defproxy.timeout.queue;
-				else if (curproxy->timeout.connect)
-					curproxy->timeout.queue = curproxy->timeout.connect;
-				else if (defproxy.timeout.connect)
-					curproxy->timeout.queue = defproxy.timeout.connect;
-			}
-		}
+		if (!curproxy->timeout.tarpit)
+			curproxy->timeout.tarpit = curproxy->timeout.connect;
+		if ((curproxy->cap & PR_CAP_BE) && !curproxy->timeout.queue)
+			curproxy->timeout.queue = curproxy->timeout.connect;
 
 		if ((curproxy->options2 & PR_O2_CHK_ANY) == PR_O2_SSL3_CHK) {
 			curproxy->check_len = sizeof(sslv3_client_hello_pkt) - 1;
