diff -ur ardour-0.9beta17.1.orig/libs/ardour/ardour/tempo.h ardour-0.9beta17.1/libs/ardour/ardour/tempo.h
--- ardour-0.9beta17.1.orig/libs/ardour/ardour/tempo.h	2004-07-11 19:30:30.011186608 -0400
+++ ardour-0.9beta17.1/libs/ardour/ardour/tempo.h	2004-07-11 19:51:59.657130624 -0400
@@ -179,10 +179,12 @@
 
 	typedef vector<BBTPoint> BBTPointList;
 	
+#if 0
 	template<class T> void apply_with_points (T& obj, void (T::*method)(BBTPointList&)) {
 		LockMonitor lm (lock, __LINE__, __FILE__);
 		(obj.*method)(bbt_points);
 	}
+#endif
 	
 	
 	template<class T> void apply_with_metrics (T& obj, void (T::*method)(const Metrics&)) {
diff -ur ardour-0.9beta17.1.orig/libs/gtkmm/src/build_sources/proxy.h.m4 ardour-0.9beta17.1/libs/gtkmm/src/build_sources/proxy.h.m4
--- ardour-0.9beta17.1.orig/libs/gtkmm/src/build_sources/proxy.h.m4	2004-07-11 19:30:29.960194360 -0400
+++ ardour-0.9beta17.1/libs/gtkmm/src/build_sources/proxy.h.m4	2004-07-11 19:48:24.965768672 -0400
@@ -167,6 +167,7 @@
         }
 
     public:
+      using [ProxySignal]NUM($1)<LIST([R],1,ARG_TYPE($1),[$1],[Obj,gObj,index],1)>::obj;
       SlotType slot()
         {
           SigC::SlotData* tmp=manage(new SigC::SlotData());
diff -ur ardour-0.9beta17.1.orig/libs/gtkmmext/pix.cc ardour-0.9beta17.1/libs/gtkmmext/pix.cc
--- ardour-0.9beta17.1.orig/libs/gtkmmext/pix.cc	2004-07-11 19:30:30.054180072 -0400
+++ ardour-0.9beta17.1/libs/gtkmmext/pix.cc	2004-07-11 19:48:34.850266000 -0400
@@ -36,7 +36,7 @@
 
 namespace std
 {
-	struct less<string *> {
+	template<> struct less<string *> {
 	    bool operator()(string *s1, string *s2) const {
 		    return *s1 < *s2;
 	    }
diff -ur ardour-0.9beta17.1.orig/libs/pbd/pbd/stl_delete.h ardour-0.9beta17.1/libs/pbd/pbd/stl_delete.h
--- ardour-0.9beta17.1.orig/libs/pbd/pbd/stl_delete.h	2004-07-11 19:30:29.946196488 -0400
+++ ardour-0.9beta17.1/libs/pbd/pbd/stl_delete.h	2004-07-11 19:48:12.508662440 -0400
@@ -24,7 +24,7 @@
 /* To actually use any of these deletion functions, you need to
    first include the revelant container type header.
 */
-#if defined(_CPP_VECTOR) || defined(__SGI_STL_VECTOR)
+#if defined(_CPP_VECTOR) || defined(_GLIBCXX_VECTOR) || defined(__SGI_STL_VECTOR)
 template<class T> void vector_delete (std::vector<T *> *vec) 
 {
 	typename std::vector<T *>::iterator i;
@@ -34,9 +34,9 @@
 	}
 	vec->clear ();
 }
-#endif // _CPP_VECTOR || __SGI_STL_VECTOR
+#endif // _CPP_VECTOR || _GLIBCXX_VECTOR || __SGI_STL_VECTOR
 
-#if defined(_CPP_MAP) || defined(__SGI_STL_MAP)
+#if defined(_CPP_MAP) || defined(_GLIBCXX_MAP) || defined(__SGI_STL_MAP)
 template<class K, class T> void map_delete (std::map<K, T *> *m) 
 {
 	typename std::map<K, T *>::iterator i;
@@ -46,9 +46,9 @@
 	}
 	m->clear ();
 }
-#endif // _CPP_MAP || __SGI_STL_MAP
+#endif // _CPP_MAP || _GLIBCXX_MAP || __SGI_STL_MAP
 
-#if defined(_CPP_LIST) || defined(__SGI_STL_LIST)
+#if defined(_CPP_LIST) || defined(_GLIBCXX_LIST) || defined(__SGI_STL_LIST)
 template<class T> void list_delete (std::list<T *> *l) 
 {
 	typename std::list<T *>::iterator i;
@@ -59,9 +59,9 @@
 
 	l->clear ();
 }
-#endif // _CPP_LIST || __SGI_STL_LIST
+#endif // _CPP_LIST || _GLIBCXX_LIST || __SGI_STL_LIST
 
-#if defined(_CPP_SLIST) || defined(__SGI_STL_SLIST)
+#if defined(_CPP_SLIST) || defined(_GLIBCXX_SLIST) || defined(__SGI_STL_SLIST)
 template<class T> void slist_delete (std::slist<T *> *l) 
 {
 	typename std::slist<T *>::iterator i;
@@ -72,9 +72,9 @@
 
 	l->clear ();
 }
-#endif // _CPP_SLIST || __SGI_STL_SLIST
+#endif // _CPP_SLIST || _GLIBCXX_SLIST || __SGI_STL_SLIST
 
-#if defined(_CPP_SET) || defined(__SGI_STL_SET)
+#if defined(_CPP_SET) || defined(_GLIBCXX_SET) || defined(__SGI_STL_SET)
 template<class T> void set_delete (std::set<T *> *sset) 
 {
 	typename std::set<T *>::iterator i;
@@ -84,6 +84,6 @@
 	}
 	sset->erase (sset->begin(), sset->end());
 }
-#endif // _CPP_SET || __SGI_STL_SET
+#endif // _CPP_SET || _GLIBCXX_SET || __SGI_STL_SET
 
 #endif // __libmisc_stl_delete_h__
diff -ur ardour-0.9beta17.1.orig/libs/sigc++/sigc++/macros/class_slot.h.m4 ardour-0.9beta17.1/libs/sigc++/sigc++/macros/class_slot.h.m4
--- ardour-0.9beta17.1.orig/libs/sigc++/sigc++/macros/class_slot.h.m4	2004-07-11 19:30:30.075176880 -0400
+++ ardour-0.9beta17.1/libs/sigc++/sigc++/macros/class_slot.h.m4	2004-07-11 19:48:15.587194432 -0400
@@ -77,7 +77,7 @@
       if (!obj) return 0;
       SlotData* tmp=manage(new SlotData());
       CallData &data=reinterpret_cast<CallData&>(tmp->data_);
-      data.callback=&callback;
+      data.callback=&[ObjectSlot]NUM($1)_<LIST(R,1,ARG_TYPE($1),[$1],Obj,1)>::callback;
       data.obj=&obj;
       data.func=(Func)func;
       return tmp;
