diff -ur lssa/src/fastlscomplex.cc lssa-new/src/fastlscomplex.cc
--- lssa/src/fastlscomplex.cc	2012-08-16 22:00:23 +0100
+++ lssa-new/src/fastlscomplex.cc	2013-01-15 03:10:26 +0000
@@ -262,7 +262,7 @@
    */
 
   omega_oct = maxfreq / mu;
-  omega_multiplier = exp (-log(2) / coefficients);
+  omega_multiplier = exp (-log(2.0) / coefficients);
   octavemax = maxfreq;
   loop_tau_0 = tau_0;
   loop_delta_tau = delta_tau;
@@ -372,8 +372,8 @@
 
                             --tpra;
                             h = *tpra * *exp_ptr;
-                            record_current->power_series[p].real() -= h.imag();
-                            record_current->power_series[p].imag() += h.real();
+                            record_current->power_series[p].real(record_current->power_series[p].real() - h.imag());
+                            record_current->power_series[p].imag(record_current->power_series[p].imag() + h.real());
 
                             if (++exp_ptr >= exp_pse_ptr )
                               break;
@@ -386,8 +386,8 @@
 
                             --tpra;
                             h = -*tpra * *exp_ptr;
-                            record_current->power_series[p].real() -= h.imag();
-                            record_current->power_series[p].imag() += h.real();
+                            record_current->power_series[p].real(record_current->power_series[p].real() - h.imag());
+                            record_current->power_series[p].imag(record_current->power_series[p].imag() + h.real());
 
                             if (++exp_ptr >= exp_pse_ptr)
                               break;
@@ -422,8 +422,8 @@
 
                                   tprb -= 2;
                                   h = *tprb * *exp_ptr;
-                                  record_current->power_series[p].real() -= h.imag();
-                                  record_current->power_series[p].imag() += h.real();
+                                  record_current->power_series[p].real(record_current->power_series[p].real() - h.imag());
+                                  record_current->power_series[p].imag(record_current->power_series[p].imag() + h.real());
 
                                   if ( ++exp_ptr >= exp_pse_ptr )
                                     break;
@@ -436,8 +436,8 @@
 
                                   tprb -= 2;
                                   h = - *tprb * *exp_ptr;
-                                  record_current->power_series[p].real() -= h.imag();
-                                  record_current->power_series[p].imag() += h.real();
+                                  record_current->power_series[p].real(record_current->power_series[p].real() - h.imag());
+                                  record_current->power_series[p].imag(record_current->power_series[p].imag() + h.real());
 
                                   if (++exp_ptr >= exp_pse_ptr)
                                     break;
@@ -467,8 +467,8 @@
 
                                   --tpra;
                                   h = *tpra * *exp_ptr;
-                                  record_next->power_series[q].real() -= h.imag();
-                                  record_next->power_series[q].imag() += h.real();
+                                  record_next->power_series[q].real(record_next->power_series[q].real() - h.imag());
+                                  record_next->power_series[q].imag(record_next->power_series[q].imag() + h.real());
 
                                   if (++exp_ptr >= exp_pse_ptr)
                                     break;
@@ -481,8 +481,8 @@
 
                                   --tpra;
                                   h = -*tpra * *exp_ptr;
-                                  record_next->power_series[q].real() -= h.imag();
-                                  record_next->power_series[q].imag() += h.real();
+                                  record_next->power_series[q].real(record_next->power_series[q].real() - h.imag());
+                                  record_next->power_series[q].imag(record_next->power_series[q].imag() + h.real());
 
                                   if (++exp_ptr >= exp_pse_ptr)
                                     break;
