diff --git a/tester/account_tester.c b/tester/account_tester.c
index c0281110ddf8d89c23a9a426672bef1c160256aa..eac3af8154bc3e355d24c93f7502e8cb70f5e0fd 100644
--- a/tester/account_tester.c
+++ b/tester/account_tester.c
@@ -69,7 +69,10 @@ static void simple_account_creation(void) {
 	    "yes");
 
 	char *local_rc = ms_strdup(marie->rc_local);
-	linphone_core_manager_destroy(marie);
+
+	linphone_core_manager_stop(marie);
+	linphone_core_manager_uninit2(marie, TRUE, FALSE); // uninit but do not unlink the rc file
+	ms_free(marie);
 
 	// Verify that the custom parameters are written to the rc file
 	bctbx_vfs_file_t *cfg_file = bctbx_file_open(bctbx_vfs_get_default(), local_rc, "r");
@@ -81,6 +84,8 @@ static void simple_account_creation(void) {
 	bctbx_file_close(cfg_file);
 	bctbx_free(buf);
 
+	unlink(local_rc);
+
 	ms_free(local_rc);
 }
 
diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h
index 09ae54ac9187111d18e14dfa8a7cf94956914751..7276f6e5adb6124985a2cabb9e057251136528cb 100644
--- a/tester/liblinphone_tester.h
+++ b/tester/liblinphone_tester.h
@@ -585,7 +585,7 @@ void linphone_core_manager_restart(LinphoneCoreManager *mgr, bool_t check_for_pr
 /* This function is used to restore the fake DNS which is lost after a linphone_core_stop() */
 void linphone_core_manager_setup_dns(LinphoneCoreManager *mgr);
 void linphone_core_manager_uninit(LinphoneCoreManager *mgr);
-void linphone_core_manager_uninit2(LinphoneCoreManager *mgr, bool_t unlinkDb);
+void linphone_core_manager_uninit2(LinphoneCoreManager *mgr, bool_t unlinkDb, bool_t unlinkRc);
 void linphone_core_manager_wait_for_stun_resolution(LinphoneCoreManager *mgr);
 void linphone_core_manager_destroy(LinphoneCoreManager *mgr);
 void linphone_core_manager_destroy_after_stop_async(LinphoneCoreManager *mgr);
diff --git a/tester/tester.c b/tester/tester.c
index 97d8bb16830e274194967117027dec4d79be7360..fd8bb5b321c427b87c97f2b773c00f4e704ceae5 100644
--- a/tester/tester.c
+++ b/tester/tester.c
@@ -2774,7 +2774,7 @@ void linphone_core_manager_restart(LinphoneCoreManager *mgr, bool_t check_for_pr
 	linphone_core_manager_start(mgr, check_for_proxies);
 }
 
-void linphone_core_manager_uninit2(LinphoneCoreManager *mgr, bool_t unlinkDb) {
+void linphone_core_manager_uninit2(LinphoneCoreManager *mgr, bool_t unlinkDb, bool_t unlinkRc) {
 	if (mgr->phone_alias) {
 		ms_free(mgr->phone_alias);
 	}
@@ -2806,6 +2806,9 @@ void linphone_core_manager_uninit2(LinphoneCoreManager *mgr, bool_t unlinkDb) {
 	if (mgr->cbs) linphone_core_cbs_unref(mgr->cbs);
 
 	if (mgr->rc_local) {
+		if (unlinkRc == TRUE) {
+			unlink(mgr->rc_local);
+		}
 		bctbx_free(mgr->rc_local);
 		mgr->rc_local = NULL;
 	}
@@ -2815,7 +2818,7 @@ void linphone_core_manager_uninit2(LinphoneCoreManager *mgr, bool_t unlinkDb) {
 	manager_count--;
 }
 void linphone_core_manager_uninit(LinphoneCoreManager *mgr) {
-	linphone_core_manager_uninit2(mgr, TRUE);
+	linphone_core_manager_uninit2(mgr, TRUE, TRUE);
 }
 
 void linphone_core_manager_wait_for_stun_resolution(LinphoneCoreManager *mgr) {
diff --git a/tester/vfs-encryption-tester.cpp b/tester/vfs-encryption-tester.cpp
index c79a4f3ad821156d98f1aab5fd3744841a89d737..06a00d1e39e910295e1091a4b3e2b57352086f59 100644
--- a/tester/vfs-encryption-tester.cpp
+++ b/tester/vfs-encryption-tester.cpp
@@ -121,7 +121,7 @@ static void register_user(const uint16_t encryptionModule, const char *random_id
 	}
 
 	linphone_core_manager_stop(marie);
-	linphone_core_manager_uninit2(marie, FALSE); // uinit but do not unlink the db files
+	linphone_core_manager_uninit2(marie, FALSE, FALSE); // uinit but do not unlink the db files
 	ms_free(marie);
 
 	// check the linphone dbs and local_rc are encrypted or not
@@ -276,10 +276,10 @@ static void zrtp_call(const uint16_t encryptionModule,
 
 	// cleaning
 	linphone_core_manager_stop(marie);
-	linphone_core_manager_uninit2(marie, FALSE); // uinit but do not unlink the db files
+	linphone_core_manager_uninit2(marie, FALSE, FALSE); // uinit but do not unlink the db files
 	ms_free(marie);
 	linphone_core_manager_stop(pauline);
-	linphone_core_manager_uninit2(pauline, FALSE); // uinit but do not unlink the db files
+	linphone_core_manager_uninit2(pauline, FALSE, FALSE); // uinit but do not unlink the db files
 	ms_free(pauline);
 
 	// check the linphone dbs and local_rc are encrypted or not
@@ -553,9 +553,9 @@ end:
 		bctbx_free(plainFilePath3);
 	}
 
-	linphone_core_manager_uninit2(marie, FALSE); // uinit but do not unlink the db files
+	linphone_core_manager_uninit2(marie, FALSE, FALSE); // uinit but do not unlink the db files
 	ms_free(marie);
-	linphone_core_manager_uninit2(pauline, FALSE); // uinit but do not unlink the db files
+	linphone_core_manager_uninit2(pauline, FALSE, FALSE); // uinit but do not unlink the db files
 	ms_free(pauline);
 
 	// check the linphone dbs and local_rc are encrypted or not