diff --git a/.gitignore b/.gitignore
index cbbe2432b7d891e97811bce8b57c198484530bd6..f09948d3902f68b82925713deda0e96b13a8b8ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,3 +47,4 @@ tester/belle_sip_tester_crt
 tester/CUnitAutomated-Results.xml.tmp-Results.xml
 belle-sip-tests.log
 git-clang-format.diff
+.bc_tester_utils.tmp
diff --git a/tester/common/bc_tester_utils.c b/tester/common/bc_tester_utils.c
index 6b14355b31777c4b278fe98fefe3fde8c9dc161e..603a5786d2c63900be9da9dbf265720e967aeefd 100644
--- a/tester/common/bc_tester_utils.c
+++ b/tester/common/bc_tester_utils.c
@@ -52,7 +52,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 static char *bc_tester_resource_dir_prefix = NULL;
 // by default writable will always write near the executable
-static char *bc_tester_writable_dir_prefix = ".";
+static char *bc_tester_writable_dir_prefix = NULL;
 
 int bc_printf_verbosity_info;
 int bc_printf_verbosity_error;
@@ -392,7 +392,7 @@ static void detect_res_prefix(const char* prog) {
 	}
 
 	if (prefix != NULL) {
-		if (bc_tester_resource_dir_prefix != NULL) {
+		if (bc_tester_resource_dir_prefix == NULL) {
 			printf("Resource directory set to %s\n", prefix);
 			bc_tester_set_resource_dir_prefix(prefix);
 		}
@@ -406,7 +406,7 @@ static void detect_res_prefix(const char* prog) {
 
 	// check that we can write in writable directory
 	if (bc_tester_writable_dir_prefix != NULL) {
-		writable_file = fopen("bc_tester_utils.tmp", "w");
+		writable_file = fopen(".bc_tester_utils.tmp", "w");
 		if (writable_file) {
 			fclose(writable_file);
 		}
@@ -431,6 +431,7 @@ void bc_tester_init(void (*ftester_printf)(int level, const char *format, va_lis
 	tester_printf_va = ftester_printf;
 	bc_printf_verbosity_error = iverbosity_error;
 	bc_printf_verbosity_info = iverbosity_info;
+	bc_tester_writable_dir_prefix = strdup(".");
 }
 
 void bc_tester_set_max_vm(long max_vm_kb) {