diff --git a/R/mfft_real_quatro.R b/R/mfft_real_quatro.R
index 1d19108d11b7f57c472bbf0d679a6031c34c0edb..b06b50161a075c6ca924f5231fabf6523928415e 100644
--- a/R/mfft_real_quatro.R
+++ b/R/mfft_real_quatro.R
@@ -3,7 +3,7 @@ Q <- function(wT) {sin(wT)/(wT)*(pi^2)/(pi^2-(wT)^2)}
 Qprime <- function(y) {ifelse(y==0, 0, pi^2/(pi^2-y^2)/y*(cos(y)+(sin(y)/y)*(3*y^2-pi^2)/(pi^2-y^2)))}
 Qsecond0 <- 2/pi^2 - 1./3. 
 
-analyse <- function(xdata, nfreq, fast = TRUE, nu = NULL){
+analyse_quatro <- function(xdata, nfreq, fast = TRUE, nu = NULL){
   
 
   # nu can be provided, in which case the frequencies
@@ -223,7 +223,7 @@ analyse <- function(xdata, nfreq, fast = TRUE, nu = NULL){
         print (c(amp[m-1], amp[m]))
         print("phase computation (2)")
         
-        phase[m] <- atan(-amp[m]/amp[m-1])
+        phase[m] <- Arg (-1i * amp[m] + amp[m-1])
         amp[m] <- sqrt(amp[m-1]^2 + amp[m]^2)
         print ("phase")
         print (c(phase[m], amp[m]))
@@ -281,7 +281,7 @@ mfft_real_quatro <- function(xdata, nfreq=5, correction=1, fast=TRUE){
     dt = deltat(xdata)
     startx = stats::start(xdata)[1]
     N <- length(xdata)
-    OUT <- analyse(xdata, nfreq, fast)
+    OUT <- analyse_quatro(xdata, nfreq, fast)
 
 
     # correction  (methode 2)
@@ -290,7 +290,7 @@ mfft_real_quatro <- function(xdata, nfreq=5, correction=1, fast=TRUE){
    xdata_synthetic <- rep(0,N)
    t <- seq(N)-1
    for (i in seq(nfreq)) xdata_synthetic = xdata_synthetic + OUT$amp[i]*cos(OUT$nu[i]*t + OUT$phase[i])
-   OUT2 <- analyse(xdata_synthetic, nfreq, fast)
+   OUT2 <- analyse_quatro(xdata_synthetic, nfreq, fast)
    OUT$nu = OUT$nu + (OUT$nu - OUT2$nu)
    OUT$amp = OUT$amp + (OUT$amp - OUT2$amp)
    OUT$phase = OUT$phase + (OUT$phase - OUT2$phase)
@@ -306,11 +306,12 @@ mfft_real_quatro <- function(xdata, nfreq=5, correction=1, fast=TRUE){
           Qprime( (OUT$nu[s] - OUT$nu[j])*N2)*cos((OUT$nu[j] - OUT$nu[s])*N2 + OUT$phase[j] - OUT$phase[s] ) -
           Qprime(( OUT$nu[s] + OUT$nu[j])*N2)*cos((OUT$nu[j] + OUT$nu[s])*N2 + OUT$phase[j] + OUT$phase[s] ) )
      }}
+    print(sprintf("j= %i, OUT$nu[j]= %.4f, OUT$amp[j] = %.4f", j, OUT$nu[j], OUT$amp[j]))   
     epsilon = epsilon / Qsecond0 / N2 / OUT$amp[j]
 
     OUT$nu[j] = OUT$nu[j] - epsilon
     }
-    OUT <- analyse(xdata, nfreq, fast, nu = OUT$nu)
+    OUT <- analyse_quatro(xdata, nfreq, fast, nu = OUT$nu)
   }
 
   # account for tseries scaling (i.e. uses the vaue of deltat and start encoded
diff --git a/R/mfft_real_ter.R b/R/mfft_real_ter.R
index bd5e70949a2876944b2abae283ddb9211eae3279..171d76d2ee16f1ad181317ccd16bd9b76cc66a33 100644
--- a/R/mfft_real_ter.R
+++ b/R/mfft_real_ter.R
@@ -1,6 +1,6 @@
 
 Q <- function(wT) {sin(wT)/(wT)*(pi^2)/(pi^2-(wT)^2)}
-Qprime <- function(y) {pi^2/(pi^2-y^2)/y*(cos(y)+(sin(y)/y)*(3*y^2-pi^2)/(pi^2-y^2))}
+Qprime <- function(y) {ifelse(y==0, 0, pi^2/(pi^2-y^2)/y*(cos(y)+(sin(y)/y)*(3*y^2-pi^2)/(pi^2-y^2)))}
 Qsecond0 <- 2/pi^2 - 1./3. 
 
 analyse <- function(xdata, nfreq, fast = TRUE, nu = NULL){