diff --git a/src/plugins/sieve-extprograms/sieve-extprograms-common.c b/src/plugins/sieve-extprograms/sieve-extprograms-common.c
index 283bd2a0725b40ef934f3d026d710596ec0d693b..02983d22b247880f761daa0b4020b4f4fc375d00 100644
--- a/src/plugins/sieve-extprograms/sieve-extprograms-common.c
+++ b/src/plugins/sieve-extprograms/sieve-extprograms-common.c
@@ -62,8 +62,7 @@ struct sieve_extprograms_config *sieve_extprograms_config_init
 	struct sieve_extprograms_config *ext_config;
 	const char *extname = sieve_extension_name(ext);
 	const char *bin_dir, *socket_dir;
-	sieve_number_t execute_timeout =
-		SIEVE_EXTPROGRAMS_DEFAULT_EXEC_TIMEOUT_SECS;
+	sieve_number_t execute_timeout;
 
 	extname = strrchr(extname, '.');
 	i_assert(extname != NULL);
@@ -75,6 +74,8 @@ struct sieve_extprograms_config *sieve_extprograms_config_init
 		(svinst, t_strdup_printf("sieve_%s_socket_dir", extname));
 	
 	ext_config = i_new(struct sieve_extprograms_config, 1);
+	ext_config->execute_timeout = 
+		SIEVE_EXTPROGRAMS_DEFAULT_EXEC_TIMEOUT_SECS;
 
 	if ( bin_dir == NULL && socket_dir == NULL ) {
 		if ( svinst->debug ) {
@@ -86,12 +87,12 @@ struct sieve_extprograms_config *sieve_extprograms_config_init
 	} else {
 		ext_config->bin_dir = i_strdup(bin_dir);
 		ext_config->socket_dir = i_strdup(socket_dir);
-	}
 
-	if (sieve_setting_get_duration_value
-		(svinst, t_strdup_printf("sieve_%s_exec_timeout", extname),
-			&execute_timeout)) {
-		ext_config->execute_timeout = execute_timeout;
+		if (sieve_setting_get_duration_value
+			(svinst, t_strdup_printf("sieve_%s_exec_timeout", extname),
+				&execute_timeout)) {
+			ext_config->execute_timeout = execute_timeout;
+		}
 	}
 
 	if ( sieve_extension_is(ext, pipe_extension) ) 
@@ -415,7 +416,8 @@ struct sieve_extprogram *sieve_extprogram_create
 			"running program: %s", action, program_name);
 	}
 
-	if ( ext_config == NULL ) {
+	if ( ext_config == NULL ||
+		(ext_config->bin_dir == NULL && ext_config->socket_dir == NULL) ) {
 		sieve_sys_error(svinst, "action %s: "
 			"failed to execute program `%s': "
 			"vnd.dovecot.%s extension is unconfigured", action, program_name, action);