  /*
  Copyright (c) 2003-2010, Mark Borgerding
  
+@@ -135,7 +138,7 @@ struct kiss_fft_state{
+ #else
+ #  define KISS_FFT_COS(phase) (kiss_fft_scalar) cos(phase)
+ #  define KISS_FFT_SIN(phase) (kiss_fft_scalar) sin(phase)
+-#  define HALF_OF(x) ((x)*.5)
++#  define HALF_OF(x) ((x)*(kiss_fft_scalar).5)
+ #endif
+ 
+ #define  kf_cexp(x,phase) \
 @@ -162,3 +165,4 @@ struct kiss_fft_state{
  #define  KISS_FFT_TMP_ALLOC(nbytes) KISS_FFT_MALLOC(nbytes)
  #define  KISS_FFT_TMP_FREE(ptr) KISS_FFT_FREE(ptr)
  #endif
 +#endif // _KISS_FFT_GUTS_H
+diff --git a/kiss_fft.c b/kiss_fft.c
+index 465d6c9..9133a01 100644
+--- a/kiss_fft.c
++++ b/kiss_fft.c
+@@ -375,7 +375,7 @@ void kiss_fft_stride(kiss_fft_cfg st,const kiss_fft_cpx *fin,kiss_fft_cpx *fout,
+         //It just performs an out-of-place FFT into a temp buffer
+         kiss_fft_cpx * tmpbuf = (kiss_fft_cpx*)KISS_FFT_TMP_ALLOC( sizeof(kiss_fft_cpx)*st->nfft);
+         kf_work(tmpbuf,fin,1,in_stride, st->factors,st);
+-        memcpy(fout,tmpbuf,sizeof(kiss_fft_cpx)*st->nfft);
++        /* memcpy(fout,tmpbuf,sizeof(kiss_fft_cpx)*st->nfft); */
+         KISS_FFT_TMP_FREE(tmpbuf);
+     }else{
+         kf_work( fout, fin, 1,in_stride, st->factors,st );
 diff --git a/kiss_fft.h b/kiss_fft.h
-index 64c50f4..ce88cdf 100644
+index 64c50f4..24e4d0c 100644
 --- a/kiss_fft.h
 +++ b/kiss_fft.h
 @@ -7,7 +7,7 @@

 #else	
-#define KISS_FFT_MALLOC malloc
-#define KISS_FFT_FREE free
+#define KISS_FFT_MALLOC(X) (void*)(~0x1) /* Patched. */
+#define KISS_FFT_FREE(X) /* Patched. */
 #endif	
 

diff --git a/_kiss_fft_guts.h b/_kiss_fft_guts.h
index ba66144..1a0f4c2 100644
--- a/_kiss_fft_guts.h
+++ b/_kiss_fft_guts.h
@@ -1,3 +1,6 @@
