 {
 	if(threadIdx.x==0 && blockIdx.x==0) {
 		for(int i=0; i < ROUNDED_TIMING_COUNT; i++) {
-			timingTableD2[i]   = 0;
-			timingTableD1[i]   = 0;
+			timeTableD2GPU[i]   = 0;
+			timeTableD1GPU[i]   = 0;
 		}
 		secD2fireCnt=0;
 		secD1fireCnt=0;


	// map the timing table to texture.. saves a lot of headache in using shared memory
	void* devPtr;
	CUDA_CHECK_ERRORS(cudaGetSymbolAddress(&devPtr, timingTableD2));
	size_t offset;
	CUDA_CHECK_ERRORS(cudaBindTexture(&offset, timingTableD2_tex, devPtr, sizeof(int) * ROUNDED_TIMING_COUNT));
	offset = offset / sizeof(int);
	CUDA_CHECK_ERRORS(cudaGetSymbolAddress(&devPtr, timingTableD2_tex_offset));
	CUDA_CHECK_ERRORS(cudaMemcpy(devPtr, &offset, sizeof(int), cudaMemcpyHostToDevice));
		
	CUDA_CHECK_ERRORS(cudaGetSymbolAddress(&devPtr, timingTableD1));
	CUDA_CHECK_ERRORS(cudaBindTexture(&offset, timingTableD1_tex, devPtr, sizeof(int) * ROUNDED_TIMING_COUNT));
	offset = offset / sizeof(int);
	CUDA_CHECK_ERRORS(cudaGetSymbolAddress(&devPtr, timingTableD1_tex_offset));
	CUDA_CHECK_ERRORS(cudaMemcpy(devPtr, &offset, sizeof(int), cudaMemcpyHostToDevice));

	// initialize (memset) gpuRuntimeData.current

	int k      = secD2fireCnt - 1;

	// stores the number of fired neurons at time (t - maxDelay_)
	int k_end  = tex1Dfetch (timeTableD2GPU_tex, simTimeMs+1+timeTableD2GPU_tex_offset);

	int t_pos  = simTimeMs;

