diff --git a/externals/freeverb~/freeverb~.c b/externals/freeverb~/freeverb~.c
index 9f7ae6cb090e764c084518bced26ed9c6d267a59..237ad71538c009fbb671cd0cd2c1af307a66dec3 100644
--- a/externals/freeverb~/freeverb~.c
+++ b/externals/freeverb~/freeverb~.c
@@ -143,26 +143,13 @@ typedef struct _freeverb
 //#define FIX_DENORM_NAN_FLOAT(v);
 //#endif
 
-typedef union ulf
-{
-    unsigned long   ul;
-    float           f;
-} ulf;
-
-static inline float fix_denorm_nan_float(float v);
+static inline float fix_denorm_nan_float(t_float v);
 
-static inline float fix_denorm_nan_float(float v)
+static inline float fix_denorm_nan_float(t_float v)
 {
-#ifndef IRIX
-    ulf u;
-
-    u.f = v;
-    if ((((u.ul & 0x7f800000) == 0L) && (u.f != 0.f)) || ((u.ul & 0x7f800000) == 0x7f800000))
-        /* if the float is denormal or NaN, return 0.0 */
-        v = 0.0f;
-        //return 0.0f;
-#endif //IRIX
-    return v;
+	if (PD_BADFLOAT(v))
+	    v = 0.0f;
+	return v;
 }
 
 /* we need prototypes for Mac for everything */
diff --git a/externals/pdp/include/pdp_config.h b/externals/pdp/include/pdp_config.h
index 583bcb9cf405c9f66ed0a5674503a4afacb807d7..bc4df28605efad92ea1d6aa36f266cde5f378213 100644
--- a/externals/pdp/include/pdp_config.h
+++ b/externals/pdp/include/pdp_config.h
@@ -35,7 +35,7 @@
 #define HAVE_PDP_QT 1
 
 /* build pdp_sdl */
-/* #undef HAVE_PDP_SDL */
+#define HAVE_PDP_SDL 1
 
 /* build pdp_v4l */
 #define HAVE_PDP_V4L 1
diff --git a/pd/src/d_fft_fftw.c b/pd/src/d_fft_fftw.c
index 04e4729deecccc26ca3e57d36229b8eb4c16147f..0155e99edc4b0839104f177c86ffab30b5de2ec9 100644
--- a/pd/src/d_fft_fftw.c
+++ b/pd/src/d_fft_fftw.c
@@ -68,7 +68,7 @@ static cfftw_info *cfftw_getplan(int n,int fwd)
 
 typedef struct {
     fftwf_plan plan;
-    float *in,*out;
+    t_float *in,*out;
 } rfftw_info;
 
 static rfftw_info rfftw_fwd[MAXFFT+1 - MINFFT],rfftw_bwd[MAXFFT+1 - MINFFT];
@@ -82,8 +82,8 @@ static rfftw_info *rfftw_getplan(int n,int fwd)
     info = (fwd?rfftw_fwd:rfftw_bwd)+(logn-MINFFT);
     if (!info->plan) 
     {
-        info->in = (float*) fftwf_malloc(sizeof(float) * n);
-        info->out = (float*) fftwf_malloc(sizeof(float) * n);
+        info->in = (t_float*) fftwf_malloc(sizeof(t_float) * n);
+        info->out = (t_float*) fftwf_malloc(sizeof(t_float) * n);
         info->plan = fftwf_plan_r2r_1d(n, info->in, info->out, fwd?FFTW_R2HC:FFTW_HC2R, FFTW_MEASURE);
     }
     return info;
@@ -91,34 +91,34 @@ static rfftw_info *rfftw_getplan(int n,int fwd)
 
 
 
-EXTERN void mayer_fht(float *fz, int n)
+EXTERN void mayer_fht(t_float *fz, int n)
 {
     post("FHT: not yet implemented");
 }
 
-static void mayer_do_cfft(int n, float *fz1, float *fz2, int fwd)
+static void mayer_do_cfft(int n, t_float *fz1, t_float *fz2, int fwd)
 {
     int i;
-    float *fz;
+    t_float *fz;
     cfftw_info *p = cfftw_getplan(n, fwd);
     if (!p)
         return;
         
-    for (i = 0, fz = (float *)p->in; i < n; i++)
+    for (i = 0, fz = (t_float *)p->in; i < n; i++)
         fz[i*2] = fz1[i], fz[i*2+1] = fz2[i];
         
     fftwf_execute(p->plan);
     
-    for (i = 0, fz = (float *)p->out; i < n; i++)
+    for (i = 0, fz = (t_float *)p->out; i < n; i++)
         fz1[i] = fz[i*2], fz2[i] = fz[i*2+1];
 }
 
-EXTERN void mayer_fft(int n, float *fz1, float *fz2)
+EXTERN void mayer_fft(int n, t_float *fz1, t_float *fz2)
 {
     mayer_do_cfft(n, fz1, fz2, 1);
 }
 
-EXTERN void mayer_ifft(int n, float *fz1, float *fz2)
+EXTERN void mayer_ifft(int n, t_float *fz1, t_float *fz2)
 {
     mayer_do_cfft(n, fz1, fz2, 0);
 }
@@ -129,7 +129,7 @@ EXTERN void mayer_ifft(int n, float *fz1, float *fz2)
     but it's probably the mayer_fft that should be corrected...
 */ 
 
-EXTERN void mayer_realfft(int n, float *fz)
+EXTERN void mayer_realfft(int n, t_float *fz)
 {
     int i;
     rfftw_info *p = rfftw_getplan(n, 1);
@@ -145,7 +145,7 @@ EXTERN void mayer_realfft(int n, float *fz)
         fz[i] = -p->out[i];
 }
 
-EXTERN void mayer_realifft(int n, float *fz)
+EXTERN void mayer_realifft(int n, t_float *fz)
 {
     int i;
     rfftw_info *p = rfftw_getplan(n, 0);