diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S b/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S
index 17b6a268acd4cb52e237a83ec5c264a69e0d6a3b..01e0c25378eb128233d6993fbe29568d1c2a7fc8 100644
--- a/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S
+++ b/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.S
@@ -1063,6 +1063,115 @@ loop7:	# loop over time
 	blr			# return
 
 
+#if 0
+.align	5
+.global	_add_correlations
+_add_correlations:
+
+	li	 11,-16		# push call-saved registers
+	subi	 1,1,32
+	stmw	 24,0(1)
+	stfpdux	 14,1,11
+	stfpdux	 15,1,11
+
+	srwi	7,7,1
+	mtctr	7
+
+	li	8,8
+
+	sub	3,3,8
+	sub	4,4,8
+
+	mr	10,3
+
+				; lfpsux	0,3,8
+				; lfpsux	1,3,8
+				; lfpsux	2,3,8
+				; lfpsux	3,3,8
+				; lfpsux	4,3,8
+				; lfpsux	5,3,8
+				; lfpsux	6,3,8
+				; lfpsux	7,3,8
+
+				; lfpsux	8,4,8
+				; lfpsux	9,4,8
+				; lfpsux	10,4,8
+				; lfpsux	11,4,8
+				; lfpsux	12,4,8
+				; lfpsux	13,4,8
+				; lfpsux	14,4,8
+				; lfpsux	15,4,8
+
+0:				
+	fpadd	0,0,8		; lfpsux	8,4,8
+	fpadd	1,1,9		; lfpsux	9,4,8
+	fpadd	2,2,10		; lfpsux	10,4,8
+	fpadd	3,3,11		; lfpsux	11,4,8
+	fpadd	4,4,12		; lfpsux	12,4,8
+	fpadd	5,5,13		; lfpsux	13,4,8
+	fpadd	6,6,14		; lfpsux	14,4,8
+	fpadd	7,7,15		; lfpsux	15,4,8
+
+				; stfpsux	0,10,8
+				; lfpsux	0,3,8
+				; stfpsux	1,10,8
+				; lfpsux	1,3,8
+				; stfpsux	2,10,8
+				; lfpsux	2,3,8
+				; stfpsux	3,10,8
+				; lfpsux	3,3,8
+				; stfpsux	4,10,8
+				; lfpsux	4,3,8
+				; stfpsux	5,10,8
+				; lfpsux	5,3,8
+				; stfpsux	6,10,8
+				; lfpsux	6,3,8
+				; stfpsux	7,10,8
+				; lfpsux	7,3,8
+
+	bdnz	0b
+
+	# now do all nrValidSamples; since overflows should not occur, we
+	# treat two unsigned shorts as one word
+
+	srwi	7,7,2		; lwzx		24,0,5
+	mtctr	7		; lwzx		28,0,6
+	li	9,4		; lwzux		25,5,9
+				; lwzux		29,6,9
+				; lwzux		26,5,9
+				; lwzux		30,6,9
+				; lwzux		27,5,9
+				; lwzux		31,6,9
+
+1:	add	24,24,28	; lwzux		28,6,9
+				; stw		24,-28(5)
+				; lwzux		24,5,9
+
+	add	25,25,29	; lwzux		29,6,9
+				; stw		25,-28(5)
+				; lwzux		25,5,9
+
+	add	26,26,30	; lwzux		30,6,9
+				; stw		26,-28(5)
+				; lwzux		26,5,9
+
+	add	27,27,31	; lwzux		31,6,9
+				; stw		27,-28(5)
+				; lwzux		27,5,9
+
+	bdnz	1b
+
+	li	  11,16		# restore call-saved registers
+	lfpdx	  15,0,1
+	lfpdux	  14,1,11
+
+	lmw	  24,16(1)
+	addi	  1,1,48	# reset stack pointer
+
+	blr			# return
+#endif
+
+
 .align	5
 .global	_clear_correlation
 _clear_correlation:
diff --git a/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.h b/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.h
index 3be453def3b1acf1f4f16cfabea986202e95cb2a..300bde531c753657156c4c46793c30576f6d7840 100644
--- a/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.h
+++ b/Appl/CEP/CS1/CS1_BGLProc/src/Correlator.h
@@ -71,6 +71,14 @@ extern "C" {
 			 CorrelatedOutputType *S1_S2,
 			 CorrelatedOutputType *S2_S2);
 
+#if 0
+  void _add_correlations(DH_Visibilities::AllVisibilitiesType *dstVis,
+			 const DH_Visibilities::AllVisibilitiesType *srcVis,
+			 DH_Visibilities::AllNrValidSamplesType *dstVal,
+			 const DH_Visibilities::AllNrValidSamplesType *srcVal,
+			 unsigned count);
+#endif
+			 
   void _clear_correlation(CorrelatedOutputType *S0_S0);
 
   void _post_process_visibilities(