bool SortItems(wxListCtrlCompare fn, long data);
     bool Update(long item);
     virtual bool OnListNotify(wxListEvent& WXUNUSED(event)) { return FALSE; }
+    void OnIdle( wxIdleEvent &event );
+    
+    // We have to hand down a few functions
+    
     void SetDropTarget( wxDropTarget *dropTarget )
-      { m_mainWin->SetDropTarget( dropTarget ); };
+      { m_mainWin->SetDropTarget( dropTarget ); }
     wxDropTarget *GetDropTarget() const
-      { return m_mainWin->GetDropTarget(); };
-
-    void OnIdle( wxIdleEvent &event );
+      { return m_mainWin->GetDropTarget(); }
+    void SetCursor( const wxCursor &cursor )
+      { m_mainWin->SetCursor( cursor); }
+    wxColour GetBackgroundColour() const
+      { return m_mainWin->GetBackgroundColour(); }
+    void SetBackgroundColour( const wxColour &colour )
+      { m_mainWin->SetBackgroundColour(); }
+    wxColour GetForegroundColour() const
+      { return m_mainWin->GetForegroundColour(); }
+    void SetForegroundColour( const wxColour &colour )
+      { return m_mainWin->GetForegroundColour(); }
+    bool PopupMenu( wxMenu *menu, int x, int y )
+      { m_mainWin->PopupMenu( menu, x, y ); }
 
   protected:
 
 
      THREADS_LINK="-lpthread-0.7"
      AC_DEFINE(USE_THREADS)
   ],[
+    AC_CHECK_HEADER(sys/prctl.h, [
+        UNIX_THREAD="gtk/threadsgi.cpp"
+        AC_DEFINE(USE_THREADS)
+    ])
     AC_CHECK_LIB(pthread, pthread_create, [
        UNIX_THREAD="gtk/threadpsx.cpp"
        THREADS_LINK="-lpthread"
      THREADS_LINK="-lpthreads"
      AC_DEFINE(USE_THREADS)
   ])
-  AC_CHECK_HEADER(sys/prctl.h, [
-     UNIX_THREAD="gtk/threadsgi.cpp"
-     AC_DEFINE(USE_THREADS)
-  ])
 fi
 
 AC_SUBST(UNIX_THREAD)
 
 // System dependent include
 // ---------------------------------------------------------------------------
 
-#ifdef linux
+#if defined(__LINUX__) || defined(__SGI__)
 #include <dlfcn.h>
 #endif
 
     else
       delete m_liblist;
 
-#ifdef linux
+#if defined(__LINUX__) || defined(__SGI__)
     dlclose(m_handle);
 #endif
 #ifdef __WINDOWS__
 
 void *wxLibrary::GetSymbol(const wxString& symbname)
 {
-#ifdef linux
+#if defined(__LINUX__) || defined(__SGI__)
   return dlsym(m_handle, WXSTRINGCAST symbname);
 #endif
 #ifdef __WINDOWS__
   if ( (node = m_loaded.Find(name.GetData())) )
     return ((wxLibrary *)node->Data());
 
-#ifdef linux
+#if defined(__LINUX__) || defined(__SGI__)
   lib_name.Prepend("lib");
   lib_name += ".so";
 
 
 
   pid = (proc_data->pid > 0) ? proc_data->pid : -(proc_data->pid);
 
+  /* wait4 is not standard, use at own risk */
+#if !defined(__sgi)
   wait4(proc_data->pid, NULL, 0, NULL);
+#else
+  wait3(NULL, 0, NULL);
+#endif
 
   close(source);
   gdk_input_remove(proc_data->tag);
 
 
   pid = (proc_data->pid > 0) ? proc_data->pid : -(proc_data->pid);
 
+  /* wait4 is not standard, use at own risk */
+#if !defined(__sgi)
   wait4(proc_data->pid, NULL, 0, NULL);
+#else
+  wait3(NULL, 0, NULL);
+#endif
 
   close(source);
   gdk_input_remove(proc_data->tag);