diff --git a/src/libzafl.c b/src/libzafl.c
index c0a36ec150ddb43556947c0c52a4f549e5051cf3..95c2b01f4923d25365c64fe5d72c6e6b1dc72a9f 100644
--- a/src/libzafl.c
+++ b/src/libzafl.c
@@ -279,9 +279,11 @@ static void zafl_setupAflTracemapSharedMemory()
 {
 	if (getenv("ZAFL_DEBUG")) debug = 1;
 
+
 	if (tracemap_shared_memory_is_setup)
 		return;
 
+
 	zafl_prev_id = 0;
 	zafl_trace_map = NULL;
 
@@ -296,6 +298,12 @@ static void zafl_setupAflTracemapSharedMemory()
 		// setup the area for storing prev_id and context_id 4K away from the end of the trace map
 		void* vars_addr = (void*)(shmat_addr + AFL_VARS_OFFSET);
 		zafl_setupAflVariablesMemory(vars_addr);
+		if (getenv("ZAFL_DRIVER_SETS_UP_MAP")) 
+		{ 
+			tracemap_shared_memory_is_setup=1; 
+			zafl_trace_map=shmat_addr;
+			return; 
+		}
 	}
 
 	char *shm_env_var = getenv(SHM_ENV_VAR);