diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index 2944f169f1b9de7c0695b7ed0e6108a2cd7cd81a..a6dea44a24aa5fcbf370c3b9ccfef441477d6fa8 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -37,18 +37,7 @@ else (USESYSTEMLIBS)
   include(FindPkgConfig)
     
     set(PKGCONFIG_PACKAGES
-        atk
-        cairo
-        gdk-2.0
-        gdk-pixbuf-2.0
-        glib-2.0
-        gmodule-2.0
-        gtk+-2.0
-        gthread-2.0
-        pango
-        pangoft2
-        pangox
-        pangoxft
+        gtk+-3.0
         x11
         xinerama
         )
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index c2507f4ba82427f9ea967965bf026d7d97e9c93d..eccd1322c099719df1bee9a3064470d64086c70d 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -2388,14 +2388,14 @@ S32 OSMessageBoxSDL(const std::string& text, const std::string& caption, U32 typ
 	return rtn;
 }
 
-static void color_changed_callback(GtkWidget *widget,
-				   gpointer user_data)
-{
-	GtkColorSelection *colorsel = GTK_COLOR_SELECTION(widget);
-	GdkColor *colorp = (GdkColor*)user_data;
+// static void color_changed_callback(GtkWidget *widget,
+// 				   gpointer user_data)
+// {
+// 	GtkColorSelection *colorsel = GTK_COLOR_SELECTION(widget);
+// 	GdkColor *colorp = (GdkColor*)user_data;
 	
-	gtk_color_selection_get_current_color(colorsel, colorp);
-}
+// 	gtk_color_selection_get_current_color(colorsel, colorp);
+// }
 
 
 /*
@@ -2436,63 +2436,61 @@ BOOL LLWindowSDL::dialogColorPicker( F32 *r, F32 *g, F32 *b)
 
 	beforeDialog();
 
-	if (ll_try_gtk_init())
-	{
-		GtkWidget *win = NULL;
-
-		win = gtk_color_selection_dialog_new(NULL);
-
-# if LL_X11
-		// Get GTK to tell the window manager to associate this
-		// dialog with our non-GTK SDL window, which should try
-		// to keep it on top etc.
-		if (mSDL_XWindowID != None)
-		{
-			gtk_widget_realize(GTK_WIDGET(win)); // so we can get its gdkwin
-            GdkWindow* gdkwin = gdk_x11_window_foreign_new_for_display(gdk_display_get_default(), static_cast<Window>(mSDL_XWindowID));
-			gdk_window_set_transient_for(gtk_widget_get_window(GTK_WIDGET(win)), gdkwin);
-		}
-# endif //LL_X11
-
-		GtkColorSelection *colorsel = GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG(win)));
-
-		GdkColor color, orig_color;
-		orig_color.pixel = 0;
-		orig_color.red = guint16(65535 * *r);
-		orig_color.green= guint16(65535 * *g);
-		orig_color.blue = guint16(65535 * *b);
-		color = orig_color;
-
-		gtk_color_selection_set_previous_color (colorsel, &color);
-		gtk_color_selection_set_current_color (colorsel, &color);
-		gtk_color_selection_set_has_palette (colorsel, TRUE);
-		gtk_color_selection_set_has_opacity_control(colorsel, FALSE);
-
-		gint response = GTK_RESPONSE_NONE;
-		g_signal_connect (win,
-				  "response", 
-				  G_CALLBACK (response_callback),
-				  &response);
-
-		g_signal_connect (G_OBJECT (colorsel), "color_changed",
-				  G_CALLBACK (color_changed_callback),
-				  &color);
-
-		gtk_window_set_modal(GTK_WINDOW(win), TRUE);
-		gtk_widget_show_all(win);
-		gtk_main();
-
-		if (response == GTK_RESPONSE_OK &&
-		    (orig_color.red != color.red
-		     || orig_color.green != color.green
-		     || orig_color.blue != color.blue) )
-		{
-			*r = color.red / 65535.0f;
-			*g = color.green / 65535.0f;
-			*b = color.blue / 65535.0f;
-			rtn = TRUE;
-		}
-	}
+// 	if (ll_try_gtk_init())
+// 	{
+// 		GtkWidget* win = gtk_color_chooser_dialog_new();
+
+// # if LL_X11
+// 		// Get GTK to tell the window manager to associate this
+// 		// dialog with our non-GTK SDL window, which should try
+// 		// to keep it on top etc.
+// 		if (mSDL_XWindowID != None)
+// 		{
+// 			gtk_widget_realize(GTK_WIDGET(win)); // so we can get its gdkwin
+//             GdkWindow* gdkwin = gdk_x11_window_foreign_new_for_display(gdk_display_get_default(), static_cast<Window>(mSDL_XWindowID));
+// 			gdk_window_set_transient_for(gtk_widget_get_window(GTK_WIDGET(win)), gdkwin);
+// 		}
+// # endif //LL_X11
+
+// 		GtkColorSelection *colorsel = GTK_COLOR_SELECTION (gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG(win)));
+
+// 		GdkColor color, orig_color;
+// 		orig_color.pixel = 0;
+// 		orig_color.red = guint16(65535 * *r);
+// 		orig_color.green= guint16(65535 * *g);
+// 		orig_color.blue = guint16(65535 * *b);
+// 		color = orig_color;
+
+// 		gtk_color_selection_set_previous_color (colorsel, &color);
+// 		gtk_color_selection_set_current_color (colorsel, &color);
+// 		gtk_color_selection_set_has_palette (colorsel, TRUE);
+// 		gtk_color_selection_set_has_opacity_control(colorsel, FALSE);
+
+// 		gint response = GTK_RESPONSE_NONE;
+// 		g_signal_connect (win,
+// 				  "response", 
+// 				  G_CALLBACK (response_callback),
+// 				  &response);
+
+// 		g_signal_connect (G_OBJECT (colorsel), "color_changed",
+// 				  G_CALLBACK (color_changed_callback),
+// 				  &color);
+
+// 		gtk_window_set_modal(GTK_WINDOW(win), TRUE);
+// 		gtk_widget_show_all(win);
+// 		gtk_main();
+
+// 		if (response == GTK_RESPONSE_OK &&
+// 		    (orig_color.red != color.red
+// 		     || orig_color.green != color.green
+// 		     || orig_color.blue != color.blue) )
+// 		{
+// 			*r = color.red / 65535.0f;
+// 			*g = color.green / 65535.0f;
+// 			*b = color.blue / 65535.0f;
+// 			rtn = TRUE;
+// 		}
+// 	}
 
 	afterDialog();
 
diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp
index 3bb3bd55cd34f18c0385c1d2282c1711e38ddb0c..01d24bb7468fcded0e441344afac893f88d68415 100644
--- a/indra/newview/llfilepicker.cpp
+++ b/indra/newview/llfilepicker.cpp
@@ -1069,13 +1069,13 @@ GtkWindow* LLFilePicker::buildFilePicker(bool is_save, bool is_folder, std::stri
 
 		win = gtk_file_chooser_dialog_new(NULL, NULL,
 						  pickertype,
-						  GTK_STOCK_CANCEL,
+						  "_Cancel",
 						   GTK_RESPONSE_CANCEL,
 						  is_folder ?
-						  GTK_STOCK_APPLY :
+						  "_Apply" :
 						  (is_save ? 
-						   GTK_STOCK_SAVE :
-						   GTK_STOCK_OPEN),
+						   "_Save" :
+						   "_Open"),
 						   GTK_RESPONSE_ACCEPT,
 						  (gchar *)NULL);
 		mCurContextName = context;
diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h
index ffd937ce8effb8b2094f3cf8e508d88dcbb5f07f..632ca014d16cf879ac834b00aba2b1ad79d6d348 100644
--- a/indra/newview/llfilepicker.h
+++ b/indra/newview/llfilepicker.h
@@ -61,7 +61,9 @@
 #endif
 extern "C" {
 // mostly for Linux, possible on others
-# include "gtk/gtk.h"
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
 }
 #if LL_GNUC
 #pragma GCC diagnostic pop