diff --git a/src/DataVampire.cpp b/src/DataVampire.cpp
index d18d6c3161d5476081ec650d406a3a57e51ba116..1068df9b4690e1be863c4e9f8d52f2deb0f1c663 100644
--- a/src/DataVampire.cpp
+++ b/src/DataVampire.cpp
@@ -2387,11 +2387,13 @@ void DataVampire::process_1D(int32_t cache_idx, int32_t auto_bck_samples)
 
 			if (cache_buffer[cache_idx].datavalid[i*wave_size+j]) {
 				sum += val; 
-				pos += val * (j + 1);
+				pos += val * (double)(j + 1);
 				cnt++;
 			}				
 		}
 		mean = sum / (double) cnt;
+		pos /= sum;
+
 
 		// get std
 		cnt = 0;
@@ -2403,7 +2405,8 @@ void DataVampire::process_1D(int32_t cache_idx, int32_t auto_bck_samples)
 		}		
 		if (cnt != 0)
 			std = pow(std / (double) cnt, 0.5);
-		std = 0;
+		else
+			std = 0;
 
 		cache_buffer[cache_idx].sum[i] = sum;
 		cache_buffer[cache_idx].mean[i] = mean;