--- ./src/kernel/qapplication.cpp.orig2	2002-12-07 17:38:53.000000000 +0100
+++ ./src/kernel/qapplication.cpp	2002-12-07 18:21:21.000000000 +0100
@@ -35,6 +35,8 @@
 **
 **********************************************************************/
 
+#define QT_WEAK_SYMBOL	__attribute__(( weak ))
+
 #include "qobjectlist.h"
 #include "qobjectdict.h"
 #include "qapplication.h"
@@ -933,6 +935,11 @@
 #ifndef QT_NO_STYLE
 void QApplication::setStyle( QStyle *style )
 {
+	setStyle_NonWeak ( style );
+}
+
+void QApplication::setStyle_NonWeak( QStyle *style )
+{
     QStyle* old = app_style;
 
     if ( startingUp() ) {
@@ -1186,7 +1193,13 @@
   \sa QWidget::setPalette(), palette(), QStyle::polish()
 */
 
-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
+			       const char* className )
+{
+	setPalette_NonWeak ( palette, informWidgets, className );
+}
+
+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
 			       const char* className )
 {
     QPalette pal = palette;
@@ -1288,6 +1301,12 @@
 void QApplication::setFont( const QFont &font, bool informWidgets,
 			    const char* className )
 {
+	setFont_NonWeak ( font, informWidgets, className );
+}
+
+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
+			    const char* className )
+{
     bool all = FALSE;
     if ( !className ) {
 	if ( !app_font ) {
--- ./src/kernel/qapplication_qws.cpp.orig2	2002-12-07 17:41:46.000000000 +0100
+++ ./src/kernel/qapplication_qws.cpp	2002-12-07 17:42:26.000000000 +0100
@@ -2641,6 +2641,11 @@
 */
 void QApplication::qwsSetDecoration( QWSDecoration *d )
 {
+	qwsSetDecoration_NonWeak ( d );
+}
+
+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
+{
     if ( d ) {
 	delete qws_decoration;
 	qws_decoration = d;
--- ./src/kernel/qapplication.h.orig2	2002-12-07 17:42:38.000000000 +0100
+++ ./src/kernel/qapplication.h	2002-12-07 18:22:38.000000000 +0100
@@ -61,6 +61,10 @@
 class QSemaphore;
 #endif
 
+#if !defined( QT_WEAK_SYMBOL )
+#define QT_WEAK_SYMBOL
+#endif
+
 // REMOVE IN 3.0 (just here for moc source compatibility)
 #define QNonBaseApplication QApplication
 
@@ -85,7 +89,10 @@
 
 #ifndef QT_NO_STYLE
     static QStyle  &style();
-    static void	    setStyle( QStyle* );
+    static void	    setStyle( QStyle* ) QT_WEAK_SYMBOL;
+private:
+	static void     setStyle_NonWeak( QStyle* );
+public:
 #endif
 #if 1	/* OBSOLETE */
     enum ColorMode { NormalColors, CustomColors };
@@ -106,11 +113,19 @@
 #ifndef QT_NO_PALETTE
     static QPalette  palette( const QWidget* = 0 );
     static void	     setPalette( const QPalette &, bool informWidgets=FALSE,
+				 const char* className = 0 ) QT_WEAK_SYMBOL;
+private:
+    static void	     setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
 				 const char* className = 0 );
+public:
 #endif
     static QFont     font( const QWidget* = 0 );
     static void	     setFont( const QFont &, bool informWidgets=FALSE,
+			      const char* className = 0 ) QT_WEAK_SYMBOL;
+private:
+    static void	     setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
 			      const char* className = 0 );
+public:			      
     static QFontMetrics fontMetrics();
 
     QWidget	    *mainWidget()  const;
@@ -207,7 +222,10 @@
     void             qwsSetCustomColors( QRgb *colortable, int start, int numColors );
 #ifndef QT_NO_QWS_MANAGER
     static QWSDecoration &qwsDecoration();
-    static void      qwsSetDecoration( QWSDecoration *);
+    static void      qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
+private:
+    static void      qwsSetDecoration_NonWeak( QWSDecoration *);
+public:
 #endif
 #endif
 
--- ./src/kernel/qfontdatabase.h.orig2	2002-12-07 17:46:20.000000000 +0100
+++ ./src/kernel/qfontdatabase.h	2002-12-07 18:23:22.000000000 +0100
@@ -59,6 +59,10 @@
 class QDiskFont;
 #endif
 
+#if !defined( QT_WEAK_SYMBOL )
+#define QT_WEAK_SYMBOL
+#endif
+
 class QFontDatabasePrivate;
 
 class Q_EXPORT QFontDatabase
@@ -67,9 +71,16 @@
     QFontDatabase();
 
     QStringList families( bool onlyForLocale = TRUE ) const;
+    
+    
     QValueList<int> pointSizes( const QString &family,
 				const QString &style = QString::null,
-				const QString &charSet = QString::null );
+				const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
+private:
+    QValueList<int> pointSizes_NonWeak( const QString &family,
+				const QString &style,
+				const QString &charSet );
+public:
     QStringList styles( const QString &family,
 			const QString &charSet = QString::null ) const;
     QStringList charSets( const QString &familyName,
--- ./src/kernel/qfontdatabase.cpp.orig2	2002-12-07 17:46:24.000000000 +0100
+++ ./src/kernel/qfontdatabase.cpp	2002-12-07 18:22:53.000000000 +0100
@@ -35,6 +35,8 @@
 **
 **********************************************************************/
 
+#define QT_WEAK_SYMBOL  __attribute__(( weak ))
+
 #include "qfontdatabase.h"
 
 #ifndef QT_NO_FONTDATABASE
@@ -2424,6 +2426,13 @@
                                                  const QString &style,
                                                  const QString &charSet )
 {
+	return pointSizes_NonWeak ( family, style, charSet );
+}
+
+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
+                                                 const QString &style,
+                                                 const QString &charSet )
+{
     QString cs( charSet );
     if ( charSet.isEmpty() ) {
         QStringList lst = charSets( family );