diff -Naurp lightdm-gtk-greeter-2.0.1.orig/src/lightdm-gtk-greeter.c lightdm-gtk-greeter-2.0.1/src/lightdm-gtk-greeter.c
--- lightdm-gtk-greeter-2.0.1.orig/src/lightdm-gtk-greeter.c	2015-05-21 02:40:39.000000000 +0000
+++ lightdm-gtk-greeter-2.0.1/src/lightdm-gtk-greeter.c	2016-08-05 13:20:47.056685146 +0000
@@ -1919,6 +1919,7 @@ start_authentication (const gchar *usern
     prompted = FALSE;
     password_prompted = FALSE;
     prompt_active = FALSE;
+    GError *error = NULL;
 
     if (pending_questions)
     {
@@ -1932,11 +1933,11 @@ start_authentication (const gchar *usern
     {
         gtk_widget_show (GTK_WIDGET (username_entry));
         gtk_widget_show (GTK_WIDGET (cancel_button));
-        lightdm_greeter_authenticate (greeter, NULL);
+        lightdm_greeter_authenticate (greeter, NULL, &error);
     }
     else if (g_strcmp0 (username, "*guest") == 0)
     {
-        lightdm_greeter_authenticate_as_guest (greeter);
+        lightdm_greeter_authenticate_as_guest (greeter, &error);
     }
     else
     {
@@ -1956,7 +1957,7 @@ start_authentication (const gchar *usern
             set_language (NULL);
         }
 
-        lightdm_greeter_authenticate (greeter, username);
+        lightdm_greeter_authenticate (greeter, username, &error);
     }
 }
 
@@ -1966,6 +1967,7 @@ cancel_authentication (void)
     GtkTreeModel *model;
     GtkTreeIter iter;
     gboolean other = FALSE;
+    GError *error = NULL;
 
     if (pending_questions)
     {
@@ -1978,7 +1980,7 @@ cancel_authentication (void)
     if (lightdm_greeter_get_in_authentication (greeter))
     {
         cancelling = TRUE;
-        lightdm_greeter_cancel_authentication (greeter);
+        lightdm_greeter_cancel_authentication (greeter, &error);
         set_message_label (LIGHTDM_MESSAGE_TYPE_INFO, NULL);
     }
 
@@ -2009,10 +2011,11 @@ start_session (void)
 {
     gchar *language;
     gchar *session;
+    GError *error = NULL;
 
     language = get_language ();
     if (language)
-        lightdm_greeter_set_language (greeter, language);
+        lightdm_greeter_set_language (greeter, language, &error);
     g_free (language);
 
     session = get_session ();
@@ -2220,6 +2223,8 @@ G_MODULE_EXPORT
 void
 login_cb (GtkWidget *widget)
 {
+    GError *error = NULL;
+
     /* Reset to default screensaver values */
     if (lightdm_greeter_get_lock_hint (greeter))
         XSetScreenSaver (gdk_x11_display_get_xdisplay (gdk_display_get_default ()), timeout, interval, prefer_blanking, allow_exposures);
@@ -2233,7 +2238,7 @@ login_cb (GtkWidget *widget)
         start_session ();
     else if (lightdm_greeter_get_in_authentication (greeter))
     {
-        lightdm_greeter_respond (greeter, gtk_entry_get_text (password_entry));
+        lightdm_greeter_respond (greeter, gtk_entry_get_text (password_entry), &error);
         /* If we have questions pending, then we continue processing
          * those, until we are done. (Otherwise, authentication will
          * not complete.) */
@@ -2306,6 +2311,8 @@ show_message_cb (LightDMGreeter *greeter
 static void
 timed_autologin_cb (LightDMGreeter *greeter)
 {
+    GError *error = NULL;
+
     /* Don't trigger autologin if user locks screen with light-locker (thanks to Andrew P.). */
     if (!lightdm_greeter_get_lock_hint (greeter))
     {
@@ -2326,7 +2333,7 @@ timed_autologin_cb (LightDMGreeter *gree
             }
         }
         else
-            lightdm_greeter_authenticate_autologin (greeter);
+            lightdm_greeter_authenticate_autologin (greeter, &error);
     }
 }