diff --git a/externals/OSCx/config.h b/externals/OSCx/config.h
index bca83e3eb18fa0d5120f49eeed3e735210ddf625..0abaeb49a7806dcfbdc6761654df9335bbb62e57 100644
--- a/externals/OSCx/config.h
+++ b/externals/OSCx/config.h
@@ -1 +1 @@
-/* config.h.  Generated by configure.  */
+/* config.h.  Generated from config.h.in by configure.  */
diff --git a/externals/OSCx/libOSC/Makefile b/externals/OSCx/libOSC/Makefile
index cea44f7e3e29099c6d33b2db44d964a0ec2e0f1f..3b8055d4d6bdb7c79767666981ab2eded2537df9 100644
--- a/externals/OSCx/libOSC/Makefile
+++ b/externals/OSCx/libOSC/Makefile
@@ -4,7 +4,7 @@ ARFLAGS=srv
 # DEFS= -Dunix
 LIB=libOSC.a
 
-CFLAGS=-g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O2 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src
+CFLAGS=-g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src
 INCLUDES=-I../libOSC -I../../pd/src -I../../../pd/src -I../src
 
 LIBOBJS= ${LIB}(OSC-client.o) ${LIB}(OSC-timetag.o)
diff --git a/externals/OSCx/send+dump/Makefile b/externals/OSCx/send+dump/Makefile
index 06d2c4825e60a1992124a1e0d48890f5ba0298a3..a14b0d65f859316a1a65002090c78ec309b4b7d6 100644
--- a/externals/OSCx/send+dump/Makefile
+++ b/externals/OSCx/send+dump/Makefile
@@ -1,9 +1,9 @@
-LIBS = -lc -lm
+LIBS = -L../../../pd/bin -lc -lm
 LIBOSCDIR = ../libOSC
 LIBOSC = ${LIBOSCDIR}/libOSC.a
 
 # strange bug requires this...
-CFLAGS= -g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O2 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src -I../libOSC -I../../pd/src -I../../../pd/src -I../src
+CFLAGS= -g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src -I../libOSC -I../../pd/src -I../../../pd/src -I../src
 # INCLUDES= -I../libOSC -I../../pd/src -I../../../pd/src -I../src
 
 DUMPOBJS=dumpOSC.o
diff --git a/externals/OSCx/src/Makefile b/externals/OSCx/src/Makefile
index 10856d0faee5b9ce4f0e858c1db3371c8840fd92..6b5753b52d083729c94122078e0fc47d66345da0 100644
--- a/externals/OSCx/src/Makefile
+++ b/externals/OSCx/src/Makefile
@@ -17,10 +17,10 @@
 
 
 EXT=o
-LIBS = -lc -lm
+LIBS = -L../../../pd/bin -lc -lm
 LIBOSC = ../libOSC/libOSC.a
 
-CFLAGS = -g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O2 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src
+CFLAGS = -g -O2 -DUNIX -Wall -Wimplicit -Wunused -Wmissing-prototypes -O1 -fPIC -I../libOSC -I../../pd/src -I../../../pd/src -I../src
 INCLUDES = -I../libOSC -I../../pd/src -I../../../pd/src -I../src
 LDFLAGS = -Wl,--export-dynamic -shared
 
diff --git a/externals/build/include/g_all_guis.h b/externals/build/include/g_all_guis.h
index 25e22f53803692807d88a0ffb8376a20b005ae75..81549d3e194f97f19ae2c3c3e0fc3ffd134f3dfc 100644
--- a/externals/build/include/g_all_guis.h
+++ b/externals/build/include/g_all_guis.h
@@ -97,6 +97,10 @@ typedef struct _iemgui
     unsigned int x_locked:1;      //  7 matches ([bng] only)
     unsigned int x_reverse:1;     //  4 matches (sliders only)
     unsigned int dummy:20;
+    int legacy_x;                 // legacy x offset
+    int legacy_y;                 // legacy y offset
+    //int click_x;                  // click getrect x offset
+    //int click_y;                  // click getrect y offset
 } t_iemgui;
 
 typedef struct _bng
@@ -180,7 +184,7 @@ typedef struct _my_numbox
     double   x_k;
     int      x_lin0_log1; // bool
     char     x_buf[IEMGUI_MAX_NUM_LEN];
-    int      x_numwidth; // unsigned
+    int      x_numwidth; // unsigned (width in pixels)
     int      x_scalewidth;  /* temporary value for scalehandle */
     int      x_scaleheight; /* temporary value for scalehandle */
     int      x_tmpfontsize; /* temporary value for scalehandle */
@@ -280,3 +284,4 @@ EXTERN void iemgui_out_bang(t_iemgui *x, int o, int chk_putin);
 EXTERN void iemgui_out_float(t_iemgui *x, int o, int chk_putin, t_float f);
 EXTERN void iemgui_out_list(t_iemgui *x, int o, int chk_putin, t_symbol *s, int argc, t_atom *argv);
 
+EXTERN int sys_legacy; // found in s_main.c, used for legacy iemgui positioning 
diff --git a/externals/lyonpotpourri b/externals/lyonpotpourri
index 9e77f069796d278ecf26780555b3ce2bf1549fff..c9906dbf784f170892afc751da352ebd8f7f7d42 160000
--- a/externals/lyonpotpourri
+++ b/externals/lyonpotpourri
@@ -1 +1 @@
-Subproject commit 9e77f069796d278ecf26780555b3ce2bf1549fff
+Subproject commit c9906dbf784f170892afc751da352ebd8f7f7d42
diff --git a/externals/pdp/bin/pdp-config b/externals/pdp/bin/pdp-config
index 1e8420330a070b9127f40310ba72ea4d3f812637..c8605657af06d9321b502942b437375475e0bb8a 100644
--- a/externals/pdp/bin/pdp-config
+++ b/externals/pdp/bin/pdp-config
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-prefix=/usr/local
+prefix=/Users/mbarb/build/purr-data/pd
 version=0.12.7
 
 usage="\
diff --git a/externals/pdp/include/pdp_config.h b/externals/pdp/include/pdp_config.h
index 08ac30d1314c9ba7ea47e73922edbc64339f8a35..583bcb9cf405c9f66ed0a5674503a4afacb807d7 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 */
-#define HAVE_PDP_SDL 1
+/* #undef HAVE_PDP_SDL */
 
 /* build pdp_v4l */
 #define HAVE_PDP_V4L 1
@@ -44,7 +44,7 @@
 #define HAVE_PDP_X 1
 
 /* build pdp_xv */
-#define HAVE_PDP_XV 1
+/* #undef HAVE_PDP_XV */
 
 /* enable forced pwc v4l support */
 /* #undef HAVE_PWCV4L */