diff --git a/regress/CMakeLists.txt b/regress/CMakeLists.txt
index d301c0b..47c25d8 100644
--- a/regress/CMakeLists.txt
+++ b/regress/CMakeLists.txt
@@ -209,7 +209,7 @@
 string(REPLACE ";" "\\;" path "${path}")
 
 FOREACH(CASE ${EXTRA_TESTS})
-  ADD_TEST(NAME ${CASE} COMMAND perl ${CMAKE_CURRENT_BINARY_DIR}/runtest ${CMAKE_CURRENT_SOURCE_DIR}/${CASE})
+  ADD_TEST(NAME ${CASE} COMMAND perl ${CMAKE_CURRENT_BINARY_DIR}/runtest --bin-sub-directory $<CONFIG> ${CMAKE_CURRENT_SOURCE_DIR}/${CASE})
   SET_TESTS_PROPERTIES(${CASE} PROPERTIES SKIP_RETURN_CODE 77)
   SET_TESTS_PROPERTIES(${CASE} PROPERTIES ENVIRONMENT "PATH=${path}")
 ENDFOREACH()
diff --git a/regress/NiHTest.pm b/regress/NiHTest.pm
index 2fce7f4..66c2f0c 100644
--- a/regress/NiHTest.pm
+++ b/regress/NiHTest.pm
@@ -420,6 +420,7 @@
 	@ARGV = @argv;
 	my $ok = GetOptions(
 		'help|h' => \my $help,
+	        'bin-sub-directory=s' => \$self->{bin_sub_directory},
 		'keep-broken|k' => \$self->{keep_broken},
 		'no-cleanup' => \$self->{no_cleanup},
 		# 'run-gdb' => \$self->{run_gdb},
@@ -430,7 +431,7 @@
 	@ARGV = @save_argv;
 
 	if (!$ok || scalar(@argv) != 1 || $help) {
-		print STDERR "Usage: $0 [-hv] [--keep-broken] [--no-cleanup] [--setup-only] testcase\n";
+		print STDERR "Usage: $0 [-hv] [--bin-sub-directory DIR] [--keep-broken] [--no-cleanup] [--setup-only] testcase\n";
 		exit(1);
 	}
 
@@ -601,7 +602,7 @@
 
 	while (scalar(@dirs) > 0) {
 		my $dir = shift @dirs;
-		
+
 		opendir($ls, $dir);
 		unless ($ls) {
 			# TODO: handle error
@@ -611,7 +612,7 @@
 			if ($dir eq '.') {
 				$file = $entry;
 			}
-			
+
 			if (-f $file) {
 				push @files, "$file";
 			}
@@ -1138,13 +1139,18 @@
 
 
 sub find_program() {
-	my ($self, $pname) = @_;
+        my ($self, $pname) = @_;
 
-	for my $up (('.', '..', '../..', '../../..', '../../../..')) {
+	my @directories = (".");
+	if ($self->{bin_sub_directory}) {
+	        push @directories, $self->{bin_sub_directory};
+	}
+
+	for my $up (('.', '..', '../..', '../../..')) {
 		for my $sub (('.', 'src')) {
-			for my $conf (('.', 'Debug', 'Release', 'Relwithdebinfo', 'Minsizerel')) {
+		        for my $dir (@directories) {
 				for my $ext (('', '.exe')) {
-					my $f = "$up/$sub/$conf/$pname$ext";
+					my $f = "$up/$sub/$dir/$pname$ext";
 					return $f if (-f $f);
 				}
 			}
