diff --git a/configure.in b/configure.in
index c8e65a8..2096a1d 100644
--- a/configure.in
+++ b/configure.in
@@ -427,20 +427,9 @@ AC_ARG_WITH(gda,
 	fi
 )
 if test "$try_gda" = true; then
-	PKG_CHECK_MODULES(GDA, [libgda-4.0 >= 4.1.1],
+	PKG_CHECK_MODULES(GDA, [libgda-4.0 >= 4.1.5 libgda-ui-4.0 >= 4.1.5],
 		[gda_msg=yes],
 		[gda_msg="NO.  libgda problem"])
-	AC_CHECK_HEADER(libgda/control-center/gdaui-login-dialog.h,
-			[],
-			[gda_msg="NO.  libgda problem"])
-	if test "$gda_msg" = yes; then
-		PKG_CHECK_MODULES(GNOMEDB, [libgnomedb-4.0 >= 3.99.6],
-			[gnomedb_msg="yes"],
-			[gnomedb_msg="NO. libgnomedb problem"])
-		if test "$gnomedb_msg" = yes; then
-			AC_DEFINE(HAVE_LIBGNOMEDB, 1, [ Define if libgnomedb support is compiled in])
-		fi
-	fi
 fi
 AM_CONDITIONAL(WITH_GDA, test x"$gda_msg" = xyes)
 AC_SUBST(GDA_CFLAGS)
@@ -1135,7 +1124,6 @@ Configuration:
 	Python Support:		${python_msg}
 
 	GDA support:		${gda_msg}
-	GNOME-DB support:	${gnomedb_msg}
 	Psiconv support:        ${psiconv_msg}
 
 	PDF documentation:	${pdf_msg}
diff --git a/plugins/gda/plugin-gda.c b/plugins/gda/plugin-gda.c
index c65683c..13a7211 100644
--- a/plugins/gda/plugin-gda.c
+++ b/plugins/gda/plugin-gda.c
@@ -22,7 +22,7 @@
 #include <gnumeric-config.h>
 #include <gnumeric.h>
 #include <libgda/libgda.h>
-#include <libgda/control-center/gdaui-login-dialog.h>
+#include <libgda-ui/gdaui-login.h>
 #include <sql-parser/gda-sql-parser.h>
 #include <string.h>
 
@@ -30,6 +30,7 @@
 #include "expr.h"
 #include "value.h"
 #include "workbook.h"
+#include "wbc-gtk.h"
 #include "sheet.h"
 #include "gnm-i18n.h"
 #include <goffice/goffice.h>
@@ -254,45 +255,45 @@ open_connection (const gchar *dsn, const gchar *user, const gchar *password, Gda
 	if (!cnc) {
 		CncKey *key;
 		gchar *auth, *tmp1, *tmp2;
-
-		GtkWidget    *dialog = gdaui_login_dialog_new (_("Database Connection"), NULL); /* FIXME: pass a pointer to parent window */
-		GnomeDbLogin *login  = gdaui_login_dialog_get_login_widget (GDAUI_LOGIN_DIALOG (dialog));
-		gnome_db_login_set_dsn (login, dsn);
-		gnome_db_login_set_username (login, user);
-		gnome_db_login_set_password (login, password);
-		if (gdaui_login_dialog_run (GDAUI_LOGIN_DIALOG (dialog))) {
-			real_dsn = g_strdup (gdauilogin_get_dsn (login));
-			real_user = g_strdup (gdauilogin_get_username (login));
-			real_password = g_strdup (gdauilogin_get_password (login));
+		GdaDsnInfo const *info = NULL;
+
+		GtkWidget    *dialog = gtk_dialog_new_with_buttons (
+						_("Database Connection"), NULL,
+						GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
+						GTK_STOCK_OK,
+						GTK_RESPONSE_ACCEPT,
+						GTK_STOCK_CANCEL,
+						GTK_RESPONSE_REJECT,
+						NULL); /* FIXME: pass a pointer to parent window */
+		GtkWidget *login  = gdaui_login_new (dsn);
+		gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))),
+				GTK_WIDGET (login), TRUE, TRUE, 0);
+		gtk_widget_show_all (dialog);
+		if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
+			info = gdaui_login_get_connection_information (GDAUI_LOGIN (login));
 			gtk_widget_destroy (dialog);
+			if (!info->name)
+				return NULL;
 		} else {
 			gtk_widget_destroy (dialog);
 			return NULL;
 		}
-		tmp1 = gda_rfc1738_encode (real_user);
-		tmp2 = gda_rfc1738_encode (real_password);
-		auth = g_strdup_printf ("USERNAME=%s;PASSWORD=%s", tmp1, tmp2);
-		g_free (tmp1);
-		g_free (tmp2);
-		cnc = gda_connection_open_from_dsn (real_dsn, auth, options, &error);
+		cnc = gda_connection_open_from_dsn (info->name, info->auth_string,
+						    GDA_CONNECTION_OPTIONS_THREAD_SAFE,
+						    &error);
 		if (!cnc) {
 			g_warning ("Libgda error: %s\n", error->message);
 			g_error_free (error);
 		}
 
-		g_free (real_dsn);
-		g_free (real_user);
-		g_free (real_password);
-		g_free (auth);
-
-		key = g_new0 (CncKey, 1);
+/*		key = g_new0 (CncKey, 1);
 		if (dsn)
 			key->dsn = g_strdup (dsn);
 		if (user)
 			key->user = g_strdup (user);
 		if (password)
 			key->pass = g_strdup (password);
-		g_hash_table_insert (cnc_hash, key, cnc);
+		g_hash_table_insert (cnc_hash, key, cnc);*/
 	}
 
 	return cnc;
@@ -465,12 +466,10 @@ view_data_sources (GnmAction const *action, WorkbookControl *wbc)
 	argv[0] = gda_get_application_exec_path ("gda-control-center");
 	argv[1] = NULL;
 	if (!g_spawn_async (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL)) {
-		char *msg = g_strdup_printf (
+		go_gtk_notice_dialog (wbcg_toplevel (WBC_GTK (wbc)),
+			GTK_MESSAGE_INFO,
 			_("Could not run GNOME database configuration tool ('%s')"),
 			argv[0]);
-		go_gtk_notice_dialog (wbcg_toplevel (WBC_GTK (wbc)),
-			GTK_MESSAGE_INFO,  msg);
-		g_free (msg);
 	}
 	g_free (argv[0]);
 }
@@ -490,12 +489,12 @@ ModulePluginUIActions const gdaif_ui_actions[] = {
 
 GnmFuncDescriptor gdaif_functions[] = {
 	{
-		"execSQL",	"ssss", "dsn,username,password,sql",
-		help_execSQL, &gnumeric_execSQL, NULL, NULL, NULL
+		"execSQL",	"ssss", help_execSQL,
+		gnumeric_execSQL, NULL, NULL, NULL, 0, 0, 0
 	},
 	{
-		"readDBTable", "ssss", "dsn,username,password,table",
-		help_readDBTable, &gnumeric_readDBTable, NULL, NULL, NULL
+		"readDBTable", "ssss", help_readDBTable,
+		gnumeric_readDBTable, NULL, NULL, NULL, 0, 0, 0
 	},
 	{NULL}
 };
