mail-notification

Fork of Jean-Yves Lefort's mail-notification, a tray icon to notify of new mail
git clone https://code.djc.id.au/git/mail-notification/
commit 26b73fd4d4befee1bf13ad285955000048d42e0d
parent ecf5b066f5f6310f7681946589e50cfe7978424c
Author: Jean-Yves Lefort <jylefort@brutele.be>
Date:   Mon, 25 Oct 2004 23:27:03 +1000

mail-notification-0.7.1

* Gmail changes:
        * does not crash when a GNOME proxy is set
        * handles starred and labelled messages
        * ignores non-inbox messages
        * messages were considered unseen on each check and
          the mail summary was always popped up: fixed

* The POP3/IMAP/Gmail password can now be left blank (in such
  case, it will be prompted when needed and not be saved to
  permanent storage)
* A command can now be executed when all mail has been read
* The user interface now displays the IMAP folder name (unless
  it is inbox)
* The tooltip now displays message counts
* Minor fixes and cleanups

* Updated translations:
        * Serbian (Filip Miletic)
        * German (Hendrik Brandt)
        * Portuguese (Duarte Henriques)

Diffstat:
MAUTHORS | 6+++---
MINSTALL | 8++++----
MMakefile.in | 2++
MNEWS | 25++++++++++++++++++++++++-
MREADME | 6+++---
MTODO | 20++++++++++++++++----
Mart/Makefile.in | 2++
Mconfig.h.in | 3+++
Mconfigure | 118+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mconfigure.ac | 8++++++--
Mdata/Makefile.in | 2++
Mdata/mail-notification.schemas.in | 21+++++++++++++++++++++
Mhelp/C/Makefile.in | 2++
Mhelp/C/mail-notification-C.omf | 2+-
Mhelp/C/mail-notification.xml | 135+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Mhelp/Makefile.in | 2++
Mm4/Makefile.in | 2++
Mpo/POTFILES.in | 2++
Mpo/bg.gmo | 0
Mpo/bg.po | 475+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Mpo/de.gmo | 0
Mpo/de.po | 769+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mpo/fr.gmo | 0
Mpo/fr.po | 492++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Mpo/mail-notification.pot | 437++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Mpo/pt.gmo | 0
Mpo/pt.po | 786++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Mpo/ru.gmo | 0
Mpo/ru.po | 449++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Mpo/sr.gmo | 0
Mpo/sr.po | 702+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Mpo/sr@Latn.gmo | 0
Mpo/sr@Latn.po | 702+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Msrc/Makefile.am | 11+++++++++++
Msrc/Makefile.in | 91++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Msrc/eggtrayicon.c | 14+-------------
Msrc/mn-about-dialog.c | 2+-
Msrc/mn-auth-combo-box.c | 4++--
Msrc/mn-auth-combo-box.gob | 2+-
Asrc/mn-authenticated-mailbox-private.h | 22++++++++++++++++++++++
Asrc/mn-authenticated-mailbox.c | 369+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-authenticated-mailbox.gob | 195+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-authenticated-mailbox.h | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-autodetect-mailbox-properties.c | 4++--
Msrc/mn-autodetect-mailbox-properties.gob | 2+-
Msrc/mn-automation.c | 2+-
Msrc/mn-blinking-image.c | 4++--
Msrc/mn-blinking-image.gob | 2+-
Msrc/mn-client-session.c | 2+-
Msrc/mn-conf.c | 4++--
Msrc/mn-conf.h | 6++++++
Msrc/mn-gmail-mailbox-private.h | 8+++-----
Msrc/mn-gmail-mailbox-properties-private.h | 6+++---
Msrc/mn-gmail-mailbox-properties.c | 83++++++++++++++++++++++++++++++++++++++-----------------------------------------
Msrc/mn-gmail-mailbox-properties.gob | 13+++++--------
Msrc/mn-gmail-mailbox.c | 967+++++++++++++++++++++++++++++++++----------------------------------------------
Msrc/mn-gmail-mailbox.gob | 524++++++++++++++++++++++++++++++++++---------------------------------------------
Msrc/mn-gmail-mailbox.h | 6+++---
Msrc/mn-gmime-stream-vfs.c | 4++--
Msrc/mn-gmime-stream-vfs.gob | 2+-
Msrc/mn-imap-mailbox-properties-private.h | 6+++---
Msrc/mn-imap-mailbox-properties.c | 79+++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/mn-imap-mailbox-properties.gob | 9++++-----
Msrc/mn-imap-mailbox.c | 524++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/mn-imap-mailbox.gob | 69+++++++++++++++++++++++++++++++++++----------------------------------
Msrc/mn-imap-mailbox.h | 6+++---
Msrc/mn-mail-icon.c | 2+-
Msrc/mn-mailbox-private.h | 20++++++++++----------
Msrc/mn-mailbox-properties-dialog.c | 2+-
Msrc/mn-mailbox-properties-util.c | 2+-
Msrc/mn-mailbox-properties.c | 2+-
Msrc/mn-mailbox-view.c | 4++--
Msrc/mn-mailbox-view.gob | 2+-
Msrc/mn-mailbox.c | 501++++++++++++++++++++++++++++++++++++++++++-------------------------------------
Msrc/mn-mailbox.gob | 67++++++++++++++++++++++++++++---------------------------------------
Msrc/mn-mailbox.h | 13++++++++++---
Msrc/mn-mailboxes.c | 358+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/mn-mailboxes.gob | 16+++++++++++++---
Msrc/mn-maildir-mailbox.c | 16++++++++--------
Msrc/mn-maildir-mailbox.gob | 4++--
Msrc/mn-main.c | 7++++---
Msrc/mn-mbox-mailbox.c | 20++++++++++----------
Msrc/mn-mbox-mailbox.gob | 8++++----
Msrc/mn-message-label.c | 35++++++++++++++++++++---------------
Msrc/mn-message-label.gob | 17+++++++++++------
Msrc/mn-message-mime.c | 2+-
Msrc/mn-message.c | 231+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Msrc/mn-message.gob | 100+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/mn-mh-mailbox.c | 18+++++++++---------
Msrc/mn-mh-mailbox.gob | 6+++---
Msrc/mn-pending-mailbox.c | 4++--
Msrc/mn-pending-mailbox.gob | 2+-
Msrc/mn-pi-mailbox-properties.c | 104++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/mn-pi-mailbox-properties.gob | 14+++++++++-----
Msrc/mn-pop3-mailbox-private.h | 4++--
Msrc/mn-pop3-mailbox-properties.c | 63+++++++++++++++++++++++++++++++--------------------------------
Msrc/mn-pop3-mailbox-properties.gob | 9++++-----
Msrc/mn-pop3-mailbox.c | 629++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/mn-pop3-mailbox.gob | 92++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/mn-pop3-mailbox.h | 6+++---
Msrc/mn-properties.c | 23+++++++++++++++++++----
Msrc/mn-sasl.c | 2+-
Msrc/mn-shell-private.h | 4+++-
Msrc/mn-shell.c | 343+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc/mn-shell.gob | 53++++++++++++++++++++++++++++++++++++-----------------
Msrc/mn-soup.c | 23++++++++++++++++++-----
Msrc/mn-soup.h | 2+-
Msrc/mn-ssl.c | 2+-
Msrc/mn-stock.c | 2+-
Msrc/mn-summary-dialog.c | 2+-
Msrc/mn-summary-popup.c | 5+++--
Msrc/mn-sylpheed-mailbox.c | 16++++++++--------
Msrc/mn-sylpheed-mailbox.gob | 4++--
Msrc/mn-system-mailbox-properties.c | 4++--
Msrc/mn-system-mailbox-properties.gob | 2+-
Msrc/mn-unsupported-mailbox.c | 4++--
Msrc/mn-unsupported-mailbox.gob | 2+-
Msrc/mn-uri.c | 149++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/mn-uri.gob | 51++++++++++++++++++++++++++++++++++++++-------------
Msrc/mn-util.c | 14+++++++-------
Msrc/mn-util.h | 3+++
Mtests/Makefile.in | 2++
Mtests/test-uri.c | 25++++++++++++++++---------
Mui/Makefile.am | 9+++++++--
Mui/Makefile.in | 13++++++++++---
Aui/authentication.glade | 261+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aui/authentication.gladep | 14++++++++++++++
Mui/properties.glade | 324++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
128 files changed, 7032 insertions(+), 5003 deletions(-)
diff --git a/AUTHORS b/AUTHORS
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
- mail-notification credits
--------------------------------------------------------------------------------
+===============================================================================
+ Mail Notification credits
+===============================================================================
 
 Developed by Jean-Yves Lefort <jylefort@brutele.be>.
 
diff --git a/INSTALL b/INSTALL
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
+===============================================================================
  Mail Notification installation instructions
--------------------------------------------------------------------------------
+===============================================================================
 
 Index
 
@@ -11,7 +11,7 @@ Index
 
 0. About this document
 
-	$Id: INSTALL,v 1.12 2004/10/03 15:58:02 jylefort Exp $
+	$Id: INSTALL,v 1.14 2004/10/25 13:03:00 jylefort Exp $
 
 	Copyright (c) 2003, 2004 Jean-Yves Lefort.
 
@@ -47,7 +47,7 @@ Index
 
 		* for MIME support:
 
-		  GMime (version 2.0 or superior)
+		  GMime (version 2.1.0 or superior)
 		  http://spruce.sourceforge.net/gmime/
 
 2. Instructions
diff --git a/Makefile.in b/Makefile.in
@@ -189,6 +189,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/NEWS b/NEWS
@@ -1,3 +1,26 @@
+0.7.1					25 October 2004
+
+	* Gmail fixes:
+		* does not crash when a GNOME proxy is set
+		* handles starred and labelled messages
+		* ignores non-inbox messages
+		* messages were considered unseen on each check and
+		  the mail summary was always popped up: fixed
+
+	* The POP3/IMAP/Gmail password can now be left blank (in such
+	  case, it will be prompted when needed and not be saved to
+	  permanent storage)
+	* A command can now be executed when all mail has been read
+	* The user interface now displays the IMAP folder name (unless
+	  it is inbox)
+	* The tooltip now displays message counts
+	* Minor fixes and cleanups
+
+	* Updated translations:
+		* serbian (Filip Miletic)
+		* german (Hendrik Brandt)
+		* portuguese (Duarte Henriques)
+
 0.7.0					06 October 2004
 
 	* Binaries compiled with GCC 3.4.x were crashing in various
@@ -13,7 +36,7 @@
 	  superior)
 	* Double-clicking on the icon now displays the mail summary
 	  (the double-clicked command has been removed)
-	* The "new mail" command is now executed everytime a mailbox
+	* The "new mail" command is now executed every time a mailbox
 	  receives one or more new messages
 	* Tracks the latest Gmail change (reported by Vincent Noel)
 	* Gmail support now requires libsoup version 2.2 or superior
diff --git a/README b/README
@@ -1,6 +1,6 @@
--------------------------------------------------------------------------------
+===============================================================================
  Mail Notification overview
--------------------------------------------------------------------------------
+===============================================================================
 
 Index
 
@@ -10,7 +10,7 @@ Index
 
 0. About this document
 
-	$Id: README,v 1.22 2004/10/06 17:24:26 jylefort Exp $
+	$Id: README,v 1.23 2004/10/25 13:03:00 jylefort Exp $
 
 	Copyright (c) 2003, 2004 Jean-Yves Lefort.
 
diff --git a/TODO b/TODO
@@ -1,7 +1,19 @@
 * Check the SSL certificate's hostname against the hostname we used
   (RFC 3501, section 11.1)
-* Add a Gmail "Mailbox" option similar to the IMAP one (or if that is
-  not feasible, a checkbutton "Only check inbox").
-* Add a per-mailbox check delay setting (probably GConf only, as that
-  feature is seldomly needed)
+
 * See if we can add an Evolution data server mailbox backend
+
+* Add an option to display only the mail that is new since the last
+  time the mail summary popup was closed
+
+* Allow to customize the double-click action:
+
+	When double-clicked:	(o) Display the Mail Summary
+				( ) Display the Properties
+				( ) Run a command: [sylpheed         ]
+
+* Allow to monitor multiple IMAP folders per IMAP mailbox
+
+* In the IMAP mailbox properties, add a "Browse" button next to the
+  folder entry (it will connect to the IMAP server and retrieve the
+  list of folders)
diff --git a/art/Makefile.in b/art/Makefile.in
@@ -170,6 +170,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/config.h.in b/config.h.in
@@ -72,6 +72,9 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+#undef TM_IN_SYS_TIME
+
 /* Version number of package */
 #undef VERSION
 
diff --git a/configure b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for mail-notification 0.7.0.
+# Generated by GNU Autoconf 2.59 for mail-notification 0.7.1.
 #
 # Report bugs to <jylefort@brutele.be>.
 #
@@ -269,8 +269,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='mail-notification'
 PACKAGE_TARNAME='mail-notification'
-PACKAGE_VERSION='0.7.0'
-PACKAGE_STRING='mail-notification 0.7.0'
+PACKAGE_VERSION='0.7.1'
+PACKAGE_STRING='mail-notification 0.7.1'
 PACKAGE_BUGREPORT='jylefort@brutele.be'
 
 ac_unique_file="src/mn-main.c"
@@ -311,7 +311,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WARN_CFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GETTEXT_PACKAGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL PKG_CONFIG GTK_CFLAGS GTK_LIBS GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS SOUP_CFLAGS SOUP_LIBS GMIME_CFLAGS GMIME_LIBS WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WARN_CFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GETTEXT_PACKAGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL PKG_CONFIG GTK_CFLAGS GTK_LIBS GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS SOUP_CFLAGS SOUP_LIBS GMIME_CFLAGS GMIME_LIBS WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -780,7 +780,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures mail-notification 0.7.0 to adapt to many kinds of systems.
+\`configure' configures mail-notification 0.7.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -842,7 +842,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mail-notification 0.7.0:";;
+     short | recursive ) echo "Configuration of mail-notification 0.7.1:";;
    esac
   cat <<\_ACEOF
 
@@ -986,7 +986,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-mail-notification configure 0.7.0
+mail-notification configure 0.7.1
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1000,7 +1000,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by mail-notification $as_me 0.7.0, which was
+It was created by mail-notification $as_me 0.7.1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1811,7 +1811,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='mail-notification'
- VERSION='0.7.0'
+ VERSION='0.7.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6564,6 +6564,71 @@ fi
 done
 
 
+# see if "struct tm" is defined in sys/time.h
+echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6
+if test "${ac_cv_struct_tm+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <time.h>
+
+int
+main ()
+{
+struct tm *tp; tp->tm_sec;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_struct_tm=time.h
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_struct_tm=sys/time.h
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+echo "${ECHO_T}$ac_cv_struct_tm" >&6
+if test $ac_cv_struct_tm = sys/time.h; then
+
+cat >>confdefs.h <<\_ACEOF
+#define TM_IN_SYS_TIME 1
+_ACEOF
+
+fi
+
+
 ### mandatory libraries and programs
 
 # Check whether --enable-gtktest or --disable-gtktest was given.
@@ -7478,23 +7543,23 @@ fi
   else
      PKG_CONFIG_MIN_VERSION=0.9.0
      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        echo "$as_me:$LINENO: checking for gmime-2.0" >&5
-echo $ECHO_N "checking for gmime-2.0... $ECHO_C" >&6
+        echo "$as_me:$LINENO: checking for gmime-2.0 >= 2.1.0" >&5
+echo $ECHO_N "checking for gmime-2.0 >= 2.1.0... $ECHO_C" >&6
 
-        if $PKG_CONFIG --exists "gmime-2.0" ; then
+        if $PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" ; then
             echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
             succeeded=yes
 
             echo "$as_me:$LINENO: checking GMIME_CFLAGS" >&5
 echo $ECHO_N "checking GMIME_CFLAGS... $ECHO_C" >&6
-            GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0"`
+            GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= 2.1.0"`
             echo "$as_me:$LINENO: result: $GMIME_CFLAGS" >&5
 echo "${ECHO_T}$GMIME_CFLAGS" >&6
 
             echo "$as_me:$LINENO: checking GMIME_LIBS" >&5
 echo $ECHO_N "checking GMIME_LIBS... $ECHO_C" >&6
-            GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0"`
+            GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= 2.1.0"`
             echo "$as_me:$LINENO: result: $GMIME_LIBS" >&5
 echo "${ECHO_T}$GMIME_LIBS" >&6
         else
@@ -7502,7 +7567,7 @@ echo "${ECHO_T}$GMIME_LIBS" >&6
             GMIME_LIBS=""
             ## If we have a custom action on failure, don't print errors, but
             ## do set a variable so people can do so.
-            GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0"`
+            GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0 >= 2.1.0"`
 
         fi
 
@@ -7589,6 +7654,16 @@ fi
 
 
 
+if test $enable_pop3 = yes || test $enable_imap = yes || test $enable_gmail = yes; then
+  WITH_POP3_OR_IMAP_OR_GMAIL_TRUE=
+  WITH_POP3_OR_IMAP_OR_GMAIL_FALSE='#'
+else
+  WITH_POP3_OR_IMAP_OR_GMAIL_TRUE='#'
+  WITH_POP3_OR_IMAP_OR_GMAIL_FALSE=
+fi
+
+
+
 if test $enable_ssl = yes; then
   WITH_SSL_TRUE=
   WITH_SSL_FALSE='#'
@@ -7908,6 +7983,13 @@ echo "$as_me: error: conditional \"WITH_POP3_OR_IMAP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${WITH_POP3_OR_IMAP_OR_GMAIL_TRUE}" && test -z "${WITH_POP3_OR_IMAP_OR_GMAIL_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_POP3_OR_IMAP_OR_GMAIL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_POP3_OR_IMAP_OR_GMAIL\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${WITH_SSL_TRUE}" && test -z "${WITH_SSL_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"WITH_SSL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -8221,7 +8303,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by mail-notification $as_me 0.7.0, which was
+This file was extended by mail-notification $as_me 0.7.1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8284,7 +8366,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-mail-notification config.status 0.7.0
+mail-notification config.status 0.7.1
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -8607,6 +8689,8 @@ s,@WITH_IMAP_TRUE@,$WITH_IMAP_TRUE,;t t
 s,@WITH_IMAP_FALSE@,$WITH_IMAP_FALSE,;t t
 s,@WITH_POP3_OR_IMAP_TRUE@,$WITH_POP3_OR_IMAP_TRUE,;t t
 s,@WITH_POP3_OR_IMAP_FALSE@,$WITH_POP3_OR_IMAP_FALSE,;t t
+s,@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@,$WITH_POP3_OR_IMAP_OR_GMAIL_TRUE,;t t
+s,@WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@,$WITH_POP3_OR_IMAP_OR_GMAIL_FALSE,;t t
 s,@WITH_SSL_TRUE@,$WITH_SSL_TRUE,;t t
 s,@WITH_SSL_FALSE@,$WITH_SSL_FALSE,;t t
 s,@WITH_SASL_TRUE@,$WITH_SASL_TRUE,;t t
diff --git a/configure.ac b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(mail-notification, 0.7.0, jylefort@brutele.be)
+AC_INIT(mail-notification, 0.7.1, jylefort@brutele.be)
 AC_CONFIG_SRCDIR(src/mn-main.c)
 
 AC_PREREQ(2.59)
@@ -51,6 +51,9 @@ fi
 # timegm() is non-standard, define HAVE_TIMEGM if it is present
 AC_CHECK_FUNCS(timegm)
 
+# see if "struct tm" is defined in sys/time.h
+AC_STRUCT_TM
+
 ### mandatory libraries and programs
 
 AM_PATH_GTK_2_0(2.4.0,, [AC_MSG_ERROR([unable to find the GTK+ library])])
@@ -111,7 +114,7 @@ if MN_FEATURE_ENABLED(mime) &&
 fi
 
 if MN_FEATURE_ENABLED(mime); then
-	PKG_CHECK_MODULES(GMIME, [gmime-2.0],, [MN_FEATURE_DISABLE(mime, [GMime not found])])
+	PKG_CHECK_MODULES(GMIME, [gmime-2.0 >= 2.1.0],, [MN_FEATURE_DISABLE(mime, [GMime not found])])
 fi
 
 ### Automake conditionals
@@ -122,6 +125,7 @@ AM_CONDITIONAL(WITH_MAILDIR, [MN_FEATURE_ENABLED(maildir)])
 AM_CONDITIONAL(WITH_POP3, [MN_FEATURE_ENABLED(pop3)])
 AM_CONDITIONAL(WITH_IMAP, [MN_FEATURE_ENABLED(imap)])
 AM_CONDITIONAL(WITH_POP3_OR_IMAP, [MN_FEATURE_ENABLED(pop3) || MN_FEATURE_ENABLED(imap)])
+AM_CONDITIONAL(WITH_POP3_OR_IMAP_OR_GMAIL, [MN_FEATURE_ENABLED(pop3) || MN_FEATURE_ENABLED(imap) || MN_FEATURE_ENABLED(gmail)])
 AM_CONDITIONAL(WITH_SSL, [MN_FEATURE_ENABLED(ssl)])
 AM_CONDITIONAL(WITH_SASL, [MN_FEATURE_ENABLED(sasl)])
 AM_CONDITIONAL(WITH_SYLPHEED, [MN_FEATURE_ENABLED(sylpheed)])
diff --git a/data/Makefile.in b/data/Makefile.in
@@ -173,6 +173,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/data/mail-notification.schemas.in b/data/mail-notification.schemas.in
@@ -44,6 +44,27 @@
       </locale>
     </schema>
     <schema>
+      <key>/schemas/apps/mail-notification/commands/mail-read/enabled</key>
+      <applyto>/apps/mail-notification/commands/mail-read/enabled</applyto>
+      <owner>mail-notification</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+        <short>Run a command when all mail is read</short>
+	<long>Whether to run a command when all mail is read or not.</long>
+      </locale>
+    </schema> 
+    <schema>
+      <key>/schemas/apps/mail-notification/commands/mail-read/command</key>
+      <applyto>/apps/mail-notification/commands/mail-read/command</applyto>
+      <owner>mail-notification</owner>
+      <type>string</type>
+      <locale name="C">
+        <short>Mail read command</short>
+	<long>The command to run when all mail is read.</long>
+      </locale>
+    </schema>
+    <schema>
       <key>/schemas/apps/mail-notification/mailboxes</key>
       <applyto>/apps/mail-notification/mailboxes</applyto>
       <owner>mail-notification</owner>
diff --git a/help/C/Makefile.in b/help/C/Makefile.in
@@ -227,6 +227,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/help/C/mail-notification-C.omf b/help/C/mail-notification-C.omf
@@ -14,7 +14,7 @@
     <date>
       2004-10-06
     </date>
-    <version identifier="2.5" date="2004-10-06" description="Sixth release"/>
+    <version identifier="2.6" date="2004-10-25" description="Seventh release"/>
     <subject category="GNOME|Internet"/>
     <description>
       Mail Notification Manual
diff --git a/help/C/mail-notification.xml b/help/C/mail-notification.xml
@@ -2,9 +2,9 @@
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
   <!ENTITY app "<application>Mail Notification</application>">
-  <!ENTITY appversion "0.7.0">
-  <!ENTITY manrevision "2.5">
-  <!ENTITY date "Wednesday, October 6, 2004">
+  <!ENTITY appversion "0.7.1">
+  <!ENTITY manrevision "2.6">
+  <!ENTITY date "Monday, October 25, 2004">
 
   <!ENTITY project "The Mail Notification Project">
 
@@ -26,7 +26,7 @@
   <!ENTITY gnomevfs "<link linkend=&#34;gnomevfs&#34;>GnomeVFS</link>">
 ]>
 
-<!-- $Id: mail-notification.xml,v 1.56 2004/10/06 17:25:39 jylefort Exp $ -->
+<!-- $Id: mail-notification.xml,v 1.66 2004/10/25 13:21:59 jylefort Exp $ -->
 <!-- Mail Notification Manual -->
 
 <!-- Copyright (c) 2004 Jean-Yves Lefort -->
@@ -134,6 +134,17 @@
 	</revdescription>
       </revision>
       <revision>
+	<revnumber>Mail Notification Manual V2.5</revnumber>
+	<date>Wednesday, October 6, 2004</date>
+	<revdescription>
+	  <para role="author">
+	    Jean-Yves Lefort
+	    <email>jylefort@brutele.be</email>
+	  </para>
+	  <para role="publisher">&project;</para>
+	</revdescription>
+      </revision>
+      <revision>
 	<revnumber>Mail Notification Manual V2.4</revnumber>
 	<date>Thursday, September 9, 2004</date>
 	<revdescription>
@@ -273,9 +284,7 @@
 	      <varlistentry>
 		<term>--enable-info</term>
 		<listitem>
-		  <para>
-		    Enable informational output
-		  </para>
+		  <para>Enable informational output</para>
 		  <warning>
 		    <title>Security</title>
 		    <para>
@@ -319,7 +328,16 @@
 
 	      <varlistentry>
 		<term>--report</term>
-		<listitem><para>Report the mail status</para></listitem>
+		<listitem>
+		  <para>Report the mail status</para>
+		  <warning>
+		    <title>Security</title>
+		    <para>
+		      The output of --report may contain mailbox
+		      passwords.
+		    </para>
+		  </warning>
+		</listitem>
 	      </varlistentry>
 
 	      <varlistentry>
@@ -361,10 +379,31 @@
 	</screenshot>
       </figure>
       <para>
-	Additionally, if the <link linkend="enable-mail-summary-popup">Enable mail summary popup</link>
-	setting is enabled, an overview of new and unread messages is
-	displayed.
+	Additionally:
       </para>
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    the <guilabel>Mail Notification</guilabel> > <guilabel>New Mail</guilabel>
+	    GNOME sound event is emitted (you can configure the sound
+	    to be played from the GNOME sound preferences)
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    if a command to be executed when new mail arrives is set in
+	    the <link linkend="commands">Commands</link> properties,
+	    that command is executed
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    if the <link linkend="enable-mail-summary-popup">Enable mail summary popup</link>
+	    setting is enabled, an overview of new and unread messages is
+	    displayed
+	  </para>
+	</listitem>
+      </itemizedlist>
       <para>
 	If an error is detected, the icon blinks (unless the
 	<link linkend="blink-on-errors">Blink on errors</link> setting is disabled).
@@ -412,30 +451,38 @@
       <title>General</title>
       <variablelist>
 	<varlistentry>
-	  <term><guilabel>Start Mail Notification on GNOME login</guilabel></term>
-	  <listitem>
-	    <para>
-	      If this option is enabled, &app; will be started along
-	      with your GNOME session.
-	    </para>
-	  </listitem>
-	</varlistentry>
-	<varlistentry id="blink-on-errors">
-	  <term><guilabel>Blink on errors</guilabel></term>
+	  <term><guilabel>General</guilabel></term>
 	  <listitem>
-	    <para>
-	      If this option is enabled, &app; will show the status
-	      icon and make it blink on errors. Disabling this option
-	      is useful if some of your mailboxes are not permanently
-	      accessible.
-	    </para>
+	    <variablelist>
+	      <varlistentry>
+		<term><guilabel>Start Mail Notification on GNOME login</guilabel></term>
+		<listitem>
+		  <para>
+		    If this option is enabled, &app; will be started along
+		    with your GNOME session.
+		  </para>
+		</listitem>
+	      </varlistentry>
+	      <varlistentry id="blink-on-errors">
+		<term><guilabel>Blink on errors</guilabel></term>
+		<listitem>
+		  <para>
+		    If this option is enabled, &app; will show the status
+		    icon and make it blink on errors. Disabling this option
+		    is useful if some of your mailboxes are not permanently
+		    accessible.
+		  </para>
+		</listitem>
+	      </varlistentry>
+	    </variablelist>
 	  </listitem>
 	</varlistentry>
-	<varlistentry>
-	  <term><guilabel>Run a command when new mail arrives:</guilabel></term>
+	<varlistentry id="commands">
+	  <term><guilabel>Commands</guilabel></term>
 	  <listitem>
 	    <para>
-	      This is the command to execute when new mail arrives.
+	      You can configure commands to be executed <guilabel>when new mail arrives</guilabel>
+	      and <guilabel>when all mail is read</guilabel>.
 	    </para>
 	  </listitem>
 	</varlistentry>
@@ -510,7 +557,7 @@
 		</listitem>
 	      </varlistentry>
 	      <varlistentry>
-		<term><guilabel>Automatically close after:</guilabel></term>
+		<term><guilabel>Automatically close after</guilabel></term>
 		<listitem>
 		  <para>
 		    Whether to automatically close the mail summary
@@ -531,7 +578,7 @@
 	  <listitem>
 	    <variablelist>
 	      <varlistentry>
-		<term><guilabel>Position:</guilabel></term>
+		<term><guilabel>Position</guilabel></term>
 		<listitem>
 		  <para>
 		    The location of the mail summary popup on the
@@ -540,7 +587,7 @@
 		</listitem>
 	      </varlistentry>
 	      <varlistentry>
-		<term><guilabel>Horizontal offset:</guilabel></term>
+		<term><guilabel>Horizontal offset</guilabel></term>
 		<listitem>
 		  <para>
 		    The number of pixels to leave between the left or
@@ -550,7 +597,7 @@
 		</listitem>
 	      </varlistentry>
 	      <varlistentry>
-		<term><guilabel>Vertical offset:</guilabel></term>
+		<term><guilabel>Vertical offset</guilabel></term>
 		<listitem>
 		  <para>
 		    The number of pixels to leave between the top or
@@ -626,8 +673,8 @@
 		  &imap; server.
 		  <note>
 		    <para>
-		      Symbolic names aswell as IPv4 and IPv6 addresses
-		      are supported.
+		      Symbolic names as well as IPv4 and IPv6
+		      addresses are supported.
 		    </para>
 		  </note>
 		</para>
@@ -646,12 +693,15 @@
 	      <listitem>
 		<para>
 		  This is your password on the &pop3; or &imap; server.
+		  The password will be stored to disk unless it is
+		  left blank (in such case, a password prompt will
+		  appear when needed).
 		</para>
 		<warning>
 		  <title>Security</title>
 		  <para>
 		    To avoid sending your password over the network in
-		    clear text, you must eitheir use a SSL/TLS
+		    clear text, you must either use a SSL/TLS
 		    connection or select a secure authentication
 		    mechanism. See below for more details.
 		  </para>
@@ -684,7 +734,7 @@
 		  <para>
 		    The security considerations listed below do not
 		    apply if you select <guilabel>SSL/TLS</guilabel>
-		    (eitheir <guilabel>in-band</guilabel> or
+		    (either <guilabel>in-band</guilabel> or
 		    <guilabel>on separate port</guilabel>).
 		  </para>
 		  <!-- simplified on purpose: actually, a weak SSL/TLS -->
@@ -758,6 +808,9 @@
 	      <listitem>
 		<para>
 		  This is your password on &gmail;.
+		  The password will be stored to disk unless it is
+		  left blank (in such case, a password prompt will
+		  appear when needed).
 		</para>
 	      </listitem>
 	    </varlistentry>
@@ -1005,7 +1058,7 @@ endif</programlisting>
 	<glossterm>Maildir</glossterm>
 	<glossdef>
 	  <para>
-	    A mailbox format popularized by the <ulink url="http://www.qmail.org" type="http">qmail</ulink> mail transfer agent.
+	    A mailbox format popularised by the <ulink url="http://www.qmail.org" type="http">qmail</ulink> mail transfer agent.
 	    Messages are stored in a structure of directories for reliability.
 	  </para>
 	</glossdef>
@@ -1025,7 +1078,7 @@ endif</programlisting>
 	<glossterm>MH</glossterm>
 	<glossdef>
 	  <para>
-	    A mailbox format popularized by the
+	    A mailbox format popularised by the
 	    <ulink url="http://www.ics.uci.edu/~mh" type="http">MH</ulink> mail user agent.
 	    Messages are stored as separate files for flexibility and performance.
 	  </para>
@@ -1125,7 +1178,7 @@ endif</programlisting>
 	<glossdef>
 	  <para>
 	    A <quote>compact string of characters for identifying an
-	      abtract or physical resource</quote>, as defined
+	      abstract or physical resource</quote>, as defined
 	    by <ulink url="http://www.ietf.org/rfc/rfc2396.txt" type="http">RFC 2396</ulink>.
 	  </para>
 	</glossdef>
diff --git a/help/Makefile.in b/help/Makefile.in
@@ -173,6 +173,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/m4/Makefile.in b/m4/Makefile.in
@@ -164,6 +164,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/po/POTFILES.in b/po/POTFILES.in
@@ -9,6 +9,7 @@ src/eggtrayicon.c
 src/eggtrayicon.h
 src/mn-about-dialog.gob
 src/mn-auth-combo-box.gob
+src/mn-authenticated-mailbox.gob
 src/mn-autodetect-mailbox-properties.gob
 src/mn-automation.gob
 src/mn-blinking-image.gob
@@ -72,6 +73,7 @@ src/mn-util.c
 src/mn-util.h
 src/mn-vfs.c
 src/mn-vfs.h
+ui/authentication.glade
 ui/mailbox-properties.glade
 ui/properties.glade
 ui/summary-dialog.glade
diff --git a/po/bg.gmo b/po/bg.gmo
Binary files differ.
diff --git a/po/bg.po b/po/bg.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnome in bulgarian 0.6.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
 "PO-Revision-Date: 2004-10-05 16:13+0200\n"
 "Last-Translator: Vladimir \"Kaladan\" Petkov <vpetkov@i-space.org>\n"
 "Language-Team: Bulgarian <bg@li.org>\n"
@@ -34,7 +34,7 @@ msgstr "Настройване на известяването за поща"
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "Известяване за поща"
 
@@ -84,155 +84,175 @@ msgid "Height of properties dialog"
 msgstr "Височина на диалоговия прозорец за настройките"
 
 #: data/mail-notification.schemas.in.h:11
+#, fuzzy
+msgid "Mail read command"
+msgstr "Нова команда за поща"
+
+#: data/mail-notification.schemas.in.h:12
 msgid "Mail summary popup horizontal offset"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
 msgid "Mail summary popup position"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:14
 msgid "Mail summary popup vertical offset"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:15
 #, fuzzy
 msgid "Mailbox list"
 msgstr "Списък на пощенските кутии"
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 msgid "Minutes between mail checks"
 msgstr "Минути между проверките"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:18
 msgid "New mail command"
 msgstr "Нова команда за поща"
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:19
+#, fuzzy
+msgid "Run a command when all mail is read"
+msgstr "Стартиране на команда при пристигането на нова поща"
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Run a command when new mail arrives"
 msgstr "Стартиране на команда при пристигането на нова поща"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr "Секунди между проверките за поща"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:23
 #, fuzzy
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
 msgstr "Времевият интервал за изчакване между проверките за нова поща"
 
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:24
 #, fuzzy
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
 msgstr "Времевият интервал за изчакване между проверките за нова поща"
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+#, fuzzy
+msgid "The command to run when all mail is read."
+msgstr "Командата, която да се стартира при пристигането на нова поща."
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr "Командата, която да се стартира при пристигането на нова поща."
 
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:27
 #, fuzzy
 msgid "The height of the mail summary dialog in pixels."
 msgstr "Височината в пиксели на диалоговия прозорец за настройките."
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr "Височината в пиксели на диалоговия прозорец за настройките."
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr "Списъкът на пощенските кутии за следене."
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 "Списъкът на проверените сертификати тип X509, представени от техните "
 "пръстови отпечатъци в MD5 формат."
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:35
 #, fuzzy
 msgid "The width of the mail summary dialog in pixels."
 msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr "Списък на проверените сървъри"
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Дали известяването за поща вече е стартирано или не."
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Дали иконата за състоянието да мига при грешки или не"
 
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:40
 #, fuzzy
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:41
 #, fuzzy
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:43
+#, fuzzy
+msgid "Whether to run a command when all mail is read or not."
+msgstr "Дали да се стартира команда при пристигането на нова поща или не"
+
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:45
 #, fuzzy
 msgid "Width of mail summary dialog"
 msgstr "Ширина на диалоговия прозорец за настройките"
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr "Ширина на диалоговия прозорец за настройките"
 
@@ -261,6 +281,31 @@ msgstr "Vladimir Petkov <vpetkov@i-space.org>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">автоматично засичане</span>"
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr ""
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Местоположение:"
@@ -513,52 +558,43 @@ msgstr "синхронизиране на базата данни на GConf"
 msgid "completed"
 msgstr "завършено"
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr "Вашето Gmail потребителско име"
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
-msgstr "Вашата парола в Gmail"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
+msgstr ""
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
+#: src/mn-gmail-mailbox.gob:105
 #, fuzzy, c-format
 msgid "unable to parse URI \"%s\""
 msgstr "неуспех при преглед на отговор \"%s\""
 
-#: src/mn-gmail-mailbox.gob:257
+#: src/mn-gmail-mailbox.gob:159
+#, c-format
+msgid "unable to transfer data: %s"
+msgstr "неуспех при пренасянето на данни: %s"
+
+#: src/mn-gmail-mailbox.gob:280
 msgid "logging in"
 msgstr "влизане"
 
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
+#: src/mn-gmail-mailbox.gob:358
 msgid "login failed"
 msgstr "влизането е неуспешно"
 
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "неуспех при пренасянето на данни: %s"
-
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
-msgstr "успешно влязъл в"
-
-#: src/mn-gmail-mailbox.gob:487
+#: src/mn-gmail-mailbox.gob:433
 msgid "searching for unread mail"
 msgstr "търсене за непрочетена поща"
 
-#: src/mn-gmail-mailbox.gob:491
-#, fuzzy
-msgid "unable to search for unread mail"
-msgstr "търсене за непрочетена поща"
-
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
 msgstr "неуспех при прегледа на данни от Gmail"
 
@@ -587,92 +623,94 @@ msgstr "неуспех при следенето %s: %s"
 msgid "unable to close %s: %s"
 msgstr "неуспех при затварянето на папката: %s"
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr "Пощенска кутия:"
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr "ку_тия"
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr "др_уги"
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr "Хостът или IP адресът на IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr "Потребителското ви име за IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
-msgstr "Паролата ви за IMAP сървъра"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr "Номера на порта на IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr "Име на пощенската кутия"
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr "неуспех при влизането"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
+#: src/mn-imap-mailbox.gob:451
 #, fuzzy
 msgid "server did not send search results"
 msgstr "сървърът не изпраща състоянието"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
+#: src/mn-imap-mailbox.gob:527
 #, fuzzy
 msgid "server did not send all the messages we requested"
 msgstr "сървърът не изпраща състоянието"
 
-#: src/mn-imap-mailbox.gob:570
+#: src/mn-imap-mailbox.gob:574
 #, fuzzy
 msgid "unable to fetch message"
 msgstr "неуспех при свързването: %s"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr "сървърът не изпраща състоянието"
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr "неизвестна грешка в сървъра"
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "неизвестен механизъм за идентификация \"%s\""
@@ -681,7 +719,7 @@ msgstr "неизвестен механизъм за идентификация 
 msgid "falling back to IMAP LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr "неуспешна идентификация"
 
@@ -702,11 +740,11 @@ msgstr "Добавяне на пощенска кутия"
 msgid "%s Properties"
 msgstr "%s Настройки"
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "_Име:"
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Парола:"
 
@@ -763,46 +801,46 @@ msgstr "Неуспех при добавянето на пощенската к
 msgid "The mailbox is already in the list."
 msgstr "Пощенската кутия е вече в списъка."
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "Адресът на пощенската кутия"
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "Името на пощенската кутия във формат разбираем от хора"
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
 msgstr ""
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr "Грешката в пощенската кутия, ако има"
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr "не съществува"
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr "непознат формат"
 
-#: src/mn-mailbox.gob:408
+#: src/mn-mailbox.gob:406
 #, fuzzy, c-format
 msgid "unable to enable immediate notification for %s: %s"
 msgstr ""
 "Известяването за поща не можа да разреши моменталното известяване за една "
 "или повече пощенски кутии. %s"
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -813,7 +851,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -824,7 +862,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -835,11 +873,11 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr "Получи се грешка при наблюдението"
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
@@ -848,26 +886,26 @@ msgstr ""
 "Известяването за поща не можа да разреши моменталното известяване за една "
 "или повече пощенски кутии. %s"
 
-#: src/mn-mailboxes.gob:133
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
 msgstr ""
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s е неподдържан: %s"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr "%s има поща"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr "%s няма нова поща"
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s докладва за грешка: %s"
@@ -887,50 +925,50 @@ msgstr "неуспех при отварянето на папка \"нови\":
 msgid "error while reading folder \"new\": %s"
 msgstr "грешка при четенето на папката \"нови\": %s"
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr ""
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Компилирани възможности: %s\n"
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr "Разрешаване на информационния изход"
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr "Изписване на компилираните възможности и излизане"
 
-#: src/mn-main.c:184
+#: src/mn-main.c:183
 #, fuzzy
 msgid "Display the mail summary dialog"
 msgstr "Изобразяване на диалоговия прозорец с информацията"
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr "Показване на диалоговия прозорец с настройките"
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr "Изобразяване на диалоговия прозорец с информацията"
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
 msgstr ""
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr "Актуализиране състоянието на пощата"
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr "Докладване за състоянието на пощата"
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr "Премахване на остарелите настройки в GConf и излизане"
 
@@ -938,35 +976,35 @@ msgstr "Премахване на остарелите настройки в GCo
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr "много-нишки не е налично"
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Неуспех при инициализирането на библиотеката GnomeVFS."
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr "актуализиране състоянието на пощата"
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr "Известяването за поща вече е стартирано"
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1028,12 +1066,19 @@ msgid_plural "%i days ago"
 msgstr[0] ""
 msgstr[1] ""
 
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/mn-message-mime.c:105
 #, fuzzy
 msgid "unable to parse MIME message"
 msgstr "неуспех при преглед на отговор \"%s\""
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
 msgstr ""
 
@@ -1071,116 +1116,123 @@ msgstr "_in-band SSL/TLS"
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS на отделен по_рт"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr "Хостът или IP адресът на POP3 сървъра"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr "Потребителското име в POP3 сървъра"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
-msgstr "Паролата ви в POP3 сървъра"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr "Номера на порта на POP3 сървъра"
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:536
+#: src/mn-pop3-mailbox.gob:549
 #, fuzzy
 msgid "unknown error"
 msgstr "неизвестна грешка в сървъра"
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr "Сървърът не поддържа идентификация тип APOP"
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr ""
 
-#: src/mn-properties.c:161
+#: src/mn-properties.c:170
 #, fuzzy
 msgid "top left"
 msgstr "Завършено"
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
 msgstr ""
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
 msgstr ""
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
 msgstr ""
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr "Няма избрана кутия."
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, fuzzy, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] "%i избрана кутия."
 msgstr[1] "%i избрана кутия."
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr "Имате поща."
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr "Грешка с командите се получи в известяването за поща"
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr "Неуспех при стартирането на нова пощенска команда: %s."
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 #, fuzzy
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] "Следната пощенска кутия има нова поща:\n"
 msgstr[1] "Следната пощенска кутия има нова поща:\n"
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr "Нямата нова поща."
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 #, fuzzy
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] "Следната пощенска кутия докладва за грешка:\n"
 msgstr[1] "Следната пощенска кутия докладва за грешка:\n"
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 #, fuzzy
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] "Следните пощенски кутии не се поддържат:\n"
 msgstr[1] "Следните пощенски кутии не се поддържат:\n"
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr "Грешка с командите се получи в известяването за поща"
+
+#: src/mn-shell.gob:321
+#, fuzzy, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "неуспех при намирането на %s: %s"
+
+#: src/mn-soup.c:140
+#, fuzzy, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr "неуспех при преглед на отговор \"%s\""
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr "неизвестна SSL/TLS грешка"
@@ -1208,7 +1260,7 @@ msgstr "неуспех при затварянето на папката: %s"
 msgid "error while reading folder: %s"
 msgstr "грешка при четенето на папката: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr "Системна кутия"
 
@@ -1280,6 +1332,15 @@ msgstr "неуспех при свързването с %s"
 msgid "invalid signal specification \"%s\""
 msgstr ""
 
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
+#, fuzzy
+msgid "_Authenticate"
+msgstr "Механизъм за _идентификация:"
+
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
 msgstr "_Тип на пощенската кутия:"
@@ -1288,138 +1349,152 @@ msgstr "_Тип на пощенската кутия:"
 msgid "    "
 msgstr "    "
 
-#: ui/properties.glade.h:2
-msgid "*"
-msgstr "*"
-
 #: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
+msgstr "<span weight=\"bold\">Команди</span>"
+
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Основни</span>"
 
-#: ui/properties.glade.h:4
+#: ui/properties.glade.h:5
 #, fuzzy
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Пощенски кутии</span>"
 
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
 #, fuzzy
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Команди</span>"
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
 msgstr ""
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
 msgstr ""
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr "Настройки на известяването за поща"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
 msgstr ""
 
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
 #, fuzzy
 msgid "Mailboxes"
 msgstr "Пощенска кутия"
 
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
 #, fuzzy
 msgid "P_osition:"
 msgstr "_Местоположение:"
 
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
 #, fuzzy
 msgid "The amount of time to wait before closing the mail summary popup"
 msgstr "Времевият интервал за изчакване между проверките за нова поща"
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr "Времевият интервал за изчакване между проверките за нова поща"
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+#, fuzzy
+msgid "The command to run when all mail is read"
+msgstr "Командата, която да се изпълни при пристигането на нова поща"
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr "Командата, която да се изпълни при пристигането на нова поща"
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+#, fuzzy
+msgid "When _all mail is read:"
+msgstr "При пристигане на _нова поща:"
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr "При пристигане на _нова поща:"
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
 msgstr "Дали иконата за състоянието да започне да мига при грешки или не"
 
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:22
 #, fuzzy
 msgid "Whether to automatically close the mail summary popup or not"
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:23
 #, fuzzy
 msgid "Whether to display the mail summary popup when new mail arrives or not"
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+#, fuzzy
+msgid "Whether to run a command when all mail is read or not"
+msgstr "Дали да се стартира команда при пристигането на нова поща или не"
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr ""
 "Дали да се стартира известяването за поща, когато влизате в GNOME или не"
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
 msgstr ""
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr "_Мигане при грешки"
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr "_Време между проверките за поща:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:26
-#, fuzzy
-msgid "_Run a command when new mail arrives:"
-msgstr "Стартиране на команда при пристигането на нова поща"
-
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
 msgstr "_Стартиране на известяването за поща при влизане в GNOME"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
 msgstr ""
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr "минути"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
 msgstr ""
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr "секунди"
 
@@ -1482,25 +1557,37 @@ msgstr "_Пропускане на настройването"
 #~ msgid "Whether to run a command when the icon is double-clicked or not."
 #~ msgstr "Дали да се стартира команда при натискането на иконата-писмо или не"
 
+#~ msgid "Your Gmail password"
+#~ msgstr "Вашата парола в Gmail"
+
+#~ msgid "successfully logged in"
+#~ msgstr "успешно влязъл в"
+
+#~ msgid "Your password on the IMAP server"
+#~ msgstr "Паролата ви за IMAP сървъра"
+
 #~ msgid "_Run %s"
 #~ msgstr "_Стартиране %s"
 
 #~ msgid "_Run Default Action"
 #~ msgstr "_Стартиране на стандартното действие"
 
+#~ msgid "Your password on the POP3 server"
+#~ msgstr "Паролата ви в POP3 сървъра"
+
 #~ msgid "A command error has occurred"
 #~ msgstr "След изпълнението на командата се получи грешка"
 
 #~ msgid "Unable to execute double-clicked command: %s."
 #~ msgstr "Неуспех при стартирането на командата: %s."
 
+#~ msgid "Unable to execute new mail command: %s."
+#~ msgstr "Неуспех при стартирането на нова пощенска команда: %s."
+
 #~ msgid "The command to run when the icon is double-clicked"
 #~ msgstr ""
 #~ "Командата, която да се стартира когато иконата-писмо се натисне два пъти"
 
-#~ msgid "When _new mail arrives:"
-#~ msgstr "При пристигане на _нова поща:"
-
 #~ msgid "When double-click_ed:"
 #~ msgstr "При _двойно натискане:"
 
diff --git a/po/de.gmo b/po/de.gmo
Binary files differ.
diff --git a/po/de.po b/po/de.po
@@ -8,16 +8,16 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 0.6.1\n"
+"Project-Id-Version: mail-notification 0.7.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
-"PO-Revision-Date: 2004-09-10 00:51+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"PO-Revision-Date: 2004-10-24 10:59+0200\n"
 "Last-Translator: Hendrik Brandt <eru@gmx.li>\n"
 "Language-Team: German <gnome-de@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
 
 #: data/GNOME_MailNotification_Automation.server.in.in.h:1
 msgid "Mail Notification automation"
@@ -34,7 +34,7 @@ msgstr "Die E-Mail-Eingangsüberwachung einstellen"
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "E-Mail-Eingangsüberwachung"
 
@@ -44,7 +44,7 @@ msgstr "Informiert Sie wenn eine neue Nachricht eintrifft"
 
 #: data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
-msgstr ""
+msgstr "Nachrichtenübersicht automatisch schließen"
 
 #: data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
@@ -60,11 +60,11 @@ msgstr "Abstand zwischen Eingangsüberprüfung (Sekundenteil)."
 
 #: data/mail-notification.schemas.in.h:5
 msgid "Do not show the immediate notification error dialog"
-msgstr ""
+msgstr "Den Fehlerdialog der Sofortbenachrichtigung  nicht sofort anzeigen"
 
 #: data/mail-notification.schemas.in.h:6
 msgid "Enable mail summary popup"
-msgstr ""
+msgstr "Nachrichtenübersicht aktivieren"
 
 #: data/mail-notification.schemas.in.h:7
 msgid "Fingerprints of trusted X509 certificates"
@@ -75,87 +75,96 @@ msgid "Has already been run"
 msgstr "Wurde schon einmal gestartet"
 
 #: data/mail-notification.schemas.in.h:9
-#, fuzzy
 msgid "Height of mail summary dialog"
-msgstr "Höhe des Einstellungen-Dialogs"
+msgstr "Höhe der Nachrichtenübersicht"
 
 #: data/mail-notification.schemas.in.h:10
 msgid "Height of properties dialog"
 msgstr "Höhe des Einstellungen-Dialogs"
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Mail summary popup horizontal offset"
-msgstr ""
+msgid "Mail read command"
+msgstr "Befehl zum Lesen einer Nachricht"
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup position"
-msgstr ""
+msgid "Mail summary popup horizontal offset"
+msgstr "Horizontaler Abstand der Nachrichtenübersicht"
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup vertical offset"
-msgstr ""
+msgid "Mail summary popup position"
+msgstr "Position der Nachrichtenübersicht"
 
 #: data/mail-notification.schemas.in.h:14
-#, fuzzy
+msgid "Mail summary popup vertical offset"
+msgstr "Vertikaler"
+
+#: data/mail-notification.schemas.in.h:15
 msgid "Mailbox list"
 msgstr "Liste der Postfächer"
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 msgid "Minutes between mail checks"
 msgstr "Minuten zwischen den Aktualisierungen"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
 msgid "Minutes to wait before closing the mail summary popup"
-msgstr ""
+msgstr "Wartezeit bis zum Schließen der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:18
 msgid "New mail command"
 msgstr "Befehl bei neuer Nachricht"
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:19
+msgid "Run a command when all mail is read"
+msgstr "Einen Befehl ausführen, wenn alle Nachrichten gelesen sind"
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Run a command when new mail arrives"
 msgstr "Einen Befehl ausführen, wenn eine neue Nachricht eintrifft"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr "Sekunden zwischen den Aktualisierungen"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
+msgstr "Wartezeit in Sekunden bis zum Schließen der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:21
-#, fuzzy
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
-msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
+msgstr ""
+"Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Minutenteil)."
 
-#: data/mail-notification.schemas.in.h:22
-#, fuzzy
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
-msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
+msgstr ""
+"Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Sekundenteil)."
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+msgid "The command to run when all mail is read."
+msgstr "Der Befehl der ausgeführt wird, wenn alle Nachrichten gelesen wurden"
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr "Der Befehl der ausgeführt wird, wenn eine neue Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:24
-#, fuzzy
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
-msgstr "Die Höhe des Einstellungsdialogs in Pixel."
+msgstr "Die Höhe der Nachrichtenübersicht in Pixel."
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr "Die Höhe des Einstellungsdialogs in Pixel."
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr "Die Liste der zu überwachenden Postfächer."
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
@@ -163,83 +172,93 @@ msgstr ""
 "Die Liste vertrauensvoller SSL/TLS-Server (Host-Name:Port) ohne X509-"
 "Zertifikat."
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 "Die Liste vertrauensvoller X509-Zertifikate, repräsentiert durch ihre MD5-"
 "Fingerabdrücke."
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
+"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
+"der Nachrichtenübersicht."
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
+"Die Anzahl an Pixeln die zwischen dem oberen oder runteren Bildschirmrand "
+"und der Nachrichtenübersicht."
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
+"Die Position der Nachrichtenübersicht. Der Wert muss »oben-links«, »oben-"
+"rechts«, »unten-links« oder »unten-rechts« sein."
 
-#: data/mail-notification.schemas.in.h:32
-#, fuzzy
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
-msgstr "Die Breite des Einstellungen-Dialogs in Pixel."
+msgstr "Die Breite der Nachrichtenübersicht in Pixel."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr "Die Breite des Einstellungen-Dialogs in Pixel."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr "Liste vertrauensvoller Server"
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr ""
 "Legt fest, ob die E-Mail-Eingangsüberwachnung schon einmal gestartet wurde."
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
 msgstr ""
 "Legt fest, ob das  Nachrichtensymbol bei Auftreten eines Fehlers blinkt."
 
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
+#: data/mail-notification.schemas.in.h:40
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:38
-#, fuzzy
+#: data/mail-notification.schemas.in.h:41
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr ""
-"Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
+"Legt fest, ob die Nachrichtenübersicht angezeigt wird, wenn eine neue "
+"Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr ""
+"Legt fest, ob der Fehlerdialog der Sofortbenachrichtigung angezeigt wird."
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:43
+msgid "Whether to run a command when all mail is read or not."
+msgstr ""
+"Legt fest, ob ein Befehl ausgeführt wird, wenn alle Nachrichten gelesen "
+"wurden."
+
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 "Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
-msgstr "Breite des Einstellungen-Dialogs"
+msgstr "Breite der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr "Breite des Einstellungen-Dialogs"
 
@@ -270,6 +289,40 @@ msgstr "Hendrik Brandt <eru@gmx.li>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">automatisch erkennen</span>"
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr "Bitte geben Sie das Passwort für %s-Postfach »%s«."
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+"Die E-Mail-Eingangsüberwachnung konnte sich nicht an dem %s-Postfach »%s« "
+"anmelden. Eine mögliche Ursache wäre, dass Sie das Passwort falsch "
+"eingegeben haben. \n"
+"\n"
+"Bitte geben Sie das Passwort für dieses Postfach ein."
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Die E-Mail-Eingangsüberwachung "
+"benötigt ein Passwort</span>\n"
+"\n"
+"%s"
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Ort:"
@@ -499,12 +552,16 @@ msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
 msgstr ""
+"Der Server hat während einer beginnenden SASL-Client-Antwort einen Fehler "
+"gesendet"
 
 #: src/mn-client-session.c:1089
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
 msgstr ""
+"Der Server hat kein SASL-Problem gesendet, während noch eine Client-seitige "
+"SASL-Reaktion begonnen wurde"
 
 #: src/mn-client-session.c:1112
 #, c-format
@@ -535,164 +592,158 @@ msgstr "Synchronisiere mit der GConf-Datenbank"
 msgid "completed"
 msgstr "Abgeschlossen"
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr "Ihr Gmail-Benutzername"
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
-msgstr "Ihr Gmail-Passwort"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
+msgstr ""
+"Ihr Gmail-Passwort (falls Sie nichts eingeben, werden Sie jedesmal wenn es "
+"notwendig ist nach dem Passwort gefragt)"
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
+msgstr "»libsoup« wurde nicht mit SSL/TLS-Unterstützung erstellt"
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
-#, fuzzy, c-format
+#: src/mn-gmail-mailbox.gob:105
+#, c-format
 msgid "unable to parse URI \"%s\""
-msgstr "Die Antwort »%s« konnte nicht analysiert werden"
+msgstr "Die Adresse »%s« konnte nicht analysiert werden"
 
-#: src/mn-gmail-mailbox.gob:257
+#: src/mn-gmail-mailbox.gob:159
+#, c-format
+msgid "unable to transfer data: %s"
+msgstr "Daten konnten nicht übertragen werden: %s"
+
+#: src/mn-gmail-mailbox.gob:280
 msgid "logging in"
 msgstr "Anmelden bei"
 
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
+#: src/mn-gmail-mailbox.gob:358
 msgid "login failed"
 msgstr "Anmeldung fehlgeschlagen"
 
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "Daten konnten nicht übertragen werden: %s"
-
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
-msgstr "Anmeldung war erfolgreich"
-
-#: src/mn-gmail-mailbox.gob:487
+#: src/mn-gmail-mailbox.gob:433
 msgid "searching for unread mail"
 msgstr "Es wird nach ungelesenen Nachrichten gesucht"
 
-#: src/mn-gmail-mailbox.gob:491
-#, fuzzy
-msgid "unable to search for unread mail"
-msgstr "Es wird nach ungelesenen Nachrichten gesucht"
-
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
 msgstr "Die Gmail-Daten konnte nicht analysiert werden"
 
 #: src/mn-gmime-stream-vfs.gob:49
-#, fuzzy, c-format
+#, c-format
 msgid "unable to read %s: %s"
-msgstr "%s konnte nicht kontaktiert werden: %s"
+msgstr "%s konnte nicht gelesen werden: %s"
 
 #: src/mn-gmime-stream-vfs.gob:51
-#, fuzzy, c-format
+#, c-format
 msgid "unable to write to %s: %s"
-msgstr "Es konnte nicht auf den Server geschrieben werden: %s"
+msgstr "Es konnte nicht nach %s geschrieben werden: %s"
 
 #: src/mn-gmime-stream-vfs.gob:53
-#, fuzzy, c-format
+#, c-format
 msgid "unable to seek in %s: %s"
-msgstr "%s konnte nicht kontaktiert werden: %s"
+msgstr "Es konnte nicht in %s gesucht werden: %s"
 
 #: src/mn-gmime-stream-vfs.gob:55
-#, fuzzy, c-format
+#, c-format
 msgid "unable to tell position of %s: %s"
-msgstr "%s konnte nicht überwacht werden: %s"
+msgstr "Die Position von %s konnte nicht ermittelt werden: %s"
 
 #: src/mn-gmime-stream-vfs.gob:57
-#, fuzzy, c-format
+#, c-format
 msgid "unable to close %s: %s"
-msgstr "Ordner konnte nicht geschlossen werden: %s"
+msgstr "%s konnte nicht geschlossen werden: %s"
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr "Postfach:"
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr "In_box"
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr "_Anderer:"
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr "Der Name oder die IP-Adresse des IMAP-Servers"
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr "Ihr Benutzername auf dem IMAP-Server"
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
-msgstr "Ihr Passwort auf dem IMAP-Server"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Ihr Passwort für diesen IMAP-Server (falls Sie nichts eingeben, werden Sie "
+"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr "Die Port-Nummer auf dem IMAP-Server"
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr "Der Postfachname"
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr ""
 "Die Unterstützung für SSL/TLS wurde beim Erstellen des Programms nicht "
 "eingebaut"
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr "Der Server hat seine Fähigkeiten nicht bekannt gegeben"
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 "Der Server gibt LOGINDISABLED zurück, LOGIN-Authentifizierung wird nicht "
 "verwendet"
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr "Anmeldung fehlgeschlagen"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
-#, fuzzy
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
-msgstr "Der Server hat seinen Status nicht bekannt gegeben"
+msgstr "Der Server hat keine Suchergebnisse gesendet"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
-#, fuzzy
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
-msgstr "Der Server hat seinen Status nicht bekannt gegeben"
+msgstr "Der Server hat nicht alle angeforderten Nachrichten gesendet"
 
-#: src/mn-imap-mailbox.gob:570
-#, fuzzy
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
-msgstr "Es konnte nicht verbunden werden: %s"
+msgstr "Nachrichten konnten nicht abgerufen werden"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr "Der Server hat seinen Status nicht bekannt gegeben"
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr "Unbekannter Server-Fehler"
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr "Der Server unterstütz kein band-internes SSL/TLS"
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -700,7 +751,7 @@ msgstr ""
 "Sie haben eine Authentifizierung mit SASL ausgewählt, jedoch wurde die "
 "Unterstützung für SASL beim Erstellen des Programms nicht eingebaut"
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "Unbekannte Authentifizierungsmethode »%s«"
@@ -709,7 +760,7 @@ msgstr "Unbekannte Authentifizierungsmethode »%s«"
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "Es wird auf die Authentifizierung per IMAP LOGIN zurückgegriffen"
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr "Authentifizierung fehlgeschlagen"
 
@@ -730,11 +781,11 @@ msgstr "Ein Postfach hinzufügen"
 msgid "%s Properties"
 msgstr "%s Eigenschaften"
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "Ben_utzername:"
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Passwort:"
 
@@ -791,46 +842,44 @@ msgstr "Postfach konnte nicht hinzugefügt werden"
 msgid "The mailbox is already in the list."
 msgstr "Dieses Postfach exisitiert bereits in Ihrer Liste."
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "Die Postfachadresse"
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "Der lesbare Postfachname"
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr "Legt fest, ob das Postfach manuell überprüft werden soll"
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr "Legt fest, ob das Postfach neue Nachrichten enthält"
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
-msgstr ""
+msgstr "Die Liste neuer und ungelesener MNMessage-Objekte"
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr "Der Postfachfehler, falls vorhanden"
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr "existiert nicht"
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr "unbekanntes Format"
 
-#: src/mn-mailbox.gob:408
-#, fuzzy, c-format
+#: src/mn-mailbox.gob:406
+#, c-format
 msgid "unable to enable immediate notification for %s: %s"
-msgstr ""
-"Die E-Mail-Eingangsüberwachung konnte die umgehende Benachrichtigung für ein "
-"oder mehrere Postfächer nicht aktivieren: %s"
+msgstr "Die Sofortbenachrichtigung konnte für %s nicht aktiviert werden: %s"
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, fuzzy, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -840,16 +889,16 @@ msgid_plural ""
 "configurable from the Properties Dialog)."
 msgstr[0] ""
 "Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
-"über den Einstellungen-Dialog angepasst werden).Als Rücksicherung werden "
-"diese alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungen-"
-"Dialog angepasst werden)."
+"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
+"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
+"angepasst werden)."
 msgstr[1] ""
 "Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
-"über den Einstellungen-Dialog angepasst werden).Als Rücksicherung werden "
-"diese alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungen-"
-"Dialog angepasst werden)."
+"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
+"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
+"angepasst werden)."
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, fuzzy, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -859,16 +908,16 @@ msgid_plural ""
 "configurable from the Properties Dialog)."
 msgstr[0] ""
 "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungen-Dialog angepasst werden).Als Rücksicherung werden "
-"diese alle %i Minuten überprüft (Dieser Wert kann über den Einstellungen-"
-"Dialog angepasst werden)."
+"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
+"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
+"angepasst werden)."
 msgstr[1] ""
 "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungen-Dialog angepasst werden).Als Rücksicherung werden "
-"diese alle %i Minuten überprüft (Dieser Wert kann über den Einstellungen-"
-"Dialog angepasst werden)."
+"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
+"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
+"angepasst werden)."
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, fuzzy, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -878,49 +927,48 @@ msgid_plural ""
 "delay is configurable from the Properties Dialog)."
 msgstr[0] ""
 "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungen-Dialog angepasst werden).Als Rücksicherung werden "
-"diese alle %i Minuten überprüft (Dieser Wert kann über den Einstellungen-"
-"Dialog angepasst werden)."
+"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
+"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
+"angepasst werden)."
 msgstr[1] ""
 "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungen-Dialog angepasst werden).Als Rücksicherung werden "
-"diese alle %i Minuten überprüft (Dieser Wert kann über den Einstellungen-"
-"Dialog angepasst werden)."
+"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
+"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
+"angepasst werden)."
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr "Bei der Überwachung ist ein Fehler aufgetreten"
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
 "more mailboxes. %s"
 msgstr ""
-"Die E-Mail-Eingangsüberwachung konnte die umgehende Benachrichtigung für ein "
+"Die E-Mail-Eingangsüberwachung konnte die Sofortbenachrichtigung für ein "
 "oder mehrere Postfächer nicht aktivieren: %s"
 
-#: src/mn-mailboxes.gob:133
-#, fuzzy
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
-msgstr "Legt fest, ob das Postfach manuell überprüft werden soll"
+msgstr "Legt fest, ob ein oder mehrere Postfächer befragt werden sollen"
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s wird nicht unterstützt: %s"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr "%s hat neue Nachrichten"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr "%s hat keine neuen Nachrichten"
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s hat einen Fehler erzeugt: %s"
@@ -940,50 +988,49 @@ msgstr "Der Ordner »new« konnte nicht geschlossen werden: %s"
 msgid "error while reading folder \"new\": %s"
 msgstr "Fehler beim Lesen des Ordners »new«: %s"
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr "Eingebaute Postfacharten: %s\n"
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Eingebaute Programmfähigkeiten: %s\n"
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr "Ausgabe von Informationen aktivieren"
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr "Eingebaute Programmfähigkeiten anzeigen und beenden"
 
-#: src/mn-main.c:184
-#, fuzzy
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
-msgstr "Den Info-Dialog anzeigen"
+msgstr "Die Nachrichtenübersicht anzeigen"
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr "Den Dialog zum Einstellen der E-Mail-Eingangsüberwachung anzeigen"
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr "Den Info-Dialog anzeigen"
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
-msgstr ""
+msgstr "Die Nachrichtenübersicht schließen"
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr "Nach neuen Nachrichten sehen"
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr "Den aktuellen Nachrichten anzeigen"
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr "Veraltete GConf-Konfiguration zurücksetzen und beenden"
 
@@ -991,11 +1038,11 @@ msgstr "Veraltete GConf-Konfiguration zurücksetzen und beenden"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr "Multi-Threading steht nicht zur Verfügung"
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -1003,19 +1050,19 @@ msgstr ""
 "Bonobo konnte das Automatisierungsobjekt nicht finden. Bitte überprüfen Sie "
 "Ihre Installation der E-Mail-Eingangsüberwachung."
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Die GnomeVFS-Bibliothek konnte nicht initializiert werden."
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr "Nachrichtenstatus wird aktualisiert"
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr "Die E-Mail-Eingangsüberwachung ist bereits aktiv"
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
@@ -1024,7 +1071,7 @@ msgstr ""
 "finden. Bitte überprüfen Sie Ihre Installation der E-Mail-"
 "Eingangsüberwachung."
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1044,56 +1091,58 @@ msgstr "Postfach konnte nicht geöffnet werden: %s"
 
 #: src/mn-message-label.gob:77
 msgid "Unreadable message"
-msgstr ""
+msgstr "Nichtlesbare Nachricht"
 
 #: src/mn-message-label.gob:97
 msgid "From"
-msgstr ""
+msgstr "Von"
 
 #: src/mn-message-label.gob:98
 msgid "Subject"
-msgstr ""
+msgstr "Betreff"
 
 #: src/mn-message-label.gob:102
 msgid "Sent"
-msgstr ""
+msgstr "Gesendet"
 
 #: src/mn-message-label.gob:151
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Vor %i Sekunde"
 
 #: src/mn-message-label.gob:155
 #, c-format
 msgid "%i minute ago"
 msgid_plural "%i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Vor %i Minute"
 
 #: src/mn-message-label.gob:160
 #, c-format
 msgid "%i hour ago"
 msgid_plural "%i hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Vor %i Stunde"
 
 #: src/mn-message-label.gob:165
 #, c-format
 msgid "%i day ago"
 msgid_plural "%i days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Vor %i Tag"
+
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] "Vor %i Woche"
+msgstr[1] "Vor %i Wochen"
 
 #: src/mn-message-mime.c:105
-#, fuzzy
 msgid "unable to parse MIME message"
-msgstr "Die Antwort »%s« konnte nicht analysiert werden"
+msgstr "Die MIME-Nachricht konnte nicht analysiert werden"
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
-msgstr ""
+msgstr "Inactive"
 
 #: src/mn-mh-mailbox.gob:184
 #, c-format
@@ -1129,32 +1178,35 @@ msgstr "_band-internes SSL/TLS"
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS über e_xtra Port"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr "Der Name oder die IP-Adresse des POP3-Servers"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr "Ihr Benutzername für diesen POP3-Server"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
-msgstr "Ihr Passwort für diesen POP3-Server"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Ihr Passwort für diesen POP3-Server (falls Sie nichts eingeben, werden Sie "
+"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr "Die Port-Nummer des POP3-Servers"
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "Ungültige Argumente für die Anmeldeverzögerung"
 
-#: src/mn-pop3-mailbox.gob:536
-#, fuzzy
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
-msgstr "Unbekannter Server-Fehler"
+msgstr "Unbekannter Fehler"
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1163,84 +1215,88 @@ msgstr[0] ""
 "gewartetAnmeldeverzögerung wird berücksichtigt, es wird für %i Sekunden "
 "gewartet"
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr "Der Server unterstütz eine Authentifizierung per APOP nicht."
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr "Es wird auf Authentifizierung mit APOP zurück gegriffen."
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr ""
 "Es wird auf Authentifizierung per Nutzername und Passwort zurück gegriffen."
 
-#: src/mn-properties.c:161
-#, fuzzy
+#: src/mn-properties.c:170
 msgid "top left"
-msgstr "Vollständig"
+msgstr "oben links"
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
-msgstr ""
+msgstr "oben rechts"
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
-msgstr ""
+msgstr "unten links"
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
-msgstr ""
+msgstr "unten rechts"
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr "Kein Postfach ausgewählt."
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] "Ein Posfach ausgewählt."
 msgstr[1] "%i Postfächer ausgewählt."
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr "Sie haben neue Nachrichten."
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-"Es ist ein Fehler beim Ausführen eines Befehls in der E-Mail-"
-"Eingangsüberwachung aufgetreten."
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr "Der Befehl für neue E-Mails konnte nicht ausgeführt werden: %s."
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] "Dieses Postfach hat neue Nachrichten:\n"
 msgstr[1] "Diese Postfächer haben neue Nachrichten:\n"
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr "Sie haben keine neuen Nachrichten."
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] "Das folgende Postfach hat einen Fehler ausgegeben:\n"
 msgstr[1] "Die folgenden Postfächer haben einen Fehler ausgegeben:\n"
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] "Das folgende Postfach wird nicht unterstützt:\n"
 msgstr[1] "Die folgenden Postfächer werden nicht unterstützt:\n"
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr ""
+"Es ist ein Fehler beim Ausführen eines Befehls in der E-Mail-"
+"Eingangsüberwachung aufgetreten."
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "»%s« konnte nicht ausgeführt werden: %s."
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr "Die Proxy-Adresse »%s« konnte nicht analysiert werden"
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr "Unbekannter SSL/TLS-Fehler"
@@ -1251,7 +1307,7 @@ msgstr "_Alles auswählen"
 
 #: src/mn-stock.c:29
 msgid "_Mail Summary"
-msgstr ""
+msgstr "_Nachrichtenübersicht"
 
 #: src/mn-sylpheed-mailbox.gob:122
 #, c-format
@@ -1268,7 +1324,7 @@ msgstr "Ordner konnte nicht geschlossen werden: %s"
 msgid "error while reading folder: %s"
 msgstr "Fehler beim Lesen von Ordner: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr "Systempostfach"
 
@@ -1300,9 +1356,9 @@ msgid "error loading image: %s"
 msgstr "Bild konnte nicht geladen werden: %s"
 
 #: src/mn-util.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
-msgstr "Widget %s konnte nicht in Interface %s gefunden werden"
+msgstr "Widget »%s« konnte nicht in Interface »%s« gefunden werden"
 
 #: src/mn-util.c:385
 msgid "received an invalid URI list"
@@ -1323,7 +1379,7 @@ msgstr "Es konnte kein Thread erzeugt werden: %s."
 
 #: src/mn-util.c:705
 msgid "_Do not show this message again"
-msgstr ""
+msgstr "_Diese Meldung nicht erneut anzeigen"
 
 #: src/mn-util.c:789
 msgid "A fatal error has occurred in Mail Notification"
@@ -1332,14 +1388,22 @@ msgstr ""
 "aufgetreten"
 
 #: src/mn-util.c:804
-#, fuzzy, c-format
+#, c-format
 msgid "unable to get current time: %s"
-msgstr "Es konnte keine Verbindung mit %s hergestellt werden"
+msgstr "Die aktuelle Zeit konnte nicht ermittelt werden: %s"
 
 #: src/mn-util.c:887
 #, c-format
 msgid "invalid signal specification \"%s\""
-msgstr ""
+msgstr "Ungültige Signalspezifikation »%s«"
+
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr "_Authentifizieren:"
 
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
@@ -1349,102 +1413,116 @@ msgstr "_Art des Postfachs:"
 msgid "    "
 msgstr "    "
 
-#: ui/properties.glade.h:2
-msgid "*"
-msgstr "*"
-
 #: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
+msgstr "<span weight=\"bold\">Befehle</span>"
+
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Allgemein</span>"
 
-#: ui/properties.glade.h:4
-#, fuzzy
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Postfächer</span>"
 
-#: ui/properties.glade.h:5
-#, fuzzy
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
-msgstr "<span weight=\"bold\">Befehle</span>"
+msgstr "<span weight=\"bold\">Position</span>"
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
-msgstr ""
+msgstr "Allgemein"
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
-msgstr ""
+msgstr "_Horizontaler Abstand:"
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr "Einstellung der E-Mail-Eingangsüberwachung"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
-msgstr ""
+msgstr "Aufklappende Nachrichtenübersicht"
 
-#: ui/properties.glade.h:10
-#, fuzzy
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
-msgstr "Postfach"
+msgstr "Postfächer"
 
-#: ui/properties.glade.h:11
-#, fuzzy
+#: ui/properties.glade.h:12
 msgid "P_osition:"
-msgstr "_Ort:"
+msgstr "P_osition:"
 
-#: ui/properties.glade.h:12
-#, fuzzy
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
+msgstr "Die Wartedauer ehe die Nachrichtenübersicht geschlossen wurde"
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+msgid "The command to run when all mail is read"
+msgstr "Der auszuführende Befehl wenn alle Nachrichten gelesen wurden"
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr ""
 "Geben Sie hier den Befehl ein, der ausgeführt wird sobald eine neue "
 "Nachricht eintrifft."
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
+"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
+"der Nachrichtenübersicht."
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
+"Die Anzahl an Pixel zwischen dem oberen oder unteren Bildschirmrand und der "
+"Nachrichtenübersicht."
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr "Wenn alle Nachricht _gelesen wurden:"
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr "Wenn neue Nachricht _eintrifft:"
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
 msgstr ""
 "Wenn diese Option gewählt ist, blinkt das  Nachrichtensymbol bei Auftreten "
 "eines Fehlers."
 
-#: ui/properties.glade.h:18
-#, fuzzy
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Legt fest, ob das Postfach neue Nachrichten enthält"
+msgstr "Legt fest, ob die Nachrichtenübersicht automatisch geschlossen wird"
 
-#: ui/properties.glade.h:19
-#, fuzzy
+#: ui/properties.glade.h:23
 msgid "Whether to display the mail summary popup when new mail arrives or not"
 msgstr ""
-"Wenn diese Option ausgewählt ist, können Sie einen Befehl angeben der "
-"ausgeführt wird, sobald eine neue Nachricht eintrifft."
+"Legt fest, ob die Nachrichtenübersicht aufklappt wenn eine neue Nachricht "
+"eintrifft"
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+msgid "Whether to run a command when all mail is read or not"
+msgstr ""
+"Legt fest, ob ein Befehl ausgeführt wird wenn alle Nachrichten gelesen wurden"
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr ""
 "Wenn diese Option ausgewählt ist, können Sie einen Befehl angeben der "
 "ausgeführt wird, sobald eine neue Nachricht eintrifft."
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
@@ -1452,55 +1530,49 @@ msgstr ""
 "Wenn diese Option ausgewählt ist, wird die E-Mail-Eingangsüberwachnung beim "
 "Starten von GNOME ebenfalls gestartet."
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
-msgstr ""
+msgstr "_Automatisch schließen nach:"
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr "_Bei Fehler blinken"
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr "_Nach neuen Nachrichten sehen alle:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:26
-#, fuzzy
-msgid "_Run a command when new mail arrives:"
-msgstr "Einen Befehl ausführen, wenn eine neue Nachricht eintrifft"
+msgstr "_Aufklappende Nachrichtenübersicht aktivieren"
 
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
 msgstr "_Laden beim Starten von  GNOME"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
-msgstr ""
+msgstr "_Vertikaler Abstand:"
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr "Minuten"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
-msgstr ""
+msgstr "Pixel"
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr "Sekunden"
 
 #: ui/summary-dialog.glade.h:1
 msgid "Mail Summary"
-msgstr ""
+msgstr "Nachrichtenübersicht"
 
 #: ui/summary-popup.glade.h:1
-#, fuzzy
 msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Postfächer</span>"
+msgstr "<span size=\"larger\" weight=\"bold\">Nachrichtenübersicht</span>"
 
 #: ui/welcome.glade.h:1
 msgid ""
@@ -1540,60 +1612,13 @@ msgstr "Die E-Mail-Eingangsüberwachung anpassen"
 msgid "_Skip configuration"
 msgstr "Konfiguration über_springen"
 
-#~ msgid "Double-clicked command"
-#~ msgstr "Auszuführender Befehl bei Doppelklick"
-
-#~ msgid "Run a command when the icon is double-clicked"
-#~ msgstr ""
-#~ "Einen Befehl ausführen, wenn das Nachrichtensymbol doppelt angeklickt wird"
-
-#~ msgid "The command to run when the icon is double-clicked."
-#~ msgstr ""
-#~ "Der Befehl der ausgeführt wird, wenn das Nachrichtensymbol doppelt "
-#~ "angeklickt wird."
-
-#~ msgid "Whether to run a command when the icon is double-clicked or not."
-#~ msgstr ""
-#~ "Legt fest, ob ein Befehl ausgeführt wird, wenn das Nachrichtensymbol "
-#~ "doppelt angeklickt wird."
-
-#~ msgid "_Run %s"
-#~ msgstr "%s a_usführen"
-
-#~ msgid "_Run Default Action"
-#~ msgstr "_Standard Aktion ausführen"
-
 #~ msgid ""
 #~ "As a fallback, they will be checked approximately every %i minute (this "
 #~ "delay is configurable from the Properties Dialog).As a fallback, they "
 #~ "will be checked approximately every %i minutes (this delay is "
 #~ "configurable from the Properties Dialog)."
 #~ msgstr ""
-#~ "Als Rücksicherung werden diese in etwa jede %i Minute überprüft (Dieser "
-#~ "Wert kann über den Einstellungen-Dialog angepasst werden).Als "
-#~ "Rücksicherung werden diese in etwa alle %i Minuten überprüft (Dieser Wert "
-#~ "kann über den Einstellungen-Dialog angepasst werden)."
-
-#~ msgid "A command error has occurred"
-#~ msgstr "Es ist ein Fehler beim Ausführen des Befehls aufgetreten"
-
-#~ msgid "Unable to execute double-clicked command: %s."
-#~ msgstr ""
-#~ "Der Befehl für einen Symboldoppelklick konnte nicht ausgeführt werden: %s."
-
-#~ msgid "The command to run when the icon is double-clicked"
-#~ msgstr ""
-#~ "Geben Sie hier den Befehl ein, der ausgeführt wird sobald das "
-#~ "Benachrichtigungssymbol doppelt angeklickt wird."
-
-#~ msgid "When _new mail arrives:"
-#~ msgstr "Wenn neue Nachricht _eintrifft:"
-
-#~ msgid "When double-click_ed:"
-#~ msgstr "Wenn _doppelt angeklickt:"
-
-#~ msgid "Whether to run a command when the icon is double-clicked or not"
-#~ msgstr ""
-#~ "Wenn diese Option ausgewählt ist, können Sie einen Befehl angeben der "
-#~ "ausgeführt wird, sobald das Benachrichtigungssymbol doppelt angeklickt "
-#~ "wird."
+#~ "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
+#~ "über den Einstellungsdialog angepasst werden).Als Rücksicherung werden "
+#~ "diese alle %i Minuten überprüft (Dieser Wert kann über den "
+#~ "Einstellungsdialog angepasst werden)."
diff --git a/po/fr.gmo b/po/fr.gmo
Binary files differ.
diff --git a/po/fr.po b/po/fr.po
@@ -8,10 +8,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 0.7.0\n"
+"Project-Id-Version: mail-notification 0.7.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
-"PO-Revision-Date: 2004-10-06 19:26+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"PO-Revision-Date: 2004-10-25 15:22+0200\n"
 "Last-Translator: Jean-Yves Lefort <jylefort@brutele.be>\n"
 "Language-Team: Jean-Yves Lefort <jylefort@brutele.be>\n"
 "MIME-Version: 1.0\n"
@@ -34,7 +34,7 @@ msgstr "Configurer la Notification de Courrier"
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "Notification de Courrier"
 
@@ -85,46 +85,54 @@ msgid "Height of properties dialog"
 msgstr "Hauteur de la boîte de dialogue contenant les propriétés"
 
 #: data/mail-notification.schemas.in.h:11
+msgid "Mail read command"
+msgstr "Commande de courrier lu"
+
+#: data/mail-notification.schemas.in.h:12
 msgid "Mail summary popup horizontal offset"
 msgstr "Décalage horizontal du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
 msgid "Mail summary popup position"
 msgstr "Position du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:14
 msgid "Mail summary popup vertical offset"
 msgstr "Décalage vertical du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:15
 msgid "Mailbox list"
 msgstr "Liste des boîtes aux lettres"
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 msgid "Minutes between mail checks"
 msgstr "Minutes entre les vérifications de courrier"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr "Minutes à attendre avant de fermer le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:18
 msgid "New mail command"
 msgstr "Commande de nouveau message"
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:19
+msgid "Run a command when all mail is read"
+msgstr "Exécuter une commande lorsque tout le courrier est lu"
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Run a command when new mail arrives"
 msgstr "Exécuter une commande lorsque du nouveau courrier arrive"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr "Secondes entre les vérifications de courrier"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr "Secondes à attendre avant de fermer le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
@@ -132,7 +140,7 @@ msgstr ""
 "La quantité de temps à attendre avant de fermer le popup d'aperçu du "
 "courrier (partie minutes)."
 
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
@@ -140,24 +148,28 @@ msgstr ""
 "La quantité de temps à attendre avant de fermer le popup d'aperçu du "
 "courrier (partie secondes)."
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+msgid "The command to run when all mail is read."
+msgstr "La commande à exécuter lorsque tout le courrier est lu"
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr "La commande à exécuter lorsque du nouveau courrier arrive."
 
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
 msgstr ""
 "La hauteur de la boîte de dialogue contenant l'aperçu du courrier en pixels."
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr "La hauteur de la boîte de dialogue contenant les propriétés en pixels."
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr "La liste des boîtes aux lettres à surveiller."
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
@@ -165,14 +177,14 @@ msgstr ""
 "La liste des serveurs SSL/TLS (hôte:port) de confiance auxquels il manque un "
 "certificat X509."
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 "La liste des certificats X509 de confiance, représentés par leur empreinte "
 "digitale."
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
@@ -180,7 +192,7 @@ msgstr ""
 "Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
 "popup d'aperçu du courrier."
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
@@ -188,7 +200,7 @@ msgstr ""
 "Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
 "d'aperçu du courrier."
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
@@ -196,39 +208,39 @@ msgstr ""
 "La position du popup d'aperçu du courrier. Doit etre \"top-left\", \"top-"
 "right\", \"bottom-left\" or \"bottom-right\"."
 
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
 msgstr ""
 "La largeur de la boîte de dialogue contenant l'aperçu du courrier en pixels."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr "La largeur de la boîte de dialogue contenant les propriétés en pixels."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr "Liste des serveurs de confiance"
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Si la Notification de Courrier a déjà été exécutée ou pas."
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
-msgstr "Si l'icône de status doit clignoter lors d'erreurs ou pas."
+msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas."
 
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:40
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas."
 
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:41
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr ""
 "Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
 "courrier arrive ou pas."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
@@ -236,16 +248,21 @@ msgstr ""
 "Si il faut empêcher la boîte de dialogue contenant l'erreur de notification "
 "immédiate de s'afficher ou pas."
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:43
+msgid "Whether to run a command when all mail is read or not."
+msgstr ""
+"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas."
+
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 "Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas."
 
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
 msgstr "Largeur de la boîte de dialogue contenant l'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr "Largeur de la boîte de dialogue contenant les propriétés"
 
@@ -274,6 +291,40 @@ msgstr "Jean-Yves Lefort <jylefort@brutele.be>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">autodétecter</span>"
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr "Entrez votre mot de passe pour la boîte aux lettres %s %s."
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+"La Notification de Courrier n'a pas été en mesure d'ouvrir une session dans "
+"la boîte aux lettres %s %s, peut-être parce que le mot de passe que vous "
+"avez saisi est invalide.\n"
+"\n"
+"Veuillez à nouveau saisir votre mot de passe."
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">La Notification de Courrier nécessite "
+"un mot de passe</span>\n"
+"\n"
+"%s"
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Emplacement:"
@@ -312,7 +363,7 @@ msgstr "%s: famille d'adresse non prise en charge"
 #: src/mn-client-session.c:283
 #, c-format
 msgid "%s: unable to create socket: %s"
-msgstr "%s: impossible de créer un soquet: %s"
+msgstr "%s: impossible de créer un socket: %s"
 
 #: src/mn-client-session.c:287
 #, c-format
@@ -352,7 +403,7 @@ msgstr "impossible de spécifier le descripteur de fichier SSL/TLS: %s"
 #: src/mn-client-session.c:337
 #, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
-msgstr "impossible d'accomplir la négotiation SSL/TLS: %s"
+msgstr "impossible d'accomplir la négociation SSL/TLS: %s"
 
 #: src/mn-client-session.c:343
 msgid "untrusted server"
@@ -450,12 +501,12 @@ msgstr "impossible d'initialiser la bibliothèque SASL: %s"
 #: src/mn-client-session.c:926
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
-msgstr "impossible d'obtenir l'adresse locale du soquet: %s"
+msgstr "impossible d'obtenir l'adresse locale du socket: %s"
 
 #: src/mn-client-session.c:932
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
-msgstr "impossible d'obtenir l'adresse distante du soquet: %s"
+msgstr "impossible d'obtenir l'adresse distante du socket: %s"
 
 #: src/mn-client-session.c:966
 #, c-format
@@ -543,51 +594,45 @@ msgstr "en train de synchroniser la base de données GConf"
 msgid "completed"
 msgstr "terminé"
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr "Votre nom d'utilisateur Gmail"
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
-msgstr "Votre mot de passe Gmail"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
+msgstr ""
+"Votre mot de passe Gmail (si laissé vide, le mot de passe vous sera demandé "
+"en temps utile)"
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
 msgstr "libsoup n'a pas été compilé avec le support SSL/TLS"
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
+#: src/mn-gmail-mailbox.gob:105
 #, c-format
 msgid "unable to parse URI \"%s\""
 msgstr "impossible d'interpréter l'URI \"%s\""
 
-#: src/mn-gmail-mailbox.gob:257
+#: src/mn-gmail-mailbox.gob:159
+#, c-format
+msgid "unable to transfer data: %s"
+msgstr "impossible de transférer des données: %s"
+
+#: src/mn-gmail-mailbox.gob:280
 msgid "logging in"
 msgstr "ouverture de session en cours"
 
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
+#: src/mn-gmail-mailbox.gob:358
 msgid "login failed"
 msgstr "l'ouverture de session a échoué"
 
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "impossible de transférer des données: %s"
-
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
-msgstr "ouverture de session effectuée avec succès"
-
-#: src/mn-gmail-mailbox.gob:487
+#: src/mn-gmail-mailbox.gob:433
 msgid "searching for unread mail"
 msgstr "recherche du courrier non lu"
 
-#: src/mn-gmail-mailbox.gob:491
-msgid "unable to search for unread mail"
-msgstr "impossible de rechercher le courrier non lu"
-
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
 msgstr "impossible d'interpréter les données Gmail"
 
@@ -616,85 +661,89 @@ msgstr "impossible de dire la position de %s: %s"
 msgid "unable to close %s: %s"
 msgstr "impossible de fermer %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr "Boîte aux lettres:"
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr "_boîte de réception"
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr "autr_e:"
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr "Le nom d'hôte ou adresse IP du serveur IMAP"
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr "Votre nom d'utilisateur sur le serveur IMAP"
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
-msgstr "Votre mot de passe sur le serveur IMAP"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Votre mot de passe sur le serveur IMAP (si laissé vide, le mot de passe vous "
+"sera demandé en temps utile)"
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr "Le numéro de port du serveur IMAP"
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr "Le nom de la boîte aux lettres"
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr "le support SSL/TLS n'a pas été inclus lors de la compilation"
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr "le serveur n'a pas envoyé ses possibilités"
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 "le serveur a annoncé LOGINDISABLED, pas d'utilisation de l'authentification "
 "LOGIN"
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr "impossible d'ouvrir la session"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
 msgstr "le serveur n'a pas envoyé les résultats de la recherche"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
 msgstr "le serveur n'a pas envoyé tous les messages que nous avons demandé"
 
-#: src/mn-imap-mailbox.gob:570
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
 msgstr "impossible d'obtenir le message"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
-msgstr "le serveur n'a pas envoyé de status"
+msgstr "le serveur n'a pas envoyé de statut"
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr "erreur serveur inconnue"
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr "le serveur ne supporte pas le mode SSL/TLS interne"
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -702,7 +751,7 @@ msgstr ""
 "un mécanisme d'authentification SASL a été sélectionné mais le support SASL "
 "n'a pas été inclus lors de la compilation"
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "mécanisme d'authentification inconnu \"%s\""
@@ -711,7 +760,7 @@ msgstr "mécanisme d'authentification inconnu \"%s\""
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "rétrogradation vers l'authentification IMAP LOGIN"
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr "l'authentification a échoué"
 
@@ -732,11 +781,11 @@ msgstr "Ajouter une Boîte aux Lettres"
 msgid "%s Properties"
 msgstr "Propriétés de %s"
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "_Nom d'utilisateur:"
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Mot de passe:"
 
@@ -793,44 +842,44 @@ msgstr "Impossible d'ajouter la boîte aux lettres"
 msgid "The mailbox is already in the list."
 msgstr "La boîte aux lettres est déjà dans la liste."
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "L'URI de la boîte aux lettres"
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "Le nom, lisible par un humain, de la boîte aux lettres"
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr "Si la boîte aux lettres doit être vérifiée manuellement ou pas"
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr "Si la boîte aux lettres a du nouveau courrier ou pas"
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
 msgstr "La liste des objets MNMessage neufs et non lus"
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr "L'erreur de la boîte aux lettres si il y en a une"
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr "n'existe pas"
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr "format inconnu"
 
-#: src/mn-mailbox.gob:408
+#: src/mn-mailbox.gob:406
 #, c-format
 msgid "unable to enable immediate notification for %s: %s"
 msgstr "impossible d'activer la notification immédiate pour %s: %s"
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -845,7 +894,7 @@ msgstr[1] ""
 "Comme solution de secours, elles seront vérifiées toutes les %i secondes (ce "
 "délai est configurable depuis les Propriétés)."
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -860,7 +909,7 @@ msgstr[1] ""
 "Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
 "délai est configurable depuis les Propriétés)."
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -875,11 +924,11 @@ msgstr[1] ""
 "Comme solution de secours, elles seront vérifiées approximativement toutes "
 "les %i minutes (ce délai est configurable depuis les Propriétés)."
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr "Une erreur de surveillance s'est produite"
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
@@ -888,27 +937,27 @@ msgstr ""
 "La Notification de Courrier n'a pas été en mesure d'activer la notification "
 "immédiate pour une ou plusieures boîtes aux lettres. %s"
 
-#: src/mn-mailboxes.gob:133
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
 msgstr ""
 "Si une ou plusieurs boîtes aux lettres doivent être vérifiées explicitement"
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s n'est pas pris en charge: %s"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr "%s a du nouveau courrier"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr "%s n'a pas de nouveau courrier"
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s a indiqué une erreur: %s"
@@ -928,49 +977,49 @@ msgstr "impossible de fermer le dossier \"new\": %s"
 msgid "error while reading folder \"new\": %s"
 msgstr "erreur lors de la lecture du dossier \"new\": %s"
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr "Prises en charge de boîtes aux lettres disponibles: %s\n"
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Fonctionnalités disponibles: %s\n"
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
-msgstr "Activer la sortie informationelle"
+msgstr "Activer la sortie informationnelle"
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr "Afficher les fonctionnalités disponibles et quitter"
 
-#: src/mn-main.c:184
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
 msgstr "Afficher la boîte de dialogue contenant l'aperçu du courrier"
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr "Afficher la boîte de dialogue contenant les propriétés"
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr "Afficher la boîte de dialogue \"à propos\""
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
 msgstr "Fermer le popup d'aperçu du courrier"
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
-msgstr "Mettre à jour le status du courrier"
+msgstr "Mettre à jour le statut du courrier"
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
-msgstr "Rapporter le status du courrier"
+msgstr "Rapporter le statut du courrier"
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr "Supprimer la configuration GConf obsolète et quitter"
 
@@ -978,11 +1027,11 @@ msgstr "Supprimer la configuration GConf obsolète et quitter"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr "le multi-threading n'est pas disponible"
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -990,19 +1039,19 @@ msgstr ""
 "Bonobo n'a pas pu localiser l'objet automation. Veuillez vérifier votre "
 "installation de la Notification de Courrier."
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Impossible d'initialiser la bibliothèque GnomeVFS."
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
-msgstr "mise à jour du status du courrier"
+msgstr "mise à jour du statut du courrier"
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr "La Notification de Courrier est déjà en cours d'exécution"
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
@@ -1010,7 +1059,7 @@ msgstr ""
 "Bonobo n'a pas pu localiser le fichier GNOME_MailNotification_Automation."
 "server. Veuillez vérifier votre installation de la Notification de Courrier."
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1072,11 +1121,18 @@ msgid_plural "%i days ago"
 msgstr[0] "il y a %i jour"
 msgstr[1] "il y a %i jours"
 
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] "il y a %i semaine"
+msgstr[1] "il y a %i semaines"
+
 #: src/mn-message-mime.c:105
 msgid "unable to parse MIME message"
 msgstr "impossible d'interpréter le message MIME"
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
 msgstr "Inconnu"
 
@@ -1114,113 +1170,120 @@ msgstr "SSL/TLS _interne"
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS sur port sépa_ré"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr "Le nom d'hôte ou adresse IP du serveur POP3"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr "Votre nom d'utilisateur sur le serveur POP3"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
-msgstr "Votre mot de passe sur le serveur POP3"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Votre mot de passe sur le serveur POP3 (si laissé vide, le mot de passe vous "
+"sera demandé en temps utile)"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr "Le numéro de port du serveur POP3"
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "arguments invalides pour la possibilité LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:536
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
 msgstr "erreur inconnue"
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] "attente de %i seconde afin d'obéir à LOGIN-DELAY"
 msgstr[1] "attente de %i secondes afin d'obéir à LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr "le serveur ne supporte pas l'authentification APOP"
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr "rétrogradation vers l'authentification APOP"
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr "rétrogradation vers l'authentification USER/PASS"
 
-#: src/mn-properties.c:161
+#: src/mn-properties.c:170
 msgid "top left"
 msgstr "en haut à gauche"
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
 msgstr "en haut à droite"
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
 msgstr "en bas à gauche"
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
 msgstr "en bas à droite"
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr "Pas de boîte aux lettres sélectionnée."
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] "%i boîte aux lettres sélectionnée"
 msgstr[1] "%i boîtes aux lettres sélectionnées"
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr "Vous avez du nouveau courrier."
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr ""
-"Impossible d'exécuter la commande associée à l'arrivée de nouveau courrier: %"
-"s"
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] "La boîte aux lettres suivante a du nouveau courrier:\n"
 msgstr[1] "Les boîtes aux lettres suivantes ont du nouveau courrier:\n"
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr "Vous n'avez pas de nouveau courrier."
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] "La boîte aux lettres suivante a indiqué une erreur:\n"
 msgstr[1] "Les boîtes aux lettres suivantes ont indiqué une erreur:\n"
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] "La boîte aux lettres suivante n'est pas prise en charge:\n"
 msgstr[1] "Les boîtes aux lettres suivantes ne sont pas prises en charge:\n"
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "Impossible d'exécuter \"%s\": %s"
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr "impossible d'interpréter l'URI de proxy \"%s\""
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr "erreur SSL/TLS inconnue"
@@ -1248,7 +1311,7 @@ msgstr "impossible de fermer le dossier: %s"
 msgid "error while reading folder: %s"
 msgstr "erreur lors de la lecture du dossier: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr "Boîte aux Lettres Système"
 
@@ -1320,6 +1383,14 @@ msgstr "impossible d'obtenir l'heure courante: %s"
 msgid "invalid signal specification \"%s\""
 msgstr "spécification de signal \"%s\" invalide"
 
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr "S'_Authentifier"
+
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
 msgstr "_Type de boîte aux lettres:"
@@ -1328,60 +1399,64 @@ msgstr "_Type de boîte aux lettres:"
 msgid "    "
 msgstr "    "
 
-#: ui/properties.glade.h:2
-msgid "*"
-msgstr "*"
-
 #: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
+msgstr "<span weight=\"bold\">Commandes</span>"
+
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Général</span>"
 
-#: ui/properties.glade.h:4
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Liste des Boîtes aux Lettres</span>"
 
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Position</span>"
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
 msgstr "Général"
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
 msgstr "Décalage hori_zontal:"
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr "Propriétés de la Notification de Courrier"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
 msgstr "Popup d'Aperçu du Courrier"
 
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
 msgstr "Boîtes aux Lettres"
 
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
 msgid "P_osition:"
 msgstr "P_osition:"
 
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
 msgstr ""
 "La quantité de temps à attendre avant de fermer le popup d'aperçu du courrier"
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr "La quantité de temps à attendre entre les vérifications de courrier"
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+msgid "The command to run when all mail is read"
+msgstr "La commande à exécuter lorsque tout le courrier est lu"
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr "La commande à exécuter lorsque du nouveau courrier arrive"
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
@@ -1389,7 +1464,7 @@ msgstr ""
 "Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
 "popup d'aperçu du courrier"
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
@@ -1397,27 +1472,40 @@ msgstr ""
 "Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
 "d'aperçu du courrier"
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr "Quand _tout le courrier est lu:"
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr "Quand du _nouveau courrier arrive:"
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
-msgstr "Si l'icône de status doit clignoter lors d'erreurs ou pas"
+msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas"
 
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
 msgstr ""
 "Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas"
 
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:23
 msgid "Whether to display the mail summary popup when new mail arrives or not"
 msgstr ""
 "Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
 "courrier arrive ou pas"
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+msgid "Whether to run a command when all mail is read or not"
+msgstr ""
+"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas"
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr ""
 "Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas"
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
@@ -1425,44 +1513,40 @@ msgstr ""
 "Si la Notification de Courrier doit être démarrée lorsque vous ouvrez votre "
 "session GNOME ou pas"
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
 msgstr "_Fermer automatiquement après:"
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr "_Clignoter lors d'erreurs"
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr "_Délai entre les vérifications de courrier:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
 msgstr "_Activer le popup d'aperçu du courrier"
 
-#: ui/properties.glade.h:26
-msgid "_Run a command when new mail arrives:"
-msgstr "_Exécuter une commande lorsque du nouveau courrier arrive:"
-
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
 msgstr ""
 "_Démarrer la Notification de Courrier lors de l'ouverture de session GNOME"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
 msgstr "Décalage _vertical:"
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr "minutes"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
 msgstr "pixels"
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr "secondes"
 
diff --git a/po/mail-notification.pot b/po/mail-notification.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -32,7 +32,7 @@ msgstr ""
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr ""
 
@@ -81,145 +81,161 @@ msgid "Height of properties dialog"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Mail summary popup horizontal offset"
+msgid "Mail read command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup position"
+msgid "Mail summary popup horizontal offset"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup vertical offset"
+msgid "Mail summary popup position"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:14
-msgid "Mailbox list"
+msgid "Mail summary popup vertical offset"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:15
-msgid "Minutes between mail checks"
+msgid "Mailbox list"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:16
-msgid "Minutes to wait before closing the mail summary popup"
+msgid "Minutes between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:17
-msgid "New mail command"
+msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:18
-msgid "Run a command when new mail arrives"
+msgid "New mail command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:19
-msgid "Seconds between mail checks"
+msgid "Run a command when all mail is read"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:20
-msgid "Seconds to wait before closing the mail summary popup"
+msgid "Run a command when new mail arrives"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:21
+msgid "Seconds between mail checks"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:22
+msgid "Seconds to wait before closing the mail summary popup"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+msgid "The command to run when all mail is read."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:40
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:41
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:43
+msgid "Whether to run a command when all mail is read or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr ""
 
@@ -248,6 +264,31 @@ msgstr ""
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr ""
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr ""
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr ""
@@ -500,51 +541,43 @@ msgstr ""
 msgid "completed"
 msgstr ""
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr ""
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
+#: src/mn-gmail-mailbox.gob:105
 #, c-format
 msgid "unable to parse URI \"%s\""
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:257
-msgid "logging in"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
-msgid "login failed"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
+#: src/mn-gmail-mailbox.gob:159
 #, c-format
 msgid "unable to transfer data: %s"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
+#: src/mn-gmail-mailbox.gob:280
+msgid "logging in"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:487
-msgid "searching for unread mail"
+#: src/mn-gmail-mailbox.gob:358
+msgid "login failed"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:491
-msgid "unable to search for unread mail"
+#: src/mn-gmail-mailbox.gob:433
+msgid "searching for unread mail"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
 msgstr ""
 
@@ -573,89 +606,91 @@ msgstr ""
 msgid "unable to close %s: %s"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
 msgstr ""
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:570
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr ""
@@ -664,7 +699,7 @@ msgstr ""
 msgid "falling back to IMAP LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr ""
 
@@ -685,11 +720,11 @@ msgstr ""
 msgid "%s Properties"
 msgstr ""
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr ""
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr ""
 
@@ -746,44 +781,44 @@ msgstr ""
 msgid "The mailbox is already in the list."
 msgstr ""
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr ""
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr ""
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
 msgstr ""
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr ""
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr ""
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr ""
 
-#: src/mn-mailbox.gob:408
+#: src/mn-mailbox.gob:406
 #, c-format
 msgid "unable to enable immediate notification for %s: %s"
 msgstr ""
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -794,7 +829,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -805,7 +840,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -816,37 +851,37 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr ""
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
 "more mailboxes. %s"
 msgstr ""
 
-#: src/mn-mailboxes.gob:133
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
 msgstr ""
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr ""
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr ""
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr ""
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr ""
@@ -866,49 +901,49 @@ msgstr ""
 msgid "error while reading folder \"new\": %s"
 msgstr ""
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr ""
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr ""
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr ""
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr ""
 
-#: src/mn-main.c:184
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
 msgstr ""
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr ""
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr ""
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
 msgstr ""
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr ""
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr ""
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr ""
 
@@ -916,35 +951,35 @@ msgstr ""
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr ""
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr ""
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr ""
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr ""
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1004,11 +1039,18 @@ msgid_plural "%i days ago"
 msgstr[0] ""
 msgstr[1] ""
 
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/mn-message-mime.c:105
 msgid "unable to parse MIME message"
 msgstr ""
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
 msgstr ""
 
@@ -1046,111 +1088,118 @@ msgstr ""
 msgid "SSL/TLS on sepa_rate port"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:536
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr ""
 
-#: src/mn-properties.c:161
+#: src/mn-properties.c:170
 msgid "top left"
 msgstr ""
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
 msgstr ""
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
 msgstr ""
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
 msgstr ""
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr ""
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr ""
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr ""
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr ""
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] ""
 msgstr[1] ""
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr ""
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr ""
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr ""
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr ""
@@ -1178,7 +1227,7 @@ msgstr ""
 msgid "error while reading folder: %s"
 msgstr ""
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr ""
 
@@ -1246,6 +1295,14 @@ msgstr ""
 msgid "invalid signal specification \"%s\""
 msgstr ""
 
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr ""
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr ""
+
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
 msgstr ""
@@ -1254,129 +1311,141 @@ msgstr ""
 msgid "    "
 msgstr ""
 
-#: ui/properties.glade.h:2
-msgid "*"
+#: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
 msgstr ""
 
-#: ui/properties.glade.h:3
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr ""
 
-#: ui/properties.glade.h:4
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr ""
 
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr ""
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
 msgstr ""
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
 msgstr ""
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr ""
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
 msgstr ""
 
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
 msgstr ""
 
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
 msgid "P_osition:"
 msgstr ""
 
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr ""
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+msgid "The command to run when all mail is read"
+msgstr ""
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr ""
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr ""
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr ""
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
 msgstr ""
 
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
 msgstr ""
 
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:23
 msgid "Whether to display the mail summary popup when new mail arrives or not"
 msgstr ""
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+msgid "Whether to run a command when all mail is read or not"
+msgstr ""
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr ""
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr ""
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
 msgstr ""
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr ""
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr ""
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:26
-msgid "_Run a command when new mail arrives:"
-msgstr ""
-
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
 msgstr ""
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
 msgstr ""
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr ""
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
 msgstr ""
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr ""
 
diff --git a/po/pt.gmo b/po/pt.gmo
Binary files differ.
diff --git a/po/pt.po b/po/pt.po
@@ -8,10 +8,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 0.6.1\n"
+"Project-Id-Version: mail-notification 0.7.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
-"PO-Revision-Date: 2004-09-07 00:04+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"PO-Revision-Date: 2004-10-24 11:06+0200\n"
 "Last-Translator: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
 "Language-Team: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
 "MIME-Version: 1.0\n"
@@ -34,7 +34,7 @@ msgstr "Configurar Notificação de Correio"
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "Notificação de Correio"
 
@@ -44,11 +44,11 @@ msgstr "Notificar quando chega novo correio"
 
 #: data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
-msgstr ""
+msgstr "Fechar o popup de resumo de correio automaticamente"
 
 #: data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
-msgstr ""
+msgstr "Piscar em erros"
 
 #: data/mail-notification.schemas.in.h:3
 msgid "Delay between mail checks (minutes part)."
@@ -60,178 +60,203 @@ msgstr "Intervalo entre verificações de correio (segundos)."
 
 #: data/mail-notification.schemas.in.h:5
 msgid "Do not show the immediate notification error dialog"
-msgstr ""
+msgstr "Não mostrar o diálogo de erro de notificação imediata"
 
 #: data/mail-notification.schemas.in.h:6
 msgid "Enable mail summary popup"
-msgstr ""
+msgstr "Activar popup de resumo de correio"
 
 #: data/mail-notification.schemas.in.h:7
 msgid "Fingerprints of trusted X509 certificates"
-msgstr ""
+msgstr "Impressões digitais de certificados x509 confiados"
 
 #: data/mail-notification.schemas.in.h:8
 msgid "Has already been run"
 msgstr "Já foi executado"
 
 #: data/mail-notification.schemas.in.h:9
-#, fuzzy
 msgid "Height of mail summary dialog"
-msgstr "Altura do diálogo de propriedades"
+msgstr "Altura do diálogo de resumo de correio"
 
 #: data/mail-notification.schemas.in.h:10
 msgid "Height of properties dialog"
 msgstr "Altura do diálogo de propriedades"
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Mail summary popup horizontal offset"
-msgstr ""
+msgid "Mail read command"
+msgstr "Comando de leitura de correio"
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup position"
-msgstr ""
+msgid "Mail summary popup horizontal offset"
+msgstr "Intervalo horizontal do popup de resumo de correio"
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup vertical offset"
-msgstr ""
+msgid "Mail summary popup position"
+msgstr "Posição do popup de resumo de correio"
 
 #: data/mail-notification.schemas.in.h:14
-#, fuzzy
-msgid "Mailbox list"
-msgstr "Lista de caixas de correio"
+msgid "Mail summary popup vertical offset"
+msgstr "Intervalo vertical do popup de resumo de correio"
 
 #: data/mail-notification.schemas.in.h:15
+msgid "Mailbox list"
+msgstr "Lista de Caixas de Correio"
+
+#: data/mail-notification.schemas.in.h:16
 msgid "Minutes between mail checks"
 msgstr "Minutos entre verificações de correio"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
 msgid "Minutes to wait before closing the mail summary popup"
-msgstr ""
+msgstr "Minutos a esperar antes de fechar o popup de resumo de correio"
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:18
 msgid "New mail command"
 msgstr "Novo comando de correio"
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:19
+msgid "Run a command when all mail is read"
+msgstr "Executar um comando quando todo o correio está lido"
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Run a command when new mail arrives"
 msgstr "Executar um comando quando chega novo correio"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr "Segundos entre verificações de correio"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
+msgstr "Segundos a esperar antes de fechar o popup de resumo de correio"
 
-#: data/mail-notification.schemas.in.h:21
-#, fuzzy
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
-msgstr "A quantidade de tempo a esperar entre verificações de correio"
+msgstr ""
+"A quantidade de tempo a esperar antes de fechar o popup de resumo de correio "
+"(parte dos minutos)."
 
-#: data/mail-notification.schemas.in.h:22
-#, fuzzy
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
-msgstr "A quantidade de tempo a esperar entre verificações de correio"
+msgstr ""
+"A quantidade de tempo a esperar antes de fechar o popup de resumo de correio "
+"(parte dos segundos)."
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+msgid "The command to run when all mail is read."
+msgstr "O comando a executar quando todo o correio está lido."
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr "O comando a executar quando chega novo correio."
 
-#: data/mail-notification.schemas.in.h:24
-#, fuzzy
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
-msgstr "A altura em pixeis do diálogo de propriedades."
+msgstr "A altura em pixeis do diálogo de resumo de correio."
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr "A altura em pixeis do diálogo de propriedades."
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr "A lista de caixas de correio a monitorizar."
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
+"A lista de servidores SSL/TLS confiados (hostname:port) se faltar um "
+"certificado x509."
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
+"A lista de certificados x509 confiados, representados pela sua fingerprint "
+"MD5."
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
+"O número de pixeis a deixar entre o extremo esquerdo ou direito do ecran e o "
+"popup de resumo de correio."
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
+"O número de pixeis a deixar entre o topo ou fundo do ecran e o popup de "
+"resumo de correio."
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
+"A posição do popup de resumo de correio. Tem de ser \"top-left\", \"top-right"
+"\", \"bottom-left\" ou \"bottom-right\"."
 
-#: data/mail-notification.schemas.in.h:32
-#, fuzzy
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
-msgstr "A largura em pixeis do diálogo de propriedades."
+msgstr "A largura em pixeis do diálogo de resumo de correio."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr "A largura em pixeis do diálogo de propriedades."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
-msgstr ""
+msgstr "Lista de servidores confiados"
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Se a Notificação de Correio já foi executada ou não."
 
-#: data/mail-notification.schemas.in.h:36
-#, fuzzy
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
-msgstr "Se a imagem pisca ou não"
+msgstr "Se o ícone de estado deve piscar em erros ou não."
 
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
+#: data/mail-notification.schemas.in.h:40
 msgid "Whether to automatically close the mail summary popup or not."
-msgstr "Se um comando deverá ser executado quando chega novo correio."
+msgstr ""
+"Se o popup de resumo de correio deve ser automaticamente fechado ou não."
 
-#: data/mail-notification.schemas.in.h:38
-#, fuzzy
+#: data/mail-notification.schemas.in.h:41
 msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr "Se um comando deverá ser executado quando chega novo correio."
+msgstr ""
+"Se o popup de resumo de correio deve ser mostrado quando chega correio ou "
+"não."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr ""
+"Se se evita o diálogo de erro de notificação imediata de ser mostrado ou não."
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:43
+msgid "Whether to run a command when all mail is read or not."
+msgstr ""
+"Se um comando deverá ser executado quando todo o correio é lido ou não."
+
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Se um comando deverá ser executado quando chega novo correio."
 
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
-msgstr "Largura do diálogo de propriedades"
+msgstr "Largura do diálogo de resumo de correio"
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr "Largura do diálogo de propriedades"
 
@@ -260,6 +285,39 @@ msgstr "Duarte Henriques <duarte_henriques@myrealbox.com>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">autodetectar</span>"
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr "Digite a senha para a caixa de correio %s, utilizador %s."
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+"Notificação de correio foi incapaz de o ligar à caixa de correio %s, "
+"utilizador %s, possivelmente porque a senha que introduziu é inválida.\n"
+"\n"
+"Por favor re-insira a senha."
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Notificação de Correio precisa de uma "
+"senha</span>\n"
+"\n"
+"%s"
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Localização:"
@@ -326,37 +384,37 @@ msgid "unable to initialize the OpenSSL library: %s"
 msgstr "incapaz de inicializar a biblioteca OpenSSL: %s"
 
 #: src/mn-client-session.c:325
-#, fuzzy, c-format
+#, c-format
 msgid "unable to create a SSL/TLS object: %s"
-msgstr "incapaz de criar um objecto SSL: %s"
+msgstr "incapaz de criar um objecto SSL/TLS: %s"
 
 #: src/mn-client-session.c:331
-#, fuzzy, c-format
+#, c-format
 msgid "unable to set the SSL/TLS file descriptor: %s"
-msgstr "incapaz de definir o descritor de ficheiro SSL: %s"
+msgstr "incapaz de definir o descritor de ficheiro SSL/TLS: %s"
 
 #: src/mn-client-session.c:337
-#, fuzzy, c-format
+#, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
-msgstr "incapaz de definir o descritor de ficheiro SSL: %s"
+msgstr "incapaz de efectuar o handshake SSL/TLS: %s"
 
 #: src/mn-client-session.c:343
 msgid "untrusted server"
-msgstr ""
+msgstr "servidor não é confiado"
 
 #: src/mn-client-session.c:347
 #, c-format
 msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
-msgstr ""
+msgstr "está agora activa uma camada SSL/TLS (%s, %s %i-bit)"
 
 #: src/mn-client-session.c:394
 #, c-format
 msgid "%s, fingerprint: %s"
-msgstr ""
+msgstr "%s, impressão digital: %s"
 
 #: src/mn-client-session.c:423
 msgid "missing certificate"
-msgstr ""
+msgstr "falta o certificado"
 
 #: src/mn-client-session.c:449
 #, c-format
@@ -369,14 +427,20 @@ msgid ""
 "to \"%s\". If you choose to connect to the server, this message will not be "
 "shown again."
 msgstr ""
+"Notificação de correio foi incapaz de confiar em \"%s\" (%s). É possível que "
+"alguém esteja a interceptar a comunicação para obter a sua informação "
+"confidencial.\n"
+"\n"
+"Deve apenas ligar-se ao servidor se tem a certeza que está ligado a \"%s\". "
+"Se escolher ligar-se ao servidor, esta mensagem não voltará a aparecer."
 
 #: src/mn-client-session.c:466
 msgid "Connect to untrusted server?"
-msgstr ""
+msgstr "Ligar-se a servidor não confiado?"
 
 #: src/mn-client-session.c:471
 msgid "Co_nnect"
-msgstr ""
+msgstr "_Ligar"
 
 #: src/mn-client-session.c:527
 #, c-format
@@ -507,174 +571,164 @@ msgstr "aviso: incapaz de obter a propriedade SASL_SSF: %s"
 #: src/mn-conf.c:123
 #, c-format
 msgid "recursively unsetting %s"
-msgstr ""
+msgstr "apagando recursivamente %s"
 
 #: src/mn-conf.c:127
 msgid "syncing the GConf database"
-msgstr ""
+msgstr "sincronizando a base de dados GConf"
 
 #: src/mn-conf.c:130
-#, fuzzy
 msgid "completed"
-msgstr "Completo"
+msgstr "completo"
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr "O seu nome de utilizador Gmail"
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
-msgstr "A sua senha Gmail"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
+msgstr ""
+"A sua senha Gmail (se deixar em branco, a senha será pedida quando "
+"necessária)"
 
-#: src/mn-gmail-mailbox.gob:65
-#, fuzzy
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "suporte SSL não foi compilado"
+msgstr "libsoup não foi compilada com suporte SSL/TLS"
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
-#, fuzzy, c-format
+#: src/mn-gmail-mailbox.gob:105
+#, c-format
 msgid "unable to parse URI \"%s\""
-msgstr "incapaz de processar resposta \"%s\""
+msgstr "incapaz de processar URI \"%s\""
+
+#: src/mn-gmail-mailbox.gob:159
+#, c-format
+msgid "unable to transfer data: %s"
+msgstr "incapaz de transferir dados: %s"
 
-#: src/mn-gmail-mailbox.gob:257
+#: src/mn-gmail-mailbox.gob:280
 msgid "logging in"
 msgstr "ligando-se"
 
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
+#: src/mn-gmail-mailbox.gob:358
 msgid "login failed"
 msgstr "login falhou"
 
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "incapaz de transferir dados: %s"
-
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
-msgstr "ligado com sucesso"
-
-#: src/mn-gmail-mailbox.gob:487
+#: src/mn-gmail-mailbox.gob:433
 msgid "searching for unread mail"
 msgstr "a procurar correio não lido"
 
-#: src/mn-gmail-mailbox.gob:491
-#, fuzzy
-msgid "unable to search for unread mail"
-msgstr "a procurar correio não lido"
-
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
 msgstr "incapaz de processar dados Gmail"
 
 #: src/mn-gmime-stream-vfs.gob:49
-#, fuzzy, c-format
+#, c-format
 msgid "unable to read %s: %s"
-msgstr "incapaz de resolver %s: %s"
+msgstr "incapaz de ler %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:51
-#, fuzzy, c-format
+#, c-format
 msgid "unable to write to %s: %s"
-msgstr "incapaz de escrever para o servidor: %s"
+msgstr "incapaz de escrever para %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:53
-#, fuzzy, c-format
+#, c-format
 msgid "unable to seek in %s: %s"
-msgstr "incapaz de resolver %s: %s"
+msgstr "incapaz de procurar em %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:55
-#, fuzzy, c-format
+#, c-format
 msgid "unable to tell position of %s: %s"
-msgstr "incapaz de monitorizar %s: %s"
+msgstr "incapaz de dizer a posição em %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:57
-#, fuzzy, c-format
+#, c-format
 msgid "unable to close %s: %s"
-msgstr "incapaz de fechar pasta: %s"
+msgstr "incapaz de fechar %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr "Caixa de Correio:"
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr "caixa de _entrada"
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr "_outros"
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr "O hostname ou endereço IP do servidor IMAP"
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr "O seu nome de utilizador no servidor IMAP"
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
-msgstr "A sua senha no servidor IMAP"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"A sua senha no servidor IMAP (se deixar em branco, a senha será pedida "
+"quando necessária)"
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr "O número do porto do servidor IMAP"
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr "O nome da caixa de correio"
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
-#, fuzzy
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
-msgstr "suporte SSL não foi compilado"
+msgstr "suporte SSL/TLS não foi compilado"
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr "servidor não enviou habilidades"
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr "servidor anunciou LOGINDISABLED, não usando a autenticação LOGIN"
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr "incapaz de ligar"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
-#, fuzzy
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
-msgstr "servidor não enviou estado"
+msgstr "servidor não enviou resultados da procura"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
-#, fuzzy
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
-msgstr "servidor não enviou estado"
+msgstr "servidor não enviou todas as mensagens pedidas"
 
-#: src/mn-imap-mailbox.gob:570
-#, fuzzy
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
-msgstr "incapaz de ligar: %s"
+msgstr "incapaz de obter mensagem"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr "servidor não enviou estado"
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr "erro de servidor desconhecido"
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
-#, fuzzy
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
-msgstr "servidor não suporta autenticação APOP"
+msgstr "servidor não suporta SSL/TLS in-band"
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -682,7 +736,7 @@ msgstr ""
 "foi escolhido um mecanismo de autenticação SASL, mas o suporte SASL não foi "
 "compilado"
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "mecanismo de autenticação desconhecido \"%s\""
@@ -691,7 +745,7 @@ msgstr "mecanismo de autenticação desconhecido \"%s\""
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "recorrendo à autenticação IMAP LOGIN"
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr "autenticação falhou"
 
@@ -712,11 +766,11 @@ msgstr "Acrescentar uma Caixa de Correio"
 msgid "%s Properties"
 msgstr "Propriedades de %s"
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "Nome de _Utilizador:"
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Senha:"
 
@@ -773,44 +827,44 @@ msgstr "Incapaz de adicionar caixa de correio"
 msgid "The mailbox is already in the list."
 msgstr "A caixa de correio já está na lista."
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "O URI da caixa de correio"
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "O nome legível da caixa de correio"
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr "Se a caixa de correio tem de ser manualmente verificada"
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr "Se a caixa de correio tem novo correio"
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
-msgstr ""
+msgstr "A lista de objectos MNMessage novos e não lidos"
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr "O erro da caixa de correio, se houver"
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr "não existe"
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr "formato desconhecido"
 
-#: src/mn-mailbox.gob:408
-#, fuzzy, c-format
+#: src/mn-mailbox.gob:406
+#, c-format
 msgid "unable to enable immediate notification for %s: %s"
-msgstr "incapaz de iniciar autenticação SASL: %s"
+msgstr "incapaz de activar notificação imediata para %s: %s"
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -825,7 +879,7 @@ msgstr[1] ""
 "Como medida de recurso, serão verificadas a cada %i segundos (este atraso é "
 "configurável no Diálogo de Propriedades)."
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -840,7 +894,7 @@ msgstr[1] ""
 "Como medida de recurso, serão verificadas a cada %i minutos (este atraso é "
 "configurável no Diálogo de Propriedades)."
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -855,40 +909,39 @@ msgstr[1] ""
 "Como medida de recurso, serão verificadas aproximadamente cada %i minutos "
 "(este atraso é configurável no Diálogo de Propriedades)."
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr "Ocorreu um erro de monitorização"
 
-#: src/mn-mailbox.gob:465
-#, fuzzy, c-format
+#: src/mn-mailbox.gob:463
+#, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
 "more mailboxes. %s"
 msgstr ""
-"A Notificação de Correio foi incapaz de activar notificação automática para "
+"A Notificação de Correio foi incapaz de activar notificação imediata para "
 "uma ou mais caixas de correio. %s"
 
-#: src/mn-mailboxes.gob:133
-#, fuzzy
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
-msgstr "Se a caixa de correio tem de ser manualmente verificada"
+msgstr "Se uma ou mais caixas de correio têm de ser manualmente verificadas"
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s não é suportado: %s"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr "%s tem correio novo"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr "%s não tem correio novo"
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s relatou um erro: %s"
@@ -908,62 +961,61 @@ msgstr "incapaz de fechar pasta \"new\": %s"
 msgid "error while reading folder \"new\": %s"
 msgstr "erro ao ler pasta \"new\": %s"
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr "Backends mailbox compilados: %s\n"
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Características compiladas: %s\n"
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr "Activar output informacional"
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr "Listar características compiladas e sair"
 
-#: src/mn-main.c:184
-#, fuzzy
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
-msgstr "Mostrar o diálogo Sobre"
+msgstr "Mostrar o diálogo de resumo de correio"
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr "Mostrar o diálogo de propriedades"
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr "Mostrar o diálogo Sobre"
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
-msgstr ""
+msgstr "Fechar o popup de resumo de correio"
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr "Actualizar o estado do correio"
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr "Relatar o estado do correio"
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
-msgstr ""
+msgstr "Apagar configurações GConf obsoletas e sair"
 
 #.
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr "multi-threading não está disponível"
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -971,19 +1023,19 @@ msgstr ""
 "Bonobo não conseguiu encontrar o objecto de automação. Por favor verifique a "
 "sua instalação de Notificação de Correio."
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Incapaz de inicializar a biblioteca GnomeVFS."
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr "actualizando o estado do correio"
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr "Notificação de Correio já está a ser executado"
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
@@ -991,7 +1043,7 @@ msgstr ""
 "Bonobo não conseguiu encontrar o ficheiro GNOME_MailNotification_Automation."
 "server. Por favor verifique a sua instalação da Notificação de Correio."
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1011,56 +1063,62 @@ msgstr "erro ao abrir a caixa de correio: %s"
 
 #: src/mn-message-label.gob:77
 msgid "Unreadable message"
-msgstr ""
+msgstr "Mensagem ilegível"
 
 #: src/mn-message-label.gob:97
 msgid "From"
-msgstr ""
+msgstr "De"
 
 #: src/mn-message-label.gob:98
 msgid "Subject"
-msgstr ""
+msgstr "Assunto"
 
 #: src/mn-message-label.gob:102
 msgid "Sent"
-msgstr ""
+msgstr "Enviado"
 
 #: src/mn-message-label.gob:151
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%i segundo atrás"
+msgstr[1] "%i segundos atrás"
 
 #: src/mn-message-label.gob:155
 #, c-format
 msgid "%i minute ago"
 msgid_plural "%i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%i minuto atrás"
+msgstr[1] "%i minutos atrás"
 
 #: src/mn-message-label.gob:160
 #, c-format
 msgid "%i hour ago"
 msgid_plural "%i hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%i hora atrás"
+msgstr[1] "%i horas atrás"
 
 #: src/mn-message-label.gob:165
 #, c-format
 msgid "%i day ago"
 msgid_plural "%i days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%i dia atrás"
+msgstr[1] "%i dias atrás"
+
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] "%i semana atrás"
+msgstr[1] "%i semanas atrás"
 
 #: src/mn-message-mime.c:105
-#, fuzzy
 msgid "unable to parse MIME message"
-msgstr "incapaz de processar URI IMAP"
+msgstr "incapaz de processar mensagem MIME"
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
-msgstr ""
+msgstr "Desconhecido"
 
 #: src/mn-mh-mailbox.gob:184
 #, c-format
@@ -1090,123 +1148,129 @@ msgstr "sta_ndard"
 
 #: src/mn-pi-mailbox-properties.gob:116
 msgid "_in-band SSL/TLS"
-msgstr ""
+msgstr "SSL/TLS _in-band"
 
 #: src/mn-pi-mailbox-properties.gob:126
 msgid "SSL/TLS on sepa_rate port"
-msgstr ""
+msgstr "SSL/TLS num porto sepa_rado"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr "O hostname ou endereço IP do servidor POP3"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr "O seu nome de utilizador no servidor POP3"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
-msgstr "A sua senha no servidor POP3"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"A sua senha no servidor POP3 (se deixar em branco, a senha será pedida "
+"quando necessária)"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr "O número do porto do servidor POP3"
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "argumentos inválidos para a habilidade LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:536
-#, fuzzy
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
-msgstr "erro de servidor desconhecido"
+msgstr "erro desconhecido"
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] "honrando LOGIN-DELAY, dormindo por %i segundo"
 msgstr[1] "honrando LOGIN-DELAY, dormindo por %i segundos"
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr "servidor não suporta autenticação APOP"
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr "recorrendo a autenticação APOP"
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr "recorrendo a autenticação USER/PASS"
 
-#: src/mn-properties.c:161
-#, fuzzy
+#: src/mn-properties.c:170
 msgid "top left"
-msgstr "Completo"
+msgstr "topo esquerdo"
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
-msgstr ""
+msgstr "topo direito"
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
-msgstr ""
+msgstr "fundo esquerdo"
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
-msgstr ""
+msgstr "fundo direito"
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr "Nenhuma caixa de correio seleccionada."
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] "%i caixa de correio seleccionada."
 msgstr[1] "%i caixas de correio seleccionadas."
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr "Tem novo correio."
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr "Ocorreu um erro de comando na Notificação de Correio"
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr "Incapaz de executar o novo comando de correio: %s."
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] "A seguinte caixa de correio tem novo correio:\n"
 msgstr[1] "As seguintes caixas de correio têm novo correio:\n"
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr "Não tem correio novo."
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] "A seguinte caixa de correio relatou um erro:\n"
 msgstr[1] "As seguintes caixas de correios relataram um erro:\n"
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] "A seguinte caixa de correio não é suportada:\n"
 msgstr[1] "As seguintes caixas de correio não são suportadas:\n"
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr "Ocorreu um erro de comando na Notificação de Correio"
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "incapaz de executar \"%s\": %s."
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr "incapaz de processar URI de proxy \"%s\""
+
 #: src/mn-ssl.c:79
-#, fuzzy
 msgid "unknown SSL/TLS error"
-msgstr "erro de servidor desconhecido"
+msgstr "erro SSL/TLS desconhecido"
 
 #: src/mn-stock.c:28
 msgid "Select _All"
@@ -1214,7 +1278,7 @@ msgstr "Seleccionar _Todas"
 
 #: src/mn-stock.c:29
 msgid "_Mail Summary"
-msgstr ""
+msgstr "_Resumo de Correio"
 
 #: src/mn-sylpheed-mailbox.gob:122
 #, c-format
@@ -1231,7 +1295,7 @@ msgstr "incapaz de fechar pasta: %s"
 msgid "error while reading folder: %s"
 msgstr "erro ao ler pasta: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr "Caixa de Correio de Sistema"
 
@@ -1264,9 +1328,9 @@ msgid "error loading image: %s"
 msgstr "erro ao carregar imagem: %s"
 
 #: src/mn-util.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
-msgstr "widget %s não foi encontrada na interface %s"
+msgstr "widget \"%s\" não foi encontrada na interface \"%s\""
 
 #: src/mn-util.c:385
 msgid "received an invalid URI list"
@@ -1287,21 +1351,29 @@ msgstr "Incapaz de criar uma thread: %s."
 
 #: src/mn-util.c:705
 msgid "_Do not show this message again"
-msgstr ""
+msgstr "_Não mostrar esta mensagem de novo"
 
 #: src/mn-util.c:789
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Ocorreu um erro fatal na Notificação de Correio"
 
 #: src/mn-util.c:804
-#, fuzzy, c-format
+#, c-format
 msgid "unable to get current time: %s"
-msgstr "incapaz de ligar a %s"
+msgstr "incapaz de obter tempo actual: %s"
 
 #: src/mn-util.c:887
 #, c-format
 msgid "invalid signal specification \"%s\""
-msgstr ""
+msgstr "especificação de sinal inválida \"%s\""
+
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr "_Autenticar"
 
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
@@ -1311,154 +1383,162 @@ msgstr "_Tipo de caixa de correio:"
 msgid "    "
 msgstr "    "
 
-#: ui/properties.glade.h:2
-msgid "*"
-msgstr "*"
-
 #: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
+msgstr "<span weight=\"bold\">Comandos</span>"
+
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Geral</span>"
 
-#: ui/properties.glade.h:4
-#, fuzzy
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr "<span weight=\"bold\">Caixas de Correio</span>"
+msgstr "<span weight=\"bold\">Lista de Caixas de Correio</span>"
 
-#: ui/properties.glade.h:5
-#, fuzzy
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
-msgstr "<span weight=\"bold\">Comandos</span>"
+msgstr "<span weight=\"bold\">Posição</span>"
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
-msgstr ""
+msgstr "Geral"
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
-msgstr ""
+msgstr "Intervalo Hori_zontal:"
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr "Propriedades de Notificação de Correio"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
-msgstr ""
+msgstr "Popup de Resumo de Correio"
 
-#: ui/properties.glade.h:10
-#, fuzzy
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
-msgstr "Caixa de Correio"
+msgstr "Caixas de Correio"
 
-#: ui/properties.glade.h:11
-#, fuzzy
+#: ui/properties.glade.h:12
 msgid "P_osition:"
-msgstr "_Localização:"
+msgstr "_Posição:"
 
-#: ui/properties.glade.h:12
-#, fuzzy
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "A quantidade de tempo a esperar entre verificações de correio"
+msgstr ""
+"A quantidade de tempo a esperar antes de fechar o popup de resumo de correio"
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr "A quantidade de tempo a esperar entre verificações de correio"
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+msgid "The command to run when all mail is read"
+msgstr "O comando a executar quando todo o correio está lido"
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr "O comando a executar quando chega novo correio"
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
+"O número de pixeis a deixar entre o extremo esquerdo ou direito do ecran e o "
+"popup de resumo de correio"
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
+"O número de pixeis a deixar entre o topo ou fundo do ecran e o popup de "
+"resumo de correio"
 
-#: ui/properties.glade.h:17
-#, fuzzy
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr "Quando _todo o correio está lido:"
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr "Quando chega _novo correio:"
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
-msgstr "Se a imagem pisca ou não"
+msgstr "Se o ícone de estado deve piscar em erros ou não"
 
-#: ui/properties.glade.h:18
-#, fuzzy
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Se a caixa de correio tem novo correio"
+msgstr ""
+"Se o popup de resumo de correio deve ser automaticamente fechado ou não"
 
-#: ui/properties.glade.h:19
-#, fuzzy
+#: ui/properties.glade.h:23
 msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Se deve ser executado um comando quando chega novo correio"
+msgstr ""
+"Se o popup de resumo de correio deve ser mostrado quando chega correio ou não"
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+msgid "Whether to run a command when all mail is read or not"
+msgstr "Se deve ser executado um comando quando todo o correio está lido"
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr "Se deve ser executado um comando quando chega novo correio"
 
-#: ui/properties.glade.h:21
-#, fuzzy
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
-msgstr "Se a Notificação de Correio já foi executada ou não."
+msgstr ""
+"Se a Notificação de Correio deve ser iniciada quando faz se liga à sessão "
+"GNOME ou não"
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
-msgstr ""
+msgstr "Fechar _Automáticamente após:"
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
-msgstr ""
+msgstr "_Piscar em erros"
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr "_Intervalo entre verificações de correio:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
-msgstr ""
+msgstr "_Activar popup de resumo de correio"
 
-#: ui/properties.glade.h:26
-#, fuzzy
-msgid "_Run a command when new mail arrives:"
-msgstr "Executar um comando quando chega novo correio"
-
-#: ui/properties.glade.h:27
-#, fuzzy
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
-msgstr "Um Ícone de Notificação de Correio"
+msgstr "_Iniciar Notificação de Correio no login GNOME"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
-msgstr ""
+msgstr "Intervalo _vertical:"
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr "minutos"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
-msgstr ""
+msgstr "pixeis"
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr "segundos"
 
 #: ui/summary-dialog.glade.h:1
 msgid "Mail Summary"
-msgstr ""
+msgstr "Resumo de Correio"
 
 #: ui/summary-popup.glade.h:1
-#, fuzzy
 msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Caixas de Correio</span>"
+msgstr "<span size=\"larger\" weight=\"bold\">Resumo de Correio</span>"
 
 #: ui/welcome.glade.h:1
-#, fuzzy
 msgid ""
 "<span weight=\"bold\" size=\"larger\">First startup</span>\n"
 "\n"
@@ -1481,9 +1561,11 @@ msgstr ""
 "queira configurá-la.\n"
 "\n"
 "Nota: esta mensagem não será mostrada de novo. Para configurar a Notificação "
-"de Correio outra vez, escolha <span weight=\"bold\">Aplicações</span>  <span "
-"weight=\"bold\">Preferências do Ambiente</span>  <span weight=\"bold"
-"\">Notificação de Correio</span>."
+"de Correio outra vez, escolha <span weight=\"bold\">Aplicações</span> → "
+"<span weight=\"bold\">Preferências do Ambiente de Trabalho</span> → <span "
+"weight=\"bold\">Notificação de Correio</span> (ou em alguns sistemas <span "
+"weight=\"bold\">Aplicações → Preferências → Mais Preferências → Notificação "
+"de Correio</span>)."
 
 #: ui/welcome.glade.h:8
 msgid "_Configure Mail Notification"
@@ -1506,9 +1588,18 @@ msgstr "_Saltar configuração"
 #~ msgstr ""
 #~ "Se um comando deverá ser executado quando fizer duplo-clique no ícone."
 
+#~ msgid "Your Gmail password"
+#~ msgstr "A sua senha Gmail"
+
 #~ msgid "unable to parse Gmail URI"
 #~ msgstr "incapaz de processar URI Gmail"
 
+#~ msgid "successfully logged in"
+#~ msgstr "ligado com sucesso"
+
+#~ msgid "Your password on the IMAP server"
+#~ msgstr "A sua senha no servidor IMAP"
+
 #~ msgid "_Run %s"
 #~ msgstr "_Executar %s"
 
@@ -1518,6 +1609,9 @@ msgstr "_Saltar configuração"
 #~ msgid "_SSL"
 #~ msgstr "_SSL"
 
+#~ msgid "Your password on the POP3 server"
+#~ msgstr "A sua senha no servidor POP3"
+
 #~ msgid "unable to parse POP3 URI"
 #~ msgstr "incapaz de processar URI POP3"
 
@@ -1527,12 +1621,12 @@ msgstr "_Saltar configuração"
 #~ msgid "Unable to execute double-clicked command: %s."
 #~ msgstr "Incapaz de executar comando de duplo-clique: %s."
 
+#~ msgid "Unable to execute new mail command: %s."
+#~ msgstr "Incapaz de executar o novo comando de correio: %s."
+
 #~ msgid "The command to run when the icon is double-clicked"
 #~ msgstr "O comando a executar quando fizer duplo-clique no ícone"
 
-#~ msgid "When _new mail arrives:"
-#~ msgstr "Quando chega _novo correio:"
-
 #~ msgid "When double-click_ed:"
 #~ msgstr "Quando há um duplo-clique:"
 
diff --git a/po/ru.gmo b/po/ru.gmo
Binary files differ.
diff --git a/po/ru.po b/po/ru.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mail-notification 0.5.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
 "PO-Revision-Date: 2004-07-21 21:58+0200\n"
 "Last-Translator: Dan Korostelev <dan@ats.energo.ru>\n"
 "Language-Team: Russian\n"
@@ -38,7 +38,7 @@ msgstr "Иконка входящих сообщений"
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "Иконка входящих сообщений"
 
@@ -88,155 +88,177 @@ msgid "Height of properties dialog"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Mail summary popup horizontal offset"
+msgid "Mail read command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup position"
+msgid "Mail summary popup horizontal offset"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup vertical offset"
+msgid "Mail summary popup position"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:14
-msgid "Mailbox list"
+msgid "Mail summary popup vertical offset"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:15
-msgid "Minutes between mail checks"
+msgid "Mailbox list"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:16
-msgid "Minutes to wait before closing the mail summary popup"
+msgid "Minutes between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:17
-msgid "New mail command"
+msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:18
+msgid "New mail command"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:19
+#, fuzzy
+msgid "Run a command when all mail is read"
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: data/mail-notification.schemas.in.h:20
 #, fuzzy
 msgid "Run a command when new mail arrives"
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+#, fuzzy
+msgid "The command to run when all mail is read."
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: data/mail-notification.schemas.in.h:26
 #, fuzzy
 msgid "The command to run when new mail arrives."
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:32
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:40
 #, fuzzy
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:41
 #, fuzzy
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:43
+#, fuzzy
+msgid "Whether to run a command when all mail is read or not."
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: data/mail-notification.schemas.in.h:44
 #, fuzzy
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:41
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr ""
 
@@ -265,6 +287,31 @@ msgstr "Dan Korostelev <dan@ats.energo.ru>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr ""
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr ""
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr ""
@@ -517,51 +564,43 @@ msgstr ""
 msgid "completed"
 msgstr ""
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr ""
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
+#: src/mn-gmail-mailbox.gob:105
 #, c-format
 msgid "unable to parse URI \"%s\""
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:257
-msgid "logging in"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
-msgid "login failed"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
+#: src/mn-gmail-mailbox.gob:159
 #, c-format
 msgid "unable to transfer data: %s"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
+#: src/mn-gmail-mailbox.gob:280
+msgid "logging in"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:487
-msgid "searching for unread mail"
+#: src/mn-gmail-mailbox.gob:358
+msgid "login failed"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:491
-msgid "unable to search for unread mail"
+#: src/mn-gmail-mailbox.gob:433
+msgid "searching for unread mail"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
 msgstr ""
 
@@ -590,89 +629,91 @@ msgstr ""
 msgid "unable to close %s: %s"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
 msgstr ""
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr ""
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:570
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr ""
@@ -681,7 +722,7 @@ msgstr ""
 msgid "falling back to IMAP LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr ""
 
@@ -702,11 +743,11 @@ msgstr ""
 msgid "%s Properties"
 msgstr ""
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr ""
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr ""
 
@@ -763,44 +804,44 @@ msgstr ""
 msgid "The mailbox is already in the list."
 msgstr ""
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr ""
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr ""
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
 msgstr ""
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr ""
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr ""
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr ""
 
-#: src/mn-mailbox.gob:408
+#: src/mn-mailbox.gob:406
 #, c-format
 msgid "unable to enable immediate notification for %s: %s"
 msgstr ""
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -811,7 +852,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -822,7 +863,7 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -833,37 +874,37 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr ""
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
 "more mailboxes. %s"
 msgstr ""
 
-#: src/mn-mailboxes.gob:133
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
 msgstr ""
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr ""
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr ""
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr ""
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr ""
@@ -883,49 +924,49 @@ msgstr ""
 msgid "error while reading folder \"new\": %s"
 msgstr ""
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr ""
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr ""
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr ""
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr ""
 
-#: src/mn-main.c:184
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
 msgstr ""
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr ""
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr ""
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
 msgstr ""
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr ""
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr ""
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr ""
 
@@ -933,36 +974,36 @@ msgstr ""
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr ""
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr ""
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr ""
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 #, fuzzy
 msgid "Mail Notification is already running"
 msgstr "Иконка входящих сообщений"
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1022,11 +1063,18 @@ msgid_plural "%i days ago"
 msgstr[0] ""
 msgstr[1] ""
 
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/mn-message-mime.c:105
 msgid "unable to parse MIME message"
 msgstr ""
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
 msgstr ""
 
@@ -1064,111 +1112,118 @@ msgstr ""
 msgid "SSL/TLS on sepa_rate port"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
 msgstr ""
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:536
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr ""
 
-#: src/mn-properties.c:161
+#: src/mn-properties.c:170
 msgid "top left"
 msgstr ""
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
 msgstr ""
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
 msgstr ""
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
 msgstr ""
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr ""
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr ""
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr ""
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr ""
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] ""
 msgstr[1] ""
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr ""
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr ""
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr ""
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr ""
@@ -1196,7 +1251,7 @@ msgstr ""
 msgid "error while reading folder: %s"
 msgstr ""
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr ""
 
@@ -1264,6 +1319,14 @@ msgstr ""
 msgid "invalid signal specification \"%s\""
 msgstr ""
 
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr ""
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr ""
+
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
 msgstr ""
@@ -1272,135 +1335,149 @@ msgstr ""
 msgid "    "
 msgstr ""
 
-#: ui/properties.glade.h:2
-msgid "*"
+#: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
 msgstr ""
 
-#: ui/properties.glade.h:3
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr ""
 
-#: ui/properties.glade.h:4
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr ""
 
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr ""
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
 msgstr ""
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
 msgstr ""
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 #, fuzzy
 msgid "Mail Notification Properties"
 msgstr "Иконка входящих сообщений"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
 msgstr ""
 
-#: ui/properties.glade.h:10
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
 msgstr ""
 
-#: ui/properties.glade.h:11
+#: ui/properties.glade.h:12
 msgid "P_osition:"
 msgstr ""
 
-#: ui/properties.glade.h:12
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr ""
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+#, fuzzy
+msgid "The command to run when all mail is read"
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr ""
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr ""
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr ""
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
 msgstr ""
 
-#: ui/properties.glade.h:18
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
 msgstr ""
 
-#: ui/properties.glade.h:19
+#: ui/properties.glade.h:23
 #, fuzzy
 msgid "Whether to display the mail summary popup when new mail arrives or not"
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+#, fuzzy
+msgid "Whether to run a command when all mail is read or not"
+msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr ""
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr ""
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
 msgstr ""
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr ""
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr ""
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
 msgstr ""
 
-#: ui/properties.glade.h:26
-#, fuzzy
-msgid "_Run a command when new mail arrives:"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 #, fuzzy
 msgid "_Start Mail Notification on GNOME login"
 msgstr "Иконка входящих сообщений"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
 msgstr ""
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr ""
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
 msgstr ""
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr ""
 
diff --git a/po/sr.gmo b/po/sr.gmo
Binary files differ.
diff --git a/po/sr.po b/po/sr.po
@@ -8,10 +8,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 0.6.2\n"
+"Project-Id-Version: mail-notification 0.7.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
-"PO-Revision-Date: 2004-09-30 02:54+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"PO-Revision-Date: 2004-10-18 20:04+0100\n"
 "Last-Translator: Филип Милетић <filmil@gmail.com>\n"
 "Language-Team: Serbian (sr) <gnu@prevod.org>\n"
 "MIME-Version: 1.0\n"
@@ -30,12 +30,12 @@ msgstr "Фабрика ѕа дојаву приспећа поште"
 
 #: data/mail-notification-properties.desktop.in.h:1
 msgid "Configure Mail Notification"
-msgstr "Подеси дојаву поште"
+msgstr "Подеси дојаву приспећа поште"
 
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "Дојава поште"
 
@@ -45,7 +45,7 @@ msgstr "Обавести када стигне нова пошта"
 
 #: data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
-msgstr ""
+msgstr "Аутоматски затвори прозор са сажетком порука"
 
 #: data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
@@ -61,11 +61,11 @@ msgstr "Размак између две провере (секунде)."
 
 #: data/mail-notification.schemas.in.h:5
 msgid "Do not show the immediate notification error dialog"
-msgstr ""
+msgstr "Не показуј прозор са обавештењем о грешкама"
 
 #: data/mail-notification.schemas.in.h:6
 msgid "Enable mail summary popup"
-msgstr ""
+msgstr "Дозволи приказ сажетка порука"
 
 #: data/mail-notification.schemas.in.h:7
 msgid "Fingerprints of trusted X509 certificates"
@@ -76,163 +76,179 @@ msgid "Has already been run"
 msgstr "Већ је покренут"
 
 #: data/mail-notification.schemas.in.h:9
-#, fuzzy
 msgid "Height of mail summary dialog"
-msgstr "Висина прозора са поставкама"
+msgstr "Висина прозора са сажетком порука"
 
 #: data/mail-notification.schemas.in.h:10
 msgid "Height of properties dialog"
 msgstr "Висина прозора са поставкама"
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Mail summary popup horizontal offset"
-msgstr ""
+msgid "Mail read command"
+msgstr "Команда за читање поште"
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup position"
-msgstr ""
+msgid "Mail summary popup horizontal offset"
+msgstr "Померај хоризонталних тачака за прозор са сажетком порука"
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup vertical offset"
-msgstr ""
+msgid "Mail summary popup position"
+msgstr "Број хоризонталних тачака за прозор са сажетком порука"
 
 #: data/mail-notification.schemas.in.h:14
-#, fuzzy
+msgid "Mail summary popup vertical offset"
+msgstr "Померај вертикалних тачака ѕа прозор са сажетком порука"
+
+#: data/mail-notification.schemas.in.h:15
 msgid "Mailbox list"
 msgstr "Списак сандучића"
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 msgid "Minutes between mail checks"
 msgstr "Минута између две провере"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
+"Број минута који треба да протекне пре затварања прозора са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:18
 msgid "New mail command"
 msgstr "Изврши када пошта стигне"
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:19
+msgid "Run a command when all mail is read"
+msgstr "Покрени команду када је сва пошта прочитана"
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Run a command when new mail arrives"
 msgstr "Покрени команду када стигне нова пошта"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr "Секунди између две провере"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
+msgstr "Број секунди који треба да протекне пре затварања сажетка порука"
 
-#: data/mail-notification.schemas.in.h:21
-#, fuzzy
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
-msgstr "Пауза између две узастопне провере"
+msgstr "Пауза пре затварања прозора са сажетком порука (минути)."
 
-#: data/mail-notification.schemas.in.h:22
-#, fuzzy
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
-msgstr "Пауза између две узастопне провере"
+msgstr "Пауза пре затварања прозора са сажетком порука (секунде)."
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+msgid "The command to run when all mail is read."
+msgstr "Команда коју треба покренути када је сва пошта прочитана."
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr "Покрени ову команду када стигне нова пошта."
 
-#: data/mail-notification.schemas.in.h:24
-#, fuzzy
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
-msgstr "Висина прозора са поставкама изражена у тачкама."
+msgstr "Висина прозора са сажетком порука изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr "Висина прозора са поставкама изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr "Списак сандучића који се прате."
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 "Списак проверених SSL/TLS сервера (рачунар:порт) који немају X509 сертификат."
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr "Списак проверених X509 сертификата, представљених MD5 отиском."
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
+"Број тачака које треба оставити између леве, одн. десне стране екрана и "
+"прозора са сажетком порука."
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
+"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
+"сажетком порука."
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
+"Положај прозора са сажетком порука. Може бити: „горе-лево‟, „горе-десно‟, "
+"„доле-лево‟ или „доле-десно‟."
 
-#: data/mail-notification.schemas.in.h:32
-#, fuzzy
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
-msgstr "Ширина прозора са поставкама изражена у тачкама."
+msgstr "Ширина прозора са сажетком порука изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr "Ширина прозора са поставкама изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr "Списак проверених сервера"
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Да ли је програм покретан пре или није."
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Да ли сличица треба да трепери ако дође до грешке или не."
 
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
+#: data/mail-notification.schemas.in.h:40
 msgid "Whether to automatically close the mail summary popup or not."
-msgstr "Да ли треба покренути неку команду када стигне нова пошта."
+msgstr ""
+"Да ли треба или не треба аутоматски затворити прозор са сажетком поште."
 
-#: data/mail-notification.schemas.in.h:38
-#, fuzzy
+#: data/mail-notification.schemas.in.h:41
 msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr "Да ли треба покренути неку команду када стигне нова пошта."
+msgstr "Да ли треба приказати сажетак порука када стигне нова пошта."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
+msgstr "Да ли треба или не треба спречити појаву прозора са описом грешака."
+
+#: data/mail-notification.schemas.in.h:43
+msgid "Whether to run a command when all mail is read or not."
 msgstr ""
+"Да ли треба или не треба покренути неку команду када је сва пошта прочитана."
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Да ли треба покренути неку команду када стигне нова пошта."
 
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
-msgstr "Ширина прозора са поставкама"
+msgstr "Ширина прозора са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr "Ширина прозора са поставкама"
 
@@ -262,6 +278,39 @@ msgstr "Филип Милетић <filmil@gmail.com>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">сам пронађи</span>"
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr "Унесите лозинку за %s сандуче %s."
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+"Није могуће пријавити се за читање %s сандучета %s, највероватније зато што "
+"унета лозинка није исправна.\n"
+"\n"
+"Молим унесите поново лозинку."
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Дојава поште захтева да упишете "
+"лозинку</span>\n"
+"\n"
+"%s"
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Место:"
@@ -523,160 +572,154 @@ msgstr "усклађујем GConf базу података"
 msgid "completed"
 msgstr "урађено"
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
-msgstr "Ваше име на сервису Gmail"
+msgstr "Ваш налог на сервису Gmail"
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
-msgstr "Ваша лозинка на сервису Gmail"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
+msgstr ""
+"Ваша лозинка на сервису Gmail (ако не упишете лозинку, програм ће Вас "
+"замолити да је унесете када то буде потребно)"
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
+msgstr "libsoup није изграђен са подршком за SSL/TLS"
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
-#, fuzzy, c-format
+#: src/mn-gmail-mailbox.gob:105
+#, c-format
 msgid "unable to parse URI \"%s\""
-msgstr "није могуће обрадити одговор \"%s\""
+msgstr "није могуће обрадити URI \"%s\""
+
+#: src/mn-gmail-mailbox.gob:159
+#, c-format
+msgid "unable to transfer data: %s"
+msgstr "не могу да преузмем податке: %s"
 
-#: src/mn-gmail-mailbox.gob:257
+#: src/mn-gmail-mailbox.gob:280
 msgid "logging in"
 msgstr "пријава у току"
 
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
+#: src/mn-gmail-mailbox.gob:358
 msgid "login failed"
 msgstr "пријава није успела"
 
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "не могу да преузмем податке: %s"
-
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
-msgstr "пријава је успела"
-
-#: src/mn-gmail-mailbox.gob:487
+#: src/mn-gmail-mailbox.gob:433
 msgid "searching for unread mail"
 msgstr "тражим нову пошту"
 
-#: src/mn-gmail-mailbox.gob:491
-#, fuzzy
-msgid "unable to search for unread mail"
-msgstr "тражим нову пошту"
-
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
-msgstr "не могу да обрадим податке са Gmail-a"
+msgstr "не могу да обрадим податке са сервиса Gmail"
 
 #: src/mn-gmime-stream-vfs.gob:49
-#, fuzzy, c-format
+#, c-format
 msgid "unable to read %s: %s"
-msgstr "Није могуће пронаћи %s: %s"
+msgstr "Није могуће прочитати %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:51
-#, fuzzy, c-format
+#, c-format
 msgid "unable to write to %s: %s"
-msgstr "није могућ упис на сервер: %s"
+msgstr "није могућ упис на %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:53
-#, fuzzy, c-format
+#, c-format
 msgid "unable to seek in %s: %s"
-msgstr "Није могуће пронаћи %s: %s"
+msgstr "Није могуће пронаћи у %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:55
-#, fuzzy, c-format
+#, c-format
 msgid "unable to tell position of %s: %s"
-msgstr "није могуће мотрити на %s: %s"
+msgstr "није могуће сазнати положај за %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:57
-#, fuzzy, c-format
+#, c-format
 msgid "unable to close %s: %s"
-msgstr "није могуће затворити директоријум: %s"
+msgstr "није могуће затворити %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr "Сандуче:"
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr "in_box"
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr "_друго:"
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr "Име или IP број IMAP сервера"
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr "Ваше име на IMAP серверу"
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
-msgstr "Ваша лозинка на IMAP серверу"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Ваша лозинка на IMAP серверу (ако не упишете лозинку, програм ће Вас "
+"замолити да је унесете када то буде потребно)"
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr "Број порта на IMAP серверу"
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr "Име сандучета"
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr "Подршка за SSL/TLS није уграђена"
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr "сервер није обавестио о својим могућностима"
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
-msgstr "сервер је рекао LOGINDISABLED, не користим LOGIN пријаву"
+msgstr "сервер је дојавио LOGINDISABLED, LOGIN пријавa неће бити коришћена"
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr "пријава није могућа"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
-#, fuzzy
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
-msgstr "сервер није послао статус"
+msgstr "сервер није послао резултате претраге"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
-#, fuzzy
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
-msgstr "сервер није послао статус"
+msgstr "сервер није послао све тражене поруке"
 
-#: src/mn-imap-mailbox.gob:570
-#, fuzzy
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
-msgstr "није могуће повезати се са: %s"
+msgstr "није могуће добавити поруку"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr "сервер није послао статус"
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr "непозната грешка на серверу"
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr "сервер не подржава заштиту путем SSL/TLS"
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -684,7 +727,7 @@ msgstr ""
 "изабран је механизам за пријаву који користи SASL али подршка за SASL није "
 "уграђена у програм"
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "непознат механизам за пријаву \"%s\""
@@ -693,7 +736,7 @@ msgstr "непознат механизам за пријаву \"%s\""
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "повратак на  IMAP LOGIN пријаву"
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr "пријава није успела"
 
@@ -714,11 +757,11 @@ msgstr "Додај сандуче"
 msgid "%s Properties"
 msgstr "Поставке за %s"
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "_Кор.име:"
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Лозинка:"
 
@@ -775,46 +818,44 @@ msgstr "Није могуће додати сандуче"
 msgid "The mailbox is already in the list."
 msgstr "Сандуче је већ у списку."
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "URI ознака за сандуче"
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "Име сандучета"
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr "Да ли се ово сандуче ручно проверава или не"
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr "Да ли у сандучету стоји нова пошта или не"
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
-msgstr ""
+msgstr "Списак нових и непрочитаних MNMessage објеката"
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr "Грешка у приступу сандучету, ако постоји"
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr "не постоји"
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr "непознат формат"
 
-#: src/mn-mailbox.gob:408
-#, fuzzy, c-format
+#: src/mn-mailbox.gob:406
+#, c-format
 msgid "unable to enable immediate notification for %s: %s"
-msgstr ""
-"Није могуће наместити непосредну дојаву нове поште за један или више "
-"сандучића. %s"
+msgstr "Није могуће наместити непосредну дојаву нове поште за %s: %s"
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -823,9 +864,16 @@ msgid_plural ""
 "As a fallback, they will be checked every %i seconds (this delay is "
 "configurable from the Properties Dialog)."
 msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани сваку %i секунду  (ово кашњење "
+"се може променити из прозора са поставкама)"
 msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани сваке %i секунде (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани сваких %i секунди (ово кашњење "
+"се може променити из прозора са поставкама)"
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -843,7 +891,7 @@ msgstr[2] ""
 "Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
 "се може променити из прозора са поставкама)"
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -861,11 +909,11 @@ msgstr[2] ""
 "Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
 "се може променити из прозора са поставкама)"
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr "Дошло је до грешке при мотрењу"
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
@@ -874,27 +922,27 @@ msgstr ""
 "Није могуће наместити непосредну дојаву нове поште за један или више "
 "сандучића. %s"
 
-#: src/mn-mailboxes.gob:133
-#, fuzzy
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
-msgstr "Да ли се ово сандуче ручно проверава или не"
+msgstr ""
+"Показује да ли постоји бар једно сандуче које мора да се учестало проверава"
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s није подржан: %s"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr "Сандуче %s има нову пошту"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr "Сандуче %s нема нову пошту"
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s је дојавио грешку: %s"
@@ -914,50 +962,49 @@ msgstr "није могуће затворити директоријум \"new\
 msgid "error while reading folder \"new\": %s"
 msgstr "грешка при читању директоријума \"new\": %s"
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr "Програм уме да чита сандучиће у форматима: %s\n"
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Уграђене могућности: %s\n"
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr "Дозволи речитији излаз"
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr "Испиши уграђене могућности и изађи"
 
-#: src/mn-main.c:184
-#, fuzzy
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
-msgstr "Прикажи податке о програму"
+msgstr "Прикажи прозор са сажетком порука"
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr "Прикажи прозор са поставкама"
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr "Прикажи податке о програму"
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
-msgstr ""
+msgstr "Затвори прозор са сажетком порука"
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr "Освежи податке о пошти"
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr "Провери пошту"
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr "Поништи застарела GConf подешавања и изађи"
 
@@ -965,11 +1012,11 @@ msgstr "Поништи застарела GConf подешавања и изађ
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr "вишенитни рад није подржан"
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -979,19 +1026,19 @@ msgstr ""
 "Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
 "одјавите и поново пријавите на систем да би све почело да ради)"
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Није могуће покренути библиотеку GnomeVFS."
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr "Проверавам пошту"
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr "Програм за дојаву поште је већ покренут."
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
@@ -1001,7 +1048,7 @@ msgstr ""
 "Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
 "одјавите и поново пријавите на систем да би све почело да ради)"
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1023,56 +1070,67 @@ msgstr "није могуће отворити сандуче: %s"
 
 #: src/mn-message-label.gob:77
 msgid "Unreadable message"
-msgstr ""
+msgstr "Нечитљива порука"
 
 #: src/mn-message-label.gob:97
 msgid "From"
-msgstr ""
+msgstr "Од"
 
 #: src/mn-message-label.gob:98
 msgid "Subject"
-msgstr ""
+msgstr "Тема"
 
 #: src/mn-message-label.gob:102
 msgid "Sent"
-msgstr ""
+msgstr "Послато"
 
 #: src/mn-message-label.gob:151
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "пре %i секунду"
+msgstr[1] "пре %i секунде"
+msgstr[2] "пре %i секунди"
 
 #: src/mn-message-label.gob:155
 #, c-format
 msgid "%i minute ago"
 msgid_plural "%i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "пре %i минут"
+msgstr[1] "пре %i минута"
+msgstr[2] "пре %i минута"
 
 #: src/mn-message-label.gob:160
 #, c-format
 msgid "%i hour ago"
 msgid_plural "%i hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "пре %i сат"
+msgstr[1] "пре %i сата"
+msgstr[2] "пре %i сати"
 
 #: src/mn-message-label.gob:165
 #, c-format
 msgid "%i day ago"
 msgid_plural "%i days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "пре %i дан"
+msgstr[1] "пре %i дана"
+msgstr[2] "пре %i дана"
+
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] "пре %i недељу"
+msgstr[1] "пре %i недеље"
+msgstr[2] "пре %i недеља"
 
 #: src/mn-message-mime.c:105
-#, fuzzy
 msgid "unable to parse MIME message"
-msgstr "није могуће обрадити одговор \"%s\""
+msgstr "није могуће обрадити MIME поруку"
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
-msgstr ""
+msgstr "Непознато"
 
 #: src/mn-mh-mailbox.gob:184
 #, c-format
@@ -1108,32 +1166,35 @@ msgstr "_уграђени SSL/TLS"
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS на посебном порту"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr "Име или IP број POP3 сервера"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr "Ваше име на  POP3 серверу"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
-msgstr "Ваша лозинка на POP3 серверу"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Ваша лозинка на POP3 серверу (ако не упишете лозинку, програм ће Вас "
+"замолити да је унесете када то буде потребно)"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr "Број порта на POP3 серверу"
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "параметри за могућност LOGIN-DELAY нису исправно постављени"
 
-#: src/mn-pop3-mailbox.gob:536
-#, fuzzy
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
-msgstr "непозната грешка на серверу"
+msgstr "непозната грешка"
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1141,40 +1202,39 @@ msgstr[0] "тражен је застој при пријави, паузира
 msgstr[1] "тражен је застој при пријави, паузирам %i секундe"
 msgstr[2] "тражен је застој при пријави, паузирам %i секунди"
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr "сервер не подржава пријаву коришћењем механизма APOP"
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr "прелазим на  APOP пријаву"
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr "прелазим на пријаву помоћу имена и лозинке"
 
-#: src/mn-properties.c:161
-#, fuzzy
+#: src/mn-properties.c:170
 msgid "top left"
-msgstr "Готово"
+msgstr "горе-лево"
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
-msgstr ""
+msgstr "горе-десно"
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
-msgstr ""
+msgstr "доле-лево"
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
-msgstr ""
+msgstr "доле-десно"
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr "Ниједно сандуче није изабрано."
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
@@ -1182,44 +1242,49 @@ msgstr[0] "Изабрано %i сандуче"
 msgstr[1] "Изабрана %i сандучета"
 msgstr[2] "Изабрано %i сандучета"
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr "Имате нову пошту."
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr "Дошло је до грешке у командама"
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr "Није могуће извршити команду за нову пошту: %s."
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] "Сандуче са новом поштом:\n"
 msgstr[1] "Сандучићи са новом поштом:\n"
 msgstr[2] "Сандучићи са новом поштом:\n"
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr "Нема поште."
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] "Ово сандуче има грешку:\n"
 msgstr[1] "Ови сандучићи имају грешку:\n"
 msgstr[2] "Ови сандучићи имају грешку:\n"
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] "Ово сандуче није подржано:\n"
 msgstr[1] "Ови сандучићи нису подржани:\n"
 msgstr[2] "Ови сандучићи нису подржани:\n"
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr "Дошло је до грешке у командама"
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "Није могуће извршити %s: %s"
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr "није могуће обрадити заступнички URI „%s‟"
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr "непозната грешка у  SSL/TLS"
@@ -1230,7 +1295,7 @@ msgstr "Изабери _све"
 
 #: src/mn-stock.c:29
 msgid "_Mail Summary"
-msgstr ""
+msgstr "_Сажетак порука"
 
 #: src/mn-sylpheed-mailbox.gob:122
 #, c-format
@@ -1247,7 +1312,7 @@ msgstr "није могуће затворити директоријум: %s"
 msgid "error while reading folder: %s"
 msgstr "грешка при читању директоријума: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr "Локално сандуче"
 
@@ -1278,9 +1343,9 @@ msgid "error loading image: %s"
 msgstr "грешка при учитавању слике: %s"
 
 #: src/mn-util.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
-msgstr "елемент %s није пронађен у сучељу %s"
+msgstr "елемент „%s‟ није пронађен у сучељу „%s‟"
 
 #: src/mn-util.c:385
 msgid "received an invalid URI list"
@@ -1301,21 +1366,29 @@ msgstr "Није могуће покренути нит: %s."
 
 #: src/mn-util.c:705
 msgid "_Do not show this message again"
-msgstr ""
+msgstr "_Не приказуј више ову поруку"
 
 #: src/mn-util.c:789
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Дошло је до кобне грешке у програму за дојаву поште"
 
 #: src/mn-util.c:804
-#, fuzzy, c-format
+#, c-format
 msgid "unable to get current time: %s"
-msgstr "није могуће повезати се са %s"
+msgstr "није могуће добавити тренутно време: %s"
 
 #: src/mn-util.c:887
 #, c-format
 msgid "invalid signal specification \"%s\""
-msgstr ""
+msgstr "неважећа одредница за сигнал „%s‟"
+
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr "Пријави се"
 
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
@@ -1325,148 +1398,157 @@ msgstr "_Врста сандучета:"
 msgid "    "
 msgstr "    "
 
-#: ui/properties.glade.h:2
-msgid "*"
-msgstr "*"
-
 #: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
+msgstr "<span weight=\"bold\">Наредбе</span>"
+
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Опште</span>"
 
-#: ui/properties.glade.h:4
-#, fuzzy
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Сандучићи</span>"
 
-#: ui/properties.glade.h:5
-#, fuzzy
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
-msgstr "<span weight=\"bold\">Наредбе</span>"
+msgstr "<span weight=\"bold\">Место</span>"
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
-msgstr ""
+msgstr "Опште"
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
-msgstr ""
+msgstr "Хори_зонтални помак:"
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr "Поставке за дојаву"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
-msgstr ""
+msgstr "Сажетак порука"
 
-#: ui/properties.glade.h:10
-#, fuzzy
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
-msgstr "Сандуче"
+msgstr "Сандучићи"
 
-#: ui/properties.glade.h:11
-#, fuzzy
+#: ui/properties.glade.h:12
 msgid "P_osition:"
 msgstr "_Место:"
 
-#: ui/properties.glade.h:12
-#, fuzzy
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Пауза између две узастопне провере"
+msgstr "Пауза пре затварања прозора са сажетком порука"
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr "Пауза између две узастопне провере"
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+msgid "The command to run when all mail is read"
+msgstr "Наредба која се покреће када је сва пошта прочитана"
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr "Наредба која се покреће када стиже нова пошта"
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
+"Број тачака које треба оставити између леве, одн. десне стране екрана и "
+"прозора са сажетком порука"
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
+"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
+"сажетком порука"
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr "Када је с_ва пошта прочитана:"
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr "Када _стигне нова пошта:"
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
 msgstr "Да ли статусна сличица трепери при грешкама или не"
 
-#: ui/properties.glade.h:18
-#, fuzzy
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Да ли у сандучету стоји нова пошта или не"
+msgstr ""
+"Да ли треба или не треба аутоматски затворити прозор са сажетком порука"
 
-#: ui/properties.glade.h:19
-#, fuzzy
+#: ui/properties.glade.h:23
 msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Да ли се покреће команда када стигне пошта или не"
+msgstr ""
+"Да ли треба или не треба приказивати сажетак порука када стигне нова пошта"
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+msgid "Whether to run a command when all mail is read or not"
+msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr "Да ли се покреће команда када стигне пошта или не"
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr "Да ли покренути дојаву поште када се пријавите на систем"
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
-msgstr ""
+msgstr "_Аутоматски затвори после:"
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr "_Трепери при грешкама"
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr "_Пауза између провера:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:26
-#, fuzzy
-msgid "_Run a command when new mail arrives:"
-msgstr "Покрени команду када стигне нова пошта"
+msgstr "Дозволи приказ сажетка порука"
 
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
 msgstr "Покрени _дојаву при пријави"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
-msgstr ""
+msgstr "_Вертикални помак:"
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr "минута"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
-msgstr ""
+msgstr "тачака"
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr "секунди"
 
 #: ui/summary-dialog.glade.h:1
 msgid "Mail Summary"
-msgstr ""
+msgstr "Сажетак порука"
 
 #: ui/summary-popup.glade.h:1
-#, fuzzy
 msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Сандучићи</span>"
+msgstr "<span weight=\"bold\">Сажетак порука</span>"
 
 #: ui/welcome.glade.h:1
 msgid ""
@@ -1517,24 +1599,36 @@ msgstr "П_рескочи подешавања"
 #~ msgstr ""
 #~ "Да ли треба покренути неку команду када при двоструком клику на икону."
 
+#~ msgid "Your Gmail password"
+#~ msgstr "Ваша лозинка на сервису Gmail"
+
+#~ msgid "successfully logged in"
+#~ msgstr "пријава је успела"
+
+#~ msgid "Your password on the IMAP server"
+#~ msgstr "Ваша лозинка на IMAP серверу"
+
 #~ msgid "_Run %s"
 #~ msgstr "_Покрени %s"
 
 #~ msgid "_Run Default Action"
 #~ msgstr "П_окрени подразумевано"
 
+#~ msgid "Your password on the POP3 server"
+#~ msgstr "Ваша лозинка на POP3 серверу"
+
 #~ msgid "A command error has occurred"
 #~ msgstr "Дошло је до грешке у командама"
 
 #~ msgid "Unable to execute double-clicked command: %s."
 #~ msgstr "Није могуће извршити команду на двоструки клик: %s."
 
+#~ msgid "Unable to execute new mail command: %s."
+#~ msgstr "Није могуће извршити команду за нову пошту: %s."
+
 #~ msgid "The command to run when the icon is double-clicked"
 #~ msgstr "Наредба која се покреће при двоструком клику"
 
-#~ msgid "When _new mail arrives:"
-#~ msgstr "Када _стигне нова пошта:"
-
 #~ msgid "When double-click_ed:"
 #~ msgstr "При _двоструком клику:"
 
diff --git a/po/sr@Latn.gmo b/po/sr@Latn.gmo
Binary files differ.
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
@@ -8,10 +8,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 0.6.2\n"
+"Project-Id-Version: mail-notification 0.7.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-10-06 19:31+0200\n"
-"PO-Revision-Date: 2004-09-30 02:54+0200\n"
+"POT-Creation-Date: 2004-10-25 15:26+0200\n"
+"PO-Revision-Date: 2004-10-18 20:04+0100\n"
 "Last-Translator: Filip Miletić <filmil@gmail.com>\n"
 "Language-Team: Serbian (sr) <gnu@prevod.org>\n"
 "MIME-Version: 1.0\n"
@@ -30,12 +30,12 @@ msgstr "Fabrika ѕa dojavu prispeća pošte"
 
 #: data/mail-notification-properties.desktop.in.h:1
 msgid "Configure Mail Notification"
-msgstr "Podesi dojavu pošte"
+msgstr "Podesi dojavu prispeća pošte"
 
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
 #: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
-#: src/mn-mail-icon.gob:163 src/mn-main.c:272
+#: src/mn-mail-icon.gob:163 src/mn-main.c:271
 msgid "Mail Notification"
 msgstr "Dojava pošte"
 
@@ -45,7 +45,7 @@ msgstr "Obavesti kada stigne nova pošta"
 
 #: data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
-msgstr ""
+msgstr "Automatski zatvori prozor sa sažetkom poruka"
 
 #: data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
@@ -61,11 +61,11 @@ msgstr "Razmak između dve provere (sekunde)."
 
 #: data/mail-notification.schemas.in.h:5
 msgid "Do not show the immediate notification error dialog"
-msgstr ""
+msgstr "Ne pokazuj prozor sa obaveštenjem o greškama"
 
 #: data/mail-notification.schemas.in.h:6
 msgid "Enable mail summary popup"
-msgstr ""
+msgstr "Dozvoli prikaz sažetka poruka"
 
 #: data/mail-notification.schemas.in.h:7
 msgid "Fingerprints of trusted X509 certificates"
@@ -76,163 +76,179 @@ msgid "Has already been run"
 msgstr "Već je pokrenut"
 
 #: data/mail-notification.schemas.in.h:9
-#, fuzzy
 msgid "Height of mail summary dialog"
-msgstr "Visina prozora sa postavkama"
+msgstr "Visina prozora sa sažetkom poruka"
 
 #: data/mail-notification.schemas.in.h:10
 msgid "Height of properties dialog"
 msgstr "Visina prozora sa postavkama"
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Mail summary popup horizontal offset"
-msgstr ""
+msgid "Mail read command"
+msgstr "Komanda za čitanje pošte"
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Mail summary popup position"
-msgstr ""
+msgid "Mail summary popup horizontal offset"
+msgstr "Pomeraj horizontalnih tačaka za prozor sa sažetkom poruka"
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Mail summary popup vertical offset"
-msgstr ""
+msgid "Mail summary popup position"
+msgstr "Broj horizontalnih tačaka za prozor sa sažetkom poruka"
 
 #: data/mail-notification.schemas.in.h:14
-#, fuzzy
+msgid "Mail summary popup vertical offset"
+msgstr "Pomeraj vertikalnih tačaka ѕa prozor sa sažetkom poruka"
+
+#: data/mail-notification.schemas.in.h:15
 msgid "Mailbox list"
 msgstr "Spisak sandučića"
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 msgid "Minutes between mail checks"
 msgstr "Minuta između dve provere"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
+"Broj minuta koji treba da protekne pre zatvaranja prozora sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:18
 msgid "New mail command"
 msgstr "Izvrši kada pošta stigne"
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:19
+msgid "Run a command when all mail is read"
+msgstr "Pokreni komandu kada je sva pošta pročitana"
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Run a command when new mail arrives"
 msgstr "Pokreni komandu kada stigne nova pošta"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:21
 msgid "Seconds between mail checks"
 msgstr "Sekundi između dve provere"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:22
 msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
+msgstr "Broj sekundi koji treba da protekne pre zatvaranja sažetka poruka"
 
-#: data/mail-notification.schemas.in.h:21
-#, fuzzy
+#: data/mail-notification.schemas.in.h:23
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
-msgstr "Pauza između dve uzastopne provere"
+msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (minuti)."
 
-#: data/mail-notification.schemas.in.h:22
-#, fuzzy
+#: data/mail-notification.schemas.in.h:24
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
-msgstr "Pauza između dve uzastopne provere"
+msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (sekunde)."
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:25
+msgid "The command to run when all mail is read."
+msgstr "Komanda koju treba pokrenuti kada je sva pošta pročitana."
+
+#: data/mail-notification.schemas.in.h:26
 msgid "The command to run when new mail arrives."
 msgstr "Pokreni ovu komandu kada stigne nova pošta."
 
-#: data/mail-notification.schemas.in.h:24
-#, fuzzy
+#: data/mail-notification.schemas.in.h:27
 msgid "The height of the mail summary dialog in pixels."
-msgstr "Visina prozora sa postavkama izražena u tačkama."
+msgstr "Visina prozora sa sažetkom poruka izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:28
 msgid "The height of the properties dialog in pixels."
 msgstr "Visina prozora sa postavkama izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:29
 msgid "The list of mailboxes to monitor."
 msgstr "Spisak sandučića koji se prate."
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 "Spisak proverenih SSL/TLS servera (računar:port) koji nemaju X509 sertifikat."
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr "Spisak proverenih X509 sertifikata, predstavljenih MD5 otiskom."
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
 msgstr ""
+"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
+"prozora sa sažetkom poruka."
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:33
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
 msgstr ""
+"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
+"sažetkom poruka."
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:34
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
 msgstr ""
+"Položaj prozora sa sažetkom poruka. Može biti: „gore-levo‟, „gore-desno‟, "
+"„dole-levo‟ ili „dole-desno‟."
 
-#: data/mail-notification.schemas.in.h:32
-#, fuzzy
+#: data/mail-notification.schemas.in.h:35
 msgid "The width of the mail summary dialog in pixels."
-msgstr "Širina prozora sa postavkama izražena u tačkama."
+msgstr "Širina prozora sa sažetkom poruka izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:36
 msgid "The width of the properties dialog in pixels."
 msgstr "Širina prozora sa postavkama izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:37
 msgid "Trusted servers list"
 msgstr "Spisak proverenih servera"
 
-#: data/mail-notification.schemas.in.h:35
+#: data/mail-notification.schemas.in.h:38
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Da li je program pokretan pre ili nije."
 
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:39
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Da li sličica treba da treperi ako dođe do greške ili ne."
 
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
+#: data/mail-notification.schemas.in.h:40
 msgid "Whether to automatically close the mail summary popup or not."
-msgstr "Da li treba pokrenuti neku komandu kada stigne nova pošta."
+msgstr ""
+"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom pošte."
 
-#: data/mail-notification.schemas.in.h:38
-#, fuzzy
+#: data/mail-notification.schemas.in.h:41
 msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr "Da li treba pokrenuti neku komandu kada stigne nova pošta."
+msgstr "Da li treba prikazati sažetak poruka kada stigne nova pošta."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
+msgstr "Da li treba ili ne treba sprečiti pojavu prozora sa opisom grešaka."
+
+#: data/mail-notification.schemas.in.h:43
+msgid "Whether to run a command when all mail is read or not."
 msgstr ""
+"Da li treba ili ne treba pokrenuti neku komandu kada je sva pošta pročitana."
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:44
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Da li treba pokrenuti neku komandu kada stigne nova pošta."
 
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
+#: data/mail-notification.schemas.in.h:45
 msgid "Width of mail summary dialog"
-msgstr "Širina prozora sa postavkama"
+msgstr "Širina prozora sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:42
+#: data/mail-notification.schemas.in.h:46
 msgid "Width of properties dialog"
 msgstr "Širina prozora sa postavkama"
 
@@ -262,6 +278,39 @@ msgstr "Filip Miletić <filmil@gmail.com>"
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">sam pronađi</span>"
 
+#. translator: example output: Enter your password for POP3 mailbox jylefort@localhost.
+#: src/mn-authenticated-mailbox.gob:77
+#, c-format
+msgid "Enter your password for %s mailbox %s."
+msgstr "Unesite lozinku za %s sanduče %s."
+
+#. translator: example output: ... into POP3 mailbox jylefort@localhost ...
+#: src/mn-authenticated-mailbox.gob:98
+#, c-format
+msgid ""
+"Mail Notification was unable to log into %s mailbox %s, possibly because the "
+"password you have entered is invalid.\n"
+"\n"
+"Please re-enter your password."
+msgstr ""
+"Nije moguće prijaviti se za čitanje %s sandučeta %s, najverovatnije zato što "
+"uneta lozinka nije ispravna.\n"
+"\n"
+"Molim unesite ponovo lozinku."
+
+#: src/mn-authenticated-mailbox.gob:164
+#, c-format
+msgid ""
+"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
+"span>\n"
+"\n"
+"%s"
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Dojava pošte zahteva da upišete "
+"lozinku</span>\n"
+"\n"
+"%s"
+
 #: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Mesto:"
@@ -523,160 +572,154 @@ msgstr "usklađujem GConf bazu podataka"
 msgid "completed"
 msgstr "urađeno"
 
-#: src/mn-gmail-mailbox-properties.gob:79
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
-msgstr "Vaše ime na servisu Gmail"
+msgstr "Vaš nalog na servisu Gmail"
 
-#: src/mn-gmail-mailbox-properties.gob:80
-msgid "Your Gmail password"
-msgstr "Vaša lozinka na servisu Gmail"
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid ""
+"Your Gmail password (if left blank, you will be prompted for the password "
+"when needed)"
+msgstr ""
+"Vaša lozinka na servisu Gmail (ako ne upišete lozinku, program će Vas "
+"zamoliti da je unesete kada to bude potrebno)"
 
-#: src/mn-gmail-mailbox.gob:65
+#: src/mn-gmail-mailbox.gob:63
 msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
+msgstr "libsoup nije izgrađen sa podrškom za SSL/TLS"
 
-#: src/mn-gmail-mailbox.gob:110 src/mn-gmail-mailbox.gob:331
-#, fuzzy, c-format
+#: src/mn-gmail-mailbox.gob:105
+#, c-format
 msgid "unable to parse URI \"%s\""
-msgstr "nije moguće obraditi odgovor \"%s\""
+msgstr "nije moguće obraditi URI \"%s\""
+
+#: src/mn-gmail-mailbox.gob:159
+#, c-format
+msgid "unable to transfer data: %s"
+msgstr "ne mogu da preuzmem podatke: %s"
 
-#: src/mn-gmail-mailbox.gob:257
+#: src/mn-gmail-mailbox.gob:280
 msgid "logging in"
 msgstr "prijava u toku"
 
-#: src/mn-gmail-mailbox.gob:271 src/mn-gmail-mailbox.gob:342
-#: src/mn-gmail-mailbox.gob:380 src/mn-gmail-mailbox.gob:415
+#: src/mn-gmail-mailbox.gob:358
 msgid "login failed"
 msgstr "prijava nije uspela"
 
-#: src/mn-gmail-mailbox.gob:283 src/mn-gmail-mailbox.gob:356
-#: src/mn-gmail-mailbox.gob:394 src/mn-gmail-mailbox.gob:503
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "ne mogu da preuzmem podatke: %s"
-
-#: src/mn-gmail-mailbox.gob:409
-msgid "successfully logged in"
-msgstr "prijava je uspela"
-
-#: src/mn-gmail-mailbox.gob:487
+#: src/mn-gmail-mailbox.gob:433
 msgid "searching for unread mail"
 msgstr "tražim novu poštu"
 
-#: src/mn-gmail-mailbox.gob:491
-#, fuzzy
-msgid "unable to search for unread mail"
-msgstr "tražim novu poštu"
-
-#: src/mn-gmail-mailbox.gob:604
+#: src/mn-gmail-mailbox.gob:529
 msgid "unable to parse Gmail data"
-msgstr "ne mogu da obradim podatke sa Gmail-a"
+msgstr "ne mogu da obradim podatke sa servisa Gmail"
 
 #: src/mn-gmime-stream-vfs.gob:49
-#, fuzzy, c-format
+#, c-format
 msgid "unable to read %s: %s"
-msgstr "Nije moguće pronaći %s: %s"
+msgstr "Nije moguće pročitati %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:51
-#, fuzzy, c-format
+#, c-format
 msgid "unable to write to %s: %s"
-msgstr "nije moguć upis na server: %s"
+msgstr "nije moguć upis na %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:53
-#, fuzzy, c-format
+#, c-format
 msgid "unable to seek in %s: %s"
-msgstr "Nije moguće pronaći %s: %s"
+msgstr "Nije moguće pronaći u %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:55
-#, fuzzy, c-format
+#, c-format
 msgid "unable to tell position of %s: %s"
-msgstr "nije moguće motriti na %s: %s"
+msgstr "nije moguće saznati položaj za %s: %s"
 
 #: src/mn-gmime-stream-vfs.gob:57
-#, fuzzy, c-format
+#, c-format
 msgid "unable to close %s: %s"
-msgstr "nije moguće zatvoriti direktorijum: %s"
+msgstr "nije moguće zatvoriti %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:94
+#: src/mn-imap-mailbox-properties.gob:93
 msgid "Mailbox:"
 msgstr "Sanduče:"
 
-#: src/mn-imap-mailbox-properties.gob:98
+#: src/mn-imap-mailbox-properties.gob:97
 msgid "in_box"
 msgstr "in_box"
 
-#: src/mn-imap-mailbox-properties.gob:109
+#: src/mn-imap-mailbox-properties.gob:108
 msgid "oth_er:"
 msgstr "_drugo:"
 
-#: src/mn-imap-mailbox-properties.gob:124
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "The hostname or IP address of the IMAP server"
 msgstr "Ime ili IP broj IMAP servera"
 
-#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:124
 msgid "Your username on the IMAP server"
 msgstr "Vaše ime na IMAP serveru"
 
-#: src/mn-imap-mailbox-properties.gob:126
-msgid "Your password on the IMAP server"
-msgstr "Vaša lozinka na IMAP serveru"
+#: src/mn-imap-mailbox-properties.gob:125
+msgid ""
+"Your password on the IMAP server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Vaša lozinka na IMAP serveru (ako ne upišete lozinku, program će Vas "
+"zamoliti da je unesete kada to bude potrebno)"
 
+#: src/mn-imap-mailbox-properties.gob:126
 #: src/mn-imap-mailbox-properties.gob:127
-#: src/mn-imap-mailbox-properties.gob:128
 msgid "The port number of the IMAP server"
 msgstr "Broj porta na IMAP serveru"
 
-#: src/mn-imap-mailbox-properties.gob:129
+#: src/mn-imap-mailbox-properties.gob:128
 msgid "The mailbox name"
 msgstr "Ime sandučeta"
 
-#: src/mn-imap-mailbox.gob:132 src/mn-pop3-mailbox.gob:141
+#: src/mn-imap-mailbox.gob:133 src/mn-pop3-mailbox.gob:142
 msgid "SSL/TLS support has not been compiled in"
 msgstr "Podrška za SSL/TLS nije ugrađena"
 
-#: src/mn-imap-mailbox.gob:203
+#: src/mn-imap-mailbox.gob:204
 msgid "server did not send capabilities"
 msgstr "server nije obavestio o svojim mogućnostima"
 
-#: src/mn-imap-mailbox.gob:318
+#: src/mn-imap-mailbox.gob:319
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
-msgstr "server je rekao LOGINDISABLED, ne koristim LOGIN prijavu"
+msgstr "server je dojavio LOGINDISABLED, LOGIN prijava neće biti korišćena"
 
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:320
 msgid "unable to login"
 msgstr "prijava nije moguća"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:447
-#, fuzzy
+#: src/mn-imap-mailbox.gob:451
 msgid "server did not send search results"
-msgstr "server nije poslao status"
+msgstr "server nije poslao rezultate pretrage"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:523
-#, fuzzy
+#: src/mn-imap-mailbox.gob:527
 msgid "server did not send all the messages we requested"
-msgstr "server nije poslao status"
+msgstr "server nije poslao sve tražene poruke"
 
-#: src/mn-imap-mailbox.gob:570
-#, fuzzy
+#: src/mn-imap-mailbox.gob:574
 msgid "unable to fetch message"
-msgstr "nije moguće povezati se sa: %s"
+msgstr "nije moguće dobaviti poruku"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:621
 msgid "server did not send status"
 msgstr "server nije poslao status"
 
-#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:903
+#: src/mn-imap-mailbox.gob:856 src/mn-pop3-mailbox.gob:913
 msgid "unknown server error"
 msgstr "nepoznata greška na serveru"
 
-#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:225
+#: src/mn-imap-mailbox.gob:927 src/mn-pop3-mailbox.gob:226
 msgid "server does not support in-band SSL/TLS"
 msgstr "server ne podržava zaštitu putem SSL/TLS"
 
-#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:823
+#: src/mn-imap-mailbox.gob:946 src/mn-pop3-mailbox.gob:832
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -684,7 +727,7 @@ msgstr ""
 "izabran je mehanizam za prijavu koji koristi SASL ali podrška za SASL nije "
 "ugrađena u program"
 
-#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:835
+#: src/mn-imap-mailbox.gob:954 src/mn-pop3-mailbox.gob:844
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "nepoznat mehanizam za prijavu \"%s\""
@@ -693,7 +736,7 @@ msgstr "nepoznat mehanizam za prijavu \"%s\""
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "povratak na  IMAP LOGIN prijavu"
 
-#: src/mn-imap-mailbox.gob:976 src/mn-pop3-mailbox.gob:869
+#: src/mn-imap-mailbox.gob:977 src/mn-pop3-mailbox.gob:879
 msgid "authentication failed"
 msgstr "prijava nije uspela"
 
@@ -714,11 +757,11 @@ msgstr "Dodaj sanduče"
 msgid "%s Properties"
 msgstr "Postavke za %s"
 
-#: src/mn-mailbox-properties-util.c:77
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "_Kor.ime:"
 
-#: src/mn-mailbox-properties-util.c:87
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Lozinka:"
 
@@ -775,46 +818,44 @@ msgstr "Nije moguće dodati sanduče"
 msgid "The mailbox is already in the list."
 msgstr "Sanduče je već u spisku."
 
-#: src/mn-mailbox.gob:133
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "URI oznaka za sanduče"
 
-#: src/mn-mailbox.gob:144
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "Ime sandučeta"
 
-#: src/mn-mailbox.gob:148
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be manually checked or not"
 msgstr "Da li se ovo sanduče ručno proverava ili ne"
 
-#: src/mn-mailbox.gob:153
+#: src/mn-mailbox.gob:150
 msgid "Whether the mailbox has new mail or not"
 msgstr "Da li u sandučetu stoji nova pošta ili ne"
 
-#: src/mn-mailbox.gob:158
+#: src/mn-mailbox.gob:155
 msgid "The list of new and unread MNMessage objects"
-msgstr ""
+msgstr "Spisak novih i nepročitanih MNMessage objekata"
 
-#: src/mn-mailbox.gob:212
+#: src/mn-mailbox.gob:209
 msgid "The mailbox error, if any"
 msgstr "Greška u pristupu sandučetu, ako postoji"
 
-#: src/mn-mailbox.gob:310
+#: src/mn-mailbox.gob:308
 msgid "does not exist"
 msgstr "ne postoji"
 
-#: src/mn-mailbox.gob:342
+#: src/mn-mailbox.gob:340
 msgid "unknown format"
 msgstr "nepoznat format"
 
-#: src/mn-mailbox.gob:408
-#, fuzzy, c-format
+#: src/mn-mailbox.gob:406
+#, c-format
 msgid "unable to enable immediate notification for %s: %s"
-msgstr ""
-"Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
-"sandučića. %s"
+msgstr "Nije moguće namestiti neposrednu dojavu nove pošte za %s: %s"
 
-#: src/mn-mailbox.gob:426
+#: src/mn-mailbox.gob:424
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -823,9 +864,16 @@ msgid_plural ""
 "As a fallback, they will be checked every %i seconds (this delay is "
 "configurable from the Properties Dialog)."
 msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani svaku %i sekundu  (ovo "
+"kašnjenje se može promeniti iz prozora sa postavkama)"
 msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani svake %i sekunde (ovo "
+"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i sekundi (ovo "
+"kašnjenje se može promeniti iz prozora sa postavkama)"
 
-#: src/mn-mailbox.gob:437
+#: src/mn-mailbox.gob:435
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -843,7 +891,7 @@ msgstr[2] ""
 "Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo "
 "kašnjenje se može promeniti iz prozora sa postavkama)"
 
-#: src/mn-mailbox.gob:448
+#: src/mn-mailbox.gob:446
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -861,11 +909,11 @@ msgstr[2] ""
 "Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo "
 "kašnjenje se može promeniti iz prozora sa postavkama)"
 
-#: src/mn-mailbox.gob:464
+#: src/mn-mailbox.gob:462
 msgid "A monitoring error has occurred"
 msgstr "Došlo je do greške pri motrenju"
 
-#: src/mn-mailbox.gob:465
+#: src/mn-mailbox.gob:463
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
@@ -874,27 +922,27 @@ msgstr ""
 "Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
 "sandučića. %s"
 
-#: src/mn-mailboxes.gob:133
-#, fuzzy
+#: src/mn-mailboxes.gob:143
 msgid "Whether one or more of the mailboxes has to be polled"
-msgstr "Da li se ovo sanduče ručno proverava ili ne"
+msgstr ""
+"Pokazuje da li postoji bar jedno sanduče koje mora da se učestalo proverava"
 
-#: src/mn-mailboxes.gob:266
+#: src/mn-mailboxes.gob:276
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s nije podržan: %s"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has new mail"
 msgstr "Sanduče %s ima novu poštu"
 
-#: src/mn-mailboxes.gob:297
+#: src/mn-mailboxes.gob:307
 #, c-format
 msgid "%s has no new mail"
 msgstr "Sanduče %s nema novu poštu"
 
-#: src/mn-mailboxes.gob:323
+#: src/mn-mailboxes.gob:333
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s je dojavio grešku: %s"
@@ -914,50 +962,49 @@ msgstr "nije moguće zatvoriti direktorijum \"new\": %s"
 msgid "error while reading folder \"new\": %s"
 msgstr "greška pri čitanju direktorijuma \"new\": %s"
 
-#: src/mn-main.c:97
+#: src/mn-main.c:96
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr "Program ume da čita sandučiće u formatima: %s\n"
 
-#: src/mn-main.c:114
+#: src/mn-main.c:113
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Ugrađene mogućnosti: %s\n"
 
-#: src/mn-main.c:166
+#: src/mn-main.c:165
 msgid "Enable informational output"
 msgstr "Dozvoli rečitiji izlaz"
 
-#: src/mn-main.c:175
+#: src/mn-main.c:174
 msgid "List compiled-in features and exit"
 msgstr "Ispiši ugrađene mogućnosti i izađi"
 
-#: src/mn-main.c:184
-#, fuzzy
+#: src/mn-main.c:183
 msgid "Display the mail summary dialog"
-msgstr "Prikaži podatke o programu"
+msgstr "Prikaži prozor sa sažetkom poruka"
 
-#: src/mn-main.c:193
+#: src/mn-main.c:192
 msgid "Display the properties dialog"
 msgstr "Prikaži prozor sa postavkama"
 
-#: src/mn-main.c:202
+#: src/mn-main.c:201
 msgid "Display the about dialog"
 msgstr "Prikaži podatke o programu"
 
-#: src/mn-main.c:211
+#: src/mn-main.c:210
 msgid "Close the mail summary popup"
-msgstr ""
+msgstr "Zatvori prozor sa sažetkom poruka"
 
-#: src/mn-main.c:220
+#: src/mn-main.c:219
 msgid "Update the mail status"
 msgstr "Osveži podatke o pošti"
 
-#: src/mn-main.c:229
+#: src/mn-main.c:228
 msgid "Report the mail status"
 msgstr "Proveri poštu"
 
-#: src/mn-main.c:238
+#: src/mn-main.c:237
 msgid "Unset obsolete GConf configuration and exit"
 msgstr "Poništi zastarela GConf podešavanja i izađi"
 
@@ -965,11 +1012,11 @@ msgstr "Poništi zastarela GConf podešavanja i izađi"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:264
+#: src/mn-main.c:263
 msgid "multi-threading is not available"
 msgstr "višenitni rad nije podržan"
 
-#: src/mn-main.c:309
+#: src/mn-main.c:310
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -979,19 +1026,19 @@ msgstr ""
 "Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
 "odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
 
-#: src/mn-main.c:314
+#: src/mn-main.c:315
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Nije moguće pokrenuti biblioteku GnomeVFS."
 
-#: src/mn-main.c:350
+#: src/mn-main.c:351
 msgid "updating the mail status"
 msgstr "Proveravam poštu"
 
-#: src/mn-main.c:368
+#: src/mn-main.c:369
 msgid "Mail Notification is already running"
 msgstr "Program za dojavu pošte je već pokrenut."
 
-#: src/mn-main.c:375
+#: src/mn-main.c:376
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
@@ -1001,7 +1048,7 @@ msgstr ""
 "Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
 "odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
 
-#: src/mn-main.c:379
+#: src/mn-main.c:380
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1023,56 +1070,67 @@ msgstr "nije moguće otvoriti sanduče: %s"
 
 #: src/mn-message-label.gob:77
 msgid "Unreadable message"
-msgstr ""
+msgstr "Nečitljiva poruka"
 
 #: src/mn-message-label.gob:97
 msgid "From"
-msgstr ""
+msgstr "Od"
 
 #: src/mn-message-label.gob:98
 msgid "Subject"
-msgstr ""
+msgstr "Tema"
 
 #: src/mn-message-label.gob:102
 msgid "Sent"
-msgstr ""
+msgstr "Poslato"
 
 #: src/mn-message-label.gob:151
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "pre %i sekundu"
+msgstr[1] "pre %i sekunde"
+msgstr[2] "pre %i sekundi"
 
 #: src/mn-message-label.gob:155
 #, c-format
 msgid "%i minute ago"
 msgid_plural "%i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "pre %i minut"
+msgstr[1] "pre %i minuta"
+msgstr[2] "pre %i minuta"
 
 #: src/mn-message-label.gob:160
 #, c-format
 msgid "%i hour ago"
 msgid_plural "%i hours ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "pre %i sat"
+msgstr[1] "pre %i sata"
+msgstr[2] "pre %i sati"
 
 #: src/mn-message-label.gob:165
 #, c-format
 msgid "%i day ago"
 msgid_plural "%i days ago"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "pre %i dan"
+msgstr[1] "pre %i dana"
+msgstr[2] "pre %i dana"
+
+#: src/mn-message-label.gob:170
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
+msgstr[0] "pre %i nedelju"
+msgstr[1] "pre %i nedelje"
+msgstr[2] "pre %i nedelja"
 
 #: src/mn-message-mime.c:105
-#, fuzzy
 msgid "unable to parse MIME message"
-msgstr "nije moguće obraditi odgovor \"%s\""
+msgstr "nije moguće obraditi MIME poruku"
 
-#: src/mn-message.gob:82
+#: src/mn-message.gob:101
 msgid "Unknown"
-msgstr ""
+msgstr "Nepoznato"
 
 #: src/mn-mh-mailbox.gob:184
 #, c-format
@@ -1108,32 +1166,35 @@ msgstr "_ugrađeni SSL/TLS"
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS na posebnom portu"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "The hostname or IP address of the POP3 server"
 msgstr "Ime ili IP broj POP3 servera"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:86
 msgid "Your username on the POP3 server"
 msgstr "Vaše ime na  POP3 serveru"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid "Your password on the POP3 server"
-msgstr "Vaša lozinka na POP3 serveru"
+#: src/mn-pop3-mailbox-properties.gob:87
+msgid ""
+"Your password on the POP3 server (if left blank, you will be prompted for "
+"the password when needed)"
+msgstr ""
+"Vaša lozinka na POP3 serveru (ako ne upišete lozinku, program će Vas "
+"zamoliti da je unesete kada to bude potrebno)"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:88 src/mn-pop3-mailbox-properties.gob:89
 msgid "The port number of the POP3 server"
 msgstr "Broj porta na POP3 serveru"
 
-#: src/mn-pop3-mailbox.gob:271
+#: src/mn-pop3-mailbox.gob:272
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "parametri za mogućnost LOGIN-DELAY nisu ispravno postavljeni"
 
-#: src/mn-pop3-mailbox.gob:536
-#, fuzzy
+#: src/mn-pop3-mailbox.gob:549
 msgid "unknown error"
-msgstr "nepoznata greška na serveru"
+msgstr "nepoznata greška"
 
-#: src/mn-pop3-mailbox.gob:666
+#: src/mn-pop3-mailbox.gob:681
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1141,40 +1202,39 @@ msgstr[0] "tražen je zastoj pri prijavi, pauziram %i sekundu"
 msgstr[1] "tražen je zastoj pri prijavi, pauziram %i sekunde"
 msgstr[2] "tražen je zastoj pri prijavi, pauziram %i sekundi"
 
-#: src/mn-pop3-mailbox.gob:831
+#: src/mn-pop3-mailbox.gob:840
 msgid "server does not support APOP authentication"
 msgstr "server ne podržava prijavu korišćenjem mehanizma APOP"
 
-#: src/mn-pop3-mailbox.gob:859
+#: src/mn-pop3-mailbox.gob:868
 msgid "falling back to APOP authentication"
 msgstr "prelazim na  APOP prijavu"
 
-#: src/mn-pop3-mailbox.gob:864
+#: src/mn-pop3-mailbox.gob:873
 msgid "falling back to USER/PASS authentication"
 msgstr "prelazim na prijavu pomoću imena i lozinke"
 
-#: src/mn-properties.c:161
-#, fuzzy
+#: src/mn-properties.c:170
 msgid "top left"
-msgstr "Gotovo"
+msgstr "gore-levo"
 
-#: src/mn-properties.c:162
+#: src/mn-properties.c:171
 msgid "top right"
-msgstr ""
+msgstr "gore-desno"
 
-#: src/mn-properties.c:163
+#: src/mn-properties.c:172
 msgid "bottom left"
-msgstr ""
+msgstr "dole-levo"
 
-#: src/mn-properties.c:164
+#: src/mn-properties.c:173
 msgid "bottom right"
-msgstr ""
+msgstr "dole-desno"
 
-#: src/mn-properties.c:240
+#: src/mn-properties.c:251
 msgid "No mailbox selected."
 msgstr "Nijedno sanduče nije izabrano."
 
-#: src/mn-properties.c:245
+#: src/mn-properties.c:256
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
@@ -1182,44 +1242,49 @@ msgstr[0] "Izabrano %i sanduče"
 msgstr[1] "Izabrana %i sandučeta"
 msgstr[2] "Izabrano %i sandučeta"
 
-#: src/mn-shell.gob:84
+#: src/mn-shell.gob:86
 msgid "You have new mail."
 msgstr "Imate novu poštu."
 
-#: src/mn-shell.gob:96
-msgid "A command error has occurred in Mail Notification"
-msgstr "Došlo je do greške u komandama"
-
-#: src/mn-shell.gob:97
-#, c-format
-msgid "Unable to execute new mail command: %s."
-msgstr "Nije moguće izvršiti komandu za novu poštu: %s."
-
-#: src/mn-shell.gob:270
+#: src/mn-shell.gob:263
 msgid "The following mailbox has new mail:\n"
 msgid_plural "The following mailboxes have new mail:\n"
 msgstr[0] "Sanduče sa novom poštom:\n"
 msgstr[1] "Sandučići sa novom poštom:\n"
 msgstr[2] "Sandučići sa novom poštom:\n"
 
-#: src/mn-shell.gob:274
+#: src/mn-shell.gob:267
 msgid "You have no new mail."
 msgstr "Nema pošte."
 
-#: src/mn-shell.gob:277
+#: src/mn-shell.gob:270
 msgid "The following mailbox reported an error:\n"
 msgid_plural "The following mailboxes reported an error:\n"
 msgstr[0] "Ovo sanduče ima grešku:\n"
 msgstr[1] "Ovi sandučići imaju grešku:\n"
 msgstr[2] "Ovi sandučići imaju grešku:\n"
 
-#: src/mn-shell.gob:282
+#: src/mn-shell.gob:275
 msgid "The following mailbox is unsupported:\n"
 msgid_plural "The following mailboxes are unsupported:\n"
 msgstr[0] "Ovo sanduče nije podržano:\n"
 msgstr[1] "Ovi sandučići nisu podržani:\n"
 msgstr[2] "Ovi sandučići nisu podržani:\n"
 
+#: src/mn-shell.gob:320
+msgid "A command error has occurred in Mail Notification"
+msgstr "Došlo je do greške u komandama"
+
+#: src/mn-shell.gob:321
+#, c-format
+msgid "Unable to execute \"%s\": %s."
+msgstr "Nije moguće izvršiti %s: %s"
+
+#: src/mn-soup.c:140
+#, c-format
+msgid "unable to parse proxy URI \"%s\""
+msgstr "nije moguće obraditi zastupnički URI „%s‟"
+
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
 msgstr "nepoznata greška u  SSL/TLS"
@@ -1230,7 +1295,7 @@ msgstr "Izaberi _sve"
 
 #: src/mn-stock.c:29
 msgid "_Mail Summary"
-msgstr ""
+msgstr "_Sažetak poruka"
 
 #: src/mn-sylpheed-mailbox.gob:122
 #, c-format
@@ -1247,7 +1312,7 @@ msgstr "nije moguće zatvoriti direktorijum: %s"
 msgid "error while reading folder: %s"
 msgstr "greška pri čitanju direktorijuma: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:393
+#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
 msgid "System Mailbox"
 msgstr "Lokalno sanduče"
 
@@ -1278,9 +1343,9 @@ msgid "error loading image: %s"
 msgstr "greška pri učitavanju slike: %s"
 
 #: src/mn-util.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
-msgstr "element %s nije pronađen u sučelju %s"
+msgstr "element „%s‟ nije pronađen u sučelju „%s‟"
 
 #: src/mn-util.c:385
 msgid "received an invalid URI list"
@@ -1301,21 +1366,29 @@ msgstr "Nije moguće pokrenuti nit: %s."
 
 #: src/mn-util.c:705
 msgid "_Do not show this message again"
-msgstr ""
+msgstr "_Ne prikazuj više ovu poruku"
 
 #: src/mn-util.c:789
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Došlo je do kobne greške u programu za dojavu pošte"
 
 #: src/mn-util.c:804
-#, fuzzy, c-format
+#, c-format
 msgid "unable to get current time: %s"
-msgstr "nije moguće povezati se sa %s"
+msgstr "nije moguće dobaviti trenutno vreme: %s"
 
 #: src/mn-util.c:887
 #, c-format
 msgid "invalid signal specification \"%s\""
-msgstr ""
+msgstr "nevažeća odrednica za signal „%s‟"
+
+#: ui/authentication.glade.h:1 ui/properties.glade.h:2
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
+msgid "_Authenticate"
+msgstr "Prijavi se"
 
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
@@ -1325,148 +1398,157 @@ msgstr "_Vrsta sandučeta:"
 msgid "    "
 msgstr "    "
 
-#: ui/properties.glade.h:2
-msgid "*"
-msgstr "*"
-
 #: ui/properties.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
+msgstr "<span weight=\"bold\">Naredbe</span>"
+
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Opšte</span>"
 
-#: ui/properties.glade.h:4
-#, fuzzy
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Sandučići</span>"
 
-#: ui/properties.glade.h:5
-#, fuzzy
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
-msgstr "<span weight=\"bold\">Naredbe</span>"
+msgstr "<span weight=\"bold\">Mesto</span>"
 
-#: ui/properties.glade.h:6
+#: ui/properties.glade.h:7
 msgid "General"
-msgstr ""
+msgstr "Opšte"
 
-#: ui/properties.glade.h:7
+#: ui/properties.glade.h:8
 msgid "Hori_zontal offset:"
-msgstr ""
+msgstr "Hori_zontalni pomak:"
 
-#: ui/properties.glade.h:8
+#: ui/properties.glade.h:9
 msgid "Mail Notification Properties"
 msgstr "Postavke za dojavu"
 
-#: ui/properties.glade.h:9
+#: ui/properties.glade.h:10
 msgid "Mail Summary Popup"
-msgstr ""
+msgstr "Sažetak poruka"
 
-#: ui/properties.glade.h:10
-#, fuzzy
+#: ui/properties.glade.h:11
 msgid "Mailboxes"
-msgstr "Sanduče"
+msgstr "Sandučići"
 
-#: ui/properties.glade.h:11
-#, fuzzy
+#: ui/properties.glade.h:12
 msgid "P_osition:"
 msgstr "_Mesto:"
 
-#: ui/properties.glade.h:12
-#, fuzzy
+#: ui/properties.glade.h:13
 msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Pauza između dve uzastopne provere"
+msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka"
 
-#: ui/properties.glade.h:13
+#: ui/properties.glade.h:14
 msgid "The amount of time to wait between mail checks"
 msgstr "Pauza između dve uzastopne provere"
 
-#: ui/properties.glade.h:14
+#: ui/properties.glade.h:15
+msgid "The command to run when all mail is read"
+msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
+
+#: ui/properties.glade.h:16
 msgid "The command to run when new mail arrives"
 msgstr "Naredba koja se pokreće kada stiže nova pošta"
 
-#: ui/properties.glade.h:15
+#: ui/properties.glade.h:17
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup"
 msgstr ""
+"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
+"prozora sa sažetkom poruka"
 
-#: ui/properties.glade.h:16
+#: ui/properties.glade.h:18
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup"
 msgstr ""
+"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
+"sažetkom poruka"
 
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:19
+msgid "When _all mail is read:"
+msgstr "Kada je s_va pošta pročitana:"
+
+#: ui/properties.glade.h:20
+msgid "When _new mail arrives:"
+msgstr "Kada _stigne nova pošta:"
+
+#: ui/properties.glade.h:21
 msgid "Whether the status icon should blink on errors or not"
 msgstr "Da li statusna sličica treperi pri greškama ili ne"
 
-#: ui/properties.glade.h:18
-#, fuzzy
+#: ui/properties.glade.h:22
 msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Da li u sandučetu stoji nova pošta ili ne"
+msgstr ""
+"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom poruka"
 
-#: ui/properties.glade.h:19
-#, fuzzy
+#: ui/properties.glade.h:23
 msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
+msgstr ""
+"Da li treba ili ne treba prikazivati sažetak poruka kada stigne nova pošta"
 
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:24
+msgid "Whether to run a command when all mail is read or not"
+msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
+
+#: ui/properties.glade.h:25
 msgid "Whether to run a command when new mail arrives or not"
 msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
 
-#: ui/properties.glade.h:21
+#: ui/properties.glade.h:26
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr "Da li pokrenuti dojavu pošte kada se prijavite na sistem"
 
-#: ui/properties.glade.h:22
+#: ui/properties.glade.h:27
 msgid "_Automatically close after:"
-msgstr ""
+msgstr "_Automatski zatvori posle:"
 
-#: ui/properties.glade.h:23
+#: ui/properties.glade.h:28
 msgid "_Blink on errors"
 msgstr "_Treperi pri greškama"
 
-#: ui/properties.glade.h:24
+#: ui/properties.glade.h:29
 msgid "_Delay between mail checks:"
 msgstr "_Pauza između provera:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:30
 msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:26
-#, fuzzy
-msgid "_Run a command when new mail arrives:"
-msgstr "Pokreni komandu kada stigne nova pošta"
+msgstr "Dozvoli prikaz sažetka poruka"
 
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:31
 msgid "_Start Mail Notification on GNOME login"
 msgstr "Pokreni _dojavu pri prijavi"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:32
 msgid "_Vertical offset:"
-msgstr ""
+msgstr "_Vertikalni pomak:"
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:33
 msgid "minutes"
 msgstr "minuta"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:34
 msgid "pixels"
-msgstr ""
+msgstr "tačaka"
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:35
 msgid "seconds"
 msgstr "sekundi"
 
 #: ui/summary-dialog.glade.h:1
 msgid "Mail Summary"
-msgstr ""
+msgstr "Sažetak poruka"
 
 #: ui/summary-popup.glade.h:1
-#, fuzzy
 msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Sandučići</span>"
+msgstr "<span weight=\"bold\">Sažetak poruka</span>"
 
 #: ui/welcome.glade.h:1
 msgid ""
@@ -1517,24 +1599,36 @@ msgstr "P_reskoči podešavanja"
 #~ msgstr ""
 #~ "Da li treba pokrenuti neku komandu kada pri dvostrukom kliku na ikonu."
 
+#~ msgid "Your Gmail password"
+#~ msgstr "Vaša lozinka na servisu Gmail"
+
+#~ msgid "successfully logged in"
+#~ msgstr "prijava je uspela"
+
+#~ msgid "Your password on the IMAP server"
+#~ msgstr "Vaša lozinka na IMAP serveru"
+
 #~ msgid "_Run %s"
 #~ msgstr "_Pokreni %s"
 
 #~ msgid "_Run Default Action"
 #~ msgstr "P_okreni podrazumevano"
 
+#~ msgid "Your password on the POP3 server"
+#~ msgstr "Vaša lozinka na POP3 serveru"
+
 #~ msgid "A command error has occurred"
 #~ msgstr "Došlo je do greške u komandama"
 
 #~ msgid "Unable to execute double-clicked command: %s."
 #~ msgstr "Nije moguće izvršiti komandu na dvostruki klik: %s."
 
+#~ msgid "Unable to execute new mail command: %s."
+#~ msgstr "Nije moguće izvršiti komandu za novu poštu: %s."
+
 #~ msgid "The command to run when the icon is double-clicked"
 #~ msgstr "Naredba koja se pokreće pri dvostrukom kliku"
 
-#~ msgid "When _new mail arrives:"
-#~ msgstr "Kada _stigne nova pošta:"
-
 #~ msgid "When double-click_ed:"
 #~ msgstr "Pri _dvostrukom kliku:"
 
diff --git a/src/Makefile.am b/src/Makefile.am
@@ -65,6 +65,15 @@ pi_gob_built_sources = \
 	mn-pi-mailbox-properties.h
 endif
 
+if WITH_POP3_OR_IMAP_OR_GMAIL
+authenticated_mailbox_gob_sources = \
+	mn-authenticated-mailbox.gob
+authenticated_mailbox_gob_built_sources = \
+	mn-authenticated-mailbox-private.h	\
+	mn-authenticated-mailbox.c		\
+	mn-authenticated-mailbox.h
+endif
+
 if WITH_SYLPHEED
 sylpheed_gob_sources = mn-sylpheed-mailbox.gob
 sylpheed_gob_built_sources = \
@@ -126,6 +135,7 @@ gob_sources = \
 	$(maildir_gob_sources)			\
 	$(pop3_gob_sources)			\
 	$(imap_gob_sources)			\
+	$(authenticated_mailbox_gob_sources)	\
 	$(pi_gob_sources)			\
 	$(sylpheed_gob_sources)			\
 	$(gmail_gob_sources)			\
@@ -151,6 +161,7 @@ gob_built_sources = \
 	$(maildir_gob_built_sources)			\
 	$(pop3_gob_built_sources)			\
 	$(imap_gob_built_sources)			\
+	$(authenticated_mailbox_gob_built_sources)	\
 	$(pi_gob_built_sources)				\
 	$(sylpheed_gob_built_sources)			\
 	$(gmail_gob_built_sources)			\
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -55,29 +55,32 @@ am__mail_notification_SOURCES_DIST = MNAutomation.idl \
 	mn-mbox-mailbox.gob mn-mh-mailbox.gob mn-maildir-mailbox.gob \
 	mn-pop3-mailbox-properties.gob mn-pop3-mailbox.gob \
 	mn-imap-mailbox-properties.gob mn-imap-mailbox.gob \
-	mn-auth-combo-box.gob mn-pi-mailbox-properties.gob \
-	mn-sylpheed-mailbox.gob mn-gmail-mailbox-properties.gob \
-	mn-gmail-mailbox.gob mn-gmime-stream-vfs.gob \
-	mn-about-dialog.gob mn-autodetect-mailbox-properties.gob \
-	mn-automation.gob mn-blinking-image.gob mn-mail-icon.gob \
-	mn-mailbox-view.gob mn-mailbox.gob mn-mailboxes.gob \
-	mn-message-label.gob mn-message.gob mn-pending-mailbox.gob \
-	mn-shell.gob mn-system-mailbox-properties.gob \
-	mn-unsupported-mailbox.gob mn-uri.gob \
-	mn-mbox-mailbox-private.h mn-mbox-mailbox.c mn-mbox-mailbox.h \
-	mn-mh-mailbox-private.h mn-mh-mailbox.c mn-mh-mailbox.h \
-	mn-maildir-mailbox-private.h mn-maildir-mailbox.c \
-	mn-maildir-mailbox.h mn-pop3-mailbox-properties-private.h \
+	mn-authenticated-mailbox.gob mn-auth-combo-box.gob \
+	mn-pi-mailbox-properties.gob mn-sylpheed-mailbox.gob \
+	mn-gmail-mailbox-properties.gob mn-gmail-mailbox.gob \
+	mn-gmime-stream-vfs.gob mn-about-dialog.gob \
+	mn-autodetect-mailbox-properties.gob mn-automation.gob \
+	mn-blinking-image.gob mn-mail-icon.gob mn-mailbox-view.gob \
+	mn-mailbox.gob mn-mailboxes.gob mn-message-label.gob \
+	mn-message.gob mn-pending-mailbox.gob mn-shell.gob \
+	mn-system-mailbox-properties.gob mn-unsupported-mailbox.gob \
+	mn-uri.gob mn-mbox-mailbox-private.h mn-mbox-mailbox.c \
+	mn-mbox-mailbox.h mn-mh-mailbox-private.h mn-mh-mailbox.c \
+	mn-mh-mailbox.h mn-maildir-mailbox-private.h \
+	mn-maildir-mailbox.c mn-maildir-mailbox.h \
+	mn-pop3-mailbox-properties-private.h \
 	mn-pop3-mailbox-properties.c mn-pop3-mailbox-properties.h \
 	mn-pop3-mailbox-private.h mn-pop3-mailbox.c mn-pop3-mailbox.h \
 	mn-imap-mailbox-properties-private.h \
 	mn-imap-mailbox-properties.c mn-imap-mailbox-properties.h \
 	mn-imap-mailbox-private.h mn-imap-mailbox.c mn-imap-mailbox.h \
-	mn-auth-combo-box-private.h mn-auth-combo-box.c \
-	mn-auth-combo-box.h mn-pi-mailbox-properties-private.h \
-	mn-pi-mailbox-properties.c mn-pi-mailbox-properties.h \
-	mn-sylpheed-mailbox-private.h mn-sylpheed-mailbox.c \
-	mn-sylpheed-mailbox.h mn-gmail-mailbox-properties-private.h \
+	mn-authenticated-mailbox-private.h mn-authenticated-mailbox.c \
+	mn-authenticated-mailbox.h mn-auth-combo-box-private.h \
+	mn-auth-combo-box.c mn-auth-combo-box.h \
+	mn-pi-mailbox-properties-private.h mn-pi-mailbox-properties.c \
+	mn-pi-mailbox-properties.h mn-sylpheed-mailbox-private.h \
+	mn-sylpheed-mailbox.c mn-sylpheed-mailbox.h \
+	mn-gmail-mailbox-properties-private.h \
 	mn-gmail-mailbox-properties.c mn-gmail-mailbox-properties.h \
 	mn-gmail-mailbox-private.h mn-gmail-mailbox.c \
 	mn-gmail-mailbox.h mn-gmime-stream-vfs-private.h \
@@ -114,7 +117,8 @@ am__mail_notification_SOURCES_DIST = MNAutomation.idl \
 am__objects_1 =
 am__objects_2 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
 	$(am__objects_1) $(am__objects_1) $(am__objects_1) \
-	$(am__objects_1) $(am__objects_1) $(am__objects_1)
+	$(am__objects_1) $(am__objects_1) $(am__objects_1) \
+	$(am__objects_1)
 @WITH_MBOX_TRUE@am__objects_3 = mn-mbox-mailbox.$(OBJEXT)
 @WITH_MH_TRUE@am__objects_4 = mn-mh-mailbox.$(OBJEXT)
 @WITH_MAILDIR_TRUE@am__objects_5 = mn-maildir-mailbox.$(OBJEXT)
@@ -122,17 +126,18 @@ am__objects_2 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
 @WITH_POP3_TRUE@	mn-pop3-mailbox.$(OBJEXT)
 @WITH_IMAP_TRUE@am__objects_7 = mn-imap-mailbox-properties.$(OBJEXT) \
 @WITH_IMAP_TRUE@	mn-imap-mailbox.$(OBJEXT)
-@WITH_POP3_OR_IMAP_TRUE@am__objects_8 = mn-auth-combo-box.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@am__objects_8 = mn-authenticated-mailbox.$(OBJEXT)
+@WITH_POP3_OR_IMAP_TRUE@am__objects_9 = mn-auth-combo-box.$(OBJEXT) \
 @WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.$(OBJEXT)
-@WITH_SYLPHEED_TRUE@am__objects_9 = mn-sylpheed-mailbox.$(OBJEXT)
-@WITH_GMAIL_TRUE@am__objects_10 =  \
+@WITH_SYLPHEED_TRUE@am__objects_10 = mn-sylpheed-mailbox.$(OBJEXT)
+@WITH_GMAIL_TRUE@am__objects_11 =  \
 @WITH_GMAIL_TRUE@	mn-gmail-mailbox-properties.$(OBJEXT) \
 @WITH_GMAIL_TRUE@	mn-gmail-mailbox.$(OBJEXT)
-@WITH_MIME_TRUE@am__objects_11 = mn-gmime-stream-vfs.$(OBJEXT)
-am__objects_12 = $(am__objects_3) $(am__objects_4) $(am__objects_5) \
+@WITH_MIME_TRUE@am__objects_12 = mn-gmime-stream-vfs.$(OBJEXT)
+am__objects_13 = $(am__objects_3) $(am__objects_4) $(am__objects_5) \
 	$(am__objects_6) $(am__objects_7) $(am__objects_8) \
 	$(am__objects_9) $(am__objects_10) $(am__objects_11) \
-	mn-about-dialog.$(OBJEXT) \
+	$(am__objects_12) mn-about-dialog.$(OBJEXT) \
 	mn-autodetect-mailbox-properties.$(OBJEXT) \
 	mn-automation.$(OBJEXT) mn-blinking-image.$(OBJEXT) \
 	mn-mail-icon.$(OBJEXT) mn-mailbox-view.$(OBJEXT) \
@@ -141,26 +146,26 @@ am__objects_12 = $(am__objects_3) $(am__objects_4) $(am__objects_5) \
 	mn-pending-mailbox.$(OBJEXT) mn-shell.$(OBJEXT) \
 	mn-system-mailbox-properties.$(OBJEXT) \
 	mn-unsupported-mailbox.$(OBJEXT) mn-uri.$(OBJEXT)
-@WITH_GMAIL_TRUE@am__objects_13 = mn-sgml-ref.$(OBJEXT) \
+@WITH_GMAIL_TRUE@am__objects_14 = mn-sgml-ref.$(OBJEXT) \
 @WITH_GMAIL_TRUE@	mn-soup.$(OBJEXT)
-@WITH_POP3_TRUE@am__objects_14 = mn-md5.$(OBJEXT)
-@WITH_POP3_OR_IMAP_TRUE@am__objects_15 = mn-client-session.$(OBJEXT)
-@WITH_SSL_TRUE@am__objects_16 = mn-ssl.$(OBJEXT)
-@WITH_SASL_TRUE@am__objects_17 = mn-sasl.$(OBJEXT)
-@WITH_MIME_TRUE@am__objects_18 = mn-message-mime.$(OBJEXT)
+@WITH_POP3_TRUE@am__objects_15 = mn-md5.$(OBJEXT)
+@WITH_POP3_OR_IMAP_TRUE@am__objects_16 = mn-client-session.$(OBJEXT)
+@WITH_SSL_TRUE@am__objects_17 = mn-ssl.$(OBJEXT)
+@WITH_SASL_TRUE@am__objects_18 = mn-sasl.$(OBJEXT)
+@WITH_MIME_TRUE@am__objects_19 = mn-message-mime.$(OBJEXT)
 am_mail_notification_OBJECTS = $(am__objects_1) $(am__objects_2) \
-	$(am__objects_12) $(am__objects_13) $(am__objects_1) \
-	$(am__objects_14) $(am__objects_15) $(am__objects_16) \
-	$(am__objects_17) $(am__objects_18) eggtrayicon.$(OBJEXT) \
+	$(am__objects_13) $(am__objects_14) $(am__objects_1) \
+	$(am__objects_15) $(am__objects_16) $(am__objects_17) \
+	$(am__objects_18) $(am__objects_19) eggtrayicon.$(OBJEXT) \
 	mn-conf.$(OBJEXT) mn-mailbox-properties-dialog.$(OBJEXT) \
 	mn-mailbox-properties-util.$(OBJEXT) \
 	mn-mailbox-properties.$(OBJEXT) mn-main.$(OBJEXT) \
 	mn-properties.$(OBJEXT) mn-stock.$(OBJEXT) \
 	mn-summary-dialog.$(OBJEXT) mn-summary-popup.$(OBJEXT) \
 	mn-summary.$(OBJEXT) mn-util.$(OBJEXT) mn-vfs.$(OBJEXT)
-am__objects_19 = MNAutomation-common.$(OBJEXT) \
+am__objects_20 = MNAutomation-common.$(OBJEXT) \
 	MNAutomation-stubs.$(OBJEXT) MNAutomation-skels.$(OBJEXT)
-nodist_mail_notification_OBJECTS = $(am__objects_19)
+nodist_mail_notification_OBJECTS = $(am__objects_20)
 mail_notification_OBJECTS = $(am_mail_notification_OBJECTS) \
 	$(nodist_mail_notification_OBJECTS)
 mail_notification_LDADD = $(LDADD)
@@ -173,6 +178,7 @@ am__depfiles_maybe = depfiles
 @AMDEP_TRUE@	./$(DEPDIR)/eggtrayicon.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/mn-about-dialog.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/mn-auth-combo-box.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/mn-authenticated-mailbox.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/mn-autodetect-mailbox-properties.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/mn-automation.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/mn-blinking-image.Po \
@@ -341,6 +347,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
@@ -435,6 +443,14 @@ target_alias = @target_alias@
 @WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.c		\
 @WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.h
 
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authenticated_mailbox_gob_sources = \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.gob
+
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authenticated_mailbox_gob_built_sources = \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-private.h	\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.c		\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.h
+
 @WITH_SYLPHEED_TRUE@sylpheed_gob_sources = mn-sylpheed-mailbox.gob
 @WITH_SYLPHEED_TRUE@sylpheed_gob_built_sources = \
 @WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox-private.h	\
@@ -489,6 +505,7 @@ gob_sources = \
 	$(maildir_gob_sources)			\
 	$(pop3_gob_sources)			\
 	$(imap_gob_sources)			\
+	$(authenticated_mailbox_gob_sources)	\
 	$(pi_gob_sources)			\
 	$(sylpheed_gob_sources)			\
 	$(gmail_gob_sources)			\
@@ -515,6 +532,7 @@ gob_built_sources = \
 	$(maildir_gob_built_sources)			\
 	$(pop3_gob_built_sources)			\
 	$(imap_gob_built_sources)			\
+	$(authenticated_mailbox_gob_built_sources)	\
 	$(pi_gob_built_sources)				\
 	$(sylpheed_gob_built_sources)			\
 	$(gmail_gob_built_sources)			\
@@ -696,6 +714,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggtrayicon.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-about-dialog.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-auth-combo-box.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-authenticated-mailbox.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-autodetect-mailbox-properties.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-automation.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-blinking-image.Po@am__quote@
diff --git a/src/eggtrayicon.c b/src/eggtrayicon.c
@@ -21,7 +21,7 @@
 
 #include "config.h"
 #include <string.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 
 #include "eggtrayicon.h"
 
@@ -365,18 +365,6 @@ egg_tray_icon_realize (GtkWidget *widget)
 }
 
 EggTrayIcon *
-egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name)
-{
-  GdkDisplay *display;
-  GdkScreen *screen;
-
-  display = gdk_x11_lookup_xdisplay (DisplayOfScreen (xscreen));
-  screen = gdk_display_get_screen (display, XScreenNumberOfScreen (xscreen));
-
-  return egg_tray_icon_new_for_screen (screen, name);
-}
-
-EggTrayIcon *
 egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name)
 {
   g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
diff --git a/src/mn-about-dialog.c b/src/mn-about-dialog.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-auth-combo-box.c b/src/mn-auth-combo-box.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-auth-combo-box.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #ifdef WITH_SASL
 #include <sasl/sasl.h>
 #include "mn-sasl.h"
diff --git a/src/mn-auth-combo-box.gob b/src/mn-auth-combo-box.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #ifdef WITH_SASL
 #include <sasl/sasl.h>
 #include "mn-sasl.h"
diff --git a/src/mn-authenticated-mailbox-private.h b/src/mn-authenticated-mailbox-private.h
@@ -0,0 +1,22 @@
+/* Generated by GOB (v2.0.10)   (do not edit directly) */
+
+#ifndef __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
+#define __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
+
+#include "mn-authenticated-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNAuthenticatedMailboxPrivate {
+#line 46 "mn-authenticated-mailbox.gob"
+	GtkWidget * authentication_dialog;
+#line 16 "mn-authenticated-mailbox-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-authenticated-mailbox.c b/src/mn-authenticated-mailbox.c
@@ -0,0 +1,369 @@
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 10
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-authenticated-mailbox.h"
+
+#include "mn-authenticated-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 35 "mn-authenticated-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+
+#line 35 "mn-authenticated-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_AUTHENTICATED_MAILBOX(x)
+#define SELF_CONST(x) MN_AUTHENTICATED_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_AUTHENTICATED_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_AUTHENTICATED_MAILBOX
+#define SELF_CLASS(x) MN_AUTHENTICATED_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_AUTHENTICATED_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNAuthenticatedMailbox Self;
+typedef MNAuthenticatedMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_authenticated_mailbox_init (MNAuthenticatedMailbox * o) G_GNUC_UNUSED;
+static void mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxResult mn_authenticated_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * self, GError ** err) G_GNUC_UNUSED;
+static void ___2_mn_authenticated_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_authenticated_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static char * mn_authenticated_mailbox_password_prompt (MNAuthenticatedMailbox * self, const char * format, ...) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_impl_authenticated_check mn_authenticated_mailbox_impl_authenticated_check
+#define self_password_prompt mn_authenticated_mailbox_password_prompt
+#define self_password_prompt_changed_h mn_authenticated_mailbox_password_prompt_changed_h
+GType
+mn_authenticated_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNAuthenticatedMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_authenticated_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNAuthenticatedMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_authenticated_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_MAILBOX, "MNAuthenticatedMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNAuthenticatedMailbox *)g_object_new(mn_authenticated_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNAuthenticatedMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNAuthenticatedMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNAuthenticatedMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNAuthenticatedMailbox *)g_object_new_valist (mn_authenticated_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::finalize"
+	MNAuthenticatedMailbox *self G_GNUC_UNUSED = MN_AUTHENTICATED_MAILBOX (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 45 "mn-authenticated-mailbox.gob"
+	if(self->password) { g_free ((gpointer) self->password); self->password = NULL; }
+#line 117 "mn-authenticated-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_authenticated_mailbox_init (MNAuthenticatedMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNAuthenticatedMailboxPrivate);
+#line 35 "mn-authenticated-mailbox.gob"
+	o->password = NULL;
+#line 128 "mn-authenticated-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+	g_type_class_add_private(c,sizeof(MNAuthenticatedMailboxPrivate));
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+
+	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
+
+	c->impl_authenticated_check = NULL;
+#line 51 "mn-authenticated-mailbox.gob"
+	mn_mailbox_class->removed = ___2_mn_authenticated_mailbox_removed;
+#line 62 "mn-authenticated-mailbox.gob"
+	mn_mailbox_class->impl_check = ___3_mn_authenticated_mailbox_impl_check;
+#line 147 "mn-authenticated-mailbox.c"
+	g_object_class->finalize = ___finalize;
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 48 "mn-authenticated-mailbox.gob"
+static MNAuthenticatedMailboxResult 
+mn_authenticated_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * self, GError ** err)
+#line 157 "mn-authenticated-mailbox.c"
+{
+	MNAuthenticatedMailboxClass *klass;
+#line 48 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (MNAuthenticatedMailboxResult )0);
+#line 48 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self), (MNAuthenticatedMailboxResult )0);
+#line 164 "mn-authenticated-mailbox.c"
+	klass = MN_AUTHENTICATED_MAILBOX_GET_CLASS(self);
+
+	if(klass->impl_authenticated_check)
+		return (*klass->impl_authenticated_check)(self,err);
+	else
+		return (MNAuthenticatedMailboxResult )(0);
+}
+
+#line 51 "mn-authenticated-mailbox.gob"
+static void 
+___2_mn_authenticated_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 176 "mn-authenticated-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->removed) \
+		(* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::removed"
+#line 51 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 51 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 186 "mn-authenticated-mailbox.c"
+{
+#line 53 "mn-authenticated-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+
+    if (selfp->authentication_dialog)
+      gtk_dialog_response(GTK_DIALOG(selfp->authentication_dialog), GTK_RESPONSE_CANCEL);
+
+    PARENT_HANDLER(mailbox);
+  }}
+#line 197 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 62 "mn-authenticated-mailbox.gob"
+static void 
+___3_mn_authenticated_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 204 "mn-authenticated-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::impl_check"
+#line 62 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 62 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 214 "mn-authenticated-mailbox.c"
+{
+#line 64 "mn-authenticated-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+    GError *err = NULL;
+    MNAuthenticatedMailboxResult result;
+
+    if (! self->password)
+      {
+  	if (mailbox->uri->password)
+	  self->password = g_strdup(mailbox->uri->password);
+	else
+	  {
+	    GDK_THREADS_ENTER();
+	    /* translator: example output: Enter your password for POP3 mailbox jylefort@localhost. */
+	    self->password = self_password_prompt(self, _("Enter your password for %s mailbox %s."),
+						  MN_MAILBOX_GET_CLASS(mailbox)->format,
+						  mn_mailbox_get_name(mailbox));
+	    gdk_flush();
+	    GDK_THREADS_LEAVE();
+
+	    if (! self->password) /* cancelled */
+	      goto end;
+	  }
+      }
+
+    result = SELF_GET_CLASS(self)->impl_authenticated_check(self, &err);
+
+    if (! mailbox->uri->password)
+      while (result == MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION)
+	{
+	  g_clear_error(&err);
+	  g_free(self->password);
+
+	  GDK_THREADS_ENTER();
+	  /* translator: example output: ... into POP3 mailbox jylefort@localhost ... */
+	  self->password = self_password_prompt(self, _("Mail Notification was unable to log into %s mailbox %s, possibly because the password you have entered is invalid.\n\nPlease re-enter your password."),
+						MN_MAILBOX_GET_CLASS(mailbox)->format,
+						mn_mailbox_get_name(mailbox));
+	  gdk_flush();
+	  GDK_THREADS_LEAVE();
+
+	  if (! self->password)	/* cancelled */
+	    goto end;
+
+	  result = SELF_GET_CLASS(self)->impl_authenticated_check(self, &err);
+	}
+
+    if (result != MN_AUTHENTICATED_MAILBOX_OK)
+      {
+  	GDK_THREADS_ENTER();
+	mn_mailbox_set_error(mailbox, "%s", err->message);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+	g_error_free(err);
+      }
+    
+  end:
+    GDK_THREADS_ENTER();
+    mn_mailbox_end_check(mailbox);
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+  }}
+#line 278 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 126 "mn-authenticated-mailbox.gob"
+static char * 
+mn_authenticated_mailbox_password_prompt (MNAuthenticatedMailbox * self, const char * format, ...)
+#line 285 "mn-authenticated-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::password_prompt"
+#line 126 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (char * )0);
+#line 126 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self), (char * )0);
+#line 126 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (format != NULL, (char * )0);
+#line 294 "mn-authenticated-mailbox.c"
+{
+#line 128 "mn-authenticated-mailbox.gob"
+	
+    GtkWidget *label;
+    GtkWidget *username_label;
+    GtkWidget *username_entry;
+    GtkWidget *password_label;
+    GtkWidget *password_entry;
+    GtkSizeGroup *size_group;
+    va_list args;
+    char *prompt;
+    char *markup;
+    char *password = NULL;
+
+    g_return_val_if_fail(selfp->authentication_dialog == NULL, NULL);
+
+    mn_create_interface("authentication",
+			"dialog", &selfp->authentication_dialog,
+			"label", &label,
+			"username_label", &username_label,
+			"username_entry", &username_entry,
+			"password_label", &password_label,
+			"password_entry", &password_entry,
+			NULL);
+
+    eel_add_weak_pointer(&selfp->authentication_dialog);
+
+    gtk_dialog_set_default_response(GTK_DIALOG(selfp->authentication_dialog), GTK_RESPONSE_OK);
+
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+    gtk_size_group_add_widget(size_group, username_label);
+    gtk_size_group_add_widget(size_group, password_label);
+    g_object_unref(size_group);
+
+    va_start(args, format);
+    prompt = g_strdup_vprintf(format, args);
+    va_end(args);
+
+    markup = g_markup_printf_escaped(_("<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</span>\n"
+				       "\n"
+				       "%s"),
+				     prompt);
+    g_free(prompt);
+
+    gtk_label_set_markup(GTK_LABEL(label), markup);
+    g_free(markup);
+
+    gtk_entry_set_text(GTK_ENTRY(username_entry), MN_MAILBOX(self)->uri->username);
+
+    if (gtk_dialog_run(GTK_DIALOG(selfp->authentication_dialog)) == GTK_RESPONSE_OK)
+      password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry)));
+
+    gtk_widget_destroy(selfp->authentication_dialog);
+
+    return password;
+  }}
+#line 351 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 185 "mn-authenticated-mailbox.gob"
+void 
+mn_authenticated_mailbox_password_prompt_changed_h (gpointer user_data, GtkEditable * editable)
+#line 357 "mn-authenticated-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::password_prompt_changed_h"
+{
+#line 188 "mn-authenticated-mailbox.gob"
+	
+    GtkDialog *dialog = user_data;
+    const char *password;
+
+    password = gtk_entry_get_text(GTK_ENTRY(editable));
+    gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, *password != 0);
+  }}
+#line 369 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-authenticated-mailbox.gob b/src/mn-authenticated-mailbox.gob
@@ -0,0 +1,195 @@
+/* 
+ * Copyright (c) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.10
+
+%headertop{
+#include <gtk/gtk.h>
+#include "mn-mailbox.h"
+%}
+
+%h{
+  typedef enum
+  {
+    MN_AUTHENTICATED_MAILBOX_OK,
+    MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION,
+    MN_AUTHENTICATED_MAILBOX_ERROR_OTHER
+  } MNAuthenticatedMailboxResult;
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+%}
+
+class MN:Authenticated:Mailbox from MN:Mailbox
+{
+  public char *password = NULL destroywith g_free;
+  private GtkWidget *authentication_dialog;
+
+  virtual private MNAuthenticatedMailboxResult
+    impl_authenticated_check (self, GError **err);
+
+  override (MN:Mailbox) void
+    removed (MN:Mailbox *mailbox (check null type))
+  {
+    Self *self = SELF(mailbox);
+
+    if (selfp->authentication_dialog)
+      gtk_dialog_response(GTK_DIALOG(selfp->authentication_dialog), GTK_RESPONSE_CANCEL);
+
+    PARENT_HANDLER(mailbox);
+  }
+
+  override (MN:Mailbox) void
+    impl_check (MN:Mailbox *mailbox (check null type))
+  {
+    Self *self = SELF(mailbox);
+    GError *err = NULL;
+    MNAuthenticatedMailboxResult result;
+
+    if (! self->password)
+      {
+  	if (mailbox->uri->password)
+	  self->password = g_strdup(mailbox->uri->password);
+	else
+	  {
+	    GDK_THREADS_ENTER();
+	    /* translator: example output: Enter your password for POP3 mailbox jylefort@localhost. */
+	    self->password = self_password_prompt(self, _("Enter your password for %s mailbox %s."),
+						  MN_MAILBOX_GET_CLASS(mailbox)->format,
+						  mn_mailbox_get_name(mailbox));
+	    gdk_flush();
+	    GDK_THREADS_LEAVE();
+
+	    if (! self->password) /* cancelled */
+	      goto end;
+	  }
+      }
+
+    result = SELF_GET_CLASS(self)->impl_authenticated_check(self, &err);
+
+    if (! mailbox->uri->password)
+      while (result == MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION)
+	{
+	  g_clear_error(&err);
+	  g_free(self->password);
+
+	  GDK_THREADS_ENTER();
+	  /* translator: example output: ... into POP3 mailbox jylefort@localhost ... */
+	  self->password = self_password_prompt(self, _("Mail Notification was unable to log into %s mailbox %s, possibly because the password you have entered is invalid.\n\nPlease re-enter your password."),
+						MN_MAILBOX_GET_CLASS(mailbox)->format,
+						mn_mailbox_get_name(mailbox));
+	  gdk_flush();
+	  GDK_THREADS_LEAVE();
+
+	  if (! self->password)	/* cancelled */
+	    goto end;
+
+	  result = SELF_GET_CLASS(self)->impl_authenticated_check(self, &err);
+	}
+
+    if (result != MN_AUTHENTICATED_MAILBOX_OK)
+      {
+  	GDK_THREADS_ENTER();
+	mn_mailbox_set_error(mailbox, "%s", err->message);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+	g_error_free(err);
+      }
+    
+  end:
+    GDK_THREADS_ENTER();
+    mn_mailbox_end_check(mailbox);
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+  }
+  
+  private char *
+    password_prompt (self, const char *format (check null), ...)
+  {
+    GtkWidget *label;
+    GtkWidget *username_label;
+    GtkWidget *username_entry;
+    GtkWidget *password_label;
+    GtkWidget *password_entry;
+    GtkSizeGroup *size_group;
+    va_list args;
+    char *prompt;
+    char *markup;
+    char *password = NULL;
+
+    g_return_val_if_fail(selfp->authentication_dialog == NULL, NULL);
+
+    mn_create_interface("authentication",
+			"dialog", &selfp->authentication_dialog,
+			"label", &label,
+			"username_label", &username_label,
+			"username_entry", &username_entry,
+			"password_label", &password_label,
+			"password_entry", &password_entry,
+			NULL);
+
+    eel_add_weak_pointer(&selfp->authentication_dialog);
+
+    gtk_dialog_set_default_response(GTK_DIALOG(selfp->authentication_dialog), GTK_RESPONSE_OK);
+
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+    gtk_size_group_add_widget(size_group, username_label);
+    gtk_size_group_add_widget(size_group, password_label);
+    g_object_unref(size_group);
+
+    va_start(args, format);
+    prompt = g_strdup_vprintf(format, args);
+    va_end(args);
+
+    markup = g_markup_printf_escaped(_("<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</span>\n"
+				       "\n"
+				       "%s"),
+				     prompt);
+    g_free(prompt);
+
+    gtk_label_set_markup(GTK_LABEL(label), markup);
+    g_free(markup);
+
+    gtk_entry_set_text(GTK_ENTRY(username_entry), MN_MAILBOX(self)->uri->username);
+
+    if (gtk_dialog_run(GTK_DIALOG(selfp->authentication_dialog)) == GTK_RESPONSE_OK)
+      password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry)));
+
+    gtk_widget_destroy(selfp->authentication_dialog);
+
+    return password;
+  }
+
+  /* libglade callbacks */
+
+  public void
+    password_prompt_changed_h (gpointer user_data,
+			       GtkEditable *editable)
+  {
+    GtkDialog *dialog = user_data;
+    const char *password;
+
+    password = gtk_entry_get_text(GTK_ENTRY(editable));
+    gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, *password != 0);
+  }
+}
diff --git a/src/mn-authenticated-mailbox.h b/src/mn-authenticated-mailbox.h
@@ -0,0 +1,77 @@
+/* Generated by GOB (v2.0.10)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+#include "mn-mailbox.h"
+
+#ifndef __MN_AUTHENTICATED_MAILBOX_H__
+#define __MN_AUTHENTICATED_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+  typedef enum
+  {
+    MN_AUTHENTICATED_MAILBOX_OK,
+    MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION,
+    MN_AUTHENTICATED_MAILBOX_ERROR_OTHER
+  } MNAuthenticatedMailboxResult;
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_AUTHENTICATED_MAILBOX	(mn_authenticated_mailbox_get_type())
+#define MN_AUTHENTICATED_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_authenticated_mailbox_get_type(), MNAuthenticatedMailbox)
+#define MN_AUTHENTICATED_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_authenticated_mailbox_get_type(), MNAuthenticatedMailbox const)
+#define MN_AUTHENTICATED_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_authenticated_mailbox_get_type(), MNAuthenticatedMailboxClass)
+#define MN_IS_AUTHENTICATED_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_authenticated_mailbox_get_type ())
+
+#define MN_AUTHENTICATED_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_authenticated_mailbox_get_type(), MNAuthenticatedMailboxClass)
+
+/* Private structure type */
+typedef struct _MNAuthenticatedMailboxPrivate MNAuthenticatedMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_AUTHENTICATED_MAILBOX__
+#define __TYPEDEF_MN_AUTHENTICATED_MAILBOX__
+typedef struct _MNAuthenticatedMailbox MNAuthenticatedMailbox;
+#endif
+struct _MNAuthenticatedMailbox {
+	MNMailbox __parent__;
+	/*< public >*/
+	char * password;
+	/*< private >*/
+	MNAuthenticatedMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNAuthenticatedMailboxClass MNAuthenticatedMailboxClass;
+struct _MNAuthenticatedMailboxClass {
+	MNMailboxClass __parent__;
+	MNAuthenticatedMailboxResult (* impl_authenticated_check) (MNAuthenticatedMailbox * self, GError ** err);
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_authenticated_mailbox_get_type	(void);
+void 	mn_authenticated_mailbox_password_prompt_changed_h	(gpointer user_data,
+					GtkEditable * editable);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-autodetect-mailbox-properties.c b/src/mn-autodetect-mailbox-properties.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-autodetect-mailbox-properties.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-util.h"
diff --git a/src/mn-autodetect-mailbox-properties.gob b/src/mn-autodetect-mailbox-properties.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-util.h"
diff --git a/src/mn-automation.c b/src/mn-automation.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-blinking-image.c b/src/mn-blinking-image.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-blinking-image.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 
 #line 32 "mn-blinking-image.c"
 /* self casting macros */
diff --git a/src/mn-blinking-image.gob b/src/mn-blinking-image.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 %}
 
 class MN:Blinking:Image from Gtk:Image
diff --git a/src/mn-client-session.c b/src/mn-client-session.c
@@ -30,7 +30,7 @@
 #include <arpa/inet.h>
 #include <errno.h>
 #include <glib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <eel/eel-alert-dialog.h>
 #ifdef WITH_SSL
 #include <openssl/err.h>
diff --git a/src/mn-conf.c b/src/mn-conf.c
@@ -203,7 +203,7 @@ mn_conf_link (GtkWidget *widget, ...)
 	  char *str;
 
 	  str = eel_gconf_get_string(key);
-	  gtk_entry_set_text(GTK_ENTRY(widget), str ? str : "");
+	  gtk_entry_set_text(GTK_ENTRY(widget), MN_POINTER_TO_STRING(str));
 	  g_free(str);
 
 	  signal_name = "changed";
@@ -417,7 +417,7 @@ mn_conf_link_entry_notify_cb (GConfClient *client,
   GDK_THREADS_ENTER();
   if (value)
     str = gconf_value_get_string(value);
-  gtk_entry_set_text(entry_widget, str ? str : "");
+  gtk_entry_set_text(entry_widget, MN_POINTER_TO_STRING(str));
   GDK_THREADS_LEAVE();
 }
 
diff --git a/src/mn-conf.h b/src/mn-conf.h
@@ -55,6 +55,12 @@
   MN_CONF_COMMANDS_NEW_MAIL_NAMESPACE "/enabled"
 #define MN_CONF_COMMANDS_NEW_MAIL_COMMAND \
   MN_CONF_COMMANDS_NEW_MAIL_NAMESPACE "/command"
+#define MN_CONF_COMMANDS_MAIL_READ_NAMESPACE \
+  MN_CONF_COMMANDS_NAMESPACE "/mail-read"
+#define MN_CONF_COMMANDS_MAIL_READ_ENABLED \
+  MN_CONF_COMMANDS_MAIL_READ_NAMESPACE "/enabled"
+#define MN_CONF_COMMANDS_MAIL_READ_COMMAND \
+  MN_CONF_COMMANDS_MAIL_READ_NAMESPACE "/command"
 #define MN_CONF_COMMANDS_CLICKED_NAMESPACE \
   MN_CONF_COMMANDS_NAMESPACE "/clicked"		/* obsolete */
 #define MN_CONF_COMMANDS_CLICKED_ENABLED \
diff --git a/src/mn-gmail-mailbox-private.h b/src/mn-gmail-mailbox-private.h
@@ -16,13 +16,11 @@ extern "C" {
 
 #line 18 "mn-gmail-mailbox-private.h"
 struct _MNGmailMailboxPrivate {
-#line 47 "mn-gmail-mailbox.gob"
-	SoupSession * session;
-#line 48 "mn-gmail-mailbox.gob"
+#line 46 "mn-gmail-mailbox.gob"
 	GHashTable * cookies;
-#line 49 "mn-gmail-mailbox.gob"
+#line 47 "mn-gmail-mailbox.gob"
 	gboolean logged_in;
-#line 26 "mn-gmail-mailbox-private.h"
+#line 24 "mn-gmail-mailbox-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-gmail-mailbox-properties-private.h b/src/mn-gmail-mailbox-properties-private.h
@@ -12,11 +12,11 @@ extern "C" {
 struct _MNGmailMailboxPropertiesPrivate {
 #line 37 "mn-gmail-mailbox-properties.gob"
 	GtkSizeGroup * size_group;
-#line 52 "mn-gmail-mailbox-properties.gob"
+#line 50 "mn-gmail-mailbox-properties.gob"
 	GtkWidget * username_entry;
-#line 53 "mn-gmail-mailbox-properties.gob"
+#line 51 "mn-gmail-mailbox-properties.gob"
 	GtkWidget * password_entry;
-#line 54 "mn-gmail-mailbox-properties.gob"
+#line 52 "mn-gmail-mailbox-properties.gob"
 	GtkTooltips * tooltips;
 #line 22 "mn-gmail-mailbox-properties-private.h"
 };
diff --git a/src/mn-gmail-mailbox-properties.c b/src/mn-gmail-mailbox-properties.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-gmail-mailbox-properties.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-util.h"
@@ -74,9 +74,9 @@ static GtkVBoxClass *parent_class = NULL;
 static void
 ___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
 {
-#line 101 "mn-gmail-mailbox-properties.gob"
+#line 98 "mn-gmail-mailbox-properties.gob"
 	iface->set_uri = self_set_uri;
-#line 116 "mn-gmail-mailbox-properties.gob"
+#line 113 "mn-gmail-mailbox-properties.gob"
 	iface->get_uri = self_get_uri;
 #line 82 "mn-gmail-mailbox-properties.c"
 }
@@ -143,7 +143,7 @@ ___dispose (GObject *obj_self)
 #line 37 "mn-gmail-mailbox-properties.gob"
 	if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
 #line 146 "mn-gmail-mailbox-properties.c"
-#line 54 "mn-gmail-mailbox-properties.gob"
+#line 52 "mn-gmail-mailbox-properties.gob"
 	if(self->_priv->tooltips) { g_object_unref ((gpointer) self->_priv->tooltips); self->_priv->tooltips = NULL; }
 #line 149 "mn-gmail-mailbox-properties.c"
 }
@@ -166,7 +166,7 @@ mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::init"
 	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPropertiesPrivate);
-#line 54 "mn-gmail-mailbox-properties.gob"
+#line 52 "mn-gmail-mailbox-properties.gob"
 	o->_priv->tooltips = mn_tooltips_new();
 #line 172 "mn-gmail-mailbox-properties.c"
 }
@@ -181,7 +181,7 @@ mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * c G_GNUC
 
 	parent_class = g_type_class_ref (GTK_TYPE_VBOX);
 
-#line 56 "mn-gmail-mailbox-properties.gob"
+#line 54 "mn-gmail-mailbox-properties.gob"
 	g_object_class->constructor = ___1_mn_gmail_mailbox_properties_constructor;
 #line 187 "mn-gmail-mailbox-properties.c"
 	g_object_class->dispose = ___dispose;
@@ -264,14 +264,12 @@ g_value_set_object (VAL, (gpointer)self->_priv->size_group);
 #line 42 "mn-gmail-mailbox-properties.gob"
 
       const char *username;
-      const char *password;
 
       username = gtk_entry_get_text(GTK_ENTRY(selfp->username_entry));
-      password = gtk_entry_get_text(GTK_ENTRY(selfp->password_entry));
       
-      g_value_set_boolean(VAL, *username && *password);
+      g_value_set_boolean(VAL, *username != 0);
     
-#line 275 "mn-gmail-mailbox-properties.c"
+#line 273 "mn-gmail-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -288,10 +286,10 @@ g_value_set_object (VAL, (gpointer)self->_priv->size_group);
 
 
 
-#line 56 "mn-gmail-mailbox-properties.gob"
+#line 54 "mn-gmail-mailbox-properties.gob"
 static GObject * 
 ___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 295 "mn-gmail-mailbox-properties.c"
+#line 293 "mn-gmail-mailbox-properties.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -299,7 +297,7 @@ ___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::constructor"
 {
-#line 58 "mn-gmail-mailbox-properties.gob"
+#line 56 "mn-gmail-mailbox-properties.gob"
 	
     GObject *object;
     Self *self;
@@ -322,7 +320,7 @@ ___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_
 
     mn_tooltips_set_tips(selfp->tooltips,
 			 selfp->username_entry, _("Your Gmail username"),
-			 selfp->password_entry, _("Your Gmail password"),
+			 selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
 			 NULL);
 
     mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
@@ -330,80 +328,79 @@ ___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_
 				       NULL);
 
     g_signal_connect(selfp->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(selfp->password_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
     
     return object;
   }}
-#line 338 "mn-gmail-mailbox-properties.c"
+#line 335 "mn-gmail-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 93 "mn-gmail-mailbox-properties.gob"
+#line 90 "mn-gmail-mailbox-properties.gob"
 static void 
 mn_gmail_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 345 "mn-gmail-mailbox-properties.c"
+#line 342 "mn-gmail-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::entry_changed_h"
-#line 93 "mn-gmail-mailbox-properties.gob"
+#line 90 "mn-gmail-mailbox-properties.gob"
 	g_return_if_fail (editable != NULL);
-#line 93 "mn-gmail-mailbox-properties.gob"
+#line 90 "mn-gmail-mailbox-properties.gob"
 	g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 93 "mn-gmail-mailbox-properties.gob"
+#line 90 "mn-gmail-mailbox-properties.gob"
 	g_return_if_fail (user_data != NULL);
-#line 354 "mn-gmail-mailbox-properties.c"
+#line 351 "mn-gmail-mailbox-properties.c"
 {
-#line 96 "mn-gmail-mailbox-properties.gob"
+#line 93 "mn-gmail-mailbox-properties.gob"
 	
     Self *self = user_data;
     g_object_notify(G_OBJECT(self), "complete");
   }}
-#line 361 "mn-gmail-mailbox-properties.c"
+#line 358 "mn-gmail-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 101 "mn-gmail-mailbox-properties.gob"
+#line 98 "mn-gmail-mailbox-properties.gob"
 static gboolean 
 mn_gmail_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 367 "mn-gmail-mailbox-properties.c"
+#line 364 "mn-gmail-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_uri"
-#line 101 "mn-gmail-mailbox-properties.gob"
+#line 98 "mn-gmail-mailbox-properties.gob"
 	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 101 "mn-gmail-mailbox-properties.gob"
+#line 98 "mn-gmail-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 101 "mn-gmail-mailbox-properties.gob"
+#line 98 "mn-gmail-mailbox-properties.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 101 "mn-gmail-mailbox-properties.gob"
+#line 98 "mn-gmail-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 378 "mn-gmail-mailbox-properties.c"
+#line 375 "mn-gmail-mailbox-properties.c"
 {
-#line 104 "mn-gmail-mailbox-properties.gob"
+#line 101 "mn-gmail-mailbox-properties.gob"
 	
     if (MN_URI_IS_GMAIL(uri))
       {
 	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->username_entry), uri->username);
-	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), uri->password);
+	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), MN_POINTER_TO_STRING(uri->password));
 
 	return TRUE;
       }
     else
       return FALSE;
   }}
-#line 392 "mn-gmail-mailbox-properties.c"
+#line 389 "mn-gmail-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 116 "mn-gmail-mailbox-properties.gob"
+#line 113 "mn-gmail-mailbox-properties.gob"
 static MNURI * 
 mn_gmail_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 398 "mn-gmail-mailbox-properties.c"
+#line 395 "mn-gmail-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::get_uri"
-#line 116 "mn-gmail-mailbox-properties.gob"
+#line 113 "mn-gmail-mailbox-properties.gob"
 	g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 116 "mn-gmail-mailbox-properties.gob"
+#line 113 "mn-gmail-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 405 "mn-gmail-mailbox-properties.c"
+#line 402 "mn-gmail-mailbox-properties.c"
 {
-#line 118 "mn-gmail-mailbox-properties.gob"
+#line 115 "mn-gmail-mailbox-properties.gob"
 	
     const char *username;
     const char *password;
@@ -411,7 +408,7 @@ mn_gmail_mailbox_properties_get_uri (MNMailboxProperties * self)
     username = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->username_entry));
     password = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->password_entry));
 
-    return mn_uri_new_gmail(username, password);
+    return mn_uri_new_gmail(username, MN_STRING_TO_POINTER(password));
   }}
-#line 417 "mn-gmail-mailbox-properties.c"
+#line 414 "mn-gmail-mailbox-properties.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-gmail-mailbox-properties.gob b/src/mn-gmail-mailbox-properties.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-util.h"
@@ -41,12 +41,10 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
     get
     {
       const char *username;
-      const char *password;
 
       username = gtk_entry_get_text(GTK_ENTRY(selfp->username_entry));
-      password = gtk_entry_get_text(GTK_ENTRY(selfp->password_entry));
       
-      g_value_set_boolean(VAL, *username && *password);
+      g_value_set_boolean(VAL, *username != 0);
     };
       
   private GtkWidget *username_entry;
@@ -77,7 +75,7 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
 
     mn_tooltips_set_tips(selfp->tooltips,
 			 selfp->username_entry, _("Your Gmail username"),
-			 selfp->password_entry, _("Your Gmail password"),
+			 selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
 			 NULL);
 
     mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
@@ -85,7 +83,6 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
 				       NULL);
 
     g_signal_connect(selfp->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(selfp->password_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
     
     return object;
   }
@@ -105,7 +102,7 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
     if (MN_URI_IS_GMAIL(uri))
       {
 	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->username_entry), uri->username);
-	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), uri->password);
+	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), MN_POINTER_TO_STRING(uri->password));
 
 	return TRUE;
       }
@@ -122,6 +119,6 @@ class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties
     username = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->username_entry));
     password = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->password_entry));
 
-    return mn_uri_new_gmail(username, password);
+    return mn_uri_new_gmail(username, MN_STRING_TO_POINTER(password));
   }
 }
diff --git a/src/mn-gmail-mailbox.c b/src/mn-gmail-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,18 +26,17 @@
 #include "config.h"
 #include <stdio.h>
 #include <string.h>
-#include <stdlib.h>
 #include <time.h>
-#include <glib/gi18n-lib.h>
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#endif
+#include <glib/gi18n.h>
 #include "mn-mailbox-private.h"
 #include "mn-util.h"
 #include "mn-stock.h"
 #include "mn-sgml-ref.h"
 
-#define MESSAGE_IS_ERROR(message) \
-  (! SOUP_STATUS_IS_SUCCESSFUL((message)->status_code))
-
-#line 41 "mn-gmail-mailbox.c"
+#line 40 "mn-gmail-mailbox.c"
 /* self casting macros */
 #define SELF(x) MN_GMAIL_MAILBOX(x)
 #define SELF_CONST(x) MN_GMAIL_MAILBOX_CONST(x)
@@ -56,51 +55,39 @@ static void mn_gmail_mailbox_init (MNGmailMailbox * o) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_class_init (MNGmailMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_gmail_mailbox_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
 static gboolean ___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_gmail_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_end_check (MNGmailMailbox * self) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_get (MNGmailMailbox * self, const char * uri_string, SoupMessageCallbackFn callback) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupUri * uri, SoupMessageCallbackFn callback) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_get_from_message (MNGmailMailbox * self, SoupMessage * message, SoupMessageCallbackFn callback) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxResult ___4_mn_gmail_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox, GError ** err) G_GNUC_UNUSED;
+static SoupUri * mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err) G_GNUC_UNUSED;
+static char * mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err) G_GNUC_UNUSED;
+static char * mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
 static char * mn_gmail_mailbox_get_token (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_login (MNGmailMailbox * self) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_login_cb1 (SoupMessage * message, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_login_cb2 (SoupMessage * message, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_login_cb3 (SoupMessage * message, gpointer user_data) G_GNUC_UNUSED;
+static gboolean mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
 static char * mn_gmail_mailbox_build_cookie (MNGmailMailbox * self) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_check_internal (MNGmailMailbox * self) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_check_internal_cb (SoupMessage * message, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_parse_unread (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
+static gboolean mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err) G_GNUC_UNUSED;
 static time_t mn_gmail_mailbox_parse_date (const char * date) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
+static MNAuthenticatedMailboxClass *parent_class = NULL;
 
 /* Short form macros */
-#define self_end_check mn_gmail_mailbox_end_check
+#define self_soup_uri_new mn_gmail_mailbox_soup_uri_new
 #define self_get mn_gmail_mailbox_get
 #define self_get_from_uri mn_gmail_mailbox_get_from_uri
-#define self_get_from_message mn_gmail_mailbox_get_from_message
 #define self_dump_request mn_gmail_mailbox_dump_request
 #define self_dump_request_cb mn_gmail_mailbox_dump_request_cb
 #define self_dump_response mn_gmail_mailbox_dump_response
 #define self_dump_response_cb mn_gmail_mailbox_dump_response_cb
 #define self_get_token mn_gmail_mailbox_get_token
 #define self_login mn_gmail_mailbox_login
-#define self_login_cb1 mn_gmail_mailbox_login_cb1
-#define self_login_cb2 mn_gmail_mailbox_login_cb2
-#define self_login_cb3 mn_gmail_mailbox_login_cb3
 #define self_update_cookies mn_gmail_mailbox_update_cookies
 #define self_build_cookie mn_gmail_mailbox_build_cookie
 #define self_build_cookie_cb mn_gmail_mailbox_build_cookie_cb
-#define self_check_internal mn_gmail_mailbox_check_internal
-#define self_check_internal_cb mn_gmail_mailbox_check_internal_cb
-#define self_parse_unread mn_gmail_mailbox_parse_unread
+#define self_check mn_gmail_mailbox_check
 #define self_parse_date mn_gmail_mailbox_parse_date
 GType
 mn_gmail_mailbox_get_type (void)
@@ -121,7 +108,7 @@ mn_gmail_mailbox_get_type (void)
 			NULL
 		};
 
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNGmailMailbox", &info, (GTypeFlags)0);
+		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNGmailMailbox", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -153,9 +140,9 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 48 "mn-gmail-mailbox.gob"
+#line 46 "mn-gmail-mailbox.gob"
 	if(self->_priv->cookies) { g_hash_table_destroy ((gpointer) self->_priv->cookies); self->_priv->cookies = NULL; }
-#line 159 "mn-gmail-mailbox.c"
+#line 146 "mn-gmail-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -166,44 +153,45 @@ mn_gmail_mailbox_init (MNGmailMailbox * o G_GNUC_UNUSED)
 	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPrivate);
 }
 #undef __GOB_FUNCTION__
-#line 51 "mn-gmail-mailbox.gob"
+#line 49 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_class_init (MNGmailMailboxClass * class G_GNUC_UNUSED)
-#line 173 "mn-gmail-mailbox.c"
+#line 160 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
 
 	g_type_class_add_private(class,sizeof(MNGmailMailboxPrivate));
 	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
 
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
+	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
 
-#line 57 "mn-gmail-mailbox.gob"
+#line 55 "mn-gmail-mailbox.gob"
 	g_object_class->constructor = ___2_mn_gmail_mailbox_constructor;
-#line 70 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_gmail_mailbox_impl_is;
-#line 76 "mn-gmail-mailbox.gob"
-	mn_mailbox_class->impl_check = ___4_mn_gmail_mailbox_impl_check;
-#line 189 "mn-gmail-mailbox.c"
+#line 74 "mn-gmail-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_authenticated_check = ___4_mn_gmail_mailbox_impl_authenticated_check;
+#line 177 "mn-gmail-mailbox.c"
 	g_object_class->finalize = ___finalize;
  {
-#line 52 "mn-gmail-mailbox.gob"
+#line 50 "mn-gmail-mailbox.gob"
 
     MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_GMAIL;
     MN_MAILBOX_CLASS(class)->format = "Gmail";
   
-#line 197 "mn-gmail-mailbox.c"
+#line 185 "mn-gmail-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 57 "mn-gmail-mailbox.gob"
+#line 55 "mn-gmail-mailbox.gob"
 static GObject * 
 ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 207 "mn-gmail-mailbox.c"
+#line 195 "mn-gmail-mailbox.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -211,7 +199,7 @@ ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_p
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::constructor"
 {
-#line 59 "mn-gmail-mailbox.gob"
+#line 57 "mn-gmail-mailbox.gob"
 	
     GObject *object;
 
@@ -222,163 +210,158 @@ ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_p
 
     return object;
   }}
-#line 226 "mn-gmail-mailbox.c"
+#line 214 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 70 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
 static gboolean 
 ___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 233 "mn-gmail-mailbox.c"
+#line 221 "mn-gmail-mailbox.c"
 #define PARENT_HANDLER(___dummy,___uri) \
 	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
 		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
 		((gboolean )0))
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_is"
-#line 70 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 70 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 244 "mn-gmail-mailbox.c"
+#line 232 "mn-gmail-mailbox.c"
 {
-#line 72 "mn-gmail-mailbox.gob"
+#line 70 "mn-gmail-mailbox.gob"
 	
     return MN_URI_IS_GMAIL(uri);
   }}
-#line 250 "mn-gmail-mailbox.c"
+#line 238 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 76 "mn-gmail-mailbox.gob"
-static void 
-___4_mn_gmail_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 257 "mn-gmail-mailbox.c"
-#define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_check"
-#line 76 "mn-gmail-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 76 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 267 "mn-gmail-mailbox.c"
-{
-#line 78 "mn-gmail-mailbox.gob"
+#line 74 "mn-gmail-mailbox.gob"
+static MNAuthenticatedMailboxResult 
+___4_mn_gmail_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
+#line 245 "mn-gmail-mailbox.c"
+#define PARENT_HANDLER(___authenticated_mailbox,___err) \
+	((MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)? \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)(___authenticated_mailbox,___err): \
+		((MNAuthenticatedMailboxResult )0))
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_authenticated_check"
+#line 74 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (authenticated_mailbox != NULL, (MNAuthenticatedMailboxResult )0);
+#line 74 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (authenticated_mailbox), (MNAuthenticatedMailboxResult )0);
+#line 256 "mn-gmail-mailbox.c"
+{
+#line 77 "mn-gmail-mailbox.gob"
 	
-    Self *self = SELF(mailbox);
+    Self *self = SELF(authenticated_mailbox);
+    SoupSession *session;
+    gboolean authentication_failed;
+    MNAuthenticatedMailboxResult result;
+
+    session = mn_soup_session_sync_new();
+
+    if (! selfp->logged_in)
+      selfp->logged_in = self_login(self, session, &authentication_failed, err);
 
-    selfp->session = mn_soup_session_new();
     if (selfp->logged_in)
-      self_check_internal(self);
+      result = self_check(self, session, err) ? MN_AUTHENTICATED_MAILBOX_OK : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER;
     else
-      self_login(self);
+      result = authentication_failed ? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER;
+    
+    g_object_unref(session);
+
+    return result;
   }}
 #line 279 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 88 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_end_check (MNGmailMailbox * self)
+#line 98 "mn-gmail-mailbox.gob"
+static SoupUri * 
+mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err)
 #line 286 "mn-gmail-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::end_check"
-#line 88 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 88 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 293 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::soup_uri_new"
+#line 98 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (text_uri != NULL, (SoupUri * )0);
+#line 291 "mn-gmail-mailbox.c"
 {
-#line 90 "mn-gmail-mailbox.gob"
+#line 100 "mn-gmail-mailbox.gob"
 	
-    g_object_unref(selfp->session);
-    mn_mailbox_end_check(MN_MAILBOX(self));
+    SoupUri *uri;
+
+    uri = soup_uri_new(text_uri);
+    if (! uri)
+      g_set_error(err, 0, 0, _("unable to parse URI \"%s\""), text_uri);
+
+    return uri;
   }}
-#line 300 "mn-gmail-mailbox.c"
+#line 303 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 95 "mn-gmail-mailbox.gob"
-static gboolean 
-mn_gmail_mailbox_get (MNGmailMailbox * self, const char * uri_string, SoupMessageCallbackFn callback)
-#line 306 "mn-gmail-mailbox.c"
+#line 110 "mn-gmail-mailbox.gob"
+static char * 
+mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err)
+#line 309 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get"
-#line 95 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 95 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 95 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (uri_string != NULL, (gboolean )0);
-#line 95 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (callback != NULL, (gboolean )0);
-#line 317 "mn-gmail-mailbox.c"
+#line 110 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (char * )0);
+#line 110 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
+#line 110 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (session != NULL, (char * )0);
+#line 110 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
+#line 110 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (text_uri != NULL, (char * )0);
+#line 322 "mn-gmail-mailbox.c"
 {
-#line 99 "mn-gmail-mailbox.gob"
+#line 115 "mn-gmail-mailbox.gob"
 	
-    SoupMessage *message;
+    SoupUri *uri;
+    char *body;
 
-    message = soup_message_new(SOUP_METHOD_GET, uri_string);
-    if (message)
-      {
-	self_get_from_message(self, soup_message_new(SOUP_METHOD_GET, uri_string), callback);
-	return TRUE;
-      }
-    else
-      {
-	mn_mailbox_notice(MN_MAILBOX(self), _("unable to parse URI \"%s\""), uri_string);
-	return FALSE;
-      }
-  }}
-#line 335 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+    uri = self_soup_uri_new(text_uri, err);
+    if (! uri)
+      return NULL;
 
-#line 115 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupUri * uri, SoupMessageCallbackFn callback)
-#line 341 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_from_uri"
-#line 115 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 115 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 115 "mn-gmail-mailbox.gob"
-	g_return_if_fail (uri != NULL);
-#line 115 "mn-gmail-mailbox.gob"
-	g_return_if_fail (callback != NULL);
-#line 352 "mn-gmail-mailbox.c"
-{
-#line 119 "mn-gmail-mailbox.gob"
-	
-    self_get_from_message(self, soup_message_new_from_uri(SOUP_METHOD_GET, uri), callback);
+    body = self_get_from_uri(self, session, uri, err);
+    soup_uri_free(uri);
+
+    return body;
   }}
-#line 358 "mn-gmail-mailbox.c"
+#line 338 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 123 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_get_from_message (MNGmailMailbox * self, SoupMessage * message, SoupMessageCallbackFn callback)
-#line 364 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_from_message"
-#line 123 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 123 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 123 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 123 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 123 "mn-gmail-mailbox.gob"
-	g_return_if_fail (callback != NULL);
-#line 377 "mn-gmail-mailbox.c"
+#line 129 "mn-gmail-mailbox.gob"
+static char * 
+mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err)
+#line 344 "mn-gmail-mailbox.c"
 {
-#line 127 "mn-gmail-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_from_uri"
+#line 129 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (char * )0);
+#line 129 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
+#line 129 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (session != NULL, (char * )0);
+#line 129 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
+#line 129 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (uri != NULL, (char * )0);
+#line 357 "mn-gmail-mailbox.c"
+{
+#line 134 "mn-gmail-mailbox.gob"
 	
+    SoupMessage *message;
     char *cookie;
+    char *body = NULL;
 
+    message = soup_message_new_from_uri(SOUP_METHOD_GET, uri);
     soup_message_add_header(message->request_headers, "User-Agent", "Mail Notification");
 
     cookie = self_build_cookie(self);
@@ -389,29 +372,41 @@ mn_gmail_mailbox_get_from_message (MNGmailMailbox * self, SoupMessage * message,
       }
     
     self_dump_request(self, message);
-    soup_session_queue_message(selfp->session, message, callback, self);
-    /* message will be unreffed by libsoup after invoking the callback */
+    soup_session_send_message(session, message);
+
+    if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
+      {
+	body = g_strndup(message->response.body, message->response.length);
+	self_dump_response(self, message, body);
+	self_update_cookies(self, message);
+      }
+    else
+      g_set_error(err, 0, 0, _("unable to transfer data: %s"), message->reason_phrase);
+
+    g_object_unref(message);
+    
+    return body;
   }}
-#line 396 "mn-gmail-mailbox.c"
+#line 391 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 144 "mn-gmail-mailbox.gob"
+#line 166 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message)
-#line 402 "mn-gmail-mailbox.c"
+#line 397 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request"
-#line 144 "mn-gmail-mailbox.gob"
+#line 166 "mn-gmail-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 144 "mn-gmail-mailbox.gob"
+#line 166 "mn-gmail-mailbox.gob"
 	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 144 "mn-gmail-mailbox.gob"
+#line 166 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 144 "mn-gmail-mailbox.gob"
+#line 166 "mn-gmail-mailbox.gob"
 	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 413 "mn-gmail-mailbox.c"
+#line 408 "mn-gmail-mailbox.c"
 {
-#line 146 "mn-gmail-mailbox.gob"
+#line 168 "mn-gmail-mailbox.gob"
 	
     const SoupUri *suri;
     char *uri;
@@ -423,24 +418,24 @@ mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message)
 
     soup_message_foreach_header(message->request_headers, self_dump_request_cb, self);
   }}
-#line 427 "mn-gmail-mailbox.c"
+#line 422 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 158 "mn-gmail-mailbox.gob"
+#line 180 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data)
-#line 433 "mn-gmail-mailbox.c"
+#line 428 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request_cb"
-#line 158 "mn-gmail-mailbox.gob"
+#line 180 "mn-gmail-mailbox.gob"
 	g_return_if_fail (key != NULL);
-#line 158 "mn-gmail-mailbox.gob"
+#line 180 "mn-gmail-mailbox.gob"
 	g_return_if_fail (value != NULL);
-#line 158 "mn-gmail-mailbox.gob"
+#line 180 "mn-gmail-mailbox.gob"
 	g_return_if_fail (user_data != NULL);
-#line 442 "mn-gmail-mailbox.c"
+#line 437 "mn-gmail-mailbox.c"
 {
-#line 162 "mn-gmail-mailbox.gob"
+#line 184 "mn-gmail-mailbox.gob"
 	
     Self *self = user_data;
     const char *header_name = key;
@@ -448,59 +443,57 @@ mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_da
 
     mn_mailbox_notice(MN_MAILBOX(self), "> %s: %s", header_name, header_value);
   }}
-#line 452 "mn-gmail-mailbox.c"
+#line 447 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 170 "mn-gmail-mailbox.gob"
+#line 192 "mn-gmail-mailbox.gob"
 static void 
-mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message)
-#line 458 "mn-gmail-mailbox.c"
+mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body)
+#line 453 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response"
-#line 170 "mn-gmail-mailbox.gob"
+#line 192 "mn-gmail-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 170 "mn-gmail-mailbox.gob"
+#line 192 "mn-gmail-mailbox.gob"
 	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 170 "mn-gmail-mailbox.gob"
+#line 192 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 170 "mn-gmail-mailbox.gob"
+#line 192 "mn-gmail-mailbox.gob"
 	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 469 "mn-gmail-mailbox.c"
+#line 192 "mn-gmail-mailbox.gob"
+	g_return_if_fail (body != NULL);
+#line 466 "mn-gmail-mailbox.c"
 {
-#line 172 "mn-gmail-mailbox.gob"
+#line 196 "mn-gmail-mailbox.gob"
 	
-    char *body;
     char **lines;
     int i;
     
     soup_message_foreach_header(message->response_headers, self_dump_response_cb, self);
 
-    body = g_strndup(message->response.body, message->response.length);
     lines = g_strsplit(body, "\n", 0);
-    g_free(body);
-
     for (i = 0; lines[i]; i++)
       mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
     g_strfreev(lines);
   }}
-#line 487 "mn-gmail-mailbox.c"
+#line 480 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 188 "mn-gmail-mailbox.gob"
+#line 208 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data)
-#line 493 "mn-gmail-mailbox.c"
+#line 486 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response_cb"
-#line 188 "mn-gmail-mailbox.gob"
+#line 208 "mn-gmail-mailbox.gob"
 	g_return_if_fail (key != NULL);
-#line 188 "mn-gmail-mailbox.gob"
+#line 208 "mn-gmail-mailbox.gob"
 	g_return_if_fail (value != NULL);
-#line 188 "mn-gmail-mailbox.gob"
+#line 208 "mn-gmail-mailbox.gob"
 	g_return_if_fail (user_data != NULL);
-#line 502 "mn-gmail-mailbox.c"
+#line 495 "mn-gmail-mailbox.c"
 {
-#line 192 "mn-gmail-mailbox.gob"
+#line 212 "mn-gmail-mailbox.gob"
 	
     Self *self = user_data;
     const char *header_name = key;
@@ -508,7 +501,7 @@ mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_d
 
     mn_mailbox_notice(MN_MAILBOX(self), "< %s: %s", header_name, header_value);
   }}
-#line 512 "mn-gmail-mailbox.c"
+#line 505 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
 /**
@@ -524,21 +517,21 @@ mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_d
  * Return value: a newly allocated string containing the token or
  *               %NULL if not found.
  **/
-#line 213 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 static char * 
 mn_gmail_mailbox_get_token (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post)
-#line 531 "mn-gmail-mailbox.c"
+#line 524 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_token"
-#line 213 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (str != NULL, (char * )0);
-#line 213 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (pre != NULL, (char * )0);
-#line 213 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (post != NULL, (char * )0);
-#line 540 "mn-gmail-mailbox.c"
+#line 533 "mn-gmail-mailbox.c"
 {
-#line 219 "mn-gmail-mailbox.gob"
+#line 239 "mn-gmail-mailbox.gob"
 	
     char *token = NULL;
     char *pre_loc;
@@ -562,260 +555,141 @@ mn_gmail_mailbox_get_token (const char * str, const char * pre, const char * pos
     
     return token;
   }}
-#line 566 "mn-gmail-mailbox.c"
+#line 559 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 243 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_login (MNGmailMailbox * self)
-#line 572 "mn-gmail-mailbox.c"
+#line 263 "mn-gmail-mailbox.gob"
+static gboolean 
+mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err)
+#line 565 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login"
-#line 243 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 243 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 579 "mn-gmail-mailbox.c"
-{
-#line 245 "mn-gmail-mailbox.gob"
+#line 263 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 263 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
+#line 263 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (session != NULL, (gboolean )0);
+#line 263 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
+#line 263 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (authentication_failed != NULL, (gboolean )0);
+#line 578 "mn-gmail-mailbox.c"
+{
+#line 268 "mn-gmail-mailbox.gob"
 	
-    char *uri;
+    char *text_uri;
     char *escaped_username;
     char *escaped_password;
-    gboolean status;
+    char *body;
+    char *next_location;
+    char *query;
+    SoupUri *uri;
+    gboolean success;
 
-    g_return_if_fail(selfp->logged_in == FALSE);
+    g_return_val_if_fail(selfp->logged_in == FALSE, FALSE);
+    
+    mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
+    *authentication_failed = FALSE;
 
     if (selfp->cookies)
       g_hash_table_destroy(selfp->cookies);
     selfp->cookies = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-	
-    mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
 
 #define EXTRA_CHARS ";/?:@&=+$,"/* taken from RFC 2396 2.2 */
     escaped_username = soup_uri_encode(MN_MAILBOX(self)->uri->username, EXTRA_CHARS);
-    escaped_password = soup_uri_encode(MN_MAILBOX(self)->uri->password, EXTRA_CHARS);
-    uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
+    escaped_password = soup_uri_encode(MN_AUTHENTICATED_MAILBOX(self)->password, EXTRA_CHARS);
+    text_uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
     g_free(escaped_username);
     g_free(escaped_password);
 
-    status = self_get(self, uri, self_login_cb1);
-    g_free(uri);
+    body = self_get(self, session, text_uri, err);
+    g_free(text_uri);
 
-    if (! status)
-      {
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
-	self_end_check(self);
-      }
-  }}
-#line 612 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+    if (! body)
+      return FALSE;
 
-#line 276 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_login_cb1 (SoupMessage * message, gpointer user_data)
-#line 618 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login_cb1"
-#line 276 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 276 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 276 "mn-gmail-mailbox.gob"
-	g_return_if_fail (user_data != NULL);
-#line 627 "mn-gmail-mailbox.c"
-{
-#line 279 "mn-gmail-mailbox.gob"
-	
-    Self *self = user_data;
+    next_location = self_get_token(body, "top.location = \"", "\"", FALSE, FALSE);
+    g_free(body);
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
+    if (! next_location)
       {
-	char *body;
-	char *next_location;
-
-	self_dump_response(self, message);
-	self_update_cookies(self, message);
-
-	body = g_strndup(message->response.body, message->response.length);
- 	next_location = self_get_token(body, "top.location = \"", "\"", FALSE, FALSE);
-	g_free(body);
-
-	if (next_location)
-	  {
-	    char *query;	/* pointer into next_location */
-	    char *uri;
-	    SoupUri *suri;
-	    gboolean status;
-
-	    /*
-	     * The following kludges work around http://bugzilla.ximian.com/show_bug.cgi?id=66516.
-	     * FIXME: remove it and bump libsoup version requirement
-	     * when the bug is fixed.
-	     */
-
-	    query = strchr(next_location, '?');
-	    if (query)
-	      *query = 0;
-
-	    uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
-	    suri = soup_uri_new(uri);
-
-	    if (suri)
-	      {
-		if (query)
-		  {
-		    suri->query = g_strdup(query + 1);
-		    suri->broken_encoding = TRUE;
-		  }
-
-		self_get_from_uri(self, suri, self_login_cb2);
-		soup_uri_free(suri);
-		
-		status = TRUE;
-	      }
-	    else
-	      {
-		mn_mailbox_notice(MN_MAILBOX(self), _("unable to parse URI \"%s\""), uri);
-		status = FALSE;
-	      }
-
-	    g_free(uri);
-	    g_free(next_location);
-	    
-	    if (status)
-	      return;
-	  }
-
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
+	*authentication_failed = TRUE;
+	goto failed;
       }
-    
-    /* if this point is reached, an error occurred */
-    self_end_check(self);
-  }}
-#line 699 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 349 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_login_cb2 (SoupMessage * message, gpointer user_data)
-#line 705 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login_cb2"
-#line 349 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 349 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 349 "mn-gmail-mailbox.gob"
-	g_return_if_fail (user_data != NULL);
-#line 714 "mn-gmail-mailbox.c"
-{
-#line 352 "mn-gmail-mailbox.gob"
-	
-    Self *self = user_data;
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	char *body;
-	char *next_location;
+    /*
+     * The following kludges work around
+     * http://bugzilla.ximian.com/show_bug.cgi?id=66516.
+     *
+     * FIXME: remove it and bump libsoup version requirement when the
+     * bug is fixed.
+     */
 
-	self_dump_response(self, message);
-	self_update_cookies(self, message);
-	
-	body = g_strndup(message->response.body, message->response.length);
-	next_location = self_get_token(body, "location.replace(\"", "\")", FALSE, FALSE);
-	g_free(body);
+    query = strchr(next_location, '?');
+    if (query)
+      *query = 0;
 
-	if (next_location)
-	  {
-	    gboolean status;
+    text_uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
+    g_free(next_location);
 
-	    status = self_get(self, next_location, self_login_cb3);
-	    g_free(next_location);
+    uri = self_soup_uri_new(text_uri, err);
+    g_free(text_uri);
 
-	    if (status)
-	      return;
-	  }
+    if (! uri)
+      return FALSE;
 
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
+    if (query)
+      {
+	uri->query = g_strdup(query + 1);
+	uri->broken_encoding = TRUE;
       }
 
-    /* if this point is reached, an error occurred */
-    self_end_check(self);
-  }}
-#line 751 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+    body = self_get_from_uri(self, session, uri, err);
+    soup_uri_free(uri);
 
-#line 387 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_login_cb3 (SoupMessage * message, gpointer user_data)
-#line 757 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login_cb3"
-#line 387 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 387 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 387 "mn-gmail-mailbox.gob"
-	g_return_if_fail (user_data != NULL);
-#line 766 "mn-gmail-mailbox.c"
-{
-#line 390 "mn-gmail-mailbox.gob"
-	
-    Self *self = user_data;
+    if (! body)
+      return FALSE;
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	char *body;
-	char *token;
+    next_location = self_get_token(body, "location.replace(\"", "\")", FALSE, FALSE);
+    g_free(body);
 
-	self_dump_response(self, message);
-	self_update_cookies(self, message);
+    if (! next_location)
+      goto failed;
 
-	body = g_strndup(message->response.body, message->response.length);
-	token = strstr(body, "frame name=js src=/gmail");
-	
-	if (token)
-	  {
-	    selfp->logged_in = TRUE;
-	    mn_mailbox_notice(MN_MAILBOX(self), _("successfully logged in"));
-	    self_check_internal(self);
-	    
-	    return;
-	  }
+    body = self_get(self, session, next_location, err);
+    g_free(next_location);
 
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
-      }
+    success = strstr(body, "frame name=js src=/gmail") != NULL;
+    g_free(body);
 
-    /* if this point is reached, an error occurred */
-    self_end_check(self);
+    if (success)
+      return TRUE;
+    
+  failed:
+    g_set_error(err, 0, 0, _("login failed"));
+    return FALSE;
   }}
-#line 800 "mn-gmail-mailbox.c"
+#line 674 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 422 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
-#line 806 "mn-gmail-mailbox.c"
+#line 680 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::update_cookies"
-#line 422 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 422 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 422 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 422 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 817 "mn-gmail-mailbox.c"
+#line 691 "mn-gmail-mailbox.c"
 {
-#line 424 "mn-gmail-mailbox.gob"
+#line 364 "mn-gmail-mailbox.gob"
 	
     const GSList *set_cookie_headers;
     const GSList *l;
@@ -844,22 +718,22 @@ mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
 	  }
       }
   }}
-#line 848 "mn-gmail-mailbox.c"
+#line 722 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 453 "mn-gmail-mailbox.gob"
+#line 393 "mn-gmail-mailbox.gob"
 static char * 
 mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
-#line 854 "mn-gmail-mailbox.c"
+#line 728 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie"
-#line 453 "mn-gmail-mailbox.gob"
+#line 393 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (self != NULL, (char * )0);
-#line 453 "mn-gmail-mailbox.gob"
+#line 393 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 861 "mn-gmail-mailbox.c"
+#line 735 "mn-gmail-mailbox.c"
 {
-#line 455 "mn-gmail-mailbox.gob"
+#line 395 "mn-gmail-mailbox.gob"
 	
     GString *cookie;
     char *str;
@@ -877,17 +751,17 @@ mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
 
     return str;
   }}
-#line 881 "mn-gmail-mailbox.c"
+#line 755 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 473 "mn-gmail-mailbox.gob"
+#line 413 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
-#line 887 "mn-gmail-mailbox.c"
+#line 761 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie_cb"
 {
-#line 475 "mn-gmail-mailbox.gob"
+#line 415 "mn-gmail-mailbox.gob"
 	
     GString *cookie = user_data;
 
@@ -896,192 +770,149 @@ mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_da
 
     g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
   }}
-#line 900 "mn-gmail-mailbox.c"
+#line 774 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 484 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_check_internal (MNGmailMailbox * self)
-#line 906 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check_internal"
-#line 484 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 484 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 913 "mn-gmail-mailbox.c"
-{
-#line 486 "mn-gmail-mailbox.gob"
-	
-    mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
-
-    if (! self_get(self, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", self_check_internal_cb))
-      {
-	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to search for unread mail"));
-	self_end_check(self);
-      }
-  }}
-#line 925 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 496 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_check_internal_cb (SoupMessage * message, gpointer user_data)
-#line 931 "mn-gmail-mailbox.c"
+#line 424 "mn-gmail-mailbox.gob"
+static gboolean 
+mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err)
+#line 780 "mn-gmail-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check_internal_cb"
-#line 496 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 496 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 938 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check"
+#line 424 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 424 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
+#line 424 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (session != NULL, (gboolean )0);
+#line 424 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
+#line 791 "mn-gmail-mailbox.c"
 {
-#line 499 "mn-gmail-mailbox.gob"
+#line 426 "mn-gmail-mailbox.gob"
 	
-    Self *self = user_data;
+    char *body;
+    char *results;
+    gboolean status = FALSE;
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	self_dump_response(self, message);
-	self_parse_unread(self, message);
-      }
+    g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
 
-    self_end_check(self);
-  }}
-#line 954 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+    mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
 
-#line 513 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_parse_unread (MNGmailMailbox * self, SoupMessage * message)
-#line 960 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_unread"
-#line 513 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 513 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 513 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 513 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 971 "mn-gmail-mailbox.c"
-{
-#line 515 "mn-gmail-mailbox.gob"
-	
-    MNMailbox *mailbox = MN_MAILBOX(self);
-    int count = -1;
-    GSList *messages = NULL;
-    char *body;
-    char *results;
-  
-    body = g_strndup(message->response.body, message->response.length);
+    body = self_get(self, session, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", err);
+    if (! body)
+      return FALSE;
 
     results = strstr(body, "Search results for: is:unread\",\"");
     if (results)
       {
-	char *count_str;
-	
-	count_str = self_get_token(results + 32, ",", ",", FALSE, FALSE);
-	if (count_str)
+	GSList *messages = NULL;
+	char *p = strstr(results + 32, ",1,");
+
+	while (p)
 	  {
-	    if (mn_str_isnumeric(count_str))
-	      count = atoi(count_str);
-	    g_free(count_str);
-	  }
-      }
+	    char *inbox_marker;
+	    char *next_p;
 
-    if (count != -1)
-      {
-	char *p = results + 32;
+	    /*
+	     * FIXME: we should parse the list instead of using field
+	     * separator matching (this breaks if a separator is
+	     * present in a field value).
+	     */
 
-	while (p && (p = strstr(p, ",1,0")))
-	  {
-	    char *date;
-	    char *sender_email;
-	    char *sender_name;
-	    char *subject;
-
-	    time_t sent_time = 0;
-	    char *from = NULL;
-	    char *expanded_subject = NULL;
-	    
-	    date = self_get_token(p, "\\<b\\>", "\\</b\\>", FALSE, FALSE);
-	    sender_email = self_get_token(p, "<span id=\\'_user_", "\\'", FALSE, FALSE);
-	    sender_name = self_get_token(p, "\\'\\>\\<b\\>", "\\</b\\>", FALSE, FALSE);
-	    subject = self_get_token(p, ";\",\"\\<b\\>", "\\</b\\>", FALSE, FALSE);
+	    p += 3;		/* skip ,1, */
+	    inbox_marker = strstr(p, ",[\"^i\"");
+	    next_p = strstr(p, ",1,");
 
-	    if (date)
+	    if (inbox_marker && (! next_p || inbox_marker < next_p)) /* msg from inbox */
 	      {
-		sent_time = self_parse_date(date);
-		g_free(date);
-	      }
-		
-	    if (sender_name && sender_email)
-	      {
-		char *tmp;
+		char *date;
+		char *sender_email;
+		char *sender_name;
+		char *subject;
 
-		tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
-		from = mn_sgml_ref_expand(tmp);
-		g_free(tmp);
-	      }
-	    else if (sender_name)
-	      from = mn_sgml_ref_expand(sender_name);
-	    else if (sender_email)
-	      from = mn_sgml_ref_expand(sender_email);
+		time_t sent_time = 0;
+		char *from = NULL;
+		char *expanded_subject = NULL;
 
-	    g_free(sender_email);
-	    g_free(sender_name);
+		date = self_get_token(p, "\\<b\\>", "\\</b\\>", FALSE, FALSE);
+		sender_email = self_get_token(p, "<span id=\\'_user_", "\\'", FALSE, FALSE);
+		sender_name = self_get_token(p, "\\'\\>\\<b\\>", "\\</b\\>", FALSE, FALSE);
+		subject = self_get_token(p, ";\",\"\\<b\\>", "\\</b\\>", FALSE, FALSE);
 
-	    if (subject)
-	      {
-		if (strcmp(subject, "(no subject)"))
-		  expanded_subject = mn_sgml_ref_expand(subject);
-		g_free(subject);
+		if (date)
+		  {
+		    sent_time = self_parse_date(date);
+		    g_free(date);
+		  }
+		
+		if (sender_name && sender_email)
+		  {
+		    char *tmp;
+		    
+		    tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
+		    from = mn_sgml_ref_expand(tmp);
+		    g_free(tmp);
+		  }
+		else if (sender_name)
+		  from = mn_sgml_ref_expand(sender_name);
+		else if (sender_email)
+		  from = mn_sgml_ref_expand(sender_email);
+		
+		g_free(sender_email);
+		g_free(sender_name);
+		
+		if (subject)
+		  {
+		    if (strcmp(subject, "(no subject)"))
+		      expanded_subject = mn_sgml_ref_expand(subject);
+		    g_free(subject);
+		  }
+	    
+		messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self)->uri,
+								   NULL,
+								   sent_time,
+								   NULL,
+								   from,
+								   expanded_subject));
+		
+		g_free(from);
+		g_free(expanded_subject);
 	      }
 	    
-	    messages = g_slist_append(messages, mn_message_new(mailbox->uri,
-							       NULL,
-							       sent_time,
-							       NULL,
-							       from,
-							       expanded_subject));
+	    p = next_p;
+	  }
 
-	    g_free(from);
-	    g_free(expanded_subject);
+	GDK_THREADS_ENTER();
+	mn_mailbox_set_has_new(MN_MAILBOX(self), messages != NULL);
+	mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
 
-	    p = strstr(p, "[\"^i\"]");
-	  }
+	mn_g_object_slist_free(messages);
+	status = TRUE;
       }
+    else
+      g_set_error(err, 0, 0, _("unable to parse Gmail data"));
 
     g_free(body);
 
-    if (count == -1)
-      mn_mailbox_set_error(mailbox, _("unable to parse Gmail data"));
-    else
-      {
-	mn_mailbox_set_has_new(mailbox, count != 0);
-	mn_mailbox_set_messages(mailbox, messages);
-      }
-
-    mn_g_object_slist_free(messages);
+    return status;
   }}
-#line 1072 "mn-gmail-mailbox.c"
+#line 903 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 614 "mn-gmail-mailbox.gob"
+#line 536 "mn-gmail-mailbox.gob"
 static time_t 
 mn_gmail_mailbox_parse_date (const char * date)
-#line 1078 "mn-gmail-mailbox.c"
+#line 909 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_date"
-#line 614 "mn-gmail-mailbox.gob"
+#line 536 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (date != NULL, (time_t )0);
-#line 1083 "mn-gmail-mailbox.c"
+#line 914 "mn-gmail-mailbox.c"
 {
-#line 616 "mn-gmail-mailbox.gob"
+#line 538 "mn-gmail-mailbox.gob"
 	
     time_t t = 0;
 #ifdef HAVE_TIMEGM
@@ -1135,5 +966,5 @@ mn_gmail_mailbox_parse_date (const char * date)
 
     return t;
   }}
-#line 1139 "mn-gmail-mailbox.c"
+#line 970 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-gmail-mailbox.gob b/src/mn-gmail-mailbox.gob
@@ -19,7 +19,7 @@
 requires 2.0.10
 
 %headertop{
-#include "mn-mailbox.h"
+#include "mn-authenticated-mailbox.h"
 %}
 
 %privateheader{
@@ -30,21 +30,19 @@ requires 2.0.10
 #include "config.h"
 #include <stdio.h>
 #include <string.h>
-#include <stdlib.h>
 #include <time.h>
-#include <glib/gi18n-lib.h>
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#endif
+#include <glib/gi18n.h>
 #include "mn-mailbox-private.h"
 #include "mn-util.h"
 #include "mn-stock.h"
 #include "mn-sgml-ref.h"
-
-#define MESSAGE_IS_ERROR(message) \
-  (! SOUP_STATUS_IS_SUCCESSFUL((message)->status_code))
 %}
 
-class MN:Gmail:Mailbox from MN:Mailbox
+class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
 {
-  private SoupSession *session;
   private GHashTable *cookies destroywith g_hash_table_destroy;
   private gboolean logged_in;
 
@@ -73,60 +71,72 @@ class MN:Gmail:Mailbox from MN:Mailbox
     return MN_URI_IS_GMAIL(uri);
   }
 
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *mailbox (check null type))
+  override (MN:Authenticated:Mailbox) MNAuthenticatedMailboxResult
+    impl_authenticated_check (MN:Authenticated:Mailbox *authenticated_mailbox (check null type),
+			      GError **err)
   {
-    Self *self = SELF(mailbox);
+    Self *self = SELF(authenticated_mailbox);
+    SoupSession *session;
+    gboolean authentication_failed;
+    MNAuthenticatedMailboxResult result;
+
+    session = mn_soup_session_sync_new();
+
+    if (! selfp->logged_in)
+      selfp->logged_in = self_login(self, session, &authentication_failed, err);
 
-    selfp->session = mn_soup_session_new();
     if (selfp->logged_in)
-      self_check_internal(self);
+      result = self_check(self, session, err) ? MN_AUTHENTICATED_MAILBOX_OK : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER;
     else
-      self_login(self);
+      result = authentication_failed ? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER;
+    
+    g_object_unref(session);
+
+    return result;
   }
   
-  private void
-    end_check (self)
+  private SoupUri *
+    soup_uri_new (const char *text_uri (check null), GError **err)
   {
-    g_object_unref(selfp->session);
-    mn_mailbox_end_check(MN_MAILBOX(self));
+    SoupUri *uri;
+
+    uri = soup_uri_new(text_uri);
+    if (! uri)
+      g_set_error(err, 0, 0, _("unable to parse URI \"%s\""), text_uri);
+
+    return uri;
   }
   
-  private gboolean
+  private char *
     get (self,
-	 const char *uri_string (check null),
-	 SoupMessageCallbackFn callback (check null))
+	 Soup:Session *session (check null type),
+	 const char *text_uri (check null),
+	 GError **err)
   {
-    SoupMessage *message;
+    SoupUri *uri;
+    char *body;
 
-    message = soup_message_new(SOUP_METHOD_GET, uri_string);
-    if (message)
-      {
-	self_get_from_message(self, soup_message_new(SOUP_METHOD_GET, uri_string), callback);
-	return TRUE;
-      }
-    else
-      {
-	mn_mailbox_notice(MN_MAILBOX(self), _("unable to parse URI \"%s\""), uri_string);
-	return FALSE;
-      }
+    uri = self_soup_uri_new(text_uri, err);
+    if (! uri)
+      return NULL;
+
+    body = self_get_from_uri(self, session, uri, err);
+    soup_uri_free(uri);
+
+    return body;
   }
   
-  private void
+  private char *
     get_from_uri (self,
+		  Soup:Session *session (check null type),
 		  SoupUri *uri (check null),
-		  SoupMessageCallbackFn callback (check null))
-  {
-    self_get_from_message(self, soup_message_new_from_uri(SOUP_METHOD_GET, uri), callback);
-  }
-  
-  private void
-    get_from_message (self,
-		      Soup:Message *message (check null type),
-		      SoupMessageCallbackFn callback (check null))
+		  GError **err)
   {
+    SoupMessage *message;
     char *cookie;
+    char *body = NULL;
 
+    message = soup_message_new_from_uri(SOUP_METHOD_GET, uri);
     soup_message_add_header(message->request_headers, "User-Agent", "Mail Notification");
 
     cookie = self_build_cookie(self);
@@ -137,8 +147,20 @@ class MN:Gmail:Mailbox from MN:Mailbox
       }
     
     self_dump_request(self, message);
-    soup_session_queue_message(selfp->session, message, callback, self);
-    /* message will be unreffed by libsoup after invoking the callback */
+    soup_session_send_message(session, message);
+
+    if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
+      {
+	body = g_strndup(message->response.body, message->response.length);
+	self_dump_response(self, message, body);
+	self_update_cookies(self, message);
+      }
+    else
+      g_set_error(err, 0, 0, _("unable to transfer data: %s"), message->reason_phrase);
+
+    g_object_unref(message);
+    
+    return body;
   }
   
   private void
@@ -168,18 +190,16 @@ class MN:Gmail:Mailbox from MN:Mailbox
   }
   
   private void
-    dump_response (self, Soup:Message *message (check null type))
+    dump_response (self,
+		   Soup:Message *message (check null type),
+		   const char *body (check null))
   {
-    char *body;
     char **lines;
     int i;
     
     soup_message_foreach_header(message->response_headers, self_dump_response_cb, self);
 
-    body = g_strndup(message->response.body, message->response.length);
     lines = g_strsplit(body, "\n", 0);
-    g_free(body);
-
     for (i = 0; lines[i]; i++)
       mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
     g_strfreev(lines);
@@ -240,186 +260,106 @@ class MN:Gmail:Mailbox from MN:Mailbox
     return token;
   }
 
-  private void
-    login (self)
+  private gboolean
+    login (self,
+	   Soup:Session *session (check null type),
+	   gboolean *authentication_failed (check null),
+	   GError **err)
   {
-    char *uri;
+    char *text_uri;
     char *escaped_username;
     char *escaped_password;
-    gboolean status;
+    char *body;
+    char *next_location;
+    char *query;
+    SoupUri *uri;
+    gboolean success;
 
-    g_return_if_fail(selfp->logged_in == FALSE);
+    g_return_val_if_fail(selfp->logged_in == FALSE, FALSE);
+    
+    mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
+    *authentication_failed = FALSE;
 
     if (selfp->cookies)
       g_hash_table_destroy(selfp->cookies);
     selfp->cookies = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-	
-    mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
 
 #define EXTRA_CHARS ";/?:@&=+$,"/* taken from RFC 2396 2.2 */
     escaped_username = soup_uri_encode(MN_MAILBOX(self)->uri->username, EXTRA_CHARS);
-    escaped_password = soup_uri_encode(MN_MAILBOX(self)->uri->password, EXTRA_CHARS);
-    uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
+    escaped_password = soup_uri_encode(MN_AUTHENTICATED_MAILBOX(self)->password, EXTRA_CHARS);
+    text_uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
     g_free(escaped_username);
     g_free(escaped_password);
 
-    status = self_get(self, uri, self_login_cb1);
-    g_free(uri);
+    body = self_get(self, session, text_uri, err);
+    g_free(text_uri);
 
-    if (! status)
-      {
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
-	self_end_check(self);
-      }
-  }
-  
-  private void
-    login_cb1 (Soup:Message *message (check null type),
-	       gpointer user_data (check null))
-  {
-    Self *self = user_data;
+    if (! body)
+      return FALSE;
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	char *body;
-	char *next_location;
-
-	self_dump_response(self, message);
-	self_update_cookies(self, message);
-
-	body = g_strndup(message->response.body, message->response.length);
- 	next_location = self_get_token(body, "top.location = \"", "\"", FALSE, FALSE);
-	g_free(body);
-
-	if (next_location)
-	  {
-	    char *query;	/* pointer into next_location */
-	    char *uri;
-	    SoupUri *suri;
-	    gboolean status;
+    next_location = self_get_token(body, "top.location = \"", "\"", FALSE, FALSE);
+    g_free(body);
 
-	    /*
-	     * The following kludges work around http://bugzilla.ximian.com/show_bug.cgi?id=66516.
-	     * FIXME: remove it and bump libsoup version requirement
-	     * when the bug is fixed.
-	     */
+    if (! next_location)
+      {
+	*authentication_failed = TRUE;
+	goto failed;
+      }
 
-	    query = strchr(next_location, '?');
-	    if (query)
-	      *query = 0;
+    /*
+     * The following kludges work around
+     * http://bugzilla.ximian.com/show_bug.cgi?id=66516.
+     *
+     * FIXME: remove it and bump libsoup version requirement when the
+     * bug is fixed.
+     */
 
-	    uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
-	    suri = soup_uri_new(uri);
+    query = strchr(next_location, '?');
+    if (query)
+      *query = 0;
 
-	    if (suri)
-	      {
-		if (query)
-		  {
-		    suri->query = g_strdup(query + 1);
-		    suri->broken_encoding = TRUE;
-		  }
+    text_uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
+    g_free(next_location);
 
-		self_get_from_uri(self, suri, self_login_cb2);
-		soup_uri_free(suri);
-		
-		status = TRUE;
-	      }
-	    else
-	      {
-		mn_mailbox_notice(MN_MAILBOX(self), _("unable to parse URI \"%s\""), uri);
-		status = FALSE;
-	      }
+    uri = self_soup_uri_new(text_uri, err);
+    g_free(text_uri);
 
-	    g_free(uri);
-	    g_free(next_location);
-	    
-	    if (status)
-	      return;
-	  }
+    if (! uri)
+      return FALSE;
 
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
+    if (query)
+      {
+	uri->query = g_strdup(query + 1);
+	uri->broken_encoding = TRUE;
       }
-    
-    /* if this point is reached, an error occurred */
-    self_end_check(self);
-  }
-  
-  private void
-    login_cb2 (Soup:Message *message (check null type),
-	       gpointer user_data (check null))
-  {
-    Self *self = user_data;
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	char *body;
-	char *next_location;
+    body = self_get_from_uri(self, session, uri, err);
+    soup_uri_free(uri);
 
-	self_dump_response(self, message);
-	self_update_cookies(self, message);
-	
-	body = g_strndup(message->response.body, message->response.length);
-	next_location = self_get_token(body, "location.replace(\"", "\")", FALSE, FALSE);
-	g_free(body);
+    if (! body)
+      return FALSE;
 
-	if (next_location)
-	  {
-	    gboolean status;
+    next_location = self_get_token(body, "location.replace(\"", "\")", FALSE, FALSE);
+    g_free(body);
 
-	    status = self_get(self, next_location, self_login_cb3);
-	    g_free(next_location);
+    if (! next_location)
+      goto failed;
 
-	    if (status)
-	      return;
-	  }
+    body = self_get(self, session, next_location, err);
+    g_free(next_location);
 
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
-      }
+    success = strstr(body, "frame name=js src=/gmail") != NULL;
+    g_free(body);
 
-    /* if this point is reached, an error occurred */
-    self_end_check(self);
+    if (success)
+      return TRUE;
+    
+  failed:
+    g_set_error(err, 0, 0, _("login failed"));
+    return FALSE;
   }
   
   private void
-    login_cb3 (Soup:Message *message (check null type),
-	       gpointer user_data (check null))
-  {
-    Self *self = user_data;
-
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	char *body;
-	char *token;
-
-	self_dump_response(self, message);
-	self_update_cookies(self, message);
-
-	body = g_strndup(message->response.body, message->response.length);
-	token = strstr(body, "frame name=js src=/gmail");
-	
-	if (token)
-	  {
-	    selfp->logged_in = TRUE;
-	    mn_mailbox_notice(MN_MAILBOX(self), _("successfully logged in"));
-	    self_check_internal(self);
-	    
-	    return;
-	  }
-
-	mn_mailbox_set_error(MN_MAILBOX(self), _("login failed"));
-      }
-
-    /* if this point is reached, an error occurred */
-    self_end_check(self);
-  }
-
-  private void
     update_cookies (self, Soup:Message *message (check null type))
   {
     const GSList *set_cookie_headers;
@@ -481,136 +421,118 @@ class MN:Gmail:Mailbox from MN:Mailbox
     g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
   }
   
-  private void
-    check_internal (self)
-  {
-    mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
-
-    if (! self_get(self, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", self_check_internal_cb))
-      {
-	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to search for unread mail"));
-	self_end_check(self);
-      }
-  }
-
-  private void
-    check_internal_cb (Soup:Message *message (check null type),
-		       gpointer user_data)
+  private gboolean
+    check (self, Soup:Session *session (check null type), GError **err)
   {
-    Self *self = user_data;
+    char *body;
+    char *results;
+    gboolean status = FALSE;
 
-    if (MESSAGE_IS_ERROR(message))
-      mn_mailbox_set_error(MN_MAILBOX(self), _("unable to transfer data: %s"), message->reason_phrase);
-    else
-      {
-	self_dump_response(self, message);
-	self_parse_unread(self, message);
-      }
+    g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
 
-    self_end_check(self);
-  }
+    mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
 
-  private void
-    parse_unread (self, Soup:Message *message (check null type))
-  {
-    MNMailbox *mailbox = MN_MAILBOX(self);
-    int count = -1;
-    GSList *messages = NULL;
-    char *body;
-    char *results;
-  
-    body = g_strndup(message->response.body, message->response.length);
+    body = self_get(self, session, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", err);
+    if (! body)
+      return FALSE;
 
     results = strstr(body, "Search results for: is:unread\",\"");
     if (results)
       {
-	char *count_str;
-	
-	count_str = self_get_token(results + 32, ",", ",", FALSE, FALSE);
-	if (count_str)
+	GSList *messages = NULL;
+	char *p = strstr(results + 32, ",1,");
+
+	while (p)
 	  {
-	    if (mn_str_isnumeric(count_str))
-	      count = atoi(count_str);
-	    g_free(count_str);
-	  }
-      }
+	    char *inbox_marker;
+	    char *next_p;
 
-    if (count != -1)
-      {
-	char *p = results + 32;
+	    /*
+	     * FIXME: we should parse the list instead of using field
+	     * separator matching (this breaks if a separator is
+	     * present in a field value).
+	     */
 
-	while (p && (p = strstr(p, ",1,0")))
-	  {
-	    char *date;
-	    char *sender_email;
-	    char *sender_name;
-	    char *subject;
-
-	    time_t sent_time = 0;
-	    char *from = NULL;
-	    char *expanded_subject = NULL;
-	    
-	    date = self_get_token(p, "\\<b\\>", "\\</b\\>", FALSE, FALSE);
-	    sender_email = self_get_token(p, "<span id=\\'_user_", "\\'", FALSE, FALSE);
-	    sender_name = self_get_token(p, "\\'\\>\\<b\\>", "\\</b\\>", FALSE, FALSE);
-	    subject = self_get_token(p, ";\",\"\\<b\\>", "\\</b\\>", FALSE, FALSE);
+	    p += 3;		/* skip ,1, */
+	    inbox_marker = strstr(p, ",[\"^i\"");
+	    next_p = strstr(p, ",1,");
 
-	    if (date)
+	    if (inbox_marker && (! next_p || inbox_marker < next_p)) /* msg from inbox */
 	      {
-		sent_time = self_parse_date(date);
-		g_free(date);
-	      }
-		
-	    if (sender_name && sender_email)
-	      {
-		char *tmp;
+		char *date;
+		char *sender_email;
+		char *sender_name;
+		char *subject;
 
-		tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
-		from = mn_sgml_ref_expand(tmp);
-		g_free(tmp);
-	      }
-	    else if (sender_name)
-	      from = mn_sgml_ref_expand(sender_name);
-	    else if (sender_email)
-	      from = mn_sgml_ref_expand(sender_email);
+		time_t sent_time = 0;
+		char *from = NULL;
+		char *expanded_subject = NULL;
 
-	    g_free(sender_email);
-	    g_free(sender_name);
+		date = self_get_token(p, "\\<b\\>", "\\</b\\>", FALSE, FALSE);
+		sender_email = self_get_token(p, "<span id=\\'_user_", "\\'", FALSE, FALSE);
+		sender_name = self_get_token(p, "\\'\\>\\<b\\>", "\\</b\\>", FALSE, FALSE);
+		subject = self_get_token(p, ";\",\"\\<b\\>", "\\</b\\>", FALSE, FALSE);
 
-	    if (subject)
-	      {
-		if (strcmp(subject, "(no subject)"))
-		  expanded_subject = mn_sgml_ref_expand(subject);
-		g_free(subject);
+		if (date)
+		  {
+		    sent_time = self_parse_date(date);
+		    g_free(date);
+		  }
+		
+		if (sender_name && sender_email)
+		  {
+		    char *tmp;
+		    
+		    tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
+		    from = mn_sgml_ref_expand(tmp);
+		    g_free(tmp);
+		  }
+		else if (sender_name)
+		  from = mn_sgml_ref_expand(sender_name);
+		else if (sender_email)
+		  from = mn_sgml_ref_expand(sender_email);
+		
+		g_free(sender_email);
+		g_free(sender_name);
+		
+		if (subject)
+		  {
+		    if (strcmp(subject, "(no subject)"))
+		      expanded_subject = mn_sgml_ref_expand(subject);
+		    g_free(subject);
+		  }
+	    
+		messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self)->uri,
+								   NULL,
+								   sent_time,
+								   NULL,
+								   from,
+								   expanded_subject));
+		
+		g_free(from);
+		g_free(expanded_subject);
 	      }
 	    
-	    messages = g_slist_append(messages, mn_message_new(mailbox->uri,
-							       NULL,
-							       sent_time,
-							       NULL,
-							       from,
-							       expanded_subject));
+	    p = next_p;
+	  }
 
-	    g_free(from);
-	    g_free(expanded_subject);
+	GDK_THREADS_ENTER();
+	mn_mailbox_set_has_new(MN_MAILBOX(self), messages != NULL);
+	mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
 
-	    p = strstr(p, "[\"^i\"]");
-	  }
+	mn_g_object_slist_free(messages);
+	status = TRUE;
       }
+    else
+      g_set_error(err, 0, 0, _("unable to parse Gmail data"));
 
     g_free(body);
 
-    if (count == -1)
-      mn_mailbox_set_error(mailbox, _("unable to parse Gmail data"));
-    else
-      {
-	mn_mailbox_set_has_new(mailbox, count != 0);
-	mn_mailbox_set_messages(mailbox, messages);
-      }
-
-    mn_g_object_slist_free(messages);
+    return status;
   }
-
+  
   private time_t
     parse_date (const char *date (check null))
   {
diff --git a/src/mn-gmail-mailbox.h b/src/mn-gmail-mailbox.h
@@ -4,7 +4,7 @@
 #include <glib-object.h>
 
 
-#include "mn-mailbox.h"
+#include "mn-authenticated-mailbox.h"
 
 #ifndef __MN_GMAIL_MAILBOX_H__
 #define __MN_GMAIL_MAILBOX_H__
@@ -36,7 +36,7 @@ typedef struct _MNGmailMailboxPrivate MNGmailMailboxPrivate;
 typedef struct _MNGmailMailbox MNGmailMailbox;
 #endif
 struct _MNGmailMailbox {
-	MNMailbox __parent__;
+	MNAuthenticatedMailbox __parent__;
 	/*< private >*/
 	MNGmailMailboxPrivate *_priv;
 };
@@ -46,7 +46,7 @@ struct _MNGmailMailbox {
  */
 typedef struct _MNGmailMailboxClass MNGmailMailboxClass;
 struct _MNGmailMailboxClass {
-	MNMailboxClass __parent__;
+	MNAuthenticatedMailboxClass __parent__;
 };
 
 
diff --git a/src/mn-gmime-stream-vfs.c b/src/mn-gmime-stream-vfs.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 26 "mn-gmime-stream-vfs.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 
 #define VFS_CALL(stream, expr, fail_format, fail_retval)		\
   {									\
diff --git a/src/mn-gmime-stream-vfs.gob b/src/mn-gmime-stream-vfs.gob
@@ -25,7 +25,7 @@ requires 2.0.10
 
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 
 #define VFS_CALL(stream, expr, fail_format, fail_retval)		\
   {									\
diff --git a/src/mn-imap-mailbox-properties-private.h b/src/mn-imap-mailbox-properties-private.h
@@ -10,11 +10,11 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNIMAPMailboxPropertiesPrivate {
-#line 68 "mn-imap-mailbox-properties.gob"
+#line 67 "mn-imap-mailbox-properties.gob"
 	GtkWidget * inbox_radio;
-#line 69 "mn-imap-mailbox-properties.gob"
+#line 68 "mn-imap-mailbox-properties.gob"
 	GtkWidget * other_radio;
-#line 70 "mn-imap-mailbox-properties.gob"
+#line 69 "mn-imap-mailbox-properties.gob"
 	GtkWidget * mailbox_entry;
 #line 20 "mn-imap-mailbox-properties-private.h"
 };
diff --git a/src/mn-imap-mailbox-properties.c b/src/mn-imap-mailbox-properties.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-imap-mailbox-properties.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-pi-mailbox-properties-private.h"
@@ -73,9 +73,9 @@ static MNPIMailboxPropertiesClass *parent_class = NULL;
 static void
 ___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
 {
-#line 149 "mn-imap-mailbox-properties.gob"
+#line 148 "mn-imap-mailbox-properties.gob"
 	iface->set_uri = self_set_uri;
-#line 180 "mn-imap-mailbox-properties.gob"
+#line 179 "mn-imap-mailbox-properties.gob"
 	iface->get_uri = self_get_uri;
 #line 81 "mn-imap-mailbox-properties.c"
 }
@@ -150,7 +150,7 @@ mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * o G_GNUC_UNUSED)
 	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNIMAPMailboxPropertiesPrivate);
 }
 #undef __GOB_FUNCTION__
-#line 72 "mn-imap-mailbox-properties.gob"
+#line 71 "mn-imap-mailbox-properties.gob"
 static void 
 mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class G_GNUC_UNUSED)
 #line 157 "mn-imap-mailbox-properties.c"
@@ -162,7 +162,7 @@ mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class G_GN
 
 	parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
 
-#line 81 "mn-imap-mailbox-properties.gob"
+#line 80 "mn-imap-mailbox-properties.gob"
 	g_object_class->constructor = ___2_mn_imap_mailbox_properties_constructor;
 #line 168 "mn-imap-mailbox-properties.c"
 	g_object_class->finalize = ___finalize;
@@ -173,7 +173,7 @@ mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class G_GN
 		"complete");
     }
  {
-#line 73 "mn-imap-mailbox-properties.gob"
+#line 72 "mn-imap-mailbox-properties.gob"
 
     MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
 
@@ -205,7 +205,6 @@ ___object_get_property (GObject *object,
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
       const char *username;
-      const char *password;
       const char *hostname;
       gboolean other_active;
       const char *mailbox;
@@ -214,7 +213,7 @@ ___object_get_property (GObject *object,
 					    NULL,
 					    NULL,
 					    &username,
-					    &password,
+					    NULL,
 					    NULL,
 					    &hostname,
 					    NULL);
@@ -222,7 +221,7 @@ ___object_get_property (GObject *object,
       other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
       mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
 
-      complete = *username && *password && *hostname && (! other_active || *mailbox);
+      complete = *username && *hostname && (! other_active || *mailbox);
 #ifndef WITH_SSL
       if (complete)
 	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
@@ -230,7 +229,7 @@ ___object_get_property (GObject *object,
 
       g_value_set_boolean(VAL, complete);
     
-#line 234 "mn-imap-mailbox-properties.c"
+#line 233 "mn-imap-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -247,10 +246,10 @@ ___object_get_property (GObject *object,
 
 
 
-#line 81 "mn-imap-mailbox-properties.gob"
+#line 80 "mn-imap-mailbox-properties.gob"
 static GObject * 
 ___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 254 "mn-imap-mailbox-properties.c"
+#line 253 "mn-imap-mailbox-properties.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -258,7 +257,7 @@ ___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::constructor"
 {
-#line 83 "mn-imap-mailbox-properties.gob"
+#line 82 "mn-imap-mailbox-properties.gob"
 	
     GObject *object;
     Self *self;
@@ -302,7 +301,7 @@ ___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
     mn_tooltips_set_tips(pi->tooltips,
 			 pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
 			 pi->username_entry, _("Your username on the IMAP server"),
-			 pi->password_entry, _("Your password on the IMAP server"),
+			 pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
 			 pi->port_spin[0], _("The port number of the IMAP server"),
 			 pi->port_spin[1], _("The port number of the IMAP server"),
 			 selfp->mailbox_entry, _("The mailbox name"),
@@ -314,51 +313,51 @@ ___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
     
     return object;
   }}
-#line 318 "mn-imap-mailbox-properties.c"
+#line 317 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 139 "mn-imap-mailbox-properties.gob"
+#line 138 "mn-imap-mailbox-properties.gob"
 static void 
 mn_imap_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data)
-#line 325 "mn-imap-mailbox-properties.c"
+#line 324 "mn-imap-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::radio_toggled_h"
-#line 139 "mn-imap-mailbox-properties.gob"
+#line 138 "mn-imap-mailbox-properties.gob"
 	g_return_if_fail (togglebutton != NULL);
-#line 139 "mn-imap-mailbox-properties.gob"
+#line 138 "mn-imap-mailbox-properties.gob"
 	g_return_if_fail (GTK_IS_TOGGLE_BUTTON (togglebutton));
-#line 139 "mn-imap-mailbox-properties.gob"
+#line 138 "mn-imap-mailbox-properties.gob"
 	g_return_if_fail (user_data != NULL);
-#line 334 "mn-imap-mailbox-properties.c"
+#line 333 "mn-imap-mailbox-properties.c"
 {
-#line 142 "mn-imap-mailbox-properties.gob"
+#line 141 "mn-imap-mailbox-properties.gob"
 	
     Self *self = user_data;
 
     gtk_widget_set_sensitive(selfp->mailbox_entry, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)));
     g_object_notify(G_OBJECT(self), "complete");
   }}
-#line 343 "mn-imap-mailbox-properties.c"
+#line 342 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 149 "mn-imap-mailbox-properties.gob"
+#line 148 "mn-imap-mailbox-properties.gob"
 static gboolean 
 mn_imap_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 349 "mn-imap-mailbox-properties.c"
+#line 348 "mn-imap-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::set_uri"
-#line 149 "mn-imap-mailbox-properties.gob"
+#line 148 "mn-imap-mailbox-properties.gob"
 	g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 149 "mn-imap-mailbox-properties.gob"
+#line 148 "mn-imap-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 149 "mn-imap-mailbox-properties.gob"
+#line 148 "mn-imap-mailbox-properties.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 149 "mn-imap-mailbox-properties.gob"
+#line 148 "mn-imap-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 360 "mn-imap-mailbox-properties.c"
+#line 359 "mn-imap-mailbox-properties.c"
 {
-#line 152 "mn-imap-mailbox-properties.gob"
+#line 151 "mn-imap-mailbox-properties.gob"
 	
     Self *self = SELF(properties);
     
@@ -386,22 +385,22 @@ mn_imap_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * ur
     else
       return FALSE;
   }}
-#line 390 "mn-imap-mailbox-properties.c"
+#line 389 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 180 "mn-imap-mailbox-properties.gob"
+#line 179 "mn-imap-mailbox-properties.gob"
 static MNURI * 
 mn_imap_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 396 "mn-imap-mailbox-properties.c"
+#line 395 "mn-imap-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::get_uri"
-#line 180 "mn-imap-mailbox-properties.gob"
+#line 179 "mn-imap-mailbox-properties.gob"
 	g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 180 "mn-imap-mailbox-properties.gob"
+#line 179 "mn-imap-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 403 "mn-imap-mailbox-properties.c"
+#line 402 "mn-imap-mailbox-properties.c"
 {
-#line 182 "mn-imap-mailbox-properties.gob"
+#line 181 "mn-imap-mailbox-properties.gob"
 	
     Self *self = SELF(properties);
     gboolean ssl;
@@ -432,5 +431,5 @@ mn_imap_mailbox_properties_get_uri (MNMailboxProperties * properties)
 
     return uri;
   }}
-#line 436 "mn-imap-mailbox-properties.c"
+#line 435 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-imap-mailbox-properties.gob b/src/mn-imap-mailbox-properties.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-pi-mailbox-properties-private.h"
@@ -39,7 +39,6 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
       const char *username;
-      const char *password;
       const char *hostname;
       gboolean other_active;
       const char *mailbox;
@@ -48,7 +47,7 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
 					    NULL,
 					    NULL,
 					    &username,
-					    &password,
+					    NULL,
 					    NULL,
 					    &hostname,
 					    NULL);
@@ -56,7 +55,7 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
       other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
       mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
 
-      complete = *username && *password && *hostname && (! other_active || *mailbox);
+      complete = *username && *hostname && (! other_active || *mailbox);
 #ifndef WITH_SSL
       if (complete)
 	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
@@ -123,7 +122,7 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
     mn_tooltips_set_tips(pi->tooltips,
 			 pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
 			 pi->username_entry, _("Your username on the IMAP server"),
-			 pi->password_entry, _("Your password on the IMAP server"),
+			 pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
 			 pi->port_spin[0], _("The port number of the IMAP server"),
 			 pi->port_spin[1], _("The port number of the IMAP server"),
 			 selfp->mailbox_entry, _("The mailbox name"),
diff --git a/src/mn-imap-mailbox.c b/src/mn-imap-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -28,7 +28,7 @@
 #include <string.h>
 #include <stdarg.h>
 #include <stdlib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
@@ -82,6 +82,7 @@
     char		tag[5];
     char		**capabilities;
     GSList		*auth_mechanisms;
+    gboolean		authentication_failed;
 #ifdef WITH_MIME
     gboolean		search_received;
     GSList		*fetch_numbers;
@@ -108,7 +109,7 @@
     char		*arguments;
   };
 
-#line 112 "mn-imap-mailbox.c"
+#line 113 "mn-imap-mailbox.c"
 /* self casting macros */
 #define SELF(x) MN_IMAP_MAILBOX(x)
 #define SELF_CONST(x) MN_IMAP_MAILBOX_CONST(x)
@@ -146,7 +147,7 @@ static int mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientS
 static int mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void ___17_mn_imap_mailbox_impl_threaded_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxResult ___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox, GError ** err) G_GNUC_UNUSED;
 static void mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static MNClientSessionResponse * mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static void mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -162,7 +163,7 @@ static int mn_imap_mailbox_session_check_mail (MNClientSessionPrivate * priv) G_
 static char * mn_imap_mailbox_quote (const char * str) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
+static MNAuthenticatedMailboxClass *parent_class = NULL;
 
 /* Short form macros */
 #define self_handle_greeting_cb mn_imap_mailbox_handle_greeting_cb
@@ -216,7 +217,7 @@ mn_imap_mailbox_get_type (void)
 			NULL
 		};
 
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNIMAPMailbox", &info, (GTypeFlags)0);
+		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNIMAPMailbox", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -245,40 +246,41 @@ mn_imap_mailbox_init (MNIMAPMailbox * o G_GNUC_UNUSED)
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::init"
 }
 #undef __GOB_FUNCTION__
-#line 116 "mn-imap-mailbox.gob"
+#line 117 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
-#line 252 "mn-imap-mailbox.c"
+#line 253 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::class_init"
 	GObjectClass *g_object_class = (GObjectClass *)class;
 	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
 
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
+	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
 
-#line 121 "mn-imap-mailbox.gob"
+#line 122 "mn-imap-mailbox.gob"
 	g_object_class->constructor = ___2_mn_imap_mailbox_constructor;
-#line 138 "mn-imap-mailbox.gob"
+#line 139 "mn-imap-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_imap_mailbox_impl_is;
-#line 677 "mn-imap-mailbox.gob"
-	mn_mailbox_class->impl_threaded_check = ___17_mn_imap_mailbox_impl_threaded_check;
-#line 266 "mn-imap-mailbox.c"
+#line 681 "mn-imap-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_authenticated_check = ___17_mn_imap_mailbox_impl_authenticated_check;
+#line 268 "mn-imap-mailbox.c"
  {
-#line 117 "mn-imap-mailbox.gob"
+#line 118 "mn-imap-mailbox.gob"
 
     MN_MAILBOX_CLASS(class)->format = "IMAP";
   
-#line 272 "mn-imap-mailbox.c"
+#line 274 "mn-imap-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 121 "mn-imap-mailbox.gob"
+#line 122 "mn-imap-mailbox.gob"
 static GObject * 
 ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 282 "mn-imap-mailbox.c"
+#line 284 "mn-imap-mailbox.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -286,7 +288,7 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::constructor"
 {
-#line 123 "mn-imap-mailbox.gob"
+#line 124 "mn-imap-mailbox.gob"
 	
     GObject *object;
     MNMailbox *mailbox;
@@ -301,49 +303,49 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
 
     return object;
   }}
-#line 305 "mn-imap-mailbox.c"
+#line 307 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 138 "mn-imap-mailbox.gob"
+#line 139 "mn-imap-mailbox.gob"
 static gboolean 
 ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 312 "mn-imap-mailbox.c"
+#line 314 "mn-imap-mailbox.c"
 #define PARENT_HANDLER(___dummy,___uri) \
 	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
 		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
 		((gboolean )0))
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_is"
-#line 138 "mn-imap-mailbox.gob"
+#line 139 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 138 "mn-imap-mailbox.gob"
+#line 139 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 323 "mn-imap-mailbox.c"
+#line 325 "mn-imap-mailbox.c"
 {
-#line 140 "mn-imap-mailbox.gob"
+#line 141 "mn-imap-mailbox.gob"
 	
     return MN_URI_IS_IMAP(uri);
   }}
-#line 329 "mn-imap-mailbox.c"
+#line 331 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 144 "mn-imap-mailbox.gob"
+#line 145 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 336 "mn-imap-mailbox.c"
+#line 338 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_greeting_cb"
-#line 144 "mn-imap-mailbox.gob"
+#line 145 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 144 "mn-imap-mailbox.gob"
+#line 145 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 144 "mn-imap-mailbox.gob"
+#line 145 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 345 "mn-imap-mailbox.c"
+#line 347 "mn-imap-mailbox.c"
 {
-#line 148 "mn-imap-mailbox.gob"
+#line 149 "mn-imap-mailbox.gob"
 	
     priv->session = session;
 
@@ -355,7 +357,7 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
 	  {
 	    if (! strcmp(response->code, "CAPABILITY"))
 	      self_session_parse_capabilities(priv, NULL);
-	    else if (! strncmp(response->code, "CAPABILITY ", 11))
+	    else if (g_str_has_prefix(response->code, "CAPABILITY "))
 	      self_session_parse_capabilities(priv, response->code + 11);
 	  }
 	
@@ -370,22 +372,22 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
     else
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
   }}
-#line 374 "mn-imap-mailbox.c"
+#line 376 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 175 "mn-imap-mailbox.gob"
+#line 176 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 380 "mn-imap-mailbox.c"
+#line 382 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_capability_cb"
-#line 175 "mn-imap-mailbox.gob"
+#line 176 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 175 "mn-imap-mailbox.gob"
+#line 176 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 387 "mn-imap-mailbox.c"
+#line 389 "mn-imap-mailbox.c"
 {
-#line 178 "mn-imap-mailbox.gob"
+#line 179 "mn-imap-mailbox.gob"
 	
     g_strfreev(priv->capabilities);
     priv->capabilities = NULL;
@@ -395,24 +397,24 @@ mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionP
 
     return self_session_write(priv, "CAPABILITY");
   }}
-#line 399 "mn-imap-mailbox.c"
+#line 401 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 188 "mn-imap-mailbox.gob"
+#line 189 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 405 "mn-imap-mailbox.c"
+#line 407 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_cb"
-#line 188 "mn-imap-mailbox.gob"
+#line 189 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 188 "mn-imap-mailbox.gob"
+#line 189 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 188 "mn-imap-mailbox.gob"
+#line 189 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 414 "mn-imap-mailbox.c"
+#line 416 "mn-imap-mailbox.c"
 {
-#line 192 "mn-imap-mailbox.gob"
+#line 193 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -440,22 +442,22 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
     
     return RESULT_DEFAULT_HANDLER;
   }}
-#line 444 "mn-imap-mailbox.c"
+#line 446 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 220 "mn-imap-mailbox.gob"
+#line 221 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 450 "mn-imap-mailbox.c"
+#line 452 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_starttls_cb"
-#line 220 "mn-imap-mailbox.gob"
+#line 221 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 220 "mn-imap-mailbox.gob"
+#line 221 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 457 "mn-imap-mailbox.c"
+#line 459 "mn-imap-mailbox.c"
 {
-#line 223 "mn-imap-mailbox.gob"
+#line 224 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SSL
     return self_session_write(priv, "STARTTLS");
@@ -463,24 +465,24 @@ mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPri
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 467 "mn-imap-mailbox.c"
+#line 469 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 231 "mn-imap-mailbox.gob"
+#line 232 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 473 "mn-imap-mailbox.c"
+#line 475 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_starttls_cb"
-#line 231 "mn-imap-mailbox.gob"
+#line 232 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 231 "mn-imap-mailbox.gob"
+#line 232 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 231 "mn-imap-mailbox.gob"
+#line 232 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 482 "mn-imap-mailbox.c"
+#line 484 "mn-imap-mailbox.c"
 {
-#line 235 "mn-imap-mailbox.gob"
+#line 236 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SSL
     if (response->continuation)
@@ -508,22 +510,22 @@ mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionRe
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 512 "mn-imap-mailbox.c"
+#line 514 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 263 "mn-imap-mailbox.gob"
+#line 264 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 518 "mn-imap-mailbox.c"
+#line 520 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_authenticate_cb"
-#line 263 "mn-imap-mailbox.gob"
+#line 264 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 263 "mn-imap-mailbox.gob"
+#line 264 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 525 "mn-imap-mailbox.c"
+#line 527 "mn-imap-mailbox.c"
 {
-#line 266 "mn-imap-mailbox.gob"
+#line 267 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SASL
     if (mn_client_session_sasl_authentication_start(priv->session,
@@ -538,24 +540,24 @@ mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessio
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 542 "mn-imap-mailbox.c"
+#line 544 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 281 "mn-imap-mailbox.gob"
+#line 282 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 548 "mn-imap-mailbox.c"
+#line 550 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_authenticate_cb"
-#line 281 "mn-imap-mailbox.gob"
+#line 282 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 281 "mn-imap-mailbox.gob"
+#line 282 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 281 "mn-imap-mailbox.gob"
+#line 282 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 557 "mn-imap-mailbox.c"
+#line 559 "mn-imap-mailbox.c"
 {
-#line 285 "mn-imap-mailbox.gob"
+#line 286 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SASL
     if (response->tag)
@@ -582,22 +584,22 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 586 "mn-imap-mailbox.c"
+#line 588 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 312 "mn-imap-mailbox.gob"
+#line 313 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 592 "mn-imap-mailbox.c"
+#line 594 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_login_cb"
-#line 312 "mn-imap-mailbox.gob"
+#line 313 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 312 "mn-imap-mailbox.gob"
+#line 313 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 599 "mn-imap-mailbox.c"
+#line 601 "mn-imap-mailbox.c"
 {
-#line 315 "mn-imap-mailbox.gob"
+#line 316 "mn-imap-mailbox.gob"
 	
     if (self_session_has_capability(priv, "LOGINDISABLED"))
       {
@@ -612,7 +614,7 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
 	int result;
 
 	quoted_username = self_quote(priv->mailbox->uri->username);
-	quoted_password = self_quote(priv->mailbox->uri->password);
+	quoted_password = self_quote(MN_AUTHENTICATED_MAILBOX(priv->self)->password);
 	result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
 	g_free(quoted_username);
 	g_free(quoted_password);
@@ -620,24 +622,24 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
 	return result;
       }
   }}
-#line 624 "mn-imap-mailbox.c"
+#line 626 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 338 "mn-imap-mailbox.gob"
+#line 339 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 630 "mn-imap-mailbox.c"
+#line 632 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_login_cb"
-#line 338 "mn-imap-mailbox.gob"
+#line 339 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 338 "mn-imap-mailbox.gob"
+#line 339 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 338 "mn-imap-mailbox.gob"
+#line 339 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 639 "mn-imap-mailbox.c"
+#line 641 "mn-imap-mailbox.c"
 {
-#line 342 "mn-imap-mailbox.gob"
+#line 343 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -648,7 +650,10 @@ mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionRespo
 	    if (IS_OK(response))
 	      return self_session_check_mail(priv);
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		priv->authentication_failed = TRUE;
+		return RESULT_ERROR_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -656,22 +661,22 @@ mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionRespo
     
     return RESULT_DEFAULT_HANDLER;
   }}
-#line 660 "mn-imap-mailbox.c"
+#line 665 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 361 "mn-imap-mailbox.gob"
+#line 365 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_examine_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 666 "mn-imap-mailbox.c"
+#line 671 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_examine_cb"
-#line 361 "mn-imap-mailbox.gob"
+#line 365 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 361 "mn-imap-mailbox.gob"
+#line 365 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 673 "mn-imap-mailbox.c"
+#line 678 "mn-imap-mailbox.c"
 {
-#line 364 "mn-imap-mailbox.gob"
+#line 368 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     char *quoted_mailbox;
@@ -686,24 +691,24 @@ mn_imap_mailbox_enter_examine_cb (MNClientSession * session, MNClientSessionPriv
     g_return_val_if_reached(0);
 #endif
   }}
-#line 690 "mn-imap-mailbox.c"
+#line 695 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 379 "mn-imap-mailbox.gob"
+#line 383 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 696 "mn-imap-mailbox.c"
+#line 701 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_examine_cb"
-#line 379 "mn-imap-mailbox.gob"
+#line 383 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 379 "mn-imap-mailbox.gob"
+#line 383 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 379 "mn-imap-mailbox.gob"
+#line 383 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 705 "mn-imap-mailbox.c"
+#line 710 "mn-imap-mailbox.c"
 {
-#line 383 "mn-imap-mailbox.gob"
+#line 387 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     if (response->continuation)
@@ -726,22 +731,22 @@ mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionRes
     g_return_val_if_reached(0);
 #endif
   }}
-#line 730 "mn-imap-mailbox.c"
+#line 735 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 406 "mn-imap-mailbox.gob"
+#line 410 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 736 "mn-imap-mailbox.c"
+#line 741 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_search_cb"
-#line 406 "mn-imap-mailbox.gob"
+#line 410 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 406 "mn-imap-mailbox.gob"
+#line 410 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 743 "mn-imap-mailbox.c"
+#line 748 "mn-imap-mailbox.c"
 {
-#line 409 "mn-imap-mailbox.gob"
+#line 413 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     return self_session_write(priv, "SEARCH UNSEEN");
@@ -749,24 +754,24 @@ mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPriva
     g_return_val_if_reached(0);
 #endif
   }}
-#line 753 "mn-imap-mailbox.c"
+#line 758 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 417 "mn-imap-mailbox.gob"
+#line 421 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 759 "mn-imap-mailbox.c"
+#line 764 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_search_cb"
-#line 417 "mn-imap-mailbox.gob"
+#line 421 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 417 "mn-imap-mailbox.gob"
+#line 421 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 417 "mn-imap-mailbox.gob"
+#line 421 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 768 "mn-imap-mailbox.c"
+#line 773 "mn-imap-mailbox.c"
 {
-#line 421 "mn-imap-mailbox.gob"
+#line 425 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     if (response->continuation)
@@ -837,22 +842,22 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
     g_return_val_if_reached(0);
 #endif
   }}
-#line 841 "mn-imap-mailbox.c"
+#line 846 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 492 "mn-imap-mailbox.gob"
+#line 496 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 847 "mn-imap-mailbox.c"
+#line 852 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_fetch_cb"
-#line 492 "mn-imap-mailbox.gob"
+#line 496 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 492 "mn-imap-mailbox.gob"
+#line 496 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 854 "mn-imap-mailbox.c"
+#line 859 "mn-imap-mailbox.c"
 {
-#line 495 "mn-imap-mailbox.gob"
+#line 499 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     g_return_val_if_fail(priv->fetch_set != NULL, 0);
@@ -861,24 +866,24 @@ mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivat
     g_return_val_if_reached(0);
 #endif
   }}
-#line 865 "mn-imap-mailbox.c"
+#line 870 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 504 "mn-imap-mailbox.gob"
+#line 508 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 871 "mn-imap-mailbox.c"
+#line 876 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_fetch_cb"
-#line 504 "mn-imap-mailbox.gob"
+#line 508 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 504 "mn-imap-mailbox.gob"
+#line 508 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 504 "mn-imap-mailbox.gob"
+#line 508 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 880 "mn-imap-mailbox.c"
+#line 885 "mn-imap-mailbox.c"
 {
-#line 508 "mn-imap-mailbox.gob"
+#line 512 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     if (response->continuation)
@@ -912,7 +917,7 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
       }
     else if (mn_str_isnumeric(response->response)
 	     && response->arguments
-	     && ! strncmp(response->arguments, "FETCH ", 6))
+	     && g_str_has_prefix(response->arguments, "FETCH (BODY[HEADER]"))
       {
 	int n = atoi(response->response);
 
@@ -952,22 +957,22 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
     g_return_val_if_reached(0);
 #endif
   }}
-#line 956 "mn-imap-mailbox.c"
+#line 961 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 582 "mn-imap-mailbox.gob"
+#line 586 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 962 "mn-imap-mailbox.c"
+#line 967 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_status_cb"
-#line 582 "mn-imap-mailbox.gob"
+#line 586 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 582 "mn-imap-mailbox.gob"
+#line 586 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 969 "mn-imap-mailbox.c"
+#line 974 "mn-imap-mailbox.c"
 {
-#line 585 "mn-imap-mailbox.gob"
+#line 589 "mn-imap-mailbox.gob"
 	
 #ifndef WITH_MIME
     char *quoted_mailbox;
@@ -982,24 +987,24 @@ mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientSessionPriva
     g_return_val_if_reached(0);
 #endif
   }}
-#line 986 "mn-imap-mailbox.c"
+#line 991 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 600 "mn-imap-mailbox.gob"
+#line 604 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 992 "mn-imap-mailbox.c"
+#line 997 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_status_cb"
-#line 600 "mn-imap-mailbox.gob"
+#line 604 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 600 "mn-imap-mailbox.gob"
+#line 604 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 600 "mn-imap-mailbox.gob"
+#line 604 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1001 "mn-imap-mailbox.c"
+#line 1006 "mn-imap-mailbox.c"
 {
-#line 604 "mn-imap-mailbox.gob"
+#line 608 "mn-imap-mailbox.gob"
 	
 #ifndef WITH_MIME
     if (response->continuation)
@@ -1045,43 +1050,43 @@ mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResp
     g_return_val_if_reached(0);
 #endif
   }}
-#line 1049 "mn-imap-mailbox.c"
+#line 1054 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 650 "mn-imap-mailbox.gob"
+#line 654 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1055 "mn-imap-mailbox.c"
+#line 1060 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_logout_cb"
-#line 650 "mn-imap-mailbox.gob"
+#line 654 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 650 "mn-imap-mailbox.gob"
+#line 654 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1062 "mn-imap-mailbox.c"
+#line 1067 "mn-imap-mailbox.c"
 {
-#line 653 "mn-imap-mailbox.gob"
+#line 657 "mn-imap-mailbox.gob"
 	
     return self_session_write(priv, "LOGOUT");
   }}
-#line 1068 "mn-imap-mailbox.c"
+#line 1073 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 657 "mn-imap-mailbox.gob"
+#line 661 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1074 "mn-imap-mailbox.c"
+#line 1079 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_logout_cb"
-#line 657 "mn-imap-mailbox.gob"
+#line 661 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 657 "mn-imap-mailbox.gob"
+#line 661 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 657 "mn-imap-mailbox.gob"
+#line 661 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1083 "mn-imap-mailbox.c"
+#line 1088 "mn-imap-mailbox.c"
 {
-#line 661 "mn-imap-mailbox.gob"
+#line 665 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -1097,27 +1102,29 @@ mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResp
     else
       return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }}
-#line 1101 "mn-imap-mailbox.c"
+#line 1106 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 677 "mn-imap-mailbox.gob"
-static void 
-___17_mn_imap_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 1107 "mn-imap-mailbox.c"
-#define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_threaded_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_threaded_check)(___mailbox); }
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_threaded_check"
-#line 677 "mn-imap-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 677 "mn-imap-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 1117 "mn-imap-mailbox.c"
-{
-#line 679 "mn-imap-mailbox.gob"
+#line 681 "mn-imap-mailbox.gob"
+static MNAuthenticatedMailboxResult 
+___17_mn_imap_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
+#line 1112 "mn-imap-mailbox.c"
+#define PARENT_HANDLER(___authenticated_mailbox,___err) \
+	((MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)? \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)(___authenticated_mailbox,___err): \
+		((MNAuthenticatedMailboxResult )0))
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_authenticated_check"
+#line 681 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (authenticated_mailbox != NULL, (MNAuthenticatedMailboxResult )0);
+#line 681 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (authenticated_mailbox), (MNAuthenticatedMailboxResult )0);
+#line 1123 "mn-imap-mailbox.c"
+{
+#line 684 "mn-imap-mailbox.gob"
 	
-    Self *self = SELF(mailbox);
+    MNMailbox *mailbox = MN_MAILBOX(authenticated_mailbox);
+    Self *self = SELF(authenticated_mailbox);
     MNClientSessionState states[] = {
       { STATE_GREETING,		NULL,				self_handle_greeting_cb },
       { STATE_CAPABILITY,	self_enter_capability_cb,	self_handle_capability_cb },
@@ -1146,35 +1153,23 @@ ___17_mn_imap_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
       self_custom_handler_cb
     };
     MNClientSessionPrivate priv;
-    GError *err = NULL;
+    gboolean status;
 
     memset(&priv, 0, sizeof(priv));
     priv.mailbox = mailbox;
     priv.self = self;
     
-    if (! mn_client_session_run(states,
-				&callbacks,
+    status = mn_client_session_run(states,
+				   &callbacks,
 #ifdef WITH_SSL
-				MN_URI_IS_SSL(mailbox->uri),
+				   MN_URI_IS_SSL(mailbox->uri),
 #endif
-				mailbox->uri->hostname,
-				mailbox->uri->port,
-				mailbox->uri->username,
-				mailbox->uri->password,
-				&priv,
-				&err))
-      {
-	GDK_THREADS_ENTER();
-	mn_mailbox_set_error(mailbox, "%s", err->message);
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-	g_error_free(err);
-      }
-    
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(mailbox);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+				   mailbox->uri->hostname,
+				   mailbox->uri->port,
+				   mailbox->uri->username,
+				   MN_AUTHENTICATED_MAILBOX(self)->password,
+				   &priv,
+				   err);
     
     g_strfreev(priv.capabilities);
     eel_g_slist_free_deep(priv.auth_mechanisms);
@@ -1185,15 +1180,21 @@ ___17_mn_imap_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
     g_slist_free(priv.received_numbers);
     mn_g_object_slist_free(priv.messages);
 #endif
+
+    return status
+      ? MN_AUTHENTICATED_MAILBOX_OK
+      : (priv.authentication_failed
+	 ? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION
+	 : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER);
   }}
-#line 1190 "mn-imap-mailbox.c"
+#line 1191 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
 #line 750 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1197 "mn-imap-mailbox.c"
+#line 1198 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::notice_cb"
 #line 750 "mn-imap-mailbox.gob"
@@ -1202,19 +1203,19 @@ mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClient
 	g_return_if_fail (str != NULL);
 #line 750 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 1206 "mn-imap-mailbox.c"
+#line 1207 "mn-imap-mailbox.c"
 {
 #line 754 "mn-imap-mailbox.gob"
 	
     mn_mailbox_notice(priv->mailbox, "%s", str);
   }}
-#line 1212 "mn-imap-mailbox.c"
+#line 1213 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 758 "mn-imap-mailbox.gob"
 static MNClientSessionResponse * 
 mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1218 "mn-imap-mailbox.c"
+#line 1219 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_new_cb"
 #line 758 "mn-imap-mailbox.gob"
@@ -1223,13 +1224,13 @@ mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, 
 	g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
 #line 758 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1227 "mn-imap-mailbox.c"
+#line 1228 "mn-imap-mailbox.c"
 {
 #line 762 "mn-imap-mailbox.gob"
 	
     MNClientSessionResponse *response = NULL;
 
-    if (! strncmp(input, "+ ", 2))
+    if (g_str_has_prefix(input, "+ "))
       {
 	response = g_new0(MNClientSessionResponse, 1);
 	response->continuation = g_strdup(input + 2);
@@ -1272,13 +1273,13 @@ mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, 
     
     return response;
   }}
-#line 1276 "mn-imap-mailbox.c"
+#line 1277 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 809 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1282 "mn-imap-mailbox.c"
+#line 1283 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_free_cb"
 #line 809 "mn-imap-mailbox.gob"
@@ -1287,7 +1288,7 @@ mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResp
 	g_return_if_fail (response != NULL);
 #line 809 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 1291 "mn-imap-mailbox.c"
+#line 1292 "mn-imap-mailbox.c"
 {
 #line 813 "mn-imap-mailbox.gob"
 	
@@ -1298,13 +1299,13 @@ mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResp
     g_free(response->arguments);
     g_free(response);
   }}
-#line 1302 "mn-imap-mailbox.c"
+#line 1303 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 822 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1308 "mn-imap-mailbox.c"
+#line 1309 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::custom_handler_cb"
 #line 822 "mn-imap-mailbox.gob"
@@ -1313,7 +1314,7 @@ mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionRes
 	g_return_val_if_fail (response != NULL, (int )0);
 #line 822 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1317 "mn-imap-mailbox.c"
+#line 1318 "mn-imap-mailbox.c"
 {
 #line 827 "mn-imap-mailbox.gob"
 	
@@ -1337,20 +1338,20 @@ mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionRes
 	g_return_val_if_reached(0);
       }
   }}
-#line 1341 "mn-imap-mailbox.c"
+#line 1342 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 849 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1347 "mn-imap-mailbox.c"
+#line 1348 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_set_error_from_arguments"
 #line 849 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
 #line 849 "mn-imap-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 1354 "mn-imap-mailbox.c"
+#line 1355 "mn-imap-mailbox.c"
 {
 #line 852 "mn-imap-mailbox.gob"
 	
@@ -1359,20 +1360,20 @@ mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv,
     else
       mn_client_session_error(priv->session, _("unknown server error"));
   }}
-#line 1363 "mn-imap-mailbox.c"
+#line 1364 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 859 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...)
-#line 1369 "mn-imap-mailbox.c"
+#line 1370 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_write"
 #line 859 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
 #line 859 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (format != NULL, (int )0);
-#line 1376 "mn-imap-mailbox.c"
+#line 1377 "mn-imap-mailbox.c"
 {
 #line 863 "mn-imap-mailbox.gob"
 	
@@ -1393,18 +1394,18 @@ mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * forma
 
     return result;
   }}
-#line 1397 "mn-imap-mailbox.c"
+#line 1398 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 882 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities)
-#line 1403 "mn-imap-mailbox.c"
+#line 1404 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_parse_capabilities"
 #line 882 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 1408 "mn-imap-mailbox.c"
+#line 1409 "mn-imap-mailbox.c"
 {
 #line 885 "mn-imap-mailbox.gob"
 	
@@ -1415,26 +1416,26 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
 	priv->capabilities = g_strsplit(capabilities, " ", 0);
 	
 	for (i = 0; priv->capabilities[i]; i++)
-	  if (! strncmp(priv->capabilities[i], "AUTH=", 5))
+	  if (g_str_has_prefix(priv->capabilities[i], "AUTH="))
 	    priv->auth_mechanisms = g_slist_append(priv->auth_mechanisms, g_strdup(priv->capabilities[i] + 5));
       }
     else
       priv->capabilities = g_new0(char *, 1);
   }}
-#line 1425 "mn-imap-mailbox.c"
+#line 1426 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 900 "mn-imap-mailbox.gob"
 static gboolean 
 mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const char * capability)
-#line 1431 "mn-imap-mailbox.c"
+#line 1432 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_has_capability"
 #line 900 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (gboolean )0);
 #line 900 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (capability != NULL, (gboolean )0);
-#line 1438 "mn-imap-mailbox.c"
+#line 1439 "mn-imap-mailbox.c"
 {
 #line 903 "mn-imap-mailbox.gob"
 	
@@ -1448,18 +1449,18 @@ mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const cha
     
     return FALSE;
   }}
-#line 1452 "mn-imap-mailbox.c"
+#line 1453 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 915 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
-#line 1458 "mn-imap-mailbox.c"
+#line 1459 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_after_capability"
 #line 915 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1463 "mn-imap-mailbox.c"
+#line 1464 "mn-imap-mailbox.c"
 {
 #line 917 "mn-imap-mailbox.gob"
 	
@@ -1480,18 +1481,18 @@ mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
 #endif /* WITH_SSL */
       return self_session_authenticate(priv);
   }}
-#line 1484 "mn-imap-mailbox.c"
+#line 1485 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 936 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1490 "mn-imap-mailbox.c"
+#line 1491 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate"
 #line 936 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1495 "mn-imap-mailbox.c"
+#line 1496 "mn-imap-mailbox.c"
 {
 #line 938 "mn-imap-mailbox.gob"
 	
@@ -1522,18 +1523,18 @@ mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
 	return STATE_LOGIN;
       }
   }}
-#line 1526 "mn-imap-mailbox.c"
+#line 1527 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 967 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv)
-#line 1532 "mn-imap-mailbox.c"
+#line 1533 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate_fallback"
 #line 967 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1537 "mn-imap-mailbox.c"
+#line 1538 "mn-imap-mailbox.c"
 {
 #line 969 "mn-imap-mailbox.gob"
 	
@@ -1543,22 +1544,23 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv)
 	return STATE_LOGIN;
       }
 
+    priv->authentication_failed = TRUE;
     return mn_client_session_error(priv->session, _("authentication failed"));
   }}
-#line 1549 "mn-imap-mailbox.c"
+#line 1551 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 979 "mn-imap-mailbox.gob"
+#line 980 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_check_mail (MNClientSessionPrivate * priv)
-#line 1555 "mn-imap-mailbox.c"
+#line 1557 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_check_mail"
-#line 979 "mn-imap-mailbox.gob"
+#line 980 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1560 "mn-imap-mailbox.c"
+#line 1562 "mn-imap-mailbox.c"
 {
-#line 981 "mn-imap-mailbox.gob"
+#line 982 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_MIME
     return STATE_EXAMINE;
@@ -1566,7 +1568,7 @@ mn_imap_mailbox_session_check_mail (MNClientSessionPrivate * priv)
     return STATE_STATUS;
 #endif
   }}
-#line 1570 "mn-imap-mailbox.c"
+#line 1572 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 /**
@@ -1577,17 +1579,17 @@ mn_imap_mailbox_session_check_mail (MNClientSessionPrivate * priv)
  *
  * Return value: the quoted string.
  **/
-#line 997 "mn-imap-mailbox.gob"
+#line 998 "mn-imap-mailbox.gob"
 static char * 
 mn_imap_mailbox_quote (const char * str)
-#line 1584 "mn-imap-mailbox.c"
+#line 1586 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::quote"
-#line 997 "mn-imap-mailbox.gob"
+#line 998 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (str != NULL, (char * )0);
-#line 1589 "mn-imap-mailbox.c"
+#line 1591 "mn-imap-mailbox.c"
 {
-#line 999 "mn-imap-mailbox.gob"
+#line 1000 "mn-imap-mailbox.gob"
 	
     GString *quoted;
     int i;
@@ -1602,5 +1604,5 @@ mn_imap_mailbox_quote (const char * str)
 
     return g_string_free(quoted, FALSE);
   }}
-#line 1606 "mn-imap-mailbox.c"
+#line 1608 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-imap-mailbox.gob b/src/mn-imap-mailbox.gob
@@ -22,7 +22,7 @@
 requires 2.0.10
 
 %headertop{
-#include "mn-mailbox.h"
+#include "mn-authenticated-mailbox.h"
 %}
 %{
 #include "config.h"
@@ -30,7 +30,7 @@ requires 2.0.10
 #include <string.h>
 #include <stdarg.h>
 #include <stdlib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
@@ -84,6 +84,7 @@ requires 2.0.10
     char		tag[5];
     char		**capabilities;
     GSList		*auth_mechanisms;
+    gboolean		authentication_failed;
 #ifdef WITH_MIME
     gboolean		search_received;
     GSList		*fetch_numbers;
@@ -111,7 +112,7 @@ requires 2.0.10
   };
 %}
 
-class MN:IMAP:Mailbox from MN:Mailbox
+class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 {
   class_init (class)
   {
@@ -156,7 +157,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
 	  {
 	    if (! strcmp(response->code, "CAPABILITY"))
 	      self_session_parse_capabilities(priv, NULL);
-	    else if (! strncmp(response->code, "CAPABILITY ", 11))
+	    else if (g_str_has_prefix(response->code, "CAPABILITY "))
 	      self_session_parse_capabilities(priv, response->code + 11);
 	  }
 	
@@ -326,7 +327,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
 	int result;
 
 	quoted_username = self_quote(priv->mailbox->uri->username);
-	quoted_password = self_quote(priv->mailbox->uri->password);
+	quoted_password = self_quote(MN_AUTHENTICATED_MAILBOX(priv->self)->password);
 	result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
 	g_free(quoted_username);
 	g_free(quoted_password);
@@ -349,7 +350,10 @@ class MN:IMAP:Mailbox from MN:Mailbox
 	    if (IS_OK(response))
 	      return self_session_check_mail(priv);
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		priv->authentication_failed = TRUE;
+		return RESULT_ERROR_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -538,7 +542,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
       }
     else if (mn_str_isnumeric(response->response)
 	     && response->arguments
-	     && ! strncmp(response->arguments, "FETCH ", 6))
+	     && g_str_has_prefix(response->arguments, "FETCH (BODY[HEADER]"))
       {
 	int n = atoi(response->response);
 
@@ -674,10 +678,12 @@ class MN:IMAP:Mailbox from MN:Mailbox
       return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }
   
-  override (MN:Mailbox) void
-    impl_threaded_check (MN:Mailbox *mailbox (check null type))
+  override (MN:Authenticated:Mailbox) MNAuthenticatedMailboxResult
+    impl_authenticated_check (MN:Authenticated:Mailbox *authenticated_mailbox (check null type),
+			      GError **err)
   {
-    Self *self = SELF(mailbox);
+    MNMailbox *mailbox = MN_MAILBOX(authenticated_mailbox);
+    Self *self = SELF(authenticated_mailbox);
     MNClientSessionState states[] = {
       { STATE_GREETING,		NULL,				self_handle_greeting_cb },
       { STATE_CAPABILITY,	self_enter_capability_cb,	self_handle_capability_cb },
@@ -706,35 +712,23 @@ class MN:IMAP:Mailbox from MN:Mailbox
       self_custom_handler_cb
     };
     MNClientSessionPrivate priv;
-    GError *err = NULL;
+    gboolean status;
 
     memset(&priv, 0, sizeof(priv));
     priv.mailbox = mailbox;
     priv.self = self;
     
-    if (! mn_client_session_run(states,
-				&callbacks,
+    status = mn_client_session_run(states,
+				   &callbacks,
 #ifdef WITH_SSL
-				MN_URI_IS_SSL(mailbox->uri),
+				   MN_URI_IS_SSL(mailbox->uri),
 #endif
-				mailbox->uri->hostname,
-				mailbox->uri->port,
-				mailbox->uri->username,
-				mailbox->uri->password,
-				&priv,
-				&err))
-      {
-	GDK_THREADS_ENTER();
-	mn_mailbox_set_error(mailbox, "%s", err->message);
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-	g_error_free(err);
-      }
-    
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(mailbox);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+				   mailbox->uri->hostname,
+				   mailbox->uri->port,
+				   mailbox->uri->username,
+				   MN_AUTHENTICATED_MAILBOX(self)->password,
+				   &priv,
+				   err);
     
     g_strfreev(priv.capabilities);
     eel_g_slist_free_deep(priv.auth_mechanisms);
@@ -745,6 +739,12 @@ class MN:IMAP:Mailbox from MN:Mailbox
     g_slist_free(priv.received_numbers);
     mn_g_object_slist_free(priv.messages);
 #endif
+
+    return status
+      ? MN_AUTHENTICATED_MAILBOX_OK
+      : (priv.authentication_failed
+	 ? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION
+	 : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER);
   }
   
   private void
@@ -762,7 +762,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
   {
     MNClientSessionResponse *response = NULL;
 
-    if (! strncmp(input, "+ ", 2))
+    if (g_str_has_prefix(input, "+ "))
       {
 	response = g_new0(MNClientSessionResponse, 1);
 	response->continuation = g_strdup(input + 2);
@@ -890,7 +890,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
 	priv->capabilities = g_strsplit(capabilities, " ", 0);
 	
 	for (i = 0; priv->capabilities[i]; i++)
-	  if (! strncmp(priv->capabilities[i], "AUTH=", 5))
+	  if (g_str_has_prefix(priv->capabilities[i], "AUTH="))
 	    priv->auth_mechanisms = g_slist_append(priv->auth_mechanisms, g_strdup(priv->capabilities[i] + 5));
       }
     else
@@ -973,6 +973,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
 	return STATE_LOGIN;
       }
 
+    priv->authentication_failed = TRUE;
     return mn_client_session_error(priv->session, _("authentication failed"));
   }
 
diff --git a/src/mn-imap-mailbox.h b/src/mn-imap-mailbox.h
@@ -4,7 +4,7 @@
 #include <glib-object.h>
 
 
-#include "mn-mailbox.h"
+#include "mn-authenticated-mailbox.h"
 
 #ifndef __MN_IMAP_MAILBOX_H__
 #define __MN_IMAP_MAILBOX_H__
@@ -33,7 +33,7 @@ extern "C" {
 typedef struct _MNIMAPMailbox MNIMAPMailbox;
 #endif
 struct _MNIMAPMailbox {
-	MNMailbox __parent__;
+	MNAuthenticatedMailbox __parent__;
 };
 
 /*
@@ -41,7 +41,7 @@ struct _MNIMAPMailbox {
  */
 typedef struct _MNIMAPMailboxClass MNIMAPMailboxClass;
 struct _MNIMAPMailboxClass {
-	MNMailboxClass __parent__;
+	MNAuthenticatedMailboxClass __parent__;
 };
 
 
diff --git a/src/mn-mail-icon.c b/src/mn-mail-icon.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-mailbox-private.h b/src/mn-mailbox-private.h
@@ -26,25 +26,25 @@ extern "C" {
 
 #line 28 "mn-mailbox-private.h"
 struct _MNMailboxPrivate {
-#line 143 "mn-mailbox.gob"
+#line 140 "mn-mailbox.gob"
 	char * name;
-#line 147 "mn-mailbox.gob"
+#line 144 "mn-mailbox.gob"
 	gboolean automatic;
-#line 152 "mn-mailbox.gob"
+#line 149 "mn-mailbox.gob"
 	gboolean has_new;
-#line 157 "mn-mailbox.gob"
+#line 154 "mn-mailbox.gob"
 	GSList * messages;
-#line 211 "mn-mailbox.gob"
+#line 208 "mn-mailbox.gob"
 	char * error;
-#line 231 "mn-mailbox.gob"
+#line 228 "mn-mailbox.gob"
 	GnomeVFSMonitorHandle * monitor_handle;
-#line 232 "mn-mailbox.gob"
+#line 229 "mn-mailbox.gob"
 	char * monitor_uri;
-#line 233 "mn-mailbox.gob"
+#line 230 "mn-mailbox.gob"
 	MNMailboxMonitorEventType monitor_events;
-#line 235 "mn-mailbox.gob"
+#line 232 "mn-mailbox.gob"
 	gboolean checking;
-#line 365 "mn-mailbox.gob"
+#line 363 "mn-mailbox.gob"
 	char * init_error;
 #line 50 "mn-mailbox-private.h"
 };
diff --git a/src/mn-mailbox-properties-dialog.c b/src/mn-mailbox-properties-dialog.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties-dialog.h"
 #include "mn-mailbox-properties.h"
 #include "mn-autodetect-mailbox-properties.h"
diff --git a/src/mn-mailbox-properties-util.c b/src/mn-mailbox-properties-util.c
@@ -18,7 +18,7 @@
 
 #include "config.h"
 #include <stdarg.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
diff --git a/src/mn-mailbox-properties.c b/src/mn-mailbox-properties.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include "mn-mailbox-properties.h"
 
diff --git a/src/mn-mailbox-view.c b/src/mn-mailbox-view.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-mailbox-view.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include "mn-util.h"
 #include "mn-shell.h"
diff --git a/src/mn-mailbox-view.gob b/src/mn-mailbox-view.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include "mn-util.h"
 #include "mn-shell.h"
diff --git a/src/mn-mailbox.c b/src/mn-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -23,10 +23,10 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 53 "mn-mailbox.gob"
+#line 52 "mn-mailbox.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #ifdef WITH_MBOX
 #include "mn-mbox-mailbox.h"
 #endif
@@ -81,18 +81,20 @@ typedef MNMailboxClass SelfClass;
 static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_mailbox_init (MNMailbox * o) G_GNUC_UNUSED;
+static void mn_mailbox_class_init (MNMailboxClass * c) G_GNUC_UNUSED;
 static void mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new) G_GNUC_UNUSED;
-static void mn_mailbox_class_init (MNMailboxClass * class) G_GNUC_UNUSED;
 static void ___c_mn_mailbox_finalize (GObject * object) G_GNUC_UNUSED;
 static gpointer mn_mailbox_new_async_thread (gpointer data) G_GNUC_UNUSED;
 static void mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
 static gboolean mn_mailbox_impl_is (MNMailbox * self, MNURI * uri) G_GNUC_UNUSED;
 static void mn_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-static void mn_mailbox_impl_threaded_check (MNMailbox * self) G_GNUC_UNUSED;
 
 /*
  * Signal connection wrapper macro shortcuts
  */
+#define self_connect__removed(object,func,data)	mn_mailbox_connect__removed((object),(func),(data))
+#define self_connect_after__removed(object,func,data)	mn_mailbox_connect_after__removed((object),(func),(data))
+#define self_connect_data__removed(object,func,data,destroy_data,flags)	mn_mailbox_connect_data__removed((object),(func),(data),(destroy_data),(flags))
 #define self_connect__messages_changed(object,func,data)	mn_mailbox_connect__messages_changed((object),(func),(data))
 #define self_connect_after__messages_changed(object,func,data)	mn_mailbox_connect_after__messages_changed((object),(func),(data))
 #define self_connect_data__messages_changed(object,func,data,destroy_data,flags)	mn_mailbox_connect_data__messages_changed((object),(func),(data),(destroy_data),(flags))
@@ -130,6 +132,7 @@ ___marshal_Sig1 (GClosure *closure,
 
 
 enum {
+	REMOVED_SIGNAL,
 	MESSAGES_CHANGED_SIGNAL,
 	LAST_SIGNAL
 };
@@ -150,6 +153,7 @@ static guint object_signals[LAST_SIGNAL] = {0};
 static GObjectClass *parent_class = NULL;
 
 /* Short form macros */
+#define self_removed mn_mailbox_removed
 #define self_get_name mn_mailbox_get_name
 #define self_get_automatic mn_mailbox_get_automatic
 #define self_set_automatic mn_mailbox_set_automatic
@@ -160,6 +164,7 @@ static GObjectClass *parent_class = NULL;
 #define self_messages_changed mn_mailbox_messages_changed
 #define self_set_error mn_mailbox_set_error
 #define self_get_error mn_mailbox_get_error
+#define self_init_types mn_mailbox_init_types
 #define self_new_async mn_mailbox_new_async
 #define self_new_async_thread mn_mailbox_new_async_thread
 #define self_set_init_error mn_mailbox_set_init_error
@@ -167,7 +172,6 @@ static GObjectClass *parent_class = NULL;
 #define self_monitor_cb mn_mailbox_monitor_cb
 #define self_impl_is mn_mailbox_impl_is
 #define self_impl_check mn_mailbox_impl_check
-#define self_impl_threaded_check mn_mailbox_impl_threaded_check
 #define self_check mn_mailbox_check
 #define self_end_check mn_mailbox_end_check
 #define self_notice mn_mailbox_notice
@@ -221,9 +225,9 @@ ___dispose (GObject *obj_self)
 	MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
 	if (G_OBJECT_CLASS (parent_class)->dispose) \
 		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 132 "mn-mailbox.gob"
+#line 129 "mn-mailbox.gob"
 	if(self->uri) { g_object_unref ((gpointer) self->uri); self->uri = NULL; }
-#line 227 "mn-mailbox.c"
+#line 231 "mn-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -234,24 +238,24 @@ ___finalize(GObject *obj_self)
 #define __GOB_FUNCTION__ "MN:Mailbox::finalize"
 	MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
 	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 265 "mn-mailbox.gob"
+#line 234 "mn-mailbox.gob"
 	___c_mn_mailbox_finalize(obj_self);
-#line 240 "mn-mailbox.c"
-#line 143 "mn-mailbox.gob"
+#line 244 "mn-mailbox.c"
+#line 140 "mn-mailbox.gob"
 	if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; }
-#line 243 "mn-mailbox.c"
-#line 157 "mn-mailbox.gob"
+#line 247 "mn-mailbox.c"
+#line 154 "mn-mailbox.gob"
 	if(self->_priv->messages) { mn_g_object_slist_free ((gpointer) self->_priv->messages); self->_priv->messages = NULL; }
-#line 246 "mn-mailbox.c"
-#line 211 "mn-mailbox.gob"
+#line 250 "mn-mailbox.c"
+#line 208 "mn-mailbox.gob"
 	if(self->_priv->error) { g_free ((gpointer) self->_priv->error); self->_priv->error = NULL; }
-#line 249 "mn-mailbox.c"
-#line 232 "mn-mailbox.gob"
+#line 253 "mn-mailbox.c"
+#line 229 "mn-mailbox.gob"
 	if(self->_priv->monitor_uri) { g_free ((gpointer) self->_priv->monitor_uri); self->_priv->monitor_uri = NULL; }
-#line 252 "mn-mailbox.c"
-#line 365 "mn-mailbox.gob"
+#line 256 "mn-mailbox.c"
+#line 363 "mn-mailbox.gob"
 	if(self->_priv->init_error) { g_free ((gpointer) self->_priv->init_error); self->_priv->init_error = NULL; }
-#line 255 "mn-mailbox.c"
+#line 259 "mn-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -260,23 +264,29 @@ mn_mailbox_init (MNMailbox * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::init"
 	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMailboxPrivate);
-#line 53 "mn-mailbox.gob"
+#line 52 "mn-mailbox.gob"
 	o->uri = NULL;
-#line 266 "mn-mailbox.c"
+#line 270 "mn-mailbox.c"
 }
 #undef __GOB_FUNCTION__
-#line 237 "mn-mailbox.gob"
 static void 
-mn_mailbox_class_init (MNMailboxClass * class G_GNUC_UNUSED)
-#line 272 "mn-mailbox.c"
+mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
 
-	g_type_class_add_private(class,sizeof(MNMailboxPrivate));
+	g_type_class_add_private(c,sizeof(MNMailboxPrivate));
 
 	parent_class = g_type_class_ref (G_TYPE_OBJECT);
 
+	object_signals[REMOVED_SIGNAL] =
+		g_signal_new ("removed",
+			G_TYPE_FROM_CLASS (g_object_class),
+			(GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION),
+			G_STRUCT_OFFSET (MNMailboxClass, removed),
+			NULL, NULL,
+			g_cclosure_marshal_VOID__VOID,
+			G_TYPE_NONE, 0);
 	object_signals[MESSAGES_CHANGED_SIGNAL] =
 		g_signal_new ("messages_changed",
 			G_TYPE_FROM_CLASS (g_object_class),
@@ -287,16 +297,16 @@ mn_mailbox_class_init (MNMailboxClass * class G_GNUC_UNUSED)
 			G_TYPE_NONE, 1,
 			G_TYPE_BOOLEAN);
 	if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailbox.gob line 208: Type mismatch of \"messages_changed\" signal signature");
+		g_error("mn-mailbox.gob line 205: Type mismatch of \"messages_changed\" signal signature");
 	}
 
-	class->messages_changed = NULL;
-#line 265 "mn-mailbox.gob"
+	c->removed = NULL;
+	c->messages_changed = NULL;
+#line 234 "mn-mailbox.gob"
 	g_object_class->finalize = ___finalize;
-#line 297 "mn-mailbox.c"
-	class->impl_is = NULL;
-	class->impl_check = NULL;
-	class->impl_threaded_check = NULL;
+#line 308 "mn-mailbox.c"
+	c->impl_is = NULL;
+	c->impl_check = NULL;
 	g_object_class->dispose = ___dispose;
 	g_object_class->get_property = ___object_get_property;
 	g_object_class->set_property = ___object_set_property;
@@ -357,36 +367,6 @@ mn_mailbox_class_init (MNMailboxClass * class G_GNUC_UNUSED)
 		PROP_ERROR,
 		param_spec);
     }
- {
-#line 238 "mn-mailbox.gob"
-
-    int i = 0;
-
-#ifdef WITH_MBOX
-    mn_mailbox_types[i++] = MN_TYPE_MBOX_MAILBOX;
-#endif
-#ifdef WITH_MH
-    mn_mailbox_types[i++] = MN_TYPE_MH_MAILBOX;
-#endif
-#ifdef WITH_MAILDIR
-    mn_mailbox_types[i++] = MN_TYPE_MAILDIR_MAILBOX;
-#endif
-#ifdef WITH_POP3
-    mn_mailbox_types[i++] = MN_TYPE_POP3_MAILBOX;
-#endif
-#ifdef WITH_IMAP
-    mn_mailbox_types[i++] = MN_TYPE_IMAP_MAILBOX;
-#endif
-#ifdef WITH_SYLPHEED
-    mn_mailbox_types[i++] = MN_TYPE_SYLPHEED_MAILBOX;
-#endif
-#ifdef WITH_GMAIL
-    mn_mailbox_types[i++] = MN_TYPE_GMAIL_MAILBOX;
-#endif
-    mn_mailbox_types[i] = 0;
-  
-#line 389 "mn-mailbox.c"
- }
 }
 #undef __GOB_FUNCTION__
 
@@ -404,39 +384,39 @@ ___object_set_property (GObject *object,
 	switch (property_id) {
 	case PROP_URI:
 		{
-#line 137 "mn-mailbox.gob"
+#line 134 "mn-mailbox.gob"
 
       g_return_if_fail(self->uri == NULL);
       self->uri = MN_URI(g_value_dup_object(VAL));
       selfp->name = g_strdup(self->uri->human_readable);
     
-#line 414 "mn-mailbox.c"
+#line 394 "mn-mailbox.c"
 		}
 		break;
 	case PROP_NAME:
 		{
-#line 144 "mn-mailbox.gob"
+#line 141 "mn-mailbox.gob"
 { char *old = self->_priv->name; self->_priv->name = g_value_dup_string (VAL); g_free (old); }
-#line 421 "mn-mailbox.c"
+#line 401 "mn-mailbox.c"
 		}
 		break;
 	case PROP_AUTOMATIC:
 		{
-#line 148 "mn-mailbox.gob"
+#line 145 "mn-mailbox.gob"
 self->_priv->automatic = g_value_get_boolean (VAL);
-#line 428 "mn-mailbox.c"
+#line 408 "mn-mailbox.c"
 		}
 		break;
 	case PROP_HAS_NEW:
 		{
-#line 153 "mn-mailbox.gob"
+#line 150 "mn-mailbox.gob"
 self->_priv->has_new = g_value_get_boolean (VAL);
-#line 435 "mn-mailbox.c"
+#line 415 "mn-mailbox.c"
 		}
 		break;
 	case PROP_MESSAGES:
 		{
-#line 161 "mn-mailbox.gob"
+#line 158 "mn-mailbox.gob"
 
       GSList *messages;
       GSList *l;
@@ -466,14 +446,14 @@ self->_priv->has_new = g_value_get_boolean (VAL);
       if (changed)
 	self_messages_changed(self, has_new);
     
-#line 470 "mn-mailbox.c"
+#line 450 "mn-mailbox.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
-#line 212 "mn-mailbox.gob"
+#line 209 "mn-mailbox.gob"
 { char *old = self->_priv->error; self->_priv->error = g_value_dup_string (VAL); g_free (old); }
-#line 477 "mn-mailbox.c"
+#line 457 "mn-mailbox.c"
 		}
 		break;
 	default:
@@ -502,39 +482,39 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_NAME:
 		{
-#line 144 "mn-mailbox.gob"
+#line 141 "mn-mailbox.gob"
 g_value_set_string (VAL, self->_priv->name);
-#line 508 "mn-mailbox.c"
+#line 488 "mn-mailbox.c"
 		}
 		break;
 	case PROP_AUTOMATIC:
 		{
-#line 148 "mn-mailbox.gob"
+#line 145 "mn-mailbox.gob"
 g_value_set_boolean (VAL, self->_priv->automatic);
-#line 515 "mn-mailbox.c"
+#line 495 "mn-mailbox.c"
 		}
 		break;
 	case PROP_HAS_NEW:
 		{
-#line 153 "mn-mailbox.gob"
+#line 150 "mn-mailbox.gob"
 g_value_set_boolean (VAL, self->_priv->has_new);
-#line 522 "mn-mailbox.c"
+#line 502 "mn-mailbox.c"
 		}
 		break;
 	case PROP_MESSAGES:
 		{
-#line 191 "mn-mailbox.gob"
+#line 188 "mn-mailbox.gob"
 
       g_value_set_pointer(VAL, selfp->messages);
     
-#line 531 "mn-mailbox.c"
+#line 511 "mn-mailbox.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
-#line 212 "mn-mailbox.gob"
+#line 209 "mn-mailbox.gob"
 g_value_set_string (VAL, self->_priv->error);
-#line 538 "mn-mailbox.c"
+#line 518 "mn-mailbox.c"
 		}
 		break;
 	default:
@@ -550,105 +530,142 @@ g_value_set_string (VAL, self->_priv->error);
 #undef __GOB_FUNCTION__
 
 
-#line 145 "mn-mailbox.gob"
+
+/**
+ * mn_mailbox_removed:
+ * @self: the object which received the signal
+ *
+ * This signal gets emitted after the mailbox is removed from the
+ * mailboxes list.
+ **/
+#line 126 "mn-mailbox.gob"
+void 
+mn_mailbox_removed (MNMailbox * self)
+#line 545 "mn-mailbox.c"
+{
+	GValue ___param_values[1];
+	GValue ___return_val;
+
+memset (&___return_val, 0, sizeof (___return_val));
+memset (&___param_values, 0, sizeof (___param_values));
+
+#line 126 "mn-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 126 "mn-mailbox.gob"
+	g_return_if_fail (MN_IS_MAILBOX (self));
+#line 557 "mn-mailbox.c"
+
+	___param_values[0].g_type = 0;
+	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
+	g_value_set_instance (&___param_values[0], (gpointer) self);
+
+	g_signal_emitv (___param_values,
+		object_signals[REMOVED_SIGNAL],
+		0 /* detail */,
+		&___return_val);
+
+	g_value_unset (&___param_values[0]);
+}
+
+#line 142 "mn-mailbox.gob"
 const char * 
 mn_mailbox_get_name (MNMailbox * self)
-#line 557 "mn-mailbox.c"
+#line 574 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_name"
-#line 145 "mn-mailbox.gob"
+#line 142 "mn-mailbox.gob"
 	g_return_val_if_fail (self != NULL, (const char * )0);
-#line 145 "mn-mailbox.gob"
+#line 142 "mn-mailbox.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 564 "mn-mailbox.c"
+#line 581 "mn-mailbox.c"
 {
-#line 145 "mn-mailbox.gob"
+#line 142 "mn-mailbox.gob"
 	 return selfp->name; }}
-#line 568 "mn-mailbox.c"
+#line 585 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 148 "mn-mailbox.gob"
+#line 145 "mn-mailbox.gob"
 gboolean 
 mn_mailbox_get_automatic (MNMailbox * self)
-#line 574 "mn-mailbox.c"
+#line 591 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_automatic"
 {
-#line 148 "mn-mailbox.gob"
+#line 145 "mn-mailbox.gob"
 		gboolean val; g_object_get (G_OBJECT (self), "automatic", &val, NULL); return val;
 }}
-#line 581 "mn-mailbox.c"
+#line 598 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 148 "mn-mailbox.gob"
+#line 145 "mn-mailbox.gob"
 void 
 mn_mailbox_set_automatic (MNMailbox * self, gboolean val)
-#line 587 "mn-mailbox.c"
+#line 604 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_automatic"
 {
-#line 148 "mn-mailbox.gob"
+#line 145 "mn-mailbox.gob"
 		g_object_set (G_OBJECT (self), "automatic", val, NULL);
 }}
-#line 594 "mn-mailbox.c"
+#line 611 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 153 "mn-mailbox.gob"
+#line 150 "mn-mailbox.gob"
 gboolean 
 mn_mailbox_get_has_new (MNMailbox * self)
-#line 600 "mn-mailbox.c"
+#line 617 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_has_new"
 {
-#line 153 "mn-mailbox.gob"
+#line 150 "mn-mailbox.gob"
 		gboolean val; g_object_get (G_OBJECT (self), "has_new", &val, NULL); return val;
 }}
-#line 607 "mn-mailbox.c"
+#line 624 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 153 "mn-mailbox.gob"
+#line 150 "mn-mailbox.gob"
 void 
 mn_mailbox_set_has_new (MNMailbox * self, gboolean val)
-#line 613 "mn-mailbox.c"
+#line 630 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_has_new"
 {
-#line 153 "mn-mailbox.gob"
+#line 150 "mn-mailbox.gob"
 		g_object_set (G_OBJECT (self), "has_new", val, NULL);
 }}
-#line 620 "mn-mailbox.c"
+#line 637 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 191 "mn-mailbox.gob"
+#line 188 "mn-mailbox.gob"
 gpointer 
 mn_mailbox_get_messages (MNMailbox * self)
-#line 626 "mn-mailbox.c"
+#line 643 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_messages"
 {
-#line 158 "mn-mailbox.gob"
+#line 155 "mn-mailbox.gob"
 		gpointer val; g_object_get (G_OBJECT (self), "messages", &val, NULL); return val;
 }}
-#line 633 "mn-mailbox.c"
+#line 650 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 161 "mn-mailbox.gob"
+#line 158 "mn-mailbox.gob"
 void 
 mn_mailbox_set_messages (MNMailbox * self, gpointer val)
-#line 639 "mn-mailbox.c"
+#line 656 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_messages"
 {
-#line 158 "mn-mailbox.gob"
+#line 155 "mn-mailbox.gob"
 		g_object_set (G_OBJECT (self), "messages", val, NULL);
 }}
-#line 646 "mn-mailbox.c"
+#line 663 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 208 "mn-mailbox.gob"
+#line 205 "mn-mailbox.gob"
 static void 
 mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
-#line 652 "mn-mailbox.c"
+#line 669 "mn-mailbox.c"
 {
 	GValue ___param_values[2];
 	GValue ___return_val;
@@ -656,11 +673,11 @@ mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 208 "mn-mailbox.gob"
+#line 205 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 208 "mn-mailbox.gob"
+#line 205 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 664 "mn-mailbox.c"
+#line 681 "mn-mailbox.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -679,19 +696,19 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[1]);
 }
 
-#line 213 "mn-mailbox.gob"
+#line 210 "mn-mailbox.gob"
 void 
 mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
-#line 686 "mn-mailbox.c"
+#line 703 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_error"
-#line 213 "mn-mailbox.gob"
+#line 210 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 213 "mn-mailbox.gob"
+#line 210 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 693 "mn-mailbox.c"
+#line 710 "mn-mailbox.c"
 {
-#line 215 "mn-mailbox.gob"
+#line 212 "mn-mailbox.gob"
 	
     va_list args;
     char *error = NULL;
@@ -706,43 +723,42 @@ mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
     g_object_set(G_OBJECT(self), MN_MAILBOX_PROP_ERROR(error), NULL);
     g_free(error);
   }}
-#line 710 "mn-mailbox.c"
+#line 727 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 229 "mn-mailbox.gob"
+#line 226 "mn-mailbox.gob"
 const char * 
 mn_mailbox_get_error (MNMailbox * self)
-#line 716 "mn-mailbox.c"
+#line 733 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_error"
-#line 229 "mn-mailbox.gob"
+#line 226 "mn-mailbox.gob"
 	g_return_val_if_fail (self != NULL, (const char * )0);
-#line 229 "mn-mailbox.gob"
+#line 226 "mn-mailbox.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 723 "mn-mailbox.c"
+#line 740 "mn-mailbox.c"
 {
-#line 229 "mn-mailbox.gob"
+#line 226 "mn-mailbox.gob"
 	 return selfp->error; }}
-#line 727 "mn-mailbox.c"
+#line 744 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-
-#line 265 "mn-mailbox.gob"
+#line 234 "mn-mailbox.gob"
 static void 
 ___c_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
-#line 734 "mn-mailbox.c"
+#line 750 "mn-mailbox.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::finalize"
-#line 265 "mn-mailbox.gob"
+#line 234 "mn-mailbox.gob"
 	g_return_if_fail (object != NULL);
-#line 265 "mn-mailbox.gob"
+#line 234 "mn-mailbox.gob"
 	g_return_if_fail (G_IS_OBJECT (object));
-#line 744 "mn-mailbox.c"
+#line 760 "mn-mailbox.c"
 {
-#line 267 "mn-mailbox.gob"
+#line 236 "mn-mailbox.gob"
 	
     Self *self = SELF(object);
 
@@ -751,10 +767,47 @@ ___c_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
 
     PARENT_HANDLER(object);
   }}
-#line 755 "mn-mailbox.c"
+#line 771 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
+#line 245 "mn-mailbox.gob"
+void 
+mn_mailbox_init_types (void)
+#line 778 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::init_types"
+{
+#line 247 "mn-mailbox.gob"
+	
+    int i = 0;
+
+#ifdef WITH_MBOX
+    mn_mailbox_types[i++] = MN_TYPE_MBOX_MAILBOX;
+#endif
+#ifdef WITH_MH
+    mn_mailbox_types[i++] = MN_TYPE_MH_MAILBOX;
+#endif
+#ifdef WITH_MAILDIR
+    mn_mailbox_types[i++] = MN_TYPE_MAILDIR_MAILBOX;
+#endif
+#ifdef WITH_POP3
+    mn_mailbox_types[i++] = MN_TYPE_POP3_MAILBOX;
+#endif
+#ifdef WITH_IMAP
+    mn_mailbox_types[i++] = MN_TYPE_IMAP_MAILBOX;
+#endif
+#ifdef WITH_SYLPHEED
+    mn_mailbox_types[i++] = MN_TYPE_SYLPHEED_MAILBOX;
+#endif
+#ifdef WITH_GMAIL
+    mn_mailbox_types[i++] = MN_TYPE_GMAIL_MAILBOX;
+#endif
+    mn_mailbox_types[i] = 0;
+  }}
+#line 809 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
 /**
  * mn_mailbox_new_async:
  * @uri: location of the mailbox
@@ -765,21 +818,21 @@ ___c_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
  * Creates a new #MNMailbox asynchronously. The newly created
  * #MNMailbox will be passed to @callback.
  **/
-#line 286 "mn-mailbox.gob"
+#line 284 "mn-mailbox.gob"
 void 
 mn_mailbox_new_async (MNURI * uri, gpointer callback, gpointer user_data)
-#line 772 "mn-mailbox.c"
+#line 825 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::new_async"
-#line 286 "mn-mailbox.gob"
+#line 284 "mn-mailbox.gob"
 	g_return_if_fail (uri != NULL);
-#line 286 "mn-mailbox.gob"
+#line 284 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_URI (uri));
-#line 286 "mn-mailbox.gob"
+#line 284 "mn-mailbox.gob"
 	g_return_if_fail (callback != NULL);
-#line 781 "mn-mailbox.c"
+#line 834 "mn-mailbox.c"
 {
-#line 290 "mn-mailbox.gob"
+#line 288 "mn-mailbox.gob"
 	
     NewInfo *info;
 
@@ -790,17 +843,17 @@ mn_mailbox_new_async (MNURI * uri, gpointer callback, gpointer user_data)
 
     mn_thread_create(self_new_async_thread, info);
   }}
-#line 794 "mn-mailbox.c"
+#line 847 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 301 "mn-mailbox.gob"
+#line 299 "mn-mailbox.gob"
 static gpointer 
 mn_mailbox_new_async_thread (gpointer data)
-#line 800 "mn-mailbox.c"
+#line 853 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::new_async_thread"
 {
-#line 303 "mn-mailbox.gob"
+#line 301 "mn-mailbox.gob"
 	
     NewInfo *info = data;
     Self *mailbox = NULL;
@@ -862,24 +915,24 @@ mn_mailbox_new_async_thread (gpointer data)
 
     return NULL;
   }}
-#line 866 "mn-mailbox.c"
+#line 919 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 366 "mn-mailbox.gob"
+#line 364 "mn-mailbox.gob"
 void 
 mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...)
-#line 872 "mn-mailbox.c"
+#line 925 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_init_error"
-#line 366 "mn-mailbox.gob"
+#line 364 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 366 "mn-mailbox.gob"
+#line 364 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 366 "mn-mailbox.gob"
+#line 364 "mn-mailbox.gob"
 	g_return_if_fail (format != NULL);
-#line 881 "mn-mailbox.c"
+#line 934 "mn-mailbox.c"
 {
-#line 368 "mn-mailbox.gob"
+#line 366 "mn-mailbox.gob"
 	
     va_list args;
 
@@ -889,24 +942,24 @@ mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...)
     selfp->init_error = g_strdup_vprintf(format, args);
     va_end(args);
   }}
-#line 893 "mn-mailbox.c"
+#line 946 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 378 "mn-mailbox.gob"
+#line 376 "mn-mailbox.gob"
 void 
 mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType monitor_type, MNMailboxMonitorEventType events)
-#line 899 "mn-mailbox.c"
+#line 952 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::monitor"
-#line 378 "mn-mailbox.gob"
+#line 376 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 378 "mn-mailbox.gob"
+#line 376 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 378 "mn-mailbox.gob"
+#line 376 "mn-mailbox.gob"
 	g_return_if_fail (uri != NULL);
-#line 908 "mn-mailbox.c"
+#line 961 "mn-mailbox.c"
 {
-#line 383 "mn-mailbox.gob"
+#line 381 "mn-mailbox.gob"
 	
     GnomeVFSResult result;
 
@@ -996,20 +1049,20 @@ mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType moni
 	  }
       }
   }}
-#line 1000 "mn-mailbox.c"
+#line 1053 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 473 "mn-mailbox.gob"
+#line 471 "mn-mailbox.gob"
 static void 
 mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
-#line 1006 "mn-mailbox.c"
+#line 1059 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::monitor_cb"
-#line 473 "mn-mailbox.gob"
+#line 471 "mn-mailbox.gob"
 	g_return_if_fail (user_data != NULL);
-#line 1011 "mn-mailbox.c"
+#line 1064 "mn-mailbox.c"
 {
-#line 479 "mn-mailbox.gob"
+#line 477 "mn-mailbox.gob"
 	
     Self *self = user_data;
 
@@ -1018,20 +1071,20 @@ mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri,
       self_check(self);
     GDK_THREADS_LEAVE();
   }}
-#line 1022 "mn-mailbox.c"
+#line 1075 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 488 "mn-mailbox.gob"
+#line 486 "mn-mailbox.gob"
 static gboolean 
 mn_mailbox_impl_is (MNMailbox * self, MNURI * uri)
-#line 1028 "mn-mailbox.c"
+#line 1081 "mn-mailbox.c"
 {
 	MNMailboxClass *klass;
-#line 488 "mn-mailbox.gob"
+#line 486 "mn-mailbox.gob"
 	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 488 "mn-mailbox.gob"
+#line 486 "mn-mailbox.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX (self), (gboolean )0);
-#line 1035 "mn-mailbox.c"
+#line 1088 "mn-mailbox.c"
 	klass = MN_MAILBOX_GET_CLASS(self);
 
 	if(klass->impl_is)
@@ -1040,53 +1093,36 @@ mn_mailbox_impl_is (MNMailbox * self, MNURI * uri)
 		return (gboolean )(0);
 }
 
-#line 490 "mn-mailbox.gob"
+#line 488 "mn-mailbox.gob"
 static void 
 mn_mailbox_impl_check (MNMailbox * self)
-#line 1047 "mn-mailbox.c"
+#line 1100 "mn-mailbox.c"
 {
 	MNMailboxClass *klass;
-#line 490 "mn-mailbox.gob"
+#line 488 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 490 "mn-mailbox.gob"
+#line 488 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1054 "mn-mailbox.c"
+#line 1107 "mn-mailbox.c"
 	klass = MN_MAILBOX_GET_CLASS(self);
 
 	if(klass->impl_check)
 		(*klass->impl_check)(self);
 }
 
-#line 492 "mn-mailbox.gob"
-static void 
-mn_mailbox_impl_threaded_check (MNMailbox * self)
-#line 1064 "mn-mailbox.c"
-{
-	MNMailboxClass *klass;
-#line 492 "mn-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 492 "mn-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1071 "mn-mailbox.c"
-	klass = MN_MAILBOX_GET_CLASS(self);
-
-	if(klass->impl_threaded_check)
-		(*klass->impl_threaded_check)(self);
-}
-
-#line 495 "mn-mailbox.gob"
+#line 491 "mn-mailbox.gob"
 void 
 mn_mailbox_check (MNMailbox * self)
-#line 1081 "mn-mailbox.c"
+#line 1117 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::check"
-#line 495 "mn-mailbox.gob"
+#line 491 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 495 "mn-mailbox.gob"
+#line 491 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1088 "mn-mailbox.c"
+#line 1124 "mn-mailbox.c"
 {
-#line 497 "mn-mailbox.gob"
+#line 493 "mn-mailbox.gob"
 	
     g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
 
@@ -1096,66 +1132,59 @@ mn_mailbox_check (MNMailbox * self)
 	selfp->checking = TRUE;
 	self_set_error(self, NULL);
 
-	if (SELF_GET_CLASS(self)->impl_threaded_check)
-	  mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_threaded_check, self);
-	else
-	  SELF_GET_CLASS(self)->impl_check(self);
+	mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
       }
   }}
-#line 1106 "mn-mailbox.c"
+#line 1139 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 513 "mn-mailbox.gob"
+#line 506 "mn-mailbox.gob"
 void 
 mn_mailbox_end_check (MNMailbox * self)
-#line 1112 "mn-mailbox.c"
+#line 1145 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::end_check"
-#line 513 "mn-mailbox.gob"
+#line 506 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 513 "mn-mailbox.gob"
+#line 506 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1119 "mn-mailbox.c"
+#line 1152 "mn-mailbox.c"
 {
-#line 515 "mn-mailbox.gob"
+#line 508 "mn-mailbox.gob"
 	
     g_return_if_fail(selfp->checking == TRUE);
 
     selfp->checking = FALSE;
     g_object_unref(self);
   }}
-#line 1128 "mn-mailbox.c"
+#line 1161 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 522 "mn-mailbox.gob"
+#line 515 "mn-mailbox.gob"
 void 
 mn_mailbox_notice (MNMailbox * self, const char * format, ...)
-#line 1134 "mn-mailbox.c"
+#line 1167 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::notice"
-#line 522 "mn-mailbox.gob"
+#line 515 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 522 "mn-mailbox.gob"
+#line 515 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 522 "mn-mailbox.gob"
+#line 515 "mn-mailbox.gob"
 	g_return_if_fail (format != NULL);
-#line 1143 "mn-mailbox.c"
+#line 1176 "mn-mailbox.c"
 {
-#line 524 "mn-mailbox.gob"
+#line 517 "mn-mailbox.gob"
 	
     va_list args;
     char *notice;
-    char *prefixed_notice;
     
     va_start(args, format);
     notice = g_strdup_vprintf(format, args);
     va_end(args);
 
-    prefixed_notice = g_strdup_printf("%s: %s", self->uri->text, notice);
+    mn_info("%s: %s", self->uri->text, notice);
     g_free(notice);
-    
-    mn_info("%s", prefixed_notice);
-    g_free(prefixed_notice);
   }}
-#line 1161 "mn-mailbox.c"
+#line 1190 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox.gob b/src/mn-mailbox.gob
@@ -44,15 +44,14 @@ requires 2.0.10
   extern GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
 
 #define MN_MAILBOX_CAN_CHECK(self) \
-  (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL \
-   || MN_MAILBOX_GET_CLASS((self))->impl_threaded_check != NULL)
+  (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
 #define MN_MAILBOX_MUST_POLL(self) \
   (MN_MAILBOX_CAN_CHECK((self)) && ! mn_mailbox_get_automatic((self)))
 %}
   
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #ifdef WITH_MBOX
 #include "mn-mbox-mailbox.h"
 #endif
@@ -109,19 +108,7 @@ typedef struct
  * GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() where appropriate in
  * the construction phase.
  *
- * Virtual methods called with the GDK lock held:
- *
- *	mn_mailbox_impl_check()
- *
- * Virtual methods called with the GDK lock not held:
- *
- *	mn_mailbox_impl_is()
- *	mn_mailbox_impl_threaded_check()
- *
- * Do not assume anything about the thread from which a virtual method
- * is called. For instance, mn_mailbox_impl_check() may be called both
- * from the thread running the GTK+ main loop and from a separate
- * thread.
+ * Virtual methods are called with the GDK lock not held.
  */
 
 class MN:Mailbox from G:Object
@@ -129,6 +116,16 @@ class MN:Mailbox from G:Object
   classwide const char *stock_id;
   classwide const char *format;
 
+  /**
+   * removed:
+   * @self: the object which received the signal
+   *
+   * This signal gets emitted after the mailbox is removed from the
+   * mailboxes list.
+   **/
+  signal NONE (NONE)
+    void removed (self);
+
   public MNURI *uri = NULL unrefwith g_object_unref;
   property OBJECT uri (blurb = _("The mailbox URI"),
 		       object_type = MN:URI,
@@ -234,7 +231,19 @@ class MN:Mailbox from G:Object
   
   private gboolean checking;
   
-  class_init (class)
+  override (G:Object) void
+    finalize (G:Object *object (check null type))
+  {
+    Self *self = SELF(object);
+
+    if (selfp->monitor_handle)
+      gnome_vfs_monitor_cancel(selfp->monitor_handle);
+
+    PARENT_HANDLER(object);
+  }
+  
+  public void
+    init_types (void)
   {
     int i = 0;
 
@@ -261,18 +270,7 @@ class MN:Mailbox from G:Object
 #endif
     mn_mailbox_types[i] = 0;
   }
-  
-  override (G:Object) void
-    finalize (G:Object *object (check null type))
-  {
-    Self *self = SELF(object);
 
-    if (selfp->monitor_handle)
-      gnome_vfs_monitor_cancel(selfp->monitor_handle);
-
-    PARENT_HANDLER(object);
-  }
-  
   /**
    * new_async:
    * @uri: location of the mailbox
@@ -489,8 +487,6 @@ class MN:Mailbox from G:Object
     impl_is (self, MNURI *uri);
   virtual private void
     impl_check (self);
-  virtual private void
-    impl_threaded_check (self);
   
   public void
     check (self)
@@ -503,10 +499,7 @@ class MN:Mailbox from G:Object
 	selfp->checking = TRUE;
 	self_set_error(self, NULL);
 
-	if (SELF_GET_CLASS(self)->impl_threaded_check)
-	  mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_threaded_check, self);
-	else
-	  SELF_GET_CLASS(self)->impl_check(self);
+	mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
       }
   }
   
@@ -524,16 +517,12 @@ class MN:Mailbox from G:Object
   {
     va_list args;
     char *notice;
-    char *prefixed_notice;
     
     va_start(args, format);
     notice = g_strdup_vprintf(format, args);
     va_end(args);
 
-    prefixed_notice = g_strdup_printf("%s: %s", self->uri->text, notice);
+    mn_info("%s: %s", self->uri->text, notice);
     g_free(notice);
-    
-    mn_info("%s", prefixed_notice);
-    g_free(prefixed_notice);
   }
 }
diff --git a/src/mn-mailbox.h b/src/mn-mailbox.h
@@ -22,8 +22,7 @@ extern "C" {
   extern GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
 
 #define MN_MAILBOX_CAN_CHECK(self) \
-  (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL \
-   || MN_MAILBOX_GET_CLASS((self))->impl_threaded_check != NULL)
+  (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
 #define MN_MAILBOX_MUST_POLL(self) \
   (MN_MAILBOX_CAN_CHECK((self)) && ! mn_mailbox_get_automatic((self)))
 
@@ -63,10 +62,10 @@ struct _MNMailbox {
 typedef struct _MNMailboxClass MNMailboxClass;
 struct _MNMailboxClass {
 	GObjectClass __parent__;
+	/*signal*/void (* removed) (MNMailbox * self);
 	/*signal*/void (* messages_changed) (MNMailbox * self, gboolean has_new);
 	gboolean (* impl_is) (MNMailbox * self, MNURI * uri);
 	void (* impl_check) (MNMailbox * self);
-	void (* impl_threaded_check) (MNMailbox * self);
 	const char * stock_id;
 	const char * format;
 };
@@ -76,6 +75,7 @@ struct _MNMailboxClass {
  * Public methods
  */
 GType	mn_mailbox_get_type	(void);
+void 	mn_mailbox_removed	(MNMailbox * self);
 const char * 	mn_mailbox_get_name	(MNMailbox * self);
 gboolean 	mn_mailbox_get_automatic	(MNMailbox * self);
 void 	mn_mailbox_set_automatic	(MNMailbox * self,
@@ -87,6 +87,7 @@ gpointer 	mn_mailbox_get_messages	(MNMailbox * self);
 void 	mn_mailbox_set_messages	(MNMailbox * self,
 					gpointer val);
 const char * 	mn_mailbox_get_error	(MNMailbox * self);
+void 	mn_mailbox_init_types	(void);
 void 	mn_mailbox_new_async	(MNURI * uri,
 					gpointer callback,
 					gpointer user_data);
@@ -96,10 +97,16 @@ void 	mn_mailbox_check	(MNMailbox * self);
  * Signal connection wrapper macros
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define mn_mailbox_connect__removed(object,func,data)	g_signal_connect(MN_MAILBOX(__extension__ ({MNMailbox *___object = (object); ___object; })),"removed",(GCallback) __extension__ ({void (* ___removed) (MNMailbox * ___fake___self, gpointer ___data ) = (func); ___removed; }), (data))
+#define mn_mailbox_connect_after__removed(object,func,data)	g_signal_connect_after(MN_MAILBOX(__extension__ ({MNMailbox *___object = (object); ___object; })),"removed",(GCallback) __extension__ ({void (* ___removed) (MNMailbox * ___fake___self, gpointer ___data ) = (func); ___removed; }), (data))
+#define mn_mailbox_connect_data__removed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOX(__extension__ ({MNMailbox *___object = (object); ___object; })),"removed",(GCallback) __extension__ ({void (* ___removed) (MNMailbox * ___fake___self, gpointer ___data ) = (func); ___removed; }), (data), (destroy_data), (GConnectFlags)(flags))
 #define mn_mailbox_connect__messages_changed(object,func,data)	g_signal_connect(MN_MAILBOX(__extension__ ({MNMailbox *___object = (object); ___object; })),"messages_changed",(GCallback) __extension__ ({void (* ___messages_changed) (MNMailbox * ___fake___self, gboolean ___fake___has_new, gpointer ___data ) = (func); ___messages_changed; }), (data))
 #define mn_mailbox_connect_after__messages_changed(object,func,data)	g_signal_connect_after(MN_MAILBOX(__extension__ ({MNMailbox *___object = (object); ___object; })),"messages_changed",(GCallback) __extension__ ({void (* ___messages_changed) (MNMailbox * ___fake___self, gboolean ___fake___has_new, gpointer ___data ) = (func); ___messages_changed; }), (data))
 #define mn_mailbox_connect_data__messages_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOX(__extension__ ({MNMailbox *___object = (object); ___object; })),"messages_changed",(GCallback) __extension__ ({void (* ___messages_changed) (MNMailbox * ___fake___self, gboolean ___fake___has_new, gpointer ___data ) = (func); ___messages_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
 #else /* __GNUC__ && !__STRICT_ANSI__ */
+#define mn_mailbox_connect__removed(object,func,data)	g_signal_connect(MN_MAILBOX(object),"removed",(GCallback)(func),(data))
+#define mn_mailbox_connect_after__removed(object,func,data)	g_signal_connect_after(MN_MAILBOX(object),"removed",(GCallback)(func),(data))
+#define mn_mailbox_connect_data__removed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOX(object),"removed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
 #define mn_mailbox_connect__messages_changed(object,func,data)	g_signal_connect(MN_MAILBOX(object),"messages_changed",(GCallback)(func),(data))
 #define mn_mailbox_connect_after__messages_changed(object,func,data)	g_signal_connect_after(MN_MAILBOX(object),"messages_changed",(GCallback)(func),(data))
 #define mn_mailbox_connect_data__messages_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOX(object),"messages_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
diff --git a/src/mn-mailboxes.c b/src/mn-mailboxes.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-mailboxes.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <eel/eel.h>
 #include "mn-conf.h"
 #include "mn-util.h"
@@ -260,7 +260,7 @@ ___finalize(GObject *obj_self)
 #define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
 	MNMailboxes *self G_GNUC_UNUSED = MN_MAILBOXES (obj_self);
 	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 159 "mn-mailboxes.gob"
+#line 169 "mn-mailboxes.gob"
 	___a_mn_mailboxes_finalize(obj_self);
 #line 266 "mn-mailboxes.c"
 #line 36 "mn-mailboxes.gob"
@@ -341,7 +341,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 			G_TYPE_NONE, 1,
 			G_TYPE_BOOLEAN);
 	if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailboxes.gob line 118: Type mismatch of \"messages_changed\" signal signature");
+		g_error("mn-mailboxes.gob line 128: Type mismatch of \"messages_changed\" signal signature");
 	}
 	object_signals[ERROR_CHANGED_SIGNAL] =
 		g_signal_new ("error_changed",
@@ -356,13 +356,13 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 	c->mailbox_changed = NULL;
 #line 69 "mn-mailboxes.gob"
 	c->mailbox_removed = ___real_mn_mailboxes_mailbox_removed;
-#line 86 "mn-mailboxes.gob"
+#line 96 "mn-mailboxes.gob"
 	c->list_changed = ___real_mn_mailboxes_list_changed;
 #line 362 "mn-mailboxes.c"
 	c->has_new_changed = NULL;
 	c->messages_changed = NULL;
 	c->error_changed = NULL;
-#line 159 "mn-mailboxes.gob"
+#line 169 "mn-mailboxes.gob"
 	g_object_class->finalize = ___finalize;
 #line 368 "mn-mailboxes.c"
 	g_object_class->get_property = ___object_get_property;
@@ -381,7 +381,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
     }
 }
 #undef __GOB_FUNCTION__
-#line 150 "mn-mailboxes.gob"
+#line 160 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_init (MNMailboxes * self G_GNUC_UNUSED)
 #line 388 "mn-mailboxes.c"
@@ -389,7 +389,7 @@ mn_mailboxes_init (MNMailboxes * self G_GNUC_UNUSED)
 #define __GOB_FUNCTION__ "MN:Mailboxes::init"
 	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailboxesPrivate);
  {
-#line 151 "mn-mailboxes.gob"
+#line 161 "mn-mailboxes.gob"
 
     self_update_from_conf(self);
     self_install_timeout(self);
@@ -416,7 +416,7 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_MUST_POLL:
 		{
-#line 136 "mn-mailboxes.gob"
+#line 146 "mn-mailboxes.gob"
 
       gboolean must_poll = FALSE;
       GSList *l;
@@ -568,18 +568,28 @@ ___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbo
 {
 #line 71 "mn-mailboxes.gob"
 	
+    /* disconnect signals */
+    g_object_disconnect(mailbox,
+			"any_signal", self_notify_has_new_h, self,
+			"any_signal", self_messages_changed_h, self,
+			"any_signal", self_notify_error_h, self,
+			NULL);
+
+    /* emit the "removed" signal on the mailbox */
+    mn_mailbox_removed(mailbox);
+
     /* has-new, messages and error have possibly changed */
     self_has_new_changed(self);
     self_messages_changed(self, FALSE);
     self_error_changed(self);
   }}
-#line 577 "mn-mailboxes.c"
+#line 587 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 86 "mn-mailboxes.gob"
+#line 96 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_list_changed (MNMailboxes * self)
-#line 583 "mn-mailboxes.c"
+#line 593 "mn-mailboxes.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -587,11 +597,11 @@ mn_mailboxes_list_changed (MNMailboxes * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 86 "mn-mailboxes.gob"
+#line 96 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 86 "mn-mailboxes.gob"
+#line 96 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 595 "mn-mailboxes.c"
+#line 605 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -604,25 +614,25 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 86 "mn-mailboxes.gob"
+#line 96 "mn-mailboxes.gob"
 static void 
 ___real_mn_mailboxes_list_changed (MNMailboxes * self G_GNUC_UNUSED)
-#line 611 "mn-mailboxes.c"
+#line 621 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::list_changed"
 {
-#line 88 "mn-mailboxes.gob"
+#line 98 "mn-mailboxes.gob"
 	
     /* must-poll has possibly changed */
     g_object_notify(G_OBJECT(self), "must-poll");
   }}
-#line 620 "mn-mailboxes.c"
+#line 630 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 102 "mn-mailboxes.gob"
+#line 112 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_has_new_changed (MNMailboxes * self)
-#line 626 "mn-mailboxes.c"
+#line 636 "mn-mailboxes.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -630,11 +640,11 @@ mn_mailboxes_has_new_changed (MNMailboxes * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 102 "mn-mailboxes.gob"
+#line 112 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 102 "mn-mailboxes.gob"
+#line 112 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 638 "mn-mailboxes.c"
+#line 648 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -648,10 +658,10 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[0]);
 }
 
-#line 118 "mn-mailboxes.gob"
+#line 128 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
-#line 655 "mn-mailboxes.c"
+#line 665 "mn-mailboxes.c"
 {
 	GValue ___param_values[2];
 	GValue ___return_val;
@@ -659,11 +669,11 @@ mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 118 "mn-mailboxes.gob"
+#line 128 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 118 "mn-mailboxes.gob"
+#line 128 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 667 "mn-mailboxes.c"
+#line 677 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -682,10 +692,10 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[1]);
 }
 
-#line 130 "mn-mailboxes.gob"
+#line 140 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_error_changed (MNMailboxes * self)
-#line 689 "mn-mailboxes.c"
+#line 699 "mn-mailboxes.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -693,11 +703,11 @@ mn_mailboxes_error_changed (MNMailboxes * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 130 "mn-mailboxes.gob"
+#line 140 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 130 "mn-mailboxes.gob"
+#line 140 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 701 "mn-mailboxes.c"
+#line 711 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -711,36 +721,36 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[0]);
 }
 
-#line 136 "mn-mailboxes.gob"
+#line 146 "mn-mailboxes.gob"
 gboolean 
 mn_mailboxes_get_must_poll (MNMailboxes * self)
-#line 718 "mn-mailboxes.c"
+#line 728 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::get_must_poll"
 {
-#line 133 "mn-mailboxes.gob"
+#line 143 "mn-mailboxes.gob"
 		gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
 }}
-#line 725 "mn-mailboxes.c"
+#line 735 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
 
-#line 159 "mn-mailboxes.gob"
+#line 169 "mn-mailboxes.gob"
 static void 
 ___a_mn_mailboxes_finalize (GObject * object G_GNUC_UNUSED)
-#line 732 "mn-mailboxes.c"
+#line 742 "mn-mailboxes.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
-#line 159 "mn-mailboxes.gob"
+#line 169 "mn-mailboxes.gob"
 	g_return_if_fail (object != NULL);
-#line 159 "mn-mailboxes.gob"
+#line 169 "mn-mailboxes.gob"
 	g_return_if_fail (G_IS_OBJECT (object));
-#line 742 "mn-mailboxes.c"
+#line 752 "mn-mailboxes.c"
 {
-#line 161 "mn-mailboxes.gob"
+#line 171 "mn-mailboxes.gob"
 	
     Self *self = SELF(object);
 
@@ -752,21 +762,21 @@ ___a_mn_mailboxes_finalize (GObject * object G_GNUC_UNUSED)
 
     PARENT_HANDLER(object);
   }}
-#line 756 "mn-mailboxes.c"
+#line 766 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 173 "mn-mailboxes.gob"
+#line 183 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_notify_delay_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 763 "mn-mailboxes.c"
+#line 773 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::notify_delay_cb"
-#line 173 "mn-mailboxes.gob"
+#line 183 "mn-mailboxes.gob"
 	g_return_if_fail (user_data != NULL);
-#line 768 "mn-mailboxes.c"
+#line 778 "mn-mailboxes.c"
 {
-#line 178 "mn-mailboxes.gob"
+#line 188 "mn-mailboxes.gob"
 	
     Self *self = user_data;
 
@@ -774,20 +784,20 @@ mn_mailboxes_notify_delay_cb (GConfClient * client, guint cnxn_id, GConfEntry * 
     self_install_timeout(self);
     GDK_THREADS_LEAVE();
   }}
-#line 778 "mn-mailboxes.c"
+#line 788 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 186 "mn-mailboxes.gob"
+#line 196 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_notify_mailboxes_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 784 "mn-mailboxes.c"
+#line 794 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::notify_mailboxes_cb"
-#line 186 "mn-mailboxes.gob"
+#line 196 "mn-mailboxes.gob"
 	g_return_if_fail (user_data != NULL);
-#line 789 "mn-mailboxes.c"
+#line 799 "mn-mailboxes.c"
 {
-#line 191 "mn-mailboxes.gob"
+#line 201 "mn-mailboxes.gob"
 	
     Self *self = user_data;
 
@@ -795,22 +805,22 @@ mn_mailboxes_notify_mailboxes_cb (GConfClient * client, guint cnxn_id, GConfEntr
     self_update_from_conf(self);
     GDK_THREADS_LEAVE();
   }}
-#line 799 "mn-mailboxes.c"
+#line 809 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 199 "mn-mailboxes.gob"
+#line 209 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_update_from_conf (MNMailboxes * self)
-#line 805 "mn-mailboxes.c"
+#line 815 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::update_from_conf"
-#line 199 "mn-mailboxes.gob"
+#line 209 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 199 "mn-mailboxes.gob"
+#line 209 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 812 "mn-mailboxes.c"
+#line 822 "mn-mailboxes.c"
 {
-#line 201 "mn-mailboxes.gob"
+#line 211 "mn-mailboxes.gob"
 	
     GSList *gconf_mailboxes;
     GSList *l;
@@ -864,24 +874,24 @@ mn_mailboxes_update_from_conf (MNMailboxes * self)
     if (changed)
       self_list_changed(self);
   }}
-#line 868 "mn-mailboxes.c"
+#line 878 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 255 "mn-mailboxes.gob"
+#line 265 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
-#line 874 "mn-mailboxes.c"
+#line 884 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::new_cb"
-#line 255 "mn-mailboxes.gob"
+#line 265 "mn-mailboxes.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 255 "mn-mailboxes.gob"
+#line 265 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 255 "mn-mailboxes.gob"
+#line 265 "mn-mailboxes.gob"
 	g_return_if_fail (user_data != NULL);
-#line 883 "mn-mailboxes.c"
+#line 893 "mn-mailboxes.c"
 {
-#line 258 "mn-mailboxes.gob"
+#line 268 "mn-mailboxes.gob"
 	
     Self *self = user_data;
     GSList *elem;
@@ -910,26 +920,26 @@ mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
     else
       g_object_unref(mailbox);
   }}
-#line 914 "mn-mailboxes.c"
+#line 924 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 287 "mn-mailboxes.gob"
+#line 297 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_notify_has_new_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 920 "mn-mailboxes.c"
+#line 930 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::notify_has_new_h"
-#line 287 "mn-mailboxes.gob"
+#line 297 "mn-mailboxes.gob"
 	g_return_if_fail (object != NULL);
-#line 287 "mn-mailboxes.gob"
+#line 297 "mn-mailboxes.gob"
 	g_return_if_fail (G_IS_OBJECT (object));
-#line 287 "mn-mailboxes.gob"
+#line 297 "mn-mailboxes.gob"
 	g_return_if_fail (pspec != NULL);
-#line 287 "mn-mailboxes.gob"
+#line 297 "mn-mailboxes.gob"
 	g_return_if_fail (user_data != NULL);
-#line 931 "mn-mailboxes.c"
+#line 941 "mn-mailboxes.c"
 {
-#line 291 "mn-mailboxes.gob"
+#line 301 "mn-mailboxes.gob"
 	
     Self *self = user_data;
     MNMailbox *mailbox = MN_MAILBOX(object);
@@ -940,49 +950,49 @@ mn_mailboxes_notify_has_new_h (GObject * object, GParamSpec * pspec, gpointer us
 
     self_has_new_changed(self);
   }}
-#line 944 "mn-mailboxes.c"
+#line 954 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 302 "mn-mailboxes.gob"
+#line 312 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data)
-#line 950 "mn-mailboxes.c"
+#line 960 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::messages_changed_h"
-#line 302 "mn-mailboxes.gob"
+#line 312 "mn-mailboxes.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 302 "mn-mailboxes.gob"
+#line 312 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 302 "mn-mailboxes.gob"
+#line 312 "mn-mailboxes.gob"
 	g_return_if_fail (user_data != NULL);
-#line 959 "mn-mailboxes.c"
+#line 969 "mn-mailboxes.c"
 {
-#line 306 "mn-mailboxes.gob"
+#line 316 "mn-mailboxes.gob"
 	
     Self *self = user_data;
 
     self_messages_changed(self, has_new);
   }}
-#line 967 "mn-mailboxes.c"
+#line 977 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 312 "mn-mailboxes.gob"
+#line 322 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 973 "mn-mailboxes.c"
+#line 983 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::notify_error_h"
-#line 312 "mn-mailboxes.gob"
+#line 322 "mn-mailboxes.gob"
 	g_return_if_fail (object != NULL);
-#line 312 "mn-mailboxes.gob"
+#line 322 "mn-mailboxes.gob"
 	g_return_if_fail (G_IS_OBJECT (object));
-#line 312 "mn-mailboxes.gob"
+#line 322 "mn-mailboxes.gob"
 	g_return_if_fail (pspec != NULL);
-#line 312 "mn-mailboxes.gob"
+#line 322 "mn-mailboxes.gob"
 	g_return_if_fail (user_data != NULL);
-#line 984 "mn-mailboxes.c"
+#line 994 "mn-mailboxes.c"
 {
-#line 316 "mn-mailboxes.gob"
+#line 326 "mn-mailboxes.gob"
 	
     Self *self = user_data;
     MNMailbox *mailbox = MN_MAILBOX(object);
@@ -994,22 +1004,22 @@ mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user
 
     self_error_changed(self);
   }}
-#line 998 "mn-mailboxes.c"
+#line 1008 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 328 "mn-mailboxes.gob"
+#line 338 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_install_timeout (MNMailboxes * self)
-#line 1004 "mn-mailboxes.c"
+#line 1014 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::install_timeout"
-#line 328 "mn-mailboxes.gob"
+#line 338 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 328 "mn-mailboxes.gob"
+#line 338 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 1011 "mn-mailboxes.c"
+#line 1021 "mn-mailboxes.c"
 {
-#line 330 "mn-mailboxes.gob"
+#line 340 "mn-mailboxes.gob"
 	
     int minutes;
     int seconds;
@@ -1028,20 +1038,20 @@ mn_mailboxes_install_timeout (MNMailboxes * self)
 					self_timeout_cb,
 					self);
   }}
-#line 1032 "mn-mailboxes.c"
+#line 1042 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 349 "mn-mailboxes.gob"
+#line 359 "mn-mailboxes.gob"
 static gboolean 
 mn_mailboxes_timeout_cb (gpointer data)
-#line 1038 "mn-mailboxes.c"
+#line 1048 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::timeout_cb"
-#line 349 "mn-mailboxes.gob"
+#line 359 "mn-mailboxes.gob"
 	g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 1043 "mn-mailboxes.c"
+#line 1053 "mn-mailboxes.c"
 {
-#line 351 "mn-mailboxes.gob"
+#line 361 "mn-mailboxes.gob"
 	
     Self *self = data;
 
@@ -1051,22 +1061,22 @@ mn_mailboxes_timeout_cb (gpointer data)
     
     return TRUE;		/* continue */
   }}
-#line 1055 "mn-mailboxes.c"
+#line 1065 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 361 "mn-mailboxes.gob"
+#line 371 "mn-mailboxes.gob"
 void 
 mn_mailboxes_check (MNMailboxes * self)
-#line 1061 "mn-mailboxes.c"
+#line 1071 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::check"
-#line 361 "mn-mailboxes.gob"
+#line 371 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 361 "mn-mailboxes.gob"
+#line 371 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 1068 "mn-mailboxes.c"
+#line 1078 "mn-mailboxes.c"
 {
-#line 363 "mn-mailboxes.gob"
+#line 373 "mn-mailboxes.gob"
 	
     GSList *l;
 
@@ -1078,41 +1088,41 @@ mn_mailboxes_check (MNMailboxes * self)
 	  mn_mailbox_check(mailbox);
       }
   }}
-#line 1082 "mn-mailboxes.c"
+#line 1092 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 375 "mn-mailboxes.gob"
+#line 385 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_get (MNMailboxes * self)
-#line 1088 "mn-mailboxes.c"
+#line 1098 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::get"
-#line 375 "mn-mailboxes.gob"
+#line 385 "mn-mailboxes.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 375 "mn-mailboxes.gob"
+#line 385 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1095 "mn-mailboxes.c"
+#line 1105 "mn-mailboxes.c"
 {
-#line 377 "mn-mailboxes.gob"
+#line 387 "mn-mailboxes.gob"
 	
     return selfp->list;
   }}
-#line 1101 "mn-mailboxes.c"
+#line 1111 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 381 "mn-mailboxes.gob"
+#line 391 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_get_messages (MNMailboxes * self)
-#line 1107 "mn-mailboxes.c"
+#line 1117 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::get_messages"
-#line 381 "mn-mailboxes.gob"
+#line 391 "mn-mailboxes.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 381 "mn-mailboxes.gob"
+#line 391 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1114 "mn-mailboxes.c"
+#line 1124 "mn-mailboxes.c"
 {
-#line 383 "mn-mailboxes.gob"
+#line 393 "mn-mailboxes.gob"
 	
     GSList *messages = NULL;
     GSList *l;
@@ -1128,24 +1138,24 @@ mn_mailboxes_get_messages (MNMailboxes * self)
 
     return messages;
   }}
-#line 1132 "mn-mailboxes.c"
+#line 1142 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 399 "mn-mailboxes.gob"
+#line 409 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_find (MNMailboxes * self, const char * text_uri)
-#line 1138 "mn-mailboxes.c"
+#line 1148 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::find"
-#line 399 "mn-mailboxes.gob"
+#line 409 "mn-mailboxes.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 399 "mn-mailboxes.gob"
+#line 409 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 399 "mn-mailboxes.gob"
+#line 409 "mn-mailboxes.gob"
 	g_return_val_if_fail (text_uri != NULL, (GSList * )0);
-#line 1147 "mn-mailboxes.c"
+#line 1157 "mn-mailboxes.c"
 {
-#line 401 "mn-mailboxes.gob"
+#line 411 "mn-mailboxes.gob"
 	
     MNURI *uri;
     GSList *elem;
@@ -1156,60 +1166,60 @@ mn_mailboxes_find (MNMailboxes * self, const char * text_uri)
 
     return elem;
   }}
-#line 1160 "mn-mailboxes.c"
+#line 1170 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 412 "mn-mailboxes.gob"
+#line 422 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_find_uri (MNMailboxes * self, MNURI * uri)
-#line 1166 "mn-mailboxes.c"
+#line 1176 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::find_uri"
-#line 412 "mn-mailboxes.gob"
+#line 422 "mn-mailboxes.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 412 "mn-mailboxes.gob"
+#line 422 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 412 "mn-mailboxes.gob"
+#line 422 "mn-mailboxes.gob"
 	g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 412 "mn-mailboxes.gob"
+#line 422 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1177 "mn-mailboxes.c"
+#line 1187 "mn-mailboxes.c"
 {
-#line 414 "mn-mailboxes.gob"
+#line 424 "mn-mailboxes.gob"
 	
     return g_slist_find_custom(selfp->list, uri, self_find_compare_func);
   }}
-#line 1183 "mn-mailboxes.c"
+#line 1193 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 418 "mn-mailboxes.gob"
+#line 428 "mn-mailboxes.gob"
 static int 
 mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1189 "mn-mailboxes.c"
+#line 1199 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::find_compare_func"
 {
-#line 420 "mn-mailboxes.gob"
+#line 430 "mn-mailboxes.gob"
 	
     MNMailbox *mailbox = (MNMailbox *) a;
     MNURI *uri = (MNURI *) b;
 
     return strcmp(mailbox->uri->text, uri->text);
   }}
-#line 1200 "mn-mailboxes.c"
+#line 1210 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 427 "mn-mailboxes.gob"
+#line 437 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_conf_find (GSList * gconf_mailboxes, const char * text_uri)
-#line 1206 "mn-mailboxes.c"
+#line 1216 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::conf_find"
-#line 427 "mn-mailboxes.gob"
+#line 437 "mn-mailboxes.gob"
 	g_return_val_if_fail (text_uri != NULL, (GSList * )0);
-#line 1211 "mn-mailboxes.c"
+#line 1221 "mn-mailboxes.c"
 {
-#line 429 "mn-mailboxes.gob"
+#line 439 "mn-mailboxes.gob"
 	
     MNURI *uri;
     GSList *elem;
@@ -1220,36 +1230,36 @@ mn_mailboxes_conf_find (GSList * gconf_mailboxes, const char * text_uri)
 
     return elem;
   }}
-#line 1224 "mn-mailboxes.c"
+#line 1234 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 440 "mn-mailboxes.gob"
+#line 450 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_conf_find_uri (GSList * gconf_mailboxes, MNURI * uri)
-#line 1230 "mn-mailboxes.c"
+#line 1240 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_uri"
-#line 440 "mn-mailboxes.gob"
+#line 450 "mn-mailboxes.gob"
 	g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 440 "mn-mailboxes.gob"
+#line 450 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1237 "mn-mailboxes.c"
+#line 1247 "mn-mailboxes.c"
 {
-#line 442 "mn-mailboxes.gob"
+#line 452 "mn-mailboxes.gob"
 	
     return g_slist_find_custom(gconf_mailboxes, uri, self_conf_find_compare_func);
   }}
-#line 1243 "mn-mailboxes.c"
+#line 1253 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 446 "mn-mailboxes.gob"
+#line 456 "mn-mailboxes.gob"
 static int 
 mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1249 "mn-mailboxes.c"
+#line 1259 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_compare_func"
 {
-#line 448 "mn-mailboxes.gob"
+#line 458 "mn-mailboxes.gob"
 	
     MNURI *uri_a;
     MNURI *uri_b = (MNURI *) b;
@@ -1261,19 +1271,19 @@ mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b)
 
     return cmp;
   }}
-#line 1265 "mn-mailboxes.c"
+#line 1275 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 460 "mn-mailboxes.gob"
+#line 470 "mn-mailboxes.gob"
 MNMailboxes * 
 mn_mailboxes_new (void)
-#line 1271 "mn-mailboxes.c"
+#line 1281 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::new"
 {
-#line 462 "mn-mailboxes.gob"
+#line 472 "mn-mailboxes.gob"
 	
     return MN_MAILBOXES(GET_NEW);
   }}
-#line 1279 "mn-mailboxes.c"
+#line 1289 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-mailboxes.gob b/src/mn-mailboxes.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <eel/eel.h>
 #include "mn-conf.h"
 #include "mn-util.h"
@@ -69,6 +69,16 @@ class MN:Mailboxes from G:Object
   signal first private NONE (OBJECT)
     void mailbox_removed (self, MN:Mailbox *mailbox (check null type))
   {
+    /* disconnect signals */
+    g_object_disconnect(mailbox,
+			"any_signal", self_notify_has_new_h, self,
+			"any_signal", self_messages_changed_h, self,
+			"any_signal", self_notify_error_h, self,
+			NULL);
+
+    /* emit the "removed" signal on the mailbox */
+    mn_mailbox_removed(mailbox);
+
     /* has-new, messages and error have possibly changed */
     self_has_new_changed(self);
     self_messages_changed(self, FALSE);
@@ -95,7 +105,7 @@ class MN:Mailboxes from G:Object
    * @self: the object which received the signal
    *
    * This signal gets emitted whenever the global has-new state has
-   * possibly changed, eitheir because one of the mailboxes has-new
+   * possibly changed, either because one of the mailboxes has-new
    * property has changed, or because a mailbox has been removed from
    * the list.
    **/
@@ -123,7 +133,7 @@ class MN:Mailboxes from G:Object
    * @self: the object which received the signal
    *
    * This signal gets emitted whenever the global error state has
-   * possibly changed, eitheir because one of the mailboxes error
+   * possibly changed, either because one of the mailboxes error
    * property has changed, or because a mailbox has been removed from
    * the list.
    **/
diff --git a/src/mn-maildir-mailbox.c b/src/mn-maildir-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-maildir-mailbox.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
 #include "mn-util.h"
@@ -53,7 +53,7 @@ static void mn_maildir_mailbox_init (MNMaildirMailbox * o) G_GNUC_UNUSED;
 static void mn_maildir_mailbox_class_init (MNMaildirMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_maildir_mailbox_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
 static gboolean ___3_mn_maildir_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_maildir_mailbox_impl_threaded_check (MNMailbox * self) G_GNUC_UNUSED;
+static void ___4_mn_maildir_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
 static MNMailboxClass *parent_class = NULL;
@@ -122,7 +122,7 @@ mn_maildir_mailbox_class_init (MNMaildirMailboxClass * class G_GNUC_UNUSED)
 #line 73 "mn-maildir-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_maildir_mailbox_impl_is;
 #line 99 "mn-maildir-mailbox.gob"
-	mn_mailbox_class->impl_threaded_check = ___4_mn_maildir_mailbox_impl_threaded_check;
+	mn_mailbox_class->impl_check = ___4_mn_maildir_mailbox_impl_check;
 #line 127 "mn-maildir-mailbox.c"
  {
 #line 38 "mn-maildir-mailbox.gob"
@@ -224,13 +224,13 @@ ___3_mn_maildir_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
 
 #line 99 "mn-maildir-mailbox.gob"
 static void 
-___4_mn_maildir_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
+___4_mn_maildir_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
 #line 229 "mn-maildir-mailbox.c"
 #define PARENT_HANDLER(___self) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_threaded_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_threaded_check)(___self); }
+	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
 {
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::impl_threaded_check"
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::impl_check"
 #line 99 "mn-maildir-mailbox.gob"
 	g_return_if_fail (self != NULL);
 #line 99 "mn-maildir-mailbox.gob"
diff --git a/src/mn-maildir-mailbox.gob b/src/mn-maildir-mailbox.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
 #include "mn-util.h"
@@ -97,7 +97,7 @@ class MN:Maildir:Mailbox from MN:Mailbox
   }
   
   override (MN:Mailbox) void
-    impl_threaded_check (MN:Mailbox *self (check null type))
+    impl_check (MN:Mailbox *self (check null type))
   {
     GnomeVFSURI *new_uri;
     GnomeVFSResult result;
diff --git a/src/mn-main.c b/src/mn-main.c
@@ -88,10 +88,9 @@ mn_main_list_features (void)
     {
       MNMailboxClass *class;
       
-      class = g_type_class_peek(mn_mailbox_types[i]);
-      g_return_if_fail(class != NULL);
-
+      class = g_type_class_ref(mn_mailbox_types[i]);
       ADD_FEATURE(backends, class->format);
+      g_type_class_unref(class);
     }
 
   g_print(_("Compiled-in mailbox backends: %s\n"), backends->str);
@@ -274,6 +273,8 @@ main (int argc, char **argv)
 		     GNOME_PARAM_POPT_TABLE, popt_options,
 		     NULL);
 
+  mn_mailbox_init_types();
+
   if (arg_list_features)
     {
       mn_main_list_features();
diff --git a/src/mn-mbox-mailbox.c b/src/mn-mbox-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -25,7 +25,7 @@
 
 #include "config.h"
 #include <string.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdk.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
@@ -54,7 +54,7 @@ static void mn_mbox_mailbox_init (MNmboxMailbox * o) G_GNUC_UNUSED;
 static void mn_mbox_mailbox_class_init (MNmboxMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_mbox_mailbox_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
 static gboolean ___3_mn_mbox_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_mbox_mailbox_impl_threaded_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
 static MNMailboxClass *parent_class = NULL;
@@ -138,7 +138,7 @@ mn_mbox_mailbox_class_init (MNmboxMailboxClass * class G_GNUC_UNUSED)
 #line 74 "mn-mbox-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_mbox_mailbox_impl_is;
 #line 115 "mn-mbox-mailbox.gob"
-	mn_mailbox_class->impl_threaded_check = ___4_mn_mbox_mailbox_impl_threaded_check;
+	mn_mailbox_class->impl_check = ___4_mn_mbox_mailbox_impl_check;
 #line 143 "mn-mbox-mailbox.c"
 	g_object_class->finalize = ___finalize;
  {
@@ -251,13 +251,13 @@ ___3_mn_mbox_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
 
 #line 115 "mn-mbox-mailbox.gob"
 static void 
-___4_mn_mbox_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
+___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
 #line 256 "mn-mbox-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_threaded_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_threaded_check)(___mailbox); }
+	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::impl_threaded_check"
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox::impl_check"
 #line 115 "mn-mbox-mailbox.gob"
 	g_return_if_fail (mailbox != NULL);
 #line 115 "mn-mbox-mailbox.gob"
@@ -350,13 +350,13 @@ ___4_mn_mbox_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
 		      break;
 		    in_header = FALSE;
 		  }
-		else if (! strncmp(line, "From ", 5))
+		else if (g_str_has_prefix(line, "From "))
 		  {
 		    in_header = TRUE;
 		    seen = FALSE;
 		  }
 		else if (in_header
-			 && ! strncmp(line, "Status:", 7)
+			 && g_str_has_prefix(line, "Status:")
 			 && (strchr(line, 'O') || strchr(line, 'R')))
 		  seen = TRUE;
 	      }
diff --git a/src/mn-mbox-mailbox.gob b/src/mn-mbox-mailbox.gob
@@ -27,7 +27,7 @@ requires 2.0.10
 %{
 #include "config.h"
 #include <string.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdk.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
@@ -113,7 +113,7 @@ class MN:mbox:Mailbox from MN:Mailbox
   }
 
   override (MN:Mailbox) void
-    impl_threaded_check (MN:Mailbox *mailbox (check null type))
+    impl_check (MN:Mailbox *mailbox (check null type))
   {
     Self *self = SELF(mailbox);
     gboolean check = TRUE;
@@ -199,13 +199,13 @@ class MN:mbox:Mailbox from MN:Mailbox
 		      break;
 		    in_header = FALSE;
 		  }
-		else if (! strncmp(line, "From ", 5))
+		else if (g_str_has_prefix(line, "From "))
 		  {
 		    in_header = TRUE;
 		    seen = FALSE;
 		  }
 		else if (in_header
-			 && ! strncmp(line, "Status:", 7)
+			 && g_str_has_prefix(line, "Status:")
 			 && (strchr(line, 'O') || strchr(line, 'R')))
 		  seen = TRUE;
 	      }
diff --git a/src/mn-message-label.c b/src/mn-message-label.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 25 "mn-message-label.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-util.h"
 
 #line 33 "mn-message-label.c"
@@ -427,42 +427,47 @@ mn_message_label_format_delay (time_t delay)
 
     if (delay < 60)
       str = g_strdup_printf(ngettext("%i second ago", "%i seconds ago", delay), delay);
-    else if (delay < 3600)
+    else if (delay < 60 * 60)
       {
 	int minutes = delay / 60;
 	str = g_strdup_printf(ngettext("%i minute ago", "%i minutes ago", minutes), minutes);
       }
-    else if (delay < 86400)
+    else if (delay < 60 * 60 * 24)
       {
-	int hours = delay / 3600;
+	int hours = delay / (60 * 60);
 	str = g_strdup_printf(ngettext("%i hour ago", "%i hours ago", hours), hours);
       }
-    else
+    else if (delay < 60 * 60 * 24 * 7)
       {
-	int days = delay / 86400;
+	int days = delay / (60 * 60 * 24);
 	str = g_strdup_printf(ngettext("%i day ago", "%i days ago", days), days);
       }
+    else
+      {
+	int weeks = delay / (60 * 60 * 24 * 7);
+	str = g_strdup_printf(ngettext("%i week ago", "%i weeks ago", weeks), weeks);
+      }
 
     return str;
   }}
-#line 449 "mn-message-label.c"
+#line 454 "mn-message-label.c"
 #undef __GOB_FUNCTION__
 
-#line 171 "mn-message-label.gob"
+#line 176 "mn-message-label.gob"
 GtkWidget * 
 mn_message_label_new (MNMessage * message)
-#line 455 "mn-message-label.c"
+#line 460 "mn-message-label.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:Label::new"
-#line 171 "mn-message-label.gob"
+#line 176 "mn-message-label.gob"
 	g_return_val_if_fail (message != NULL, (GtkWidget * )0);
-#line 171 "mn-message-label.gob"
+#line 176 "mn-message-label.gob"
 	g_return_val_if_fail (MN_IS_MESSAGE (message), (GtkWidget * )0);
-#line 462 "mn-message-label.c"
+#line 467 "mn-message-label.c"
 {
-#line 173 "mn-message-label.gob"
+#line 178 "mn-message-label.gob"
 	
     return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_LABEL_PROP_MESSAGE(G_OBJECT(message)), NULL));
   }}
-#line 468 "mn-message-label.c"
+#line 473 "mn-message-label.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-message-label.gob b/src/mn-message-label.gob
@@ -24,7 +24,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-util.h"
 %}
 
@@ -149,21 +149,26 @@ class MN:Message:Label from Gtk:Label
 
     if (delay < 60)
       str = g_strdup_printf(ngettext("%i second ago", "%i seconds ago", delay), delay);
-    else if (delay < 3600)
+    else if (delay < 60 * 60)
       {
 	int minutes = delay / 60;
 	str = g_strdup_printf(ngettext("%i minute ago", "%i minutes ago", minutes), minutes);
       }
-    else if (delay < 86400)
+    else if (delay < 60 * 60 * 24)
       {
-	int hours = delay / 3600;
+	int hours = delay / (60 * 60);
 	str = g_strdup_printf(ngettext("%i hour ago", "%i hours ago", hours), hours);
       }
-    else
+    else if (delay < 60 * 60 * 24 * 7)
       {
-	int days = delay / 86400;
+	int days = delay / (60 * 60 * 24);
 	str = g_strdup_printf(ngettext("%i day ago", "%i days ago", days), days);
       }
+    else
+      {
+	int weeks = delay / (60 * 60 * 24 * 7);
+	str = g_strdup_printf(ngettext("%i week ago", "%i weeks ago", weeks), weeks);
+      }
 
     return str;
   }
diff --git a/src/mn-message-mime.c b/src/mn-message-mime.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs.h>
 #include "mn-message-mime.h"
 #include "mn-gmime-stream-vfs.h"
diff --git a/src/mn-message.c b/src/mn-message.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 26 "mn-message.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-util.h"
 
 #line 33 "mn-message.c"
@@ -48,6 +48,7 @@ static void ___object_set_property (GObject *object, guint property_id, const GV
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_message_init (MNMessage * o) G_GNUC_UNUSED;
 static void mn_message_class_init (MNMessageClass * c) G_GNUC_UNUSED;
+static GObject * ___1_mn_message_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
 static int mn_message_slist_find_by_id_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
 static int mn_message_slist_sort_by_sent_time_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
 
@@ -123,7 +124,7 @@ ___dispose (GObject *obj_self)
 		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
 #line 35 "mn-message.gob"
 	if(self->mailbox_uri) { g_object_unref ((gpointer) self->mailbox_uri); self->mailbox_uri = NULL; }
-#line 127 "mn-message.c"
+#line 128 "mn-message.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -137,16 +138,16 @@ ___finalize(GObject *obj_self)
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
 #line 41 "mn-message.gob"
 	if(self->error) { g_free ((gpointer) self->error); self->error = NULL; }
-#line 141 "mn-message.c"
+#line 142 "mn-message.c"
 #line 49 "mn-message.gob"
 	if(self->id) { g_free ((gpointer) self->id); self->id = NULL; }
-#line 144 "mn-message.c"
-#line 75 "mn-message.gob"
+#line 145 "mn-message.c"
+#line 53 "mn-message.gob"
 	if(self->from) { g_free ((gpointer) self->from); self->from = NULL; }
-#line 147 "mn-message.c"
-#line 90 "mn-message.gob"
+#line 148 "mn-message.c"
+#line 57 "mn-message.gob"
 	if(self->subject) { g_free ((gpointer) self->subject); self->subject = NULL; }
-#line 150 "mn-message.c"
+#line 151 "mn-message.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -164,6 +165,9 @@ mn_message_class_init (MNMessageClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (G_TYPE_OBJECT);
 
+#line 60 "mn-message.gob"
+	g_object_class->constructor = ___1_mn_message_constructor;
+#line 171 "mn-message.c"
 	g_object_class->dispose = ___dispose;
 	g_object_class->finalize = ___finalize;
 	g_object_class->get_property = ___object_get_property;
@@ -247,68 +251,42 @@ ___object_set_property (GObject *object,
 		{
 #line 36 "mn-message.gob"
 { GObject *___old = (GObject *)self->mailbox_uri; self->mailbox_uri = (MNURI *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 251 "mn-message.c"
+#line 255 "mn-message.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
 #line 42 "mn-message.gob"
 { char *old = self->error; self->error = g_value_dup_string (VAL); g_free (old); }
-#line 258 "mn-message.c"
+#line 262 "mn-message.c"
 		}
 		break;
 	case PROP_SENT_TIME:
 		{
 #line 46 "mn-message.gob"
 self->sent_time = g_value_get_ulong (VAL);
-#line 265 "mn-message.c"
+#line 269 "mn-message.c"
 		}
 		break;
 	case PROP_ID:
 		{
-#line 52 "mn-message.gob"
-
-      const char *id = g_value_get_string(VAL);
-
-      g_return_if_fail(self->id == NULL);
-      if (id)
-	self->id = g_strdup(id);
-      else
-	{
-	  static int unique = 0;
-
-	  /*
-	   * Generate an unique identifier (we don't need it do be a
-	   * compliant Message-Id).
-	   */
-	  self->id = g_strdup_printf("%i", g_atomic_int_exchange_and_add(&unique, 1));
-	}
-    
-#line 288 "mn-message.c"
+#line 50 "mn-message.gob"
+{ char *old = self->id; self->id = g_value_dup_string (VAL); g_free (old); }
+#line 276 "mn-message.c"
 		}
 		break;
 	case PROP_FROM:
 		{
-#line 78 "mn-message.gob"
-
-      const char *from = g_value_get_string(VAL);
-
-      g_return_if_fail(self->from == NULL);
-      self->from = g_strdup(from ? from : _("Unknown"));
-    
-#line 300 "mn-message.c"
+#line 54 "mn-message.gob"
+{ char *old = self->from; self->from = g_value_dup_string (VAL); g_free (old); }
+#line 283 "mn-message.c"
 		}
 		break;
 	case PROP_SUBJECT:
 		{
-#line 93 "mn-message.gob"
-
-      const char *subject = g_value_get_string(VAL);
-
-      g_return_if_fail(self->subject == NULL);
-      self->subject = g_strdup(subject ? subject : "");
-    
-#line 312 "mn-message.c"
+#line 58 "mn-message.gob"
+{ char *old = self->subject; self->subject = g_value_dup_string (VAL); g_free (old); }
+#line 290 "mn-message.c"
 		}
 		break;
 	default:
@@ -339,48 +317,42 @@ ___object_get_property (GObject *object,
 		{
 #line 36 "mn-message.gob"
 g_value_set_object (VAL, (gpointer)self->mailbox_uri);
-#line 343 "mn-message.c"
+#line 321 "mn-message.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
 #line 42 "mn-message.gob"
 g_value_set_string (VAL, self->error);
-#line 350 "mn-message.c"
+#line 328 "mn-message.c"
 		}
 		break;
 	case PROP_SENT_TIME:
 		{
 #line 46 "mn-message.gob"
 g_value_set_ulong (VAL, self->sent_time);
-#line 357 "mn-message.c"
+#line 335 "mn-message.c"
 		}
 		break;
 	case PROP_ID:
 		{
-#line 70 "mn-message.gob"
-
-      g_value_set_string(VAL, self->id);
-    
-#line 366 "mn-message.c"
+#line 50 "mn-message.gob"
+g_value_set_string (VAL, self->id);
+#line 342 "mn-message.c"
 		}
 		break;
 	case PROP_FROM:
 		{
-#line 85 "mn-message.gob"
-
-      g_value_set_string(VAL, self->from);
-    
-#line 375 "mn-message.c"
+#line 54 "mn-message.gob"
+g_value_set_string (VAL, self->from);
+#line 349 "mn-message.c"
 		}
 		break;
 	case PROP_SUBJECT:
 		{
-#line 100 "mn-message.gob"
-
-      g_value_set_string(VAL, self->subject);
-    
-#line 384 "mn-message.c"
+#line 58 "mn-message.gob"
+g_value_set_string (VAL, self->subject);
+#line 356 "mn-message.c"
 		}
 		break;
 	default:
@@ -397,19 +369,80 @@ g_value_set_ulong (VAL, self->sent_time);
 
 
 
-#line 104 "mn-message.gob"
+#line 60 "mn-message.gob"
+static GObject * 
+___1_mn_message_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
+#line 376 "mn-message.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+	((G_OBJECT_CLASS(parent_class)->constructor)? \
+		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+		((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:Message::constructor"
+{
+#line 62 "mn-message.gob"
+	
+    GObject *object;
+    Self *self;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+
+    if (! self->id)
+      {
+	GString *id;
+
+	/*
+	 * An ID should (not mandatory):
+	 *
+	 *	- be unique in a single mailbox
+	 *	- persist across checks if the message does not change
+	 */
+
+	id = g_string_new(NULL);
+
+	if (self->sent_time)
+	  g_string_append_printf(id, ":sent-time:%u:", self->sent_time);
+	if (self->from)
+	  g_string_append_printf(id, ":from:%s:", self->from);
+	if (self->subject)
+	  g_string_append_printf(id, ":subject:%s:", self->subject);
+
+	if (! *id->str)
+	  {
+	    static int unique = 0;
+	    g_string_append_printf(id, "%i", g_atomic_int_exchange_and_add(&unique, 1));
+	  }
+
+	self->id = g_string_free(id, FALSE);
+      }
+
+    /* these must be filled after we have processed the id */
+
+    if (! self->from)
+      self->from = g_strdup(_("Unknown"));
+    if (! self->subject)
+      self->subject = g_strdup("");
+
+    return object;
+  }}
+#line 430 "mn-message.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 108 "mn-message.gob"
 MNMessage * 
 mn_message_new (MNURI * mailbox_uri, const char * error, time_t sent_time, const char * id, const char * from, const char * subject)
-#line 404 "mn-message.c"
+#line 437 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::new"
-#line 104 "mn-message.gob"
+#line 108 "mn-message.gob"
 	g_return_val_if_fail (mailbox_uri != NULL, (MNMessage * )0);
-#line 104 "mn-message.gob"
+#line 108 "mn-message.gob"
 	g_return_val_if_fail (MN_IS_URI (mailbox_uri), (MNMessage * )0);
-#line 411 "mn-message.c"
+#line 444 "mn-message.c"
 {
-#line 111 "mn-message.gob"
+#line 115 "mn-message.gob"
 	
     return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_URI(G_OBJECT(mailbox_uri)),
 			MN_MESSAGE_PROP_ERROR((char *) error),
@@ -419,93 +452,93 @@ mn_message_new (MNURI * mailbox_uri, const char * error, time_t sent_time, const
 			MN_MESSAGE_PROP_SUBJECT((char *) subject),
 			NULL);
   }}
-#line 423 "mn-message.c"
+#line 456 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 121 "mn-message.gob"
+#line 125 "mn-message.gob"
 MNMessage * 
 mn_message_new_from_error (MNURI * mailbox_uri, const char * error)
-#line 429 "mn-message.c"
+#line 462 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::new_from_error"
-#line 121 "mn-message.gob"
+#line 125 "mn-message.gob"
 	g_return_val_if_fail (mailbox_uri != NULL, (MNMessage * )0);
-#line 121 "mn-message.gob"
+#line 125 "mn-message.gob"
 	g_return_val_if_fail (MN_IS_URI (mailbox_uri), (MNMessage * )0);
-#line 121 "mn-message.gob"
+#line 125 "mn-message.gob"
 	g_return_val_if_fail (error != NULL, (MNMessage * )0);
-#line 438 "mn-message.c"
+#line 471 "mn-message.c"
 {
-#line 124 "mn-message.gob"
+#line 128 "mn-message.gob"
 	
     return self_new(mailbox_uri, error, 0, NULL, NULL, NULL);
   }}
-#line 444 "mn-message.c"
+#line 477 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 128 "mn-message.gob"
+#line 132 "mn-message.gob"
 GSList * 
 mn_message_slist_find_by_id (GSList * list, MNMessage * self)
-#line 450 "mn-message.c"
+#line 483 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_find_by_id"
-#line 128 "mn-message.gob"
+#line 132 "mn-message.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 128 "mn-message.gob"
+#line 132 "mn-message.gob"
 	g_return_val_if_fail (MN_IS_MESSAGE (self), (GSList * )0);
-#line 457 "mn-message.c"
+#line 490 "mn-message.c"
 {
-#line 130 "mn-message.gob"
+#line 134 "mn-message.gob"
 	
     return g_slist_find_custom(list, self, self_slist_find_by_id_compare_func);
   }}
-#line 463 "mn-message.c"
+#line 496 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 134 "mn-message.gob"
+#line 138 "mn-message.gob"
 static int 
 mn_message_slist_find_by_id_compare_func (gconstpointer a, gconstpointer b)
-#line 469 "mn-message.c"
+#line 502 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_find_by_id_compare_func"
 {
-#line 136 "mn-message.gob"
+#line 140 "mn-message.gob"
 	
     Self *message_a = (Self *) a;
     Self *message_b = (Self *) b;
 
     return strcmp(message_a->id, message_b->id);
   }}
-#line 480 "mn-message.c"
+#line 513 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 143 "mn-message.gob"
+#line 147 "mn-message.gob"
 GSList * 
 mn_message_slist_sort_by_sent_time (GSList * list)
-#line 486 "mn-message.c"
+#line 519 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_sort_by_sent_time"
 {
-#line 145 "mn-message.gob"
+#line 149 "mn-message.gob"
 	
     return g_slist_sort(list, self_slist_sort_by_sent_time_compare_func);
   }}
-#line 494 "mn-message.c"
+#line 527 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 149 "mn-message.gob"
+#line 153 "mn-message.gob"
 static int 
 mn_message_slist_sort_by_sent_time_compare_func (gconstpointer a, gconstpointer b)
-#line 500 "mn-message.c"
+#line 533 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_sort_by_sent_time_compare_func"
 {
-#line 151 "mn-message.gob"
+#line 155 "mn-message.gob"
 	
     Self *message_a = (Self *) a;
     Self *message_b = (Self *) b;
 
     return message_a->sent_time - message_b->sent_time;
   }}
-#line 511 "mn-message.c"
+#line 544 "mn-message.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-message.gob b/src/mn-message.gob
@@ -25,7 +25,7 @@ requires 2.0.10
 
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-util.h"
 %}
 
@@ -47,60 +47,64 @@ class MN:Message from G:Object
 
   /* always set */
   public char *id destroywith g_free;
-  property STRING id (flags = CONSTRUCT_ONLY)
-    set
-    {
-      const char *id = g_value_get_string(VAL);
-
-      g_return_if_fail(self->id == NULL);
-      if (id)
-	self->id = g_strdup(id);
-      else
-	{
-	  static int unique = 0;
-
-	  /*
-	   * Generate an unique identifier (we don't need it do be a
-	   * compliant Message-Id).
-	   */
-	  self->id = g_strdup_printf("%i", g_atomic_int_exchange_and_add(&unique, 1));
-	}
-    }
-    get
-    {
-      g_value_set_string(VAL, self->id);
-    };
+  property STRING id (flags = CONSTRUCT_ONLY, link);
   
   /* always set */
   public char *from destroywith g_free;
-  property STRING from (flags = CONSTRUCT_ONLY)
-    set
-    {
-      const char *from = g_value_get_string(VAL);
-
-      g_return_if_fail(self->from == NULL);
-      self->from = g_strdup(from ? from : _("Unknown"));
-    }
-    get
-    {
-      g_value_set_string(VAL, self->from);
-    };
+  property STRING from (flags = CONSTRUCT_ONLY, link);
 
   /* always set */
   public char *subject destroywith g_free;
-  property STRING subject (flags = CONSTRUCT_ONLY)
-    set
-    {
-      const char *subject = g_value_get_string(VAL);
-
-      g_return_if_fail(self->subject == NULL);
-      self->subject = g_strdup(subject ? subject : "");
-    }
-    get
-    {
-      g_value_set_string(VAL, self->subject);
-    };
+  property STRING subject (flags = CONSTRUCT_ONLY, link);
 
+  override (G:Object) GObject *
+    constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params)
+  {
+    GObject *object;
+    Self *self;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+
+    if (! self->id)
+      {
+	GString *id;
+
+	/*
+	 * An ID should (not mandatory):
+	 *
+	 *	- be unique in a single mailbox
+	 *	- persist across checks if the message does not change
+	 */
+
+	id = g_string_new(NULL);
+
+	if (self->sent_time)
+	  g_string_append_printf(id, ":sent-time:%u:", self->sent_time);
+	if (self->from)
+	  g_string_append_printf(id, ":from:%s:", self->from);
+	if (self->subject)
+	  g_string_append_printf(id, ":subject:%s:", self->subject);
+
+	if (! *id->str)
+	  {
+	    static int unique = 0;
+	    g_string_append_printf(id, "%i", g_atomic_int_exchange_and_add(&unique, 1));
+	  }
+
+	self->id = g_string_free(id, FALSE);
+      }
+
+    /* these must be filled after we have processed the id */
+
+    if (! self->from)
+      self->from = g_strdup(_("Unknown"));
+    if (! self->subject)
+      self->subject = g_strdup("");
+
+    return object;
+  }
+  
   public MNMessage *
     new (MN:URI *mailbox_uri (check null type),
 	 const char *error,
diff --git a/src/mn-mh-mailbox.c b/src/mn-mh-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #include "config.h"
 #include <stdio.h>
 #include <string.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdk.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
@@ -54,7 +54,7 @@ static void mn_mh_mailbox_init (MNMHMailbox * o) G_GNUC_UNUSED;
 static void mn_mh_mailbox_class_init (MNMHMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_mh_mailbox_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
 static gboolean ___3_mn_mh_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_mh_mailbox_impl_threaded_check (MNMailbox * self) G_GNUC_UNUSED;
+static void ___4_mn_mh_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
 static MNMailboxClass *parent_class = NULL;
@@ -123,7 +123,7 @@ mn_mh_mailbox_class_init (MNMHMailboxClass * class G_GNUC_UNUSED)
 #line 84 "mn-mh-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_mh_mailbox_impl_is;
 #line 101 "mn-mh-mailbox.gob"
-	mn_mailbox_class->impl_threaded_check = ___4_mn_mh_mailbox_impl_threaded_check;
+	mn_mailbox_class->impl_check = ___4_mn_mh_mailbox_impl_check;
 #line 128 "mn-mh-mailbox.c"
  {
 #line 41 "mn-mh-mailbox.gob"
@@ -226,13 +226,13 @@ ___3_mn_mh_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
 
 #line 101 "mn-mh-mailbox.gob"
 static void 
-___4_mn_mh_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
+___4_mn_mh_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
 #line 231 "mn-mh-mailbox.c"
 #define PARENT_HANDLER(___self) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_threaded_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_threaded_check)(___self); }
+	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
 {
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::impl_threaded_check"
+#define __GOB_FUNCTION__ "MN:MH:Mailbox::impl_check"
 #line 101 "mn-mh-mailbox.gob"
 	g_return_if_fail (self != NULL);
 #line 101 "mn-mh-mailbox.gob"
@@ -260,7 +260,7 @@ ___4_mn_mh_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
 #endif
 
 	while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
-	  if (! strncmp(line, "unseen: ", 8))
+	  if (g_str_has_prefix(line, "unseen: "))
 	    {
 	      int first;
 #ifdef WITH_MIME
diff --git a/src/mn-mh-mailbox.gob b/src/mn-mh-mailbox.gob
@@ -25,7 +25,7 @@ requires 2.0.10
 #include "config.h"
 #include <stdio.h>
 #include <string.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gdk/gdk.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
@@ -99,7 +99,7 @@ class MN:MH:Mailbox from MN:Mailbox
   }
   
   override (MN:Mailbox) void
-    impl_threaded_check (MN:Mailbox *self (check null type))
+    impl_check (MN:Mailbox *self (check null type))
   {
     GnomeVFSURI *sequences_uri;
     GnomeVFSResult result;
@@ -120,7 +120,7 @@ class MN:MH:Mailbox from MN:Mailbox
 #endif
 
 	while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
-	  if (! strncmp(line, "unseen: ", 8))
+	  if (g_str_has_prefix(line, "unseen: "))
 	    {
 	      int first;
 #ifdef WITH_MIME
diff --git a/src/mn-pending-mailbox.c b/src/mn-pending-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:53 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-pending-mailbox.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 #line 33 "mn-pending-mailbox.c"
diff --git a/src/mn-pending-mailbox.gob b/src/mn-pending-mailbox.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 %}
 
diff --git a/src/mn-pi-mailbox-properties.c b/src/mn-pi-mailbox-properties.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-pi-mailbox-properties.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
@@ -377,31 +377,30 @@ ___1_mn_pi_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_con
     
     g_signal_connect(self->hostname_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
     g_signal_connect(self->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(self->password_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
 
     return object;
   }}
-#line 385 "mn-pi-mailbox-properties.c"
+#line 384 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 168 "mn-pi-mailbox-properties.gob"
+#line 167 "mn-pi-mailbox-properties.gob"
 static void 
 mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 392 "mn-pi-mailbox-properties.c"
+#line 391 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::notify_expanded_h"
-#line 168 "mn-pi-mailbox-properties.gob"
+#line 167 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (object != NULL);
-#line 168 "mn-pi-mailbox-properties.gob"
+#line 167 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (G_IS_OBJECT (object));
-#line 168 "mn-pi-mailbox-properties.gob"
+#line 167 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (pspec != NULL);
-#line 168 "mn-pi-mailbox-properties.gob"
+#line 167 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (user_data != NULL);
-#line 403 "mn-pi-mailbox-properties.c"
+#line 402 "mn-pi-mailbox-properties.c"
 {
-#line 172 "mn-pi-mailbox-properties.gob"
+#line 171 "mn-pi-mailbox-properties.gob"
 	
     Self *self = user_data;
 
@@ -410,46 +409,46 @@ mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec
 			    ? GTK_SIZE_GROUP_HORIZONTAL
 			    : GTK_SIZE_GROUP_NONE);
   }}
-#line 414 "mn-pi-mailbox-properties.c"
+#line 413 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 181 "mn-pi-mailbox-properties.gob"
+#line 180 "mn-pi-mailbox-properties.gob"
 void 
 mn_pi_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 420 "mn-pi-mailbox-properties.c"
+#line 419 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::entry_changed_h"
-#line 181 "mn-pi-mailbox-properties.gob"
+#line 180 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (editable != NULL);
-#line 181 "mn-pi-mailbox-properties.gob"
+#line 180 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 181 "mn-pi-mailbox-properties.gob"
+#line 180 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (user_data != NULL);
-#line 429 "mn-pi-mailbox-properties.c"
+#line 428 "mn-pi-mailbox-properties.c"
 {
-#line 184 "mn-pi-mailbox-properties.gob"
+#line 183 "mn-pi-mailbox-properties.gob"
 	
     Self *self = user_data;
     g_object_notify(G_OBJECT(self), "complete");
   }}
-#line 436 "mn-pi-mailbox-properties.c"
+#line 435 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 189 "mn-pi-mailbox-properties.gob"
+#line 188 "mn-pi-mailbox-properties.gob"
 static void 
 mn_pi_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data)
-#line 442 "mn-pi-mailbox-properties.c"
+#line 441 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::radio_toggled_h"
-#line 189 "mn-pi-mailbox-properties.gob"
+#line 188 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (togglebutton != NULL);
-#line 189 "mn-pi-mailbox-properties.gob"
+#line 188 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (GTK_IS_TOGGLE_BUTTON (togglebutton));
-#line 189 "mn-pi-mailbox-properties.gob"
+#line 188 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (user_data != NULL);
-#line 451 "mn-pi-mailbox-properties.c"
+#line 450 "mn-pi-mailbox-properties.c"
 {
-#line 192 "mn-pi-mailbox-properties.gob"
+#line 191 "mn-pi-mailbox-properties.gob"
 	
     Self *self = user_data;
     int i;
@@ -459,56 +458,54 @@ mn_pi_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpoint
 
     g_object_notify(G_OBJECT(self), "complete");
   }}
-#line 463 "mn-pi-mailbox-properties.c"
+#line 462 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 void 
 mn_pi_mailbox_properties_set_contents (MNPIMailboxProperties * self, gboolean ssl, gboolean inband_ssl, const char * username, const char * password, const char * authmech, const char * hostname, int port)
-#line 469 "mn-pi-mailbox-properties.c"
+#line 468 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_contents"
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (self != NULL);
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (username != NULL);
-#line 202 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (password != NULL);
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (hostname != NULL);
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (port >= 0);
-#line 202 "mn-pi-mailbox-properties.gob"
+#line 201 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (port <= 0xFFFF);
-#line 486 "mn-pi-mailbox-properties.c"
+#line 483 "mn-pi-mailbox-properties.c"
 {
-#line 211 "mn-pi-mailbox-properties.gob"
+#line 210 "mn-pi-mailbox-properties.gob"
 	
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[ssl ? 2 : (inband_ssl ? 1 : 0)]), TRUE);
     gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
-    gtk_entry_set_text(GTK_ENTRY(self->password_entry), password);
+    gtk_entry_set_text(GTK_ENTRY(self->password_entry), MN_POINTER_TO_STRING(password));
     mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), (char *) authmech);
     gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), hostname);
     gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
   }}
-#line 497 "mn-pi-mailbox-properties.c"
+#line 494 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 220 "mn-pi-mailbox-properties.gob"
+#line 219 "mn-pi-mailbox-properties.gob"
 void 
 mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * ssl, gboolean * inband_ssl, const char ** username, const char ** password, char ** authmech, const char ** hostname, int * port)
-#line 503 "mn-pi-mailbox-properties.c"
+#line 500 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_contents"
-#line 220 "mn-pi-mailbox-properties.gob"
+#line 219 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (self != NULL);
-#line 220 "mn-pi-mailbox-properties.gob"
+#line 219 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
-#line 510 "mn-pi-mailbox-properties.c"
+#line 507 "mn-pi-mailbox-properties.c"
 {
-#line 229 "mn-pi-mailbox-properties.gob"
+#line 228 "mn-pi-mailbox-properties.gob"
 	
     gboolean _ssl;
     gboolean _inband_ssl;
@@ -523,7 +520,12 @@ mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * 
     if (username)
       *username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
     if (password)
-      *password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+      {
+	const char *_password;
+
+	_password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+	*password = MN_STRING_TO_POINTER(_password);
+      }
     if (authmech)
       *authmech = mn_auth_combo_box_get_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo));
     if (hostname)
@@ -531,5 +533,5 @@ mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * 
     if (port)
       *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_ssl ? 2 : (_inband_ssl ? 1 : 0)]));
   }}
-#line 535 "mn-pi-mailbox-properties.c"
+#line 537 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-pi-mailbox-properties.gob b/src/mn-pi-mailbox-properties.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
@@ -160,7 +160,6 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
     
     g_signal_connect(self->hostname_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
     g_signal_connect(self->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(self->password_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
 
     return object;
   }
@@ -204,14 +203,14 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
 		  gboolean ssl,
 		  gboolean inband_ssl,
 		  const char *username (check null),
-		  const char *password (check null),
+		  const char *password,
 		  const char *authmech,
 		  const char *hostname (check null),
 		  int port (check >= 0 <= 0xFFFF))
   {
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[ssl ? 2 : (inband_ssl ? 1 : 0)]), TRUE);
     gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
-    gtk_entry_set_text(GTK_ENTRY(self->password_entry), password);
+    gtk_entry_set_text(GTK_ENTRY(self->password_entry), MN_POINTER_TO_STRING(password));
     mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), (char *) authmech);
     gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), hostname);
     gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
@@ -240,7 +239,12 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
     if (username)
       *username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
     if (password)
-      *password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+      {
+	const char *_password;
+
+	_password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+	*password = MN_STRING_TO_POINTER(_password);
+      }
     if (authmech)
       *authmech = mn_auth_combo_box_get_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo));
     if (hostname)
diff --git a/src/mn-pop3-mailbox-private.h b/src/mn-pop3-mailbox-private.h
@@ -10,9 +10,9 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNPOP3MailboxPrivate {
-#line 122 "mn-pop3-mailbox.gob"
-	int login_delay;
 #line 123 "mn-pop3-mailbox.gob"
+	int login_delay;
+#line 124 "mn-pop3-mailbox.gob"
 	GTimer * authentication_timer;
 #line 18 "mn-pop3-mailbox-private.h"
 };
diff --git a/src/mn-pop3-mailbox-properties.c b/src/mn-pop3-mailbox-properties.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-pop3-mailbox-properties.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
@@ -70,9 +70,9 @@ static MNPIMailboxPropertiesClass *parent_class = NULL;
 static void
 ___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
 {
-#line 96 "mn-pop3-mailbox-properties.gob"
+#line 95 "mn-pop3-mailbox-properties.gob"
 	iface->set_uri = self_set_uri;
-#line 116 "mn-pop3-mailbox-properties.gob"
+#line 115 "mn-pop3-mailbox-properties.gob"
 	iface->get_uri = self_get_uri;
 #line 78 "mn-pop3-mailbox-properties.c"
 }
@@ -134,7 +134,7 @@ mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * o G_GNUC_UNUSED)
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::init"
 }
 #undef __GOB_FUNCTION__
-#line 62 "mn-pop3-mailbox-properties.gob"
+#line 61 "mn-pop3-mailbox-properties.gob"
 static void 
 mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GNUC_UNUSED)
 #line 141 "mn-pop3-mailbox-properties.c"
@@ -144,7 +144,7 @@ mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GN
 
 	parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
 
-#line 71 "mn-pop3-mailbox-properties.gob"
+#line 70 "mn-pop3-mailbox-properties.gob"
 	g_object_class->constructor = ___2_mn_pop3_mailbox_properties_constructor;
 #line 150 "mn-pop3-mailbox-properties.c"
 	g_object_class->get_property = ___object_get_property;
@@ -154,7 +154,7 @@ mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GN
 		"complete");
     }
  {
-#line 63 "mn-pop3-mailbox-properties.gob"
+#line 62 "mn-pop3-mailbox-properties.gob"
 
     MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
 
@@ -186,19 +186,18 @@ ___object_get_property (GObject *object,
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
       const char *username;
-      const char *password;
       const char *hostname;
       
       mn_pi_mailbox_properties_get_contents(pi,
 					    NULL,
 					    NULL,
 					    &username,
-					    &password,
+					    NULL,
 					    NULL,
 					    &hostname,
 					    NULL);
 
-      complete = *username && *password && *hostname;
+      complete = *username && *hostname;
 #ifndef WITH_SSL
       if (complete)
 	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
@@ -206,7 +205,7 @@ ___object_get_property (GObject *object,
 
       g_value_set_boolean(VAL, complete);
     
-#line 210 "mn-pop3-mailbox-properties.c"
+#line 209 "mn-pop3-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -223,10 +222,10 @@ ___object_get_property (GObject *object,
 
 
 
-#line 71 "mn-pop3-mailbox-properties.gob"
+#line 70 "mn-pop3-mailbox-properties.gob"
 static GObject * 
 ___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 230 "mn-pop3-mailbox-properties.c"
+#line 229 "mn-pop3-mailbox-properties.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -234,7 +233,7 @@ ___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::constructor"
 {
-#line 73 "mn-pop3-mailbox-properties.gob"
+#line 72 "mn-pop3-mailbox-properties.gob"
 	
     GObject *object;
     Self *self;
@@ -250,34 +249,34 @@ ___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_c
     mn_tooltips_set_tips(pi->tooltips,
 			 pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
 			 pi->username_entry, _("Your username on the POP3 server"),
-			 pi->password_entry, _("Your password on the POP3 server"),
+			 pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
 			 pi->port_spin[0], _("The port number of the POP3 server"),
 			 pi->port_spin[1], _("The port number of the POP3 server"),
 			 NULL);
 
     return object;
   }}
-#line 261 "mn-pop3-mailbox-properties.c"
+#line 260 "mn-pop3-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 96 "mn-pop3-mailbox-properties.gob"
+#line 95 "mn-pop3-mailbox-properties.gob"
 static gboolean 
 mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 268 "mn-pop3-mailbox-properties.c"
+#line 267 "mn-pop3-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::set_uri"
-#line 96 "mn-pop3-mailbox-properties.gob"
+#line 95 "mn-pop3-mailbox-properties.gob"
 	g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
+#line 95 "mn-pop3-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
+#line 95 "mn-pop3-mailbox-properties.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
+#line 95 "mn-pop3-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 279 "mn-pop3-mailbox-properties.c"
+#line 278 "mn-pop3-mailbox-properties.c"
 {
-#line 99 "mn-pop3-mailbox-properties.gob"
+#line 98 "mn-pop3-mailbox-properties.gob"
 	
     if (MN_URI_IS_POP(uri))
       {
@@ -294,22 +293,22 @@ mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * ur
     else
       return FALSE;
   }}
-#line 298 "mn-pop3-mailbox-properties.c"
+#line 297 "mn-pop3-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 116 "mn-pop3-mailbox-properties.gob"
+#line 115 "mn-pop3-mailbox-properties.gob"
 static MNURI * 
 mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 304 "mn-pop3-mailbox-properties.c"
+#line 303 "mn-pop3-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::get_uri"
-#line 116 "mn-pop3-mailbox-properties.gob"
+#line 115 "mn-pop3-mailbox-properties.gob"
 	g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 116 "mn-pop3-mailbox-properties.gob"
+#line 115 "mn-pop3-mailbox-properties.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 311 "mn-pop3-mailbox-properties.c"
+#line 310 "mn-pop3-mailbox-properties.c"
 {
-#line 118 "mn-pop3-mailbox-properties.gob"
+#line 117 "mn-pop3-mailbox-properties.gob"
 	
     gboolean ssl;
     gboolean inband_ssl;
@@ -334,5 +333,5 @@ mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties)
 
     return uri;
   }}
-#line 338 "mn-pop3-mailbox-properties.c"
+#line 337 "mn-pop3-mailbox-properties.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox-properties.gob b/src/mn-pop3-mailbox-properties.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
 #include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
@@ -38,19 +38,18 @@ class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
       const char *username;
-      const char *password;
       const char *hostname;
       
       mn_pi_mailbox_properties_get_contents(pi,
 					    NULL,
 					    NULL,
 					    &username,
-					    &password,
+					    NULL,
 					    NULL,
 					    &hostname,
 					    NULL);
 
-      complete = *username && *password && *hostname;
+      complete = *username && *hostname;
 #ifndef WITH_SSL
       if (complete)
 	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
@@ -85,7 +84,7 @@ class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
     mn_tooltips_set_tips(pi->tooltips,
 			 pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
 			 pi->username_entry, _("Your username on the POP3 server"),
-			 pi->password_entry, _("Your password on the POP3 server"),
+			 pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
 			 pi->port_spin[0], _("The port number of the POP3 server"),
 			 pi->port_spin[1], _("The port number of the POP3 server"),
 			 NULL);
diff --git a/src/mn-pop3-mailbox.c b/src/mn-pop3-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -29,7 +29,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
@@ -83,6 +83,7 @@
 #ifdef WITH_SASL
     const char		*sasl_mechanism;
 #endif
+    gboolean		authentication_failed;
     gboolean		authenticated;
     gboolean		login_delay_user;
 #ifdef WITH_MIME
@@ -108,7 +109,7 @@
     char		*arguments;
   };
 
-#line 112 "mn-pop3-mailbox.c"
+#line 113 "mn-pop3-mailbox.c"
 /* self casting macros */
 #define SELF(x) MN_POP3_MAILBOX(x)
 #define SELF_CONST(x) MN_POP3_MAILBOX_CONST(x)
@@ -148,7 +149,7 @@ static int mn_pop3_mailbox_enter_stat_cb (MNClientSession * session, MNClientSes
 static int mn_pop3_mailbox_handle_stat_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void ___19_mn_pop3_mailbox_impl_threaded_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxResult ___19_mn_pop3_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox, GError ** err) G_GNUC_UNUSED;
 static void mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static MNClientSessionResponse * mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static void mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -161,7 +162,7 @@ static void mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPri
 static void mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
+static MNAuthenticatedMailboxClass *parent_class = NULL;
 
 /* Short form macros */
 #define self_handle_greeting_cb mn_pop3_mailbox_handle_greeting_cb
@@ -214,7 +215,7 @@ mn_pop3_mailbox_get_type (void)
 			NULL
 		};
 
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNPOP3Mailbox", &info, (GTypeFlags)0);
+		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNPOP3Mailbox", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -246,9 +247,9 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 123 "mn-pop3-mailbox.gob"
+#line 124 "mn-pop3-mailbox.gob"
 	if(self->_priv->authentication_timer) { g_timer_destroy ((gpointer) self->_priv->authentication_timer); self->_priv->authentication_timer = NULL; }
-#line 252 "mn-pop3-mailbox.c"
+#line 253 "mn-pop3-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -259,43 +260,44 @@ mn_pop3_mailbox_init (MNPOP3Mailbox * o G_GNUC_UNUSED)
 	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNPOP3MailboxPrivate);
 }
 #undef __GOB_FUNCTION__
-#line 125 "mn-pop3-mailbox.gob"
+#line 126 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_class_init (MNPOP3MailboxClass * class G_GNUC_UNUSED)
-#line 266 "mn-pop3-mailbox.c"
+#line 267 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
 
 	g_type_class_add_private(class,sizeof(MNPOP3MailboxPrivate));
 	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
 
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
+	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
 
-#line 130 "mn-pop3-mailbox.gob"
+#line 131 "mn-pop3-mailbox.gob"
 	g_object_class->constructor = ___2_mn_pop3_mailbox_constructor;
-#line 147 "mn-pop3-mailbox.gob"
+#line 148 "mn-pop3-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_pop3_mailbox_impl_is;
-#line 618 "mn-pop3-mailbox.gob"
-	mn_mailbox_class->impl_threaded_check = ___19_mn_pop3_mailbox_impl_threaded_check;
-#line 282 "mn-pop3-mailbox.c"
+#line 631 "mn-pop3-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_authenticated_check = ___19_mn_pop3_mailbox_impl_authenticated_check;
+#line 284 "mn-pop3-mailbox.c"
 	g_object_class->finalize = ___finalize;
  {
-#line 126 "mn-pop3-mailbox.gob"
+#line 127 "mn-pop3-mailbox.gob"
 
     MN_MAILBOX_CLASS(class)->format = "POP3";
   
-#line 289 "mn-pop3-mailbox.c"
+#line 291 "mn-pop3-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 130 "mn-pop3-mailbox.gob"
+#line 131 "mn-pop3-mailbox.gob"
 static GObject * 
 ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 299 "mn-pop3-mailbox.c"
+#line 301 "mn-pop3-mailbox.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -303,7 +305,7 @@ ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::constructor"
 {
-#line 132 "mn-pop3-mailbox.gob"
+#line 133 "mn-pop3-mailbox.gob"
 	
     GObject *object;
     MNMailbox *mailbox;
@@ -318,49 +320,49 @@ ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
   
     return object;
   }}
-#line 322 "mn-pop3-mailbox.c"
+#line 324 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 147 "mn-pop3-mailbox.gob"
+#line 148 "mn-pop3-mailbox.gob"
 static gboolean 
 ___3_mn_pop3_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 329 "mn-pop3-mailbox.c"
+#line 331 "mn-pop3-mailbox.c"
 #define PARENT_HANDLER(___dummy,___uri) \
 	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
 		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
 		((gboolean )0))
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_is"
-#line 147 "mn-pop3-mailbox.gob"
+#line 148 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 147 "mn-pop3-mailbox.gob"
+#line 148 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 340 "mn-pop3-mailbox.c"
+#line 342 "mn-pop3-mailbox.c"
 {
-#line 149 "mn-pop3-mailbox.gob"
+#line 150 "mn-pop3-mailbox.gob"
 	
     return MN_URI_IS_POP(uri);
   }}
-#line 346 "mn-pop3-mailbox.c"
+#line 348 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 153 "mn-pop3-mailbox.gob"
+#line 154 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 353 "mn-pop3-mailbox.c"
+#line 355 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_greeting_cb"
-#line 153 "mn-pop3-mailbox.gob"
+#line 154 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 153 "mn-pop3-mailbox.gob"
+#line 154 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 153 "mn-pop3-mailbox.gob"
+#line 154 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 362 "mn-pop3-mailbox.c"
+#line 364 "mn-pop3-mailbox.c"
 {
-#line 157 "mn-pop3-mailbox.gob"
+#line 158 "mn-pop3-mailbox.gob"
 	
     priv->session = session;
     
@@ -387,43 +389,43 @@ mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
       default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 391 "mn-pop3-mailbox.c"
+#line 393 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 184 "mn-pop3-mailbox.gob"
+#line 185 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_capa_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 397 "mn-pop3-mailbox.c"
+#line 399 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_capa_cb"
-#line 184 "mn-pop3-mailbox.gob"
+#line 185 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 184 "mn-pop3-mailbox.gob"
+#line 185 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 404 "mn-pop3-mailbox.c"
+#line 406 "mn-pop3-mailbox.c"
 {
-#line 187 "mn-pop3-mailbox.gob"
+#line 188 "mn-pop3-mailbox.gob"
 	
     return mn_client_session_write(session, "CAPA");
   }}
-#line 410 "mn-pop3-mailbox.c"
+#line 412 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 191 "mn-pop3-mailbox.gob"
+#line 192 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 416 "mn-pop3-mailbox.c"
+#line 418 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_capa_cb"
-#line 191 "mn-pop3-mailbox.gob"
+#line 192 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 191 "mn-pop3-mailbox.gob"
+#line 192 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 191 "mn-pop3-mailbox.gob"
+#line 192 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 425 "mn-pop3-mailbox.c"
+#line 427 "mn-pop3-mailbox.c"
 {
-#line 195 "mn-pop3-mailbox.gob"
+#line 196 "mn-pop3-mailbox.gob"
 	
     self_handle_list_response(priv, response);
 
@@ -508,22 +510,22 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 512 "mn-pop3-mailbox.c"
+#line 514 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 280 "mn-pop3-mailbox.gob"
+#line 281 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 518 "mn-pop3-mailbox.c"
+#line 520 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_stls_cb"
-#line 280 "mn-pop3-mailbox.gob"
+#line 281 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 280 "mn-pop3-mailbox.gob"
+#line 281 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 525 "mn-pop3-mailbox.c"
+#line 527 "mn-pop3-mailbox.c"
 {
-#line 283 "mn-pop3-mailbox.gob"
+#line 284 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SSL
     return mn_client_session_write(session, "STLS");
@@ -531,24 +533,24 @@ mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 535 "mn-pop3-mailbox.c"
+#line 537 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 291 "mn-pop3-mailbox.gob"
+#line 292 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 541 "mn-pop3-mailbox.c"
+#line 543 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_stls_cb"
-#line 291 "mn-pop3-mailbox.gob"
+#line 292 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 291 "mn-pop3-mailbox.gob"
+#line 292 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 291 "mn-pop3-mailbox.gob"
+#line 292 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 550 "mn-pop3-mailbox.c"
+#line 552 "mn-pop3-mailbox.c"
 {
-#line 295 "mn-pop3-mailbox.gob"
+#line 296 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SSL
     switch (response->type)
@@ -569,22 +571,22 @@ mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 573 "mn-pop3-mailbox.c"
+#line 575 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 316 "mn-pop3-mailbox.gob"
+#line 317 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 579 "mn-pop3-mailbox.c"
+#line 581 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_auth_cb"
-#line 316 "mn-pop3-mailbox.gob"
+#line 317 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 316 "mn-pop3-mailbox.gob"
+#line 317 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 586 "mn-pop3-mailbox.c"
+#line 588 "mn-pop3-mailbox.c"
 {
-#line 319 "mn-pop3-mailbox.gob"
+#line 320 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SASL
     if (mn_client_session_sasl_authentication_start(priv->session,
@@ -599,24 +601,24 @@ mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 603 "mn-pop3-mailbox.c"
+#line 605 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 334 "mn-pop3-mailbox.gob"
+#line 335 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 609 "mn-pop3-mailbox.c"
+#line 611 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_auth_cb"
-#line 334 "mn-pop3-mailbox.gob"
+#line 335 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 334 "mn-pop3-mailbox.gob"
+#line 335 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 334 "mn-pop3-mailbox.gob"
+#line 335 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 618 "mn-pop3-mailbox.c"
+#line 620 "mn-pop3-mailbox.c"
 {
-#line 338 "mn-pop3-mailbox.gob"
+#line 339 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SASL
     switch (response->type)
@@ -639,22 +641,22 @@ mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 643 "mn-pop3-mailbox.c"
+#line 645 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 361 "mn-pop3-mailbox.gob"
+#line 362 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 649 "mn-pop3-mailbox.c"
+#line 651 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_apop_cb"
-#line 361 "mn-pop3-mailbox.gob"
+#line 362 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 361 "mn-pop3-mailbox.gob"
+#line 362 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 656 "mn-pop3-mailbox.c"
+#line 658 "mn-pop3-mailbox.c"
 {
-#line 364 "mn-pop3-mailbox.gob"
+#line 365 "mn-pop3-mailbox.gob"
 	
     MNMD5Context context;
     char buf[33];
@@ -663,29 +665,29 @@ mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate
     
     mn_md5_init(&context);
     mn_md5_update(&context, priv->apop_timestamp, strlen(priv->apop_timestamp));
-    mn_md5_update(&context, priv->mailbox->uri->password, strlen(priv->mailbox->uri->password));
+    mn_md5_update(&context, MN_AUTHENTICATED_MAILBOX(priv->self)->password, strlen(MN_AUTHENTICATED_MAILBOX(priv->self)->password));
     mn_md5_end(&context, buf);
 
     return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
   }}
-#line 672 "mn-pop3-mailbox.c"
+#line 674 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 378 "mn-pop3-mailbox.gob"
+#line 379 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 678 "mn-pop3-mailbox.c"
+#line 680 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_apop_cb"
-#line 378 "mn-pop3-mailbox.gob"
+#line 379 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 378 "mn-pop3-mailbox.gob"
+#line 379 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 378 "mn-pop3-mailbox.gob"
+#line 379 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 687 "mn-pop3-mailbox.c"
+#line 689 "mn-pop3-mailbox.c"
 {
-#line 382 "mn-pop3-mailbox.gob"
+#line 383 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
@@ -699,112 +701,124 @@ mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 703 "mn-pop3-mailbox.c"
+#line 705 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 396 "mn-pop3-mailbox.gob"
+#line 397 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_user_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 709 "mn-pop3-mailbox.c"
+#line 711 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_user_cb"
-#line 396 "mn-pop3-mailbox.gob"
+#line 397 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 396 "mn-pop3-mailbox.gob"
+#line 397 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 716 "mn-pop3-mailbox.c"
+#line 718 "mn-pop3-mailbox.c"
 {
-#line 399 "mn-pop3-mailbox.gob"
+#line 400 "mn-pop3-mailbox.gob"
 	
     return mn_client_session_write(session, "USER %s", priv->mailbox->uri->username);
   }}
-#line 722 "mn-pop3-mailbox.c"
+#line 724 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 403 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 728 "mn-pop3-mailbox.c"
+#line 730 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_user_cb"
-#line 403 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 403 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 403 "mn-pop3-mailbox.gob"
+#line 404 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 737 "mn-pop3-mailbox.c"
+#line 739 "mn-pop3-mailbox.c"
 {
-#line 407 "mn-pop3-mailbox.gob"
+#line 408 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
-      case RESPONSE_OK:		return STATE_PASS;
-      case RESPONSE_ERR:	return RESULT_ERROR_QUIT;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_OK:
+	return STATE_PASS;
+
+      case RESPONSE_ERR:
+	priv->authentication_failed = TRUE;
+	return RESULT_ERROR_QUIT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 748 "mn-pop3-mailbox.c"
+#line 756 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 416 "mn-pop3-mailbox.gob"
+#line 423 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_pass_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 754 "mn-pop3-mailbox.c"
+#line 762 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_pass_cb"
-#line 416 "mn-pop3-mailbox.gob"
+#line 423 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 416 "mn-pop3-mailbox.gob"
+#line 423 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 761 "mn-pop3-mailbox.c"
+#line 769 "mn-pop3-mailbox.c"
 {
-#line 419 "mn-pop3-mailbox.gob"
+#line 426 "mn-pop3-mailbox.gob"
 	
-    return mn_client_session_write(session, "PASS %s", priv->mailbox->uri->password);
+    return mn_client_session_write(session, "PASS %s", MN_AUTHENTICATED_MAILBOX(priv->self)->password);
   }}
-#line 767 "mn-pop3-mailbox.c"
+#line 775 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 773 "mn-pop3-mailbox.c"
+#line 781 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_pass_cb"
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 423 "mn-pop3-mailbox.gob"
+#line 430 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 782 "mn-pop3-mailbox.c"
+#line 790 "mn-pop3-mailbox.c"
 {
-#line 427 "mn-pop3-mailbox.gob"
+#line 434 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
-      case RESPONSE_OK:		return self_session_authenticated(priv);
-      case RESPONSE_ERR:	return RESULT_ERROR_QUIT;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_OK:
+	return self_session_authenticated(priv);
+
+      case RESPONSE_ERR:
+	priv->authentication_failed = TRUE;
+	return RESULT_ERROR_QUIT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 793 "mn-pop3-mailbox.c"
+#line 807 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 436 "mn-pop3-mailbox.gob"
+#line 449 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 799 "mn-pop3-mailbox.c"
+#line 813 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_list_cb"
-#line 436 "mn-pop3-mailbox.gob"
+#line 449 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 436 "mn-pop3-mailbox.gob"
+#line 449 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 806 "mn-pop3-mailbox.c"
+#line 820 "mn-pop3-mailbox.c"
 {
-#line 439 "mn-pop3-mailbox.gob"
+#line 452 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_MIME
     return mn_client_session_write(session, "LIST");
@@ -812,24 +826,24 @@ mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate
     g_return_val_if_reached(0);
 #endif
   }}
-#line 816 "mn-pop3-mailbox.c"
+#line 830 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 447 "mn-pop3-mailbox.gob"
+#line 460 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 822 "mn-pop3-mailbox.c"
+#line 836 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_cb"
-#line 447 "mn-pop3-mailbox.gob"
+#line 460 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 447 "mn-pop3-mailbox.gob"
+#line 460 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 447 "mn-pop3-mailbox.gob"
+#line 460 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 831 "mn-pop3-mailbox.c"
+#line 845 "mn-pop3-mailbox.c"
 {
-#line 451 "mn-pop3-mailbox.gob"
+#line 464 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_MIME
     self_handle_list_response(priv, response);
@@ -865,22 +879,22 @@ mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif
   }}
-#line 869 "mn-pop3-mailbox.c"
+#line 883 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 487 "mn-pop3-mailbox.gob"
+#line 500 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 875 "mn-pop3-mailbox.c"
+#line 889 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_retr_cb"
-#line 487 "mn-pop3-mailbox.gob"
+#line 500 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 487 "mn-pop3-mailbox.gob"
+#line 500 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 882 "mn-pop3-mailbox.c"
+#line 896 "mn-pop3-mailbox.c"
 {
-#line 490 "mn-pop3-mailbox.gob"
+#line 503 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_MIME
     if (priv->current_message_number)
@@ -899,24 +913,24 @@ mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate
     g_return_val_if_reached(0);
 #endif
   }}
-#line 903 "mn-pop3-mailbox.c"
+#line 917 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 509 "mn-pop3-mailbox.gob"
+#line 522 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 909 "mn-pop3-mailbox.c"
+#line 923 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_retr_cb"
-#line 509 "mn-pop3-mailbox.gob"
+#line 522 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 509 "mn-pop3-mailbox.gob"
+#line 522 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 509 "mn-pop3-mailbox.gob"
+#line 522 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 918 "mn-pop3-mailbox.c"
+#line 932 "mn-pop3-mailbox.c"
 {
-#line 513 "mn-pop3-mailbox.gob"
+#line 526 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_MIME
     self_handle_list_response(priv, response);
@@ -955,22 +969,22 @@ mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif
   }}
-#line 959 "mn-pop3-mailbox.c"
+#line 973 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 552 "mn-pop3-mailbox.gob"
+#line 565 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_stat_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 965 "mn-pop3-mailbox.c"
+#line 979 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_stat_cb"
-#line 552 "mn-pop3-mailbox.gob"
+#line 565 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 552 "mn-pop3-mailbox.gob"
+#line 565 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 972 "mn-pop3-mailbox.c"
+#line 986 "mn-pop3-mailbox.c"
 {
-#line 555 "mn-pop3-mailbox.gob"
+#line 568 "mn-pop3-mailbox.gob"
 	
 #ifndef WITH_MIME
     return mn_client_session_write(session, "STAT");
@@ -978,24 +992,24 @@ mn_pop3_mailbox_enter_stat_cb (MNClientSession * session, MNClientSessionPrivate
     g_return_val_if_reached(0);
 #endif
   }}
-#line 982 "mn-pop3-mailbox.c"
+#line 996 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 563 "mn-pop3-mailbox.gob"
+#line 576 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_stat_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 988 "mn-pop3-mailbox.c"
+#line 1002 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_stat_cb"
-#line 563 "mn-pop3-mailbox.gob"
+#line 576 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 563 "mn-pop3-mailbox.gob"
+#line 576 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 563 "mn-pop3-mailbox.gob"
+#line 576 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 997 "mn-pop3-mailbox.c"
+#line 1011 "mn-pop3-mailbox.c"
 {
-#line 567 "mn-pop3-mailbox.gob"
+#line 580 "mn-pop3-mailbox.gob"
 	
 #ifndef WITH_MIME
     switch (response->type)
@@ -1026,43 +1040,43 @@ mn_pop3_mailbox_handle_stat_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif
   }}
-#line 1030 "mn-pop3-mailbox.c"
+#line 1044 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 598 "mn-pop3-mailbox.gob"
+#line 611 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1036 "mn-pop3-mailbox.c"
+#line 1050 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_quit_cb"
-#line 598 "mn-pop3-mailbox.gob"
+#line 611 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 598 "mn-pop3-mailbox.gob"
+#line 611 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1043 "mn-pop3-mailbox.c"
+#line 1057 "mn-pop3-mailbox.c"
 {
-#line 601 "mn-pop3-mailbox.gob"
+#line 614 "mn-pop3-mailbox.gob"
 	
     return mn_client_session_write(session, "QUIT");
   }}
-#line 1049 "mn-pop3-mailbox.c"
+#line 1063 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 605 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1055 "mn-pop3-mailbox.c"
+#line 1069 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_quit_cb"
-#line 605 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 605 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 605 "mn-pop3-mailbox.gob"
+#line 618 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1064 "mn-pop3-mailbox.c"
+#line 1078 "mn-pop3-mailbox.c"
 {
-#line 609 "mn-pop3-mailbox.gob"
+#line 622 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
@@ -1071,27 +1085,29 @@ mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionRespon
       default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 1075 "mn-pop3-mailbox.c"
+#line 1089 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 618 "mn-pop3-mailbox.gob"
-static void 
-___19_mn_pop3_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 1081 "mn-pop3-mailbox.c"
-#define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_threaded_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_threaded_check)(___mailbox); }
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_threaded_check"
-#line 618 "mn-pop3-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 618 "mn-pop3-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 1091 "mn-pop3-mailbox.c"
-{
-#line 620 "mn-pop3-mailbox.gob"
+#line 631 "mn-pop3-mailbox.gob"
+static MNAuthenticatedMailboxResult 
+___19_mn_pop3_mailbox_impl_authenticated_check (MNAuthenticatedMailbox * authenticated_mailbox G_GNUC_UNUSED, GError ** err)
+#line 1095 "mn-pop3-mailbox.c"
+#define PARENT_HANDLER(___authenticated_mailbox,___err) \
+	((MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)? \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_authenticated_check)(___authenticated_mailbox,___err): \
+		((MNAuthenticatedMailboxResult )0))
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_authenticated_check"
+#line 631 "mn-pop3-mailbox.gob"
+	g_return_val_if_fail (authenticated_mailbox != NULL, (MNAuthenticatedMailboxResult )0);
+#line 631 "mn-pop3-mailbox.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (authenticated_mailbox), (MNAuthenticatedMailboxResult )0);
+#line 1106 "mn-pop3-mailbox.c"
+{
+#line 634 "mn-pop3-mailbox.gob"
 	
-    Self *self = SELF(mailbox);
+    MNMailbox *mailbox = MN_MAILBOX(authenticated_mailbox);
+    Self *self = SELF(authenticated_mailbox);
     MNClientSessionState states[] = {
       { STATE_GREETING,		NULL,			self_handle_greeting_cb },
       { STATE_CAPA,		self_enter_capa_cb,	self_handle_capa_cb },
@@ -1121,7 +1137,7 @@ ___19_mn_pop3_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
       self_custom_handler_cb
     };
     MNClientSessionPrivate priv;
-    GError *err = NULL;
+    gboolean status;
 
     if (selfp->login_delay && selfp->authentication_timer)
       {
@@ -1148,29 +1164,17 @@ ___19_mn_pop3_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
     priv.mailbox = mailbox;
     priv.self = self;
 
-    if (! mn_client_session_run(states,
-				&callbacks,
+    status = mn_client_session_run(states,
+				   &callbacks,
 #ifdef WITH_SSL
-				MN_URI_IS_SSL(mailbox->uri),
+				   MN_URI_IS_SSL(mailbox->uri),
 #endif
-				mailbox->uri->hostname,
-				mailbox->uri->port,
-				mailbox->uri->username,
-				mailbox->uri->password,
-				&priv,
-				&err))
-      {
-	GDK_THREADS_ENTER();
-	mn_mailbox_set_error(mailbox, "%s", err->message);
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-	g_error_free(err);
-      }
-
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(mailbox);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+				   mailbox->uri->hostname,
+				   mailbox->uri->port,
+				   mailbox->uri->username,
+				   MN_AUTHENTICATED_MAILBOX(self)->password,
+				   &priv,
+				   err);
 
     g_free(priv.apop_timestamp);
     eel_g_slist_free_deep(priv.auth_mechanisms);
@@ -1180,47 +1184,53 @@ ___19_mn_pop3_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
     if (priv.current_message)
       g_string_free(priv.current_message, TRUE);
 #endif
+
+    return status
+      ? MN_AUTHENTICATED_MAILBOX_OK
+      : (priv.authentication_failed
+	 ? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION
+	 : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER);
   }}
-#line 1185 "mn-pop3-mailbox.c"
+#line 1195 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 712 "mn-pop3-mailbox.gob"
+#line 721 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1192 "mn-pop3-mailbox.c"
+#line 1202 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::notice_cb"
-#line 712 "mn-pop3-mailbox.gob"
+#line 721 "mn-pop3-mailbox.gob"
 	g_return_if_fail (session != NULL);
-#line 712 "mn-pop3-mailbox.gob"
+#line 721 "mn-pop3-mailbox.gob"
 	g_return_if_fail (str != NULL);
-#line 712 "mn-pop3-mailbox.gob"
+#line 721 "mn-pop3-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 1201 "mn-pop3-mailbox.c"
+#line 1211 "mn-pop3-mailbox.c"
 {
-#line 716 "mn-pop3-mailbox.gob"
+#line 725 "mn-pop3-mailbox.gob"
 	
     mn_mailbox_notice(priv->mailbox, "%s", str);
   }}
-#line 1207 "mn-pop3-mailbox.c"
+#line 1217 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 720 "mn-pop3-mailbox.gob"
+#line 729 "mn-pop3-mailbox.gob"
 static MNClientSessionResponse * 
 mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1213 "mn-pop3-mailbox.c"
+#line 1223 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_new_cb"
-#line 720 "mn-pop3-mailbox.gob"
+#line 729 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 720 "mn-pop3-mailbox.gob"
+#line 729 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 720 "mn-pop3-mailbox.gob"
+#line 729 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1222 "mn-pop3-mailbox.c"
+#line 1232 "mn-pop3-mailbox.c"
 {
-#line 724 "mn-pop3-mailbox.gob"
+#line 733 "mn-pop3-mailbox.gob"
 	
     MNClientSessionResponse *response = NULL;
 
@@ -1229,7 +1239,7 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, 
 	response = g_new0(MNClientSessionResponse, 1);
 	if (! strcmp(input, "."))
 	  response->type = RESPONSE_LIST_END;
-	else if (! strncmp(input, "..", 2))
+	else if (g_str_has_prefix(input, ".."))
 	  {
 	    response->type = RESPONSE_LIST_ITEM;
 	    response->arguments = g_strdup(input + 1); /* skip the initial dot */
@@ -1242,7 +1252,7 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, 
       }
     else
       {
-	if (! strncmp(input, "+ ", 2))
+	if (g_str_has_prefix(input, "+ "))
 	  {
 	    response = g_new0(MNClientSessionResponse, 1);
 	    response->type = RESPONSE_CONTINUATION;
@@ -1253,12 +1263,12 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, 
 	    ResponseType type;
 	    int after_status = 0;
 	    
-	    if (! strncmp(input, "+OK", 3))
+	    if (g_str_has_prefix(input, "+OK"))
 	      {
 		type = RESPONSE_OK;
 		after_status = 3;
 	      }
-	    else if (! strncmp(input, "-ERR", 4))
+	    else if (g_str_has_prefix(input, "-ERR"))
 	      {
 		type = RESPONSE_ERR;
 		after_status = 4;
@@ -1279,46 +1289,46 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, 
     
     return response;
   }}
-#line 1283 "mn-pop3-mailbox.c"
+#line 1293 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 783 "mn-pop3-mailbox.gob"
+#line 792 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1289 "mn-pop3-mailbox.c"
+#line 1299 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_free_cb"
-#line 783 "mn-pop3-mailbox.gob"
+#line 792 "mn-pop3-mailbox.gob"
 	g_return_if_fail (session != NULL);
-#line 783 "mn-pop3-mailbox.gob"
+#line 792 "mn-pop3-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 783 "mn-pop3-mailbox.gob"
+#line 792 "mn-pop3-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 1298 "mn-pop3-mailbox.c"
+#line 1308 "mn-pop3-mailbox.c"
 {
-#line 787 "mn-pop3-mailbox.gob"
+#line 796 "mn-pop3-mailbox.gob"
 	
     g_free(response->arguments);
     g_free(response);
   }}
-#line 1305 "mn-pop3-mailbox.c"
+#line 1315 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1311 "mn-pop3-mailbox.c"
+#line 1321 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::custom_handler_cb"
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 792 "mn-pop3-mailbox.gob"
+#line 801 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1320 "mn-pop3-mailbox.c"
+#line 1330 "mn-pop3-mailbox.c"
 {
-#line 797 "mn-pop3-mailbox.gob"
+#line 806 "mn-pop3-mailbox.gob"
 	
     switch (result)
       {
@@ -1334,20 +1344,20 @@ mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionRes
       g_return_val_if_reached(0);
       }
   }}
-#line 1338 "mn-pop3-mailbox.c"
+#line 1348 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 813 "mn-pop3-mailbox.gob"
+#line 822 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1344 "mn-pop3-mailbox.c"
+#line 1354 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate"
-#line 813 "mn-pop3-mailbox.gob"
+#line 822 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1349 "mn-pop3-mailbox.c"
+#line 1359 "mn-pop3-mailbox.c"
 {
-#line 815 "mn-pop3-mailbox.gob"
+#line 824 "mn-pop3-mailbox.gob"
 	
     if (priv->mailbox->uri->authmech)
       {
@@ -1383,20 +1393,20 @@ mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
 	  return STATE_USER;
       }
   }}
-#line 1387 "mn-pop3-mailbox.c"
+#line 1397 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 851 "mn-pop3-mailbox.gob"
+#line 860 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_apop)
-#line 1393 "mn-pop3-mailbox.c"
+#line 1403 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate_fallback"
-#line 851 "mn-pop3-mailbox.gob"
+#line 860 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1398 "mn-pop3-mailbox.c"
+#line 1408 "mn-pop3-mailbox.c"
 {
-#line 854 "mn-pop3-mailbox.gob"
+#line 863 "mn-pop3-mailbox.gob"
 	
     if (! priv->mailbox->uri->authmech)
       {
@@ -1412,22 +1422,23 @@ mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
 	  }
       }
 
+    priv->authentication_failed = TRUE;
     return mn_client_session_error(priv->session, _("authentication failed"));
   }}
-#line 1418 "mn-pop3-mailbox.c"
+#line 1429 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 872 "mn-pop3-mailbox.gob"
+#line 882 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
-#line 1424 "mn-pop3-mailbox.c"
+#line 1435 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticated"
-#line 872 "mn-pop3-mailbox.gob"
+#line 882 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1429 "mn-pop3-mailbox.c"
+#line 1440 "mn-pop3-mailbox.c"
 {
-#line 874 "mn-pop3-mailbox.gob"
+#line 884 "mn-pop3-mailbox.gob"
 	
     priv->authenticated = TRUE;
     if (priv->self->_priv->login_delay)
@@ -1439,20 +1450,20 @@ mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
       }
     return priv->login_delay_user ? STATE_CAPA : self_session_check_mail(priv);
   }}
-#line 1443 "mn-pop3-mailbox.c"
+#line 1454 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 886 "mn-pop3-mailbox.gob"
+#line 896 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_check_mail (MNClientSessionPrivate * priv)
-#line 1449 "mn-pop3-mailbox.c"
+#line 1460 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_check_mail"
-#line 886 "mn-pop3-mailbox.gob"
+#line 896 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1454 "mn-pop3-mailbox.c"
+#line 1465 "mn-pop3-mailbox.c"
 {
-#line 888 "mn-pop3-mailbox.gob"
+#line 898 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_MIME
     return STATE_LIST;
@@ -1460,44 +1471,44 @@ mn_pop3_mailbox_session_check_mail (MNClientSessionPrivate * priv)
     return STATE_STAT;
 #endif
   }}
-#line 1464 "mn-pop3-mailbox.c"
+#line 1475 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 896 "mn-pop3-mailbox.gob"
+#line 906 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1470 "mn-pop3-mailbox.c"
+#line 1481 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_set_error_from_arguments"
-#line 896 "mn-pop3-mailbox.gob"
+#line 906 "mn-pop3-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 896 "mn-pop3-mailbox.gob"
+#line 906 "mn-pop3-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 1477 "mn-pop3-mailbox.c"
+#line 1488 "mn-pop3-mailbox.c"
 {
-#line 899 "mn-pop3-mailbox.gob"
+#line 909 "mn-pop3-mailbox.gob"
 	
     if (response->arguments)
       mn_client_session_error(priv->session, "\"%s\"", response->arguments);
     else
       mn_client_session_error(priv->session, _("unknown server error"));
   }}
-#line 1486 "mn-pop3-mailbox.c"
+#line 1497 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 906 "mn-pop3-mailbox.gob"
+#line 916 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1492 "mn-pop3-mailbox.c"
+#line 1503 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_response"
-#line 906 "mn-pop3-mailbox.gob"
+#line 916 "mn-pop3-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 906 "mn-pop3-mailbox.gob"
+#line 916 "mn-pop3-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 1499 "mn-pop3-mailbox.c"
+#line 1510 "mn-pop3-mailbox.c"
 {
-#line 909 "mn-pop3-mailbox.gob"
+#line 919 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
@@ -1513,5 +1524,5 @@ mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSes
 	break;
       }
   }}
-#line 1517 "mn-pop3-mailbox.c"
+#line 1528 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox.gob b/src/mn-pop3-mailbox.gob
@@ -28,7 +28,7 @@
 requires 2.0.10
 
 %headertop{
-#include "mn-mailbox.h"
+#include "mn-authenticated-mailbox.h"
 %}
 %{
 #include "config.h"
@@ -37,7 +37,7 @@ requires 2.0.10
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
@@ -91,6 +91,7 @@ requires 2.0.10
 #ifdef WITH_SASL
     const char		*sasl_mechanism;
 #endif
+    gboolean		authentication_failed;
     gboolean		authenticated;
     gboolean		login_delay_user;
 #ifdef WITH_MIME
@@ -117,7 +118,7 @@ requires 2.0.10
   };
 %}
 
-class MN:POP3:Mailbox from MN:Mailbox
+class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 {
   private int login_delay;
   private GTimer *authentication_timer destroywith g_timer_destroy;
@@ -369,7 +370,7 @@ class MN:POP3:Mailbox from MN:Mailbox
     
     mn_md5_init(&context);
     mn_md5_update(&context, priv->apop_timestamp, strlen(priv->apop_timestamp));
-    mn_md5_update(&context, priv->mailbox->uri->password, strlen(priv->mailbox->uri->password));
+    mn_md5_update(&context, MN_AUTHENTICATED_MAILBOX(priv->self)->password, strlen(MN_AUTHENTICATED_MAILBOX(priv->self)->password));
     mn_md5_end(&context, buf);
 
     return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
@@ -407,9 +408,15 @@ class MN:POP3:Mailbox from MN:Mailbox
   {
     switch (response->type)
       {
-      case RESPONSE_OK:		return STATE_PASS;
-      case RESPONSE_ERR:	return RESULT_ERROR_QUIT;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_OK:
+	return STATE_PASS;
+
+      case RESPONSE_ERR:
+	priv->authentication_failed = TRUE;
+	return RESULT_ERROR_QUIT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }
   
@@ -417,7 +424,7 @@ class MN:POP3:Mailbox from MN:Mailbox
     enter_pass_cb (MNClientSession *session (check null),
 		   MNClientSessionPrivate *priv (check null))
   {
-    return mn_client_session_write(session, "PASS %s", priv->mailbox->uri->password);
+    return mn_client_session_write(session, "PASS %s", MN_AUTHENTICATED_MAILBOX(priv->self)->password);
   }
 
   private int
@@ -427,9 +434,15 @@ class MN:POP3:Mailbox from MN:Mailbox
   {
     switch (response->type)
       {
-      case RESPONSE_OK:		return self_session_authenticated(priv);
-      case RESPONSE_ERR:	return RESULT_ERROR_QUIT;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_OK:
+	return self_session_authenticated(priv);
+
+      case RESPONSE_ERR:
+	priv->authentication_failed = TRUE;
+	return RESULT_ERROR_QUIT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }
 
@@ -615,10 +628,12 @@ class MN:POP3:Mailbox from MN:Mailbox
       }
   }
   
-  override (MN:Mailbox) void
-    impl_threaded_check (MN:Mailbox *mailbox (check null type))
+  override (MN:Authenticated:Mailbox) MNAuthenticatedMailboxResult
+    impl_authenticated_check (MN:Authenticated:Mailbox *authenticated_mailbox (check null type),
+			      GError **err)
   {
-    Self *self = SELF(mailbox);
+    MNMailbox *mailbox = MN_MAILBOX(authenticated_mailbox);
+    Self *self = SELF(authenticated_mailbox);
     MNClientSessionState states[] = {
       { STATE_GREETING,		NULL,			self_handle_greeting_cb },
       { STATE_CAPA,		self_enter_capa_cb,	self_handle_capa_cb },
@@ -648,7 +663,7 @@ class MN:POP3:Mailbox from MN:Mailbox
       self_custom_handler_cb
     };
     MNClientSessionPrivate priv;
-    GError *err = NULL;
+    gboolean status;
 
     if (selfp->login_delay && selfp->authentication_timer)
       {
@@ -675,29 +690,17 @@ class MN:POP3:Mailbox from MN:Mailbox
     priv.mailbox = mailbox;
     priv.self = self;
 
-    if (! mn_client_session_run(states,
-				&callbacks,
+    status = mn_client_session_run(states,
+				   &callbacks,
 #ifdef WITH_SSL
-				MN_URI_IS_SSL(mailbox->uri),
+				   MN_URI_IS_SSL(mailbox->uri),
 #endif
-				mailbox->uri->hostname,
-				mailbox->uri->port,
-				mailbox->uri->username,
-				mailbox->uri->password,
-				&priv,
-				&err))
-      {
-	GDK_THREADS_ENTER();
-	mn_mailbox_set_error(mailbox, "%s", err->message);
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-	g_error_free(err);
-      }
-
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(mailbox);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+				   mailbox->uri->hostname,
+				   mailbox->uri->port,
+				   mailbox->uri->username,
+				   MN_AUTHENTICATED_MAILBOX(self)->password,
+				   &priv,
+				   err);
 
     g_free(priv.apop_timestamp);
     eel_g_slist_free_deep(priv.auth_mechanisms);
@@ -707,8 +710,14 @@ class MN:POP3:Mailbox from MN:Mailbox
     if (priv.current_message)
       g_string_free(priv.current_message, TRUE);
 #endif
-  }
 
+    return status
+      ? MN_AUTHENTICATED_MAILBOX_OK
+      : (priv.authentication_failed
+	 ? MN_AUTHENTICATED_MAILBOX_ERROR_AUTHENTICATION
+	 : MN_AUTHENTICATED_MAILBOX_ERROR_OTHER);
+  }
+  
   private void
     notice_cb (MNClientSession *session (check null),
 	       const char *str (check null),
@@ -729,7 +738,7 @@ class MN:POP3:Mailbox from MN:Mailbox
 	response = g_new0(MNClientSessionResponse, 1);
 	if (! strcmp(input, "."))
 	  response->type = RESPONSE_LIST_END;
-	else if (! strncmp(input, "..", 2))
+	else if (g_str_has_prefix(input, ".."))
 	  {
 	    response->type = RESPONSE_LIST_ITEM;
 	    response->arguments = g_strdup(input + 1); /* skip the initial dot */
@@ -742,7 +751,7 @@ class MN:POP3:Mailbox from MN:Mailbox
       }
     else
       {
-	if (! strncmp(input, "+ ", 2))
+	if (g_str_has_prefix(input, "+ "))
 	  {
 	    response = g_new0(MNClientSessionResponse, 1);
 	    response->type = RESPONSE_CONTINUATION;
@@ -753,12 +762,12 @@ class MN:POP3:Mailbox from MN:Mailbox
 	    ResponseType type;
 	    int after_status = 0;
 	    
-	    if (! strncmp(input, "+OK", 3))
+	    if (g_str_has_prefix(input, "+OK"))
 	      {
 		type = RESPONSE_OK;
 		after_status = 3;
 	      }
-	    else if (! strncmp(input, "-ERR", 4))
+	    else if (g_str_has_prefix(input, "-ERR"))
 	      {
 		type = RESPONSE_ERR;
 		after_status = 4;
@@ -866,6 +875,7 @@ class MN:POP3:Mailbox from MN:Mailbox
 	  }
       }
 
+    priv->authentication_failed = TRUE;
     return mn_client_session_error(priv->session, _("authentication failed"));
   }
   
diff --git a/src/mn-pop3-mailbox.h b/src/mn-pop3-mailbox.h
@@ -4,7 +4,7 @@
 #include <glib-object.h>
 
 
-#include "mn-mailbox.h"
+#include "mn-authenticated-mailbox.h"
 
 #ifndef __MN_POP3_MAILBOX_H__
 #define __MN_POP3_MAILBOX_H__
@@ -36,7 +36,7 @@ typedef struct _MNPOP3MailboxPrivate MNPOP3MailboxPrivate;
 typedef struct _MNPOP3Mailbox MNPOP3Mailbox;
 #endif
 struct _MNPOP3Mailbox {
-	MNMailbox __parent__;
+	MNAuthenticatedMailbox __parent__;
 	/*< private >*/
 	MNPOP3MailboxPrivate *_priv;
 };
@@ -46,7 +46,7 @@ struct _MNPOP3Mailbox {
  */
 typedef struct _MNPOP3MailboxClass MNPOP3MailboxClass;
 struct _MNPOP3MailboxClass {
-	MNMailboxClass __parent__;
+	MNAuthenticatedMailboxClass __parent__;
 };
 
 
diff --git a/src/mn-properties.c b/src/mn-properties.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <eel/eel.h>
 #include "mn-conf.h"
@@ -38,6 +38,8 @@ typedef struct
   GtkWidget		*blink_check;
   GtkWidget		*command_new_mail_check;
   GtkWidget		*command_new_mail_entry;
+  GtkWidget		*command_mail_read_check;
+  GtkWidget		*command_mail_read_entry;
 
   /* mailboxes tab */
   GtkWidget		*delay_label;
@@ -113,6 +115,8 @@ mn_properties_display (void)
 		      "blink_check", &properties.blink_check,
 		      "command_new_mail_check", &properties.command_new_mail_check,
 		      "command_new_mail_entry", &properties.command_new_mail_entry,
+		      "command_mail_read_check", &properties.command_mail_read_check,
+		      "command_mail_read_entry", &properties.command_mail_read_entry,
 		      "delay_label", &properties.delay_label,
 		      "minutes_spin", &properties.minutes_spin,
 		      "seconds_spin", &properties.seconds_spin,
@@ -148,6 +152,11 @@ mn_properties_display (void)
   mn_setup_dnd(properties.scrolled);
 
   size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+  gtk_size_group_add_widget(size_group, properties.command_new_mail_check);
+  gtk_size_group_add_widget(size_group, properties.command_mail_read_check);
+  g_object_unref(size_group);
+  
+  size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
   gtk_size_group_add_widget(size_group, properties.summary_autoclose_check);
   gtk_size_group_add_widget(size_group, properties.summary_position_label);
   gtk_size_group_add_widget(size_group, properties.summary_horizontal_offset_label);
@@ -173,17 +182,19 @@ mn_properties_display (void)
   g_object_unref(position_store);
   
   mn_conf_link(properties.dialog, MN_CONF_PROPERTIES_DIALOG,
+	       properties.blink_check, MN_CONF_BLINK_ON_ERRORS,
+	       properties.command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED,
+	       properties.command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND,
+	       properties.command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED,
+	       properties.command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND,
 	       properties.minutes_spin, MN_CONF_DELAY_MINUTES,
 	       properties.seconds_spin, MN_CONF_DELAY_SECONDS,
-	       properties.blink_check, MN_CONF_BLINK_ON_ERRORS,
 	       properties.summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE,
 	       properties.summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE,
 	       properties.summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
 	       properties.summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
 	       properties.summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
 	       properties.summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
-	       properties.command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED,
-	       properties.command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND,
 	       NULL);
   mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(properties.summary_position_combo),
 				   POSITION_COLUMN_NICK,
@@ -254,6 +265,7 @@ static void
 mn_properties_update_sensitivity (void)
 {
   gboolean command_new_mail_enabled;
+  gboolean command_mail_read_enabled;
   gboolean must_poll;
   GtkTreeSelection *selection;
   gboolean has_selection;
@@ -261,7 +273,10 @@ mn_properties_update_sensitivity (void)
   gboolean summary_autoclose_enabled = FALSE;
 
   command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(properties.command_new_mail_check));
+  command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(properties.command_mail_read_check));
+
   gtk_widget_set_sensitive(properties.command_new_mail_entry, command_new_mail_enabled);
+  gtk_widget_set_sensitive(properties.command_mail_read_entry, command_mail_read_enabled);
 
   must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
   gtk_widget_set_sensitive(properties.minutes_spin, must_poll);
diff --git a/src/mn-sasl.c b/src/mn-sasl.c
@@ -18,7 +18,7 @@
 
 #include "config.h"
 #include <glib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <sasl/sasl.h>
 
 /*** variables ***************************************************************/
diff --git a/src/mn-shell-private.h b/src/mn-shell-private.h
@@ -20,7 +20,9 @@ struct _MNShellPrivate {
 	MNMailIcon * icon;
 #line 48 "mn-shell.gob"
 	GtkWidget * about;
-#line 24 "mn-shell-private.h"
+#line 49 "mn-shell.gob"
+	int n_new;
+#line 26 "mn-shell-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-shell.c b/src/mn-shell.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:54 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -71,6 +71,7 @@ static void mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_da
 static void mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_update_sensitivity (MNShell * self) G_GNUC_UNUSED;
 static void mn_shell_update_icon (MNShell * self) G_GNUC_UNUSED;
+static void mn_shell_execute_command (const char * conf_key) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
 static GObjectClass *parent_class = NULL;
@@ -89,6 +90,7 @@ static GObjectClass *parent_class = NULL;
 #define self_icon_destroy_h mn_shell_icon_destroy_h
 #define self_update_sensitivity mn_shell_update_sensitivity
 #define self_update_icon mn_shell_update_icon
+#define self_execute_command mn_shell_execute_command
 #define self_new mn_shell_new
 #define self_display_about mn_shell_display_about
 #define self_run_welcome mn_shell_run_welcome
@@ -145,7 +147,7 @@ ___dispose (GObject *obj_self)
 		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
 #line 46 "mn-shell.gob"
 	if(self->mailboxes) { g_object_unref ((gpointer) self->mailboxes); self->mailboxes = NULL; }
-#line 149 "mn-shell.c"
+#line 151 "mn-shell.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -156,9 +158,9 @@ ___finalize(GObject *obj_self)
 #define __GOB_FUNCTION__ "MN:Shell::finalize"
 	MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
 	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 70 "mn-shell.gob"
+#line 72 "mn-shell.gob"
 	___2_mn_shell_finalize(obj_self);
-#line 162 "mn-shell.c"
+#line 164 "mn-shell.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -172,24 +174,24 @@ mn_shell_class_init (MNShellClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (G_TYPE_OBJECT);
 
-#line 70 "mn-shell.gob"
+#line 72 "mn-shell.gob"
 	g_object_class->finalize = ___finalize;
-#line 178 "mn-shell.c"
+#line 180 "mn-shell.c"
 	g_object_class->dispose = ___dispose;
 }
 #undef __GOB_FUNCTION__
-#line 50 "mn-shell.gob"
+#line 51 "mn-shell.gob"
 static void 
 mn_shell_init (MNShell * self G_GNUC_UNUSED)
-#line 185 "mn-shell.c"
+#line 187 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::init"
 	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNShellPrivate);
 #line 46 "mn-shell.gob"
 	self->mailboxes = mn_mailboxes_new();
-#line 191 "mn-shell.c"
+#line 193 "mn-shell.c"
  {
-#line 51 "mn-shell.gob"
+#line 52 "mn-shell.gob"
 
     g_return_if_fail(mn_shell == NULL);
     mn_shell = self;
@@ -203,92 +205,77 @@ mn_shell_init (MNShell * self G_GNUC_UNUSED)
 		     "swapped-signal::notify::must-poll", self_update_sensitivity, self,
 		     "swapped-signal::list-changed", self_update_icon, self,
 		     "swapped-signal::has-new-changed", self_update_icon, self,
+		     "swapped-signal::messages-changed", self_update_icon, self,
 		     "swapped-signal::error-changed", self_update_icon, self,
 		     NULL);
 
     mn_summary_popup_init();
   
-#line 212 "mn-shell.c"
+#line 215 "mn-shell.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 70 "mn-shell.gob"
+#line 72 "mn-shell.gob"
 static void 
 ___2_mn_shell_finalize (GObject * object G_GNUC_UNUSED)
-#line 222 "mn-shell.c"
+#line 225 "mn-shell.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Shell::finalize"
 {
-#line 72 "mn-shell.gob"
+#line 74 "mn-shell.gob"
 	
     gtk_main_quit();
     PARENT_HANDLER(object);
   }}
-#line 234 "mn-shell.c"
+#line 237 "mn-shell.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 77 "mn-shell.gob"
+#line 79 "mn-shell.gob"
 static void 
 mn_shell_mailboxes_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer user_data)
-#line 241 "mn-shell.c"
+#line 244 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::mailboxes_messages_changed_h"
-#line 77 "mn-shell.gob"
+#line 79 "mn-shell.gob"
 	g_return_if_fail (mailboxes != NULL);
-#line 77 "mn-shell.gob"
+#line 79 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 77 "mn-shell.gob"
+#line 79 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 250 "mn-shell.c"
+#line 253 "mn-shell.c"
 {
-#line 81 "mn-shell.gob"
+#line 83 "mn-shell.gob"
 	
     if (has_new)
       {
 	gnome_triggers_do(_("You have new mail."), NULL, "mail-notification", "new-mail", NULL);
 	if (eel_gconf_get_boolean(MN_CONF_COMMANDS_NEW_MAIL_ENABLED))
-	  {
-	    char *command;
-		
-	    command = eel_gconf_get_string(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
-	    if (command)
-	      {
-		if (gnome_execute_shell(NULL, command) < 0)
-		  mn_error_dialog(NULL,
-				  NULL,
-				  NULL,
-				  _("A command error has occurred in Mail Notification"),
-				  _("Unable to execute new mail command: %s."),
-				  g_strerror(errno));
-		    
-		g_free(command);
-	      }
-	  }
+	  self_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
       }
   }}
-#line 277 "mn-shell.c"
+#line 264 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 106 "mn-shell.gob"
+#line 92 "mn-shell.gob"
 static void 
 mn_shell_init_icon (MNShell * self)
-#line 283 "mn-shell.c"
+#line 270 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::init_icon"
-#line 106 "mn-shell.gob"
+#line 92 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 106 "mn-shell.gob"
+#line 92 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 290 "mn-shell.c"
+#line 277 "mn-shell.c"
 {
-#line 108 "mn-shell.gob"
+#line 94 "mn-shell.gob"
 	
     selfp->icon = MN_MAIL_ICON(mn_mail_icon_new());
 
@@ -306,20 +293,20 @@ mn_shell_init_icon (MNShell * self)
     self_update_sensitivity(self);
     self_update_icon(self);
   }}
-#line 310 "mn-shell.c"
+#line 297 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 126 "mn-shell.gob"
+#line 112 "mn-shell.gob"
 static void 
 mn_shell_notify_blink_on_errors_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 316 "mn-shell.c"
+#line 303 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::notify_blink_on_errors_cb"
-#line 126 "mn-shell.gob"
+#line 112 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 321 "mn-shell.c"
+#line 308 "mn-shell.c"
 {
-#line 131 "mn-shell.gob"
+#line 117 "mn-shell.gob"
 	
     Self *self = user_data;
 
@@ -327,215 +314,215 @@ mn_shell_notify_blink_on_errors_cb (GConfClient * client, guint cnxn_id, GConfEn
     self_update_icon(self);
     GDK_THREADS_LEAVE();
   }}
-#line 331 "mn-shell.c"
+#line 318 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 139 "mn-shell.gob"
+#line 125 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
-#line 337 "mn-shell.c"
+#line 324 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_h"
-#line 139 "mn-shell.gob"
+#line 125 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 139 "mn-shell.gob"
+#line 125 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 139 "mn-shell.gob"
+#line 125 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 346 "mn-shell.c"
+#line 333 "mn-shell.c"
 {
-#line 142 "mn-shell.gob"
+#line 128 "mn-shell.gob"
 	
     mn_summary_dialog_display();
   }}
-#line 352 "mn-shell.c"
+#line 339 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 146 "mn-shell.gob"
+#line 132 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_summary_h (MNMailIcon * icon, gpointer user_data)
-#line 358 "mn-shell.c"
+#line 345 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_summary_h"
-#line 146 "mn-shell.gob"
+#line 132 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 146 "mn-shell.gob"
+#line 132 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 146 "mn-shell.gob"
+#line 132 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 367 "mn-shell.c"
+#line 354 "mn-shell.c"
 {
-#line 149 "mn-shell.gob"
+#line 135 "mn-shell.gob"
 	
     mn_summary_dialog_display();
   }}
-#line 373 "mn-shell.c"
+#line 360 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 153 "mn-shell.gob"
+#line 139 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data)
-#line 379 "mn-shell.c"
+#line 366 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_update_h"
-#line 153 "mn-shell.gob"
+#line 139 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 153 "mn-shell.gob"
+#line 139 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 153 "mn-shell.gob"
+#line 139 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 388 "mn-shell.c"
+#line 375 "mn-shell.c"
 {
-#line 156 "mn-shell.gob"
+#line 142 "mn-shell.gob"
 	
     Self *self = user_data;
     mn_mailboxes_check(self->mailboxes);
   }}
-#line 395 "mn-shell.c"
+#line 382 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 161 "mn-shell.gob"
+#line 147 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data)
-#line 401 "mn-shell.c"
+#line 388 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_properties_h"
-#line 161 "mn-shell.gob"
+#line 147 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 161 "mn-shell.gob"
+#line 147 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 161 "mn-shell.gob"
+#line 147 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 410 "mn-shell.c"
+#line 397 "mn-shell.c"
 {
-#line 164 "mn-shell.gob"
+#line 150 "mn-shell.gob"
 	
     mn_properties_display();
   }}
-#line 416 "mn-shell.c"
+#line 403 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 168 "mn-shell.gob"
+#line 154 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data)
-#line 422 "mn-shell.c"
+#line 409 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_help_h"
-#line 168 "mn-shell.gob"
+#line 154 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 168 "mn-shell.gob"
+#line 154 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 168 "mn-shell.gob"
+#line 154 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 431 "mn-shell.c"
+#line 418 "mn-shell.c"
 {
-#line 171 "mn-shell.gob"
+#line 157 "mn-shell.gob"
 	
     mn_display_help(NULL, NULL);
   }}
-#line 437 "mn-shell.c"
+#line 424 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 175 "mn-shell.gob"
+#line 161 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data)
-#line 443 "mn-shell.c"
+#line 430 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_about_h"
-#line 175 "mn-shell.gob"
+#line 161 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 175 "mn-shell.gob"
+#line 161 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 175 "mn-shell.gob"
+#line 161 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 452 "mn-shell.c"
+#line 439 "mn-shell.c"
 {
-#line 178 "mn-shell.gob"
+#line 164 "mn-shell.gob"
 	
     Self *self = user_data;
     self_display_about(self);
   }}
-#line 459 "mn-shell.c"
+#line 446 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 183 "mn-shell.gob"
+#line 169 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_data)
-#line 465 "mn-shell.c"
+#line 452 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_remove_h"
-#line 183 "mn-shell.gob"
+#line 169 "mn-shell.gob"
 	g_return_if_fail (icon != NULL);
-#line 183 "mn-shell.gob"
+#line 169 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 183 "mn-shell.gob"
+#line 169 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 474 "mn-shell.c"
+#line 461 "mn-shell.c"
 {
-#line 186 "mn-shell.gob"
+#line 172 "mn-shell.gob"
 	
     Self *self = user_data;
     g_object_unref(self);
   }}
-#line 481 "mn-shell.c"
+#line 468 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 191 "mn-shell.gob"
+#line 177 "mn-shell.gob"
 static void 
 mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
-#line 487 "mn-shell.c"
+#line 474 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
-#line 191 "mn-shell.gob"
+#line 177 "mn-shell.gob"
 	g_return_if_fail (object != NULL);
-#line 191 "mn-shell.gob"
+#line 177 "mn-shell.gob"
 	g_return_if_fail (GTK_IS_OBJECT (object));
-#line 191 "mn-shell.gob"
+#line 177 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 496 "mn-shell.c"
+#line 483 "mn-shell.c"
 {
-#line 194 "mn-shell.gob"
+#line 180 "mn-shell.gob"
 	
     Self *self = user_data;
 
     /* The Notification Area applet has been terminated. Recreate the icon. */
     self_init_icon(self);
   }}
-#line 505 "mn-shell.c"
+#line 492 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 201 "mn-shell.gob"
+#line 187 "mn-shell.gob"
 static void 
 mn_shell_update_sensitivity (MNShell * self)
-#line 511 "mn-shell.c"
+#line 498 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_sensitivity"
-#line 201 "mn-shell.gob"
+#line 187 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 201 "mn-shell.gob"
+#line 187 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 518 "mn-shell.c"
+#line 505 "mn-shell.c"
 {
-#line 203 "mn-shell.gob"
+#line 189 "mn-shell.gob"
 	
     gtk_widget_set_sensitive(selfp->icon->update_item, mn_mailboxes_get_must_poll(self->mailboxes));
   }}
-#line 524 "mn-shell.c"
+#line 511 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 207 "mn-shell.gob"
+#line 193 "mn-shell.gob"
 static void 
 mn_shell_update_icon (MNShell * self)
-#line 530 "mn-shell.c"
+#line 517 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_icon"
-#line 207 "mn-shell.gob"
+#line 193 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 207 "mn-shell.gob"
+#line 193 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 537 "mn-shell.c"
+#line 524 "mn-shell.c"
 {
-#line 209 "mn-shell.gob"
+#line 195 "mn-shell.gob"
 	
     GSList *mailboxes;
     gboolean show = FALSE;
@@ -568,10 +555,17 @@ mn_shell_update_icon (MNShell * self)
 	    
 	    if (mn_mailbox_get_has_new(mailbox))
 	      {
+		int n_messages;
+
 		n_new++;
+
 		if (*new_string->str)
 		  g_string_append_c(new_string, '\n');
 		g_string_append_printf(new_string, "    %s", name);
+
+		n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+		if (n_messages > 0)
+		  g_string_append_printf(new_string, " (%i)", n_messages);
 	      }
 	    
 	    if (error)
@@ -622,6 +616,11 @@ mn_shell_update_icon (MNShell * self)
 	g_string_free(new_string, TRUE);
 	g_string_free(error_string, TRUE);
 	g_string_free(unsupported_string, TRUE);
+	
+	if (selfp->n_new > 0 && n_new == 0 && eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READ_ENABLED))
+	  self_execute_command(MN_CONF_COMMANDS_MAIL_READ_COMMAND);
+
+	selfp->n_new = n_new;
       }
     
     if (show || blink)
@@ -636,36 +635,68 @@ mn_shell_update_icon (MNShell * self)
     if (tooltip)
       g_string_free(tooltip, TRUE);
   }}
-#line 640 "mn-shell.c"
+#line 639 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
+#line 308 "mn-shell.gob"
+static void 
+mn_shell_execute_command (const char * conf_key)
+#line 645 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::execute_command"
+#line 308 "mn-shell.gob"
+	g_return_if_fail (conf_key != NULL);
+#line 650 "mn-shell.c"
+{
 #line 310 "mn-shell.gob"
+	
+    char *command;
+
+    command = eel_gconf_get_string(conf_key);
+    if (command)
+      {
+	if (gnome_execute_shell(NULL, command) < 0)
+	  mn_error_dialog(NULL,
+			  NULL,
+			  NULL,
+			  _("A command error has occurred in Mail Notification"),
+			  _("Unable to execute \"%s\": %s."),
+			  command,
+			  g_strerror(errno));
+	
+	g_free(command);
+      }
+  }}
+#line 671 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 329 "mn-shell.gob"
 MNShell * 
 mn_shell_new (void)
-#line 646 "mn-shell.c"
+#line 677 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::new"
 {
-#line 312 "mn-shell.gob"
+#line 331 "mn-shell.gob"
 	
     return MN_SHELL(GET_NEW);
   }}
-#line 654 "mn-shell.c"
+#line 685 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 316 "mn-shell.gob"
+#line 335 "mn-shell.gob"
 void 
 mn_shell_display_about (MNShell * self)
-#line 660 "mn-shell.c"
+#line 691 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::display_about"
-#line 316 "mn-shell.gob"
+#line 335 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 316 "mn-shell.gob"
+#line 335 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 667 "mn-shell.c"
+#line 698 "mn-shell.c"
 {
-#line 318 "mn-shell.gob"
+#line 337 "mn-shell.gob"
 	
     if (selfp->about)
       {
@@ -677,22 +708,22 @@ mn_shell_display_about (MNShell * self)
     eel_add_weak_pointer(&selfp->about);
     gtk_widget_show(GTK_WIDGET(selfp->about));
   }}
-#line 681 "mn-shell.c"
+#line 712 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 330 "mn-shell.gob"
+#line 349 "mn-shell.gob"
 void 
 mn_shell_run_welcome (MNShell * self)
-#line 687 "mn-shell.c"
+#line 718 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::run_welcome"
-#line 330 "mn-shell.gob"
+#line 349 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 330 "mn-shell.gob"
+#line 349 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 694 "mn-shell.c"
+#line 725 "mn-shell.c"
 {
-#line 332 "mn-shell.gob"
+#line 351 "mn-shell.gob"
 	
     GtkWidget *dialog;
     int response;
@@ -706,24 +737,24 @@ mn_shell_run_welcome (MNShell * self)
     if (response == GTK_RESPONSE_OK)
       mn_properties_display();
   }}
-#line 710 "mn-shell.c"
+#line 741 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 346 "mn-shell.gob"
+#line 365 "mn-shell.gob"
 void 
 mn_shell_report (MNShell * self, char ** report)
-#line 716 "mn-shell.c"
+#line 747 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::report"
-#line 346 "mn-shell.gob"
+#line 365 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 346 "mn-shell.gob"
+#line 365 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 346 "mn-shell.gob"
+#line 365 "mn-shell.gob"
 	g_return_if_fail (report != NULL);
-#line 725 "mn-shell.c"
+#line 756 "mn-shell.c"
 {
-#line 348 "mn-shell.gob"
+#line 367 "mn-shell.gob"
 	
     GString *string;
     GSList *l;
@@ -749,5 +780,5 @@ mn_shell_report (MNShell * self, char ** report)
     *report = string->str;
     g_string_free(string, FALSE);
   }}
-#line 753 "mn-shell.c"
+#line 784 "mn-shell.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-shell.gob b/src/mn-shell.gob
@@ -46,6 +46,7 @@ class MN:Shell from G:Object
   public MNMailboxes *mailboxes = {mn_mailboxes_new()} unrefwith g_object_unref;
   private MNMailIcon *icon;
   private GtkWidget *about;
+  private int n_new;
 
   init (self)
   {
@@ -61,6 +62,7 @@ class MN:Shell from G:Object
 		     "swapped-signal::notify::must-poll", self_update_sensitivity, self,
 		     "swapped-signal::list-changed", self_update_icon, self,
 		     "swapped-signal::has-new-changed", self_update_icon, self,
+		     "swapped-signal::messages-changed", self_update_icon, self,
 		     "swapped-signal::error-changed", self_update_icon, self,
 		     NULL);
 
@@ -83,23 +85,7 @@ class MN:Shell from G:Object
       {
 	gnome_triggers_do(_("You have new mail."), NULL, "mail-notification", "new-mail", NULL);
 	if (eel_gconf_get_boolean(MN_CONF_COMMANDS_NEW_MAIL_ENABLED))
-	  {
-	    char *command;
-		
-	    command = eel_gconf_get_string(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
-	    if (command)
-	      {
-		if (gnome_execute_shell(NULL, command) < 0)
-		  mn_error_dialog(NULL,
-				  NULL,
-				  NULL,
-				  _("A command error has occurred in Mail Notification"),
-				  _("Unable to execute new mail command: %s."),
-				  g_strerror(errno));
-		    
-		g_free(command);
-	      }
-	  }
+	  self_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
       }
   }
   
@@ -238,10 +224,17 @@ class MN:Shell from G:Object
 	    
 	    if (mn_mailbox_get_has_new(mailbox))
 	      {
+		int n_messages;
+
 		n_new++;
+
 		if (*new_string->str)
 		  g_string_append_c(new_string, '\n');
 		g_string_append_printf(new_string, "    %s", name);
+
+		n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+		if (n_messages > 0)
+		  g_string_append_printf(new_string, " (%i)", n_messages);
 	      }
 	    
 	    if (error)
@@ -292,6 +285,11 @@ class MN:Shell from G:Object
 	g_string_free(new_string, TRUE);
 	g_string_free(error_string, TRUE);
 	g_string_free(unsupported_string, TRUE);
+	
+	if (selfp->n_new > 0 && n_new == 0 && eel_gconf_get_boolean(MN_CONF_COMMANDS_MAIL_READ_ENABLED))
+	  self_execute_command(MN_CONF_COMMANDS_MAIL_READ_COMMAND);
+
+	selfp->n_new = n_new;
       }
     
     if (show || blink)
@@ -307,6 +305,27 @@ class MN:Shell from G:Object
       g_string_free(tooltip, TRUE);
   }
 
+  private void
+    execute_command (const char *conf_key (check null))
+  {
+    char *command;
+
+    command = eel_gconf_get_string(conf_key);
+    if (command)
+      {
+	if (gnome_execute_shell(NULL, command) < 0)
+	  mn_error_dialog(NULL,
+			  NULL,
+			  NULL,
+			  _("A command error has occurred in Mail Notification"),
+			  _("Unable to execute \"%s\": %s."),
+			  command,
+			  g_strerror(errno));
+	
+	g_free(command);
+      }
+  }
+  
   public MNShell *
     new (void)
   {
diff --git a/src/mn-soup.c b/src/mn-soup.c
@@ -16,6 +16,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
+#include <glib/gi18n.h>
 #include <eel/eel.h>
 #include <libsoup/soup.h>
 
@@ -124,14 +126,25 @@ mn_soup_build_proxy_uri (void)
 }
 
 SoupSession *
-mn_soup_session_new (void)
+mn_soup_session_sync_new (void)
 {
-  char *proxy_uri;
+  char *proxy_text_uri;
+  SoupUri *proxy_uri = NULL;
   SoupSession *session;
 
-  proxy_uri = mn_soup_build_proxy_uri();
-  session = soup_session_async_new_with_options(SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
-  g_free(proxy_uri);
+  proxy_text_uri = mn_soup_build_proxy_uri();
+  if (proxy_text_uri)
+    {
+      proxy_uri = soup_uri_new(proxy_text_uri);
+      if (! proxy_uri)
+	g_warning(_("unable to parse proxy URI \"%s\""), proxy_text_uri);
+      g_free(proxy_text_uri);
+    }
+
+  session = soup_session_sync_new_with_options(SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
+
+  if (proxy_uri)
+    soup_uri_free(proxy_uri);
 
   return session;
 }
diff --git a/src/mn-soup.h b/src/mn-soup.h
@@ -21,6 +21,6 @@
 
 #include <libsoup/soup.h>
 
-SoupSession *mn_soup_session_new (void);
+SoupSession *mn_soup_session_sync_new (void);
 
 #endif /* _MN_SOUP_H */
diff --git a/src/mn-ssl.c b/src/mn-ssl.c
@@ -18,7 +18,7 @@
 
 #include "config.h"
 #include <glib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <openssl/ssl.h>
 #include <openssl/err.h>
 #include "mn-ssl.h"
diff --git a/src/mn-stock.c b/src/mn-stock.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include "mn-stock.h"
 #include "mn-util.h"
diff --git a/src/mn-summary-dialog.c b/src/mn-summary-dialog.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <eel/eel.h>
 #include "mn-util.h"
 #include "mn-shell.h"
diff --git a/src/mn-summary-popup.c b/src/mn-summary-popup.c
@@ -17,7 +17,7 @@
  */
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <eel/eel.h>
 #include "mn-summary.h"
 #include "mn-util.h"
@@ -326,7 +326,8 @@ static gboolean
 mn_summary_popup_timeout_cb (gpointer data)
 {
   GDK_THREADS_ENTER();
-  gtk_widget_destroy(popup.popup);
+  if (popup.popup)
+    gtk_widget_destroy(popup.popup);
   GDK_THREADS_LEAVE();
   
   return FALSE;			/* remove timeout */
diff --git a/src/mn-sylpheed-mailbox.c b/src/mn-sylpheed-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:52 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:33 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -27,7 +27,7 @@
 
 #include "config.h"
 #include <stdlib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
 #include "mn-util.h"
@@ -68,7 +68,7 @@ static void mn_sylpheed_mailbox_init (MNSylpheedMailbox * o) G_GNUC_UNUSED;
 static void mn_sylpheed_mailbox_class_init (MNSylpheedMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_sylpheed_mailbox_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
 static gboolean ___3_mn_sylpheed_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_sylpheed_mailbox_impl_threaded_check (MNMailbox * self) G_GNUC_UNUSED;
+static void ___4_mn_sylpheed_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
 static GHashTable * mn_sylpheed_mailbox_get_seen_numbers (MNSylpheedMailbox * self) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
@@ -140,7 +140,7 @@ mn_sylpheed_mailbox_class_init (MNSylpheedMailboxClass * class G_GNUC_UNUSED)
 #line 81 "mn-sylpheed-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_sylpheed_mailbox_impl_is;
 #line 98 "mn-sylpheed-mailbox.gob"
-	mn_mailbox_class->impl_threaded_check = ___4_mn_sylpheed_mailbox_impl_threaded_check;
+	mn_mailbox_class->impl_check = ___4_mn_sylpheed_mailbox_impl_check;
 #line 145 "mn-sylpheed-mailbox.c"
  {
 #line 53 "mn-sylpheed-mailbox.gob"
@@ -228,13 +228,13 @@ ___3_mn_sylpheed_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
 
 #line 98 "mn-sylpheed-mailbox.gob"
 static void 
-___4_mn_sylpheed_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
+___4_mn_sylpheed_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
 #line 233 "mn-sylpheed-mailbox.c"
 #define PARENT_HANDLER(___self) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_threaded_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_threaded_check)(___self); }
+	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
 {
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::impl_threaded_check"
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::impl_check"
 #line 98 "mn-sylpheed-mailbox.gob"
 	g_return_if_fail (self != NULL);
 #line 98 "mn-sylpheed-mailbox.gob"
diff --git a/src/mn-sylpheed-mailbox.gob b/src/mn-sylpheed-mailbox.gob
@@ -24,7 +24,7 @@ requires 2.0.10
 %{
 #include "config.h"
 #include <stdlib.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-mailbox-private.h"
 #include "mn-vfs.h"
 #include "mn-util.h"
@@ -96,7 +96,7 @@ class MN:Sylpheed:Mailbox from MN:Mailbox
   }
 
   override (MN:Mailbox) void
-    impl_threaded_check (MN:Mailbox *self (check null type))
+    impl_check (MN:Mailbox *self (check null type))
   {
     GnomeVFSResult result;
     GnomeVFSResult close_result;
diff --git a/src/mn-system-mailbox-properties.c b/src/mn-system-mailbox-properties.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:54 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:34 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-system-mailbox-properties.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include "mn-mailbox-properties.h"
 
diff --git a/src/mn-system-mailbox-properties.gob b/src/mn-system-mailbox-properties.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include "mn-mailbox-properties.h"
 %}
diff --git a/src/mn-unsupported-mailbox.c b/src/mn-unsupported-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:54 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:35 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -26,7 +26,7 @@
 #line 24 "mn-unsupported-mailbox.gob"
 
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-stock.h"
 
 #line 33 "mn-unsupported-mailbox.c"
diff --git a/src/mn-unsupported-mailbox.gob b/src/mn-unsupported-mailbox.gob
@@ -23,7 +23,7 @@ requires 2.0.10
 %}
 %{
 #include "config.h"
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include "mn-stock.h"
 %}
 
diff --git a/src/mn-uri.c b/src/mn-uri.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.10) on Wed Oct  6 19:29:54 2004
+/* Generated by GOB (v2.0.10) on Mon Oct 25 15:24:35 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -32,7 +32,7 @@
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
 #include "mn-util.h"
@@ -415,6 +415,7 @@ mn_uri_parse (MNURI * self)
       char path_buf[buflen];
       char queries_buf[buflen];
       gboolean has_location = FALSE;
+      gboolean has_password = FALSE;
       gboolean has_authmech = FALSE;
       gboolean has_port = FALSE;
       gboolean has_path = FALSE;
@@ -441,17 +442,31 @@ mn_uri_parse (MNURI * self)
        * For backward compatibility with previous versions of Mail
        * Notification, we also support ;auth= (in lowercase).
        */
+      
       pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
       n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
       g_free(pat);
 
       if (n >= 2)
 	{
+	  has_password = TRUE;
 	  if (n == 3)
 	    has_authmech = TRUE;
 	}
       else
-	return;			/* unparsable */
+	{
+	  pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
+	  n = sscanf(auth_buf, pat, username_buf, authmech_buf);
+	  g_free(pat);
+
+	  if (n >= 1)
+	    {
+	      if (n == 2)
+		has_authmech = TRUE;
+	    }
+	  else
+	    return;		/* unparsable */
+	}
 
       if (has_location)
 	{
@@ -498,7 +513,8 @@ mn_uri_parse (MNURI * self)
 
       self->scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
       self->username = gnome_vfs_unescape_string(username_buf, NULL);
-      self->password = gnome_vfs_unescape_string(password_buf, NULL);
+      if (has_password)
+	self->password = gnome_vfs_unescape_string(password_buf, NULL);
       if (has_authmech)
 	self->authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
       if (has_location)
@@ -522,22 +538,22 @@ mn_uri_parse (MNURI * self)
 	}
     }
   }}
-#line 526 "mn-uri.c"
+#line 542 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 306 "mn-uri.gob"
+#line 322 "mn-uri.gob"
 static void 
 mn_uri_build (MNURI * self)
-#line 532 "mn-uri.c"
+#line 548 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::build"
-#line 306 "mn-uri.gob"
+#line 322 "mn-uri.gob"
 	g_return_if_fail (self != NULL);
-#line 306 "mn-uri.gob"
+#line 322 "mn-uri.gob"
 	g_return_if_fail (MN_IS_URI (self));
-#line 539 "mn-uri.c"
+#line 555 "mn-uri.c"
 {
-#line 308 "mn-uri.gob"
+#line 324 "mn-uri.gob"
 	
     char *canonical = NULL;
 
@@ -553,7 +569,6 @@ mn_uri_build (MNURI * self)
 	int i;
 	
 	g_return_if_fail(self->username != NULL);
-	g_return_if_fail(self->password != NULL);
 
 	escaped = gnome_vfs_escape_string(self->scheme);
 	string = g_string_new(escaped);
@@ -563,9 +578,12 @@ mn_uri_build (MNURI * self)
 	g_string_append_printf(string, "://%s", escaped);
 	g_free(escaped);
 
-	escaped = gnome_vfs_escape_string(self->password);
-	g_string_append_printf(string, ":%s", escaped);
-	g_free(escaped);
+	if (self->password)
+	  {
+	    escaped = gnome_vfs_escape_string(self->password);
+	    g_string_append_printf(string, ":%s", escaped);
+	    g_free(escaped);
+	  }
 
 	if (self->authmech)
 	  {
@@ -616,22 +634,22 @@ mn_uri_build (MNURI * self)
 	self->text = canonical;
       }
   }}
-#line 620 "mn-uri.c"
+#line 638 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 387 "mn-uri.gob"
+#line 405 "mn-uri.gob"
 static void 
 mn_uri_set_human_readable (MNURI * self)
-#line 626 "mn-uri.c"
+#line 644 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::set_human_readable"
-#line 387 "mn-uri.gob"
+#line 405 "mn-uri.gob"
 	g_return_if_fail (self != NULL);
-#line 387 "mn-uri.gob"
+#line 405 "mn-uri.gob"
 	g_return_if_fail (MN_IS_URI (self));
-#line 633 "mn-uri.c"
+#line 651 "mn-uri.c"
 {
-#line 389 "mn-uri.gob"
+#line 407 "mn-uri.gob"
 	
     g_return_if_fail(self->human_readable == NULL);
 
@@ -650,29 +668,36 @@ mn_uri_set_human_readable (MNURI * self)
 	else
 	  self->human_readable = gnome_vfs_uri_to_string(self->vfs, GNOME_VFS_URI_HIDE_PASSWORD);
       }
-    else if (MN_URI_IS_POP(self) || MN_URI_IS_IMAP(self))
+    else if (MN_URI_IS_POP(self))
       self->human_readable = g_strdup_printf("%s@%s", self->username, self->hostname);
+    else if (MN_URI_IS_IMAP(self))
+      {
+	const char *default_path = self_get_default_path(self->scheme);
+	self->human_readable = (self->path && (! default_path || strcmp(self->path, default_path)))
+	  ? g_strdup_printf("%s@%s/%s", self->username, self->hostname, self->path)
+	  : g_strdup_printf("%s@%s", self->username, self->hostname);
+      }
     else if (MN_URI_IS_GMAIL(self))
       self->human_readable = g_strdup_printf("%s@gmail.com", self->username);
     else
       self->human_readable = g_strdup(self->text);
   }}
-#line 661 "mn-uri.c"
+#line 686 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 415 "mn-uri.gob"
+#line 440 "mn-uri.gob"
 static void 
 mn_uri_post_init (MNURI * self)
-#line 667 "mn-uri.c"
+#line 692 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::post_init"
-#line 415 "mn-uri.gob"
+#line 440 "mn-uri.gob"
 	g_return_if_fail (self != NULL);
-#line 415 "mn-uri.gob"
+#line 440 "mn-uri.gob"
 	g_return_if_fail (MN_IS_URI (self));
-#line 674 "mn-uri.c"
+#line 699 "mn-uri.c"
 {
-#line 417 "mn-uri.gob"
+#line 442 "mn-uri.gob"
 	
     const char *system_uri;
 
@@ -707,26 +732,26 @@ mn_uri_post_init (MNURI * self)
 
     self_set_human_readable(self);
   }}
-#line 711 "mn-uri.c"
+#line 736 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 452 "mn-uri.gob"
+#line 477 "mn-uri.gob"
 MNURI * 
 mn_uri_new (const char * text_uri)
-#line 717 "mn-uri.c"
+#line 742 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::new"
-#line 452 "mn-uri.gob"
+#line 477 "mn-uri.gob"
 	g_return_val_if_fail (text_uri != NULL, (MNURI * )0);
-#line 722 "mn-uri.c"
+#line 747 "mn-uri.c"
 {
-#line 454 "mn-uri.gob"
+#line 479 "mn-uri.gob"
 	
     Self *self;
     char *scheme;
 
     self = GET_NEW;
-    self->text = ! strncmp(text_uri, "pop3:", 5) /* also handle obsolete pop3 locators */
+    self->text = g_str_has_prefix(text_uri, "pop3:") /* also handle obsolete pop3 locators */
       ? g_strconcat("pop://", text_uri + 5, NULL)
       : g_strdup(text_uri);
 
@@ -739,24 +764,22 @@ mn_uri_new (const char * text_uri)
     self_post_init(self);
     return self;
   }}
-#line 743 "mn-uri.c"
+#line 768 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 473 "mn-uri.gob"
+#line 498 "mn-uri.gob"
 MNURI * 
 mn_uri_new_pop (gboolean ssl, gboolean stls, const char * username, const char * password, const char * authmech, const char * hostname, int port)
-#line 749 "mn-uri.c"
+#line 774 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::new_pop"
-#line 473 "mn-uri.gob"
+#line 498 "mn-uri.gob"
 	g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 473 "mn-uri.gob"
-	g_return_val_if_fail (password != NULL, (MNURI * )0);
-#line 473 "mn-uri.gob"
+#line 498 "mn-uri.gob"
 	g_return_val_if_fail (hostname != NULL, (MNURI * )0);
-#line 758 "mn-uri.c"
+#line 781 "mn-uri.c"
 {
-#line 481 "mn-uri.gob"
+#line 506 "mn-uri.gob"
 	
     Self *self;
 
@@ -774,26 +797,24 @@ mn_uri_new_pop (gboolean ssl, gboolean stls, const char * username, const char *
     self_post_init(self);
     return self;
   }}
-#line 778 "mn-uri.c"
+#line 801 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 499 "mn-uri.gob"
+#line 524 "mn-uri.gob"
 MNURI * 
 mn_uri_new_imap (gboolean ssl, gboolean starttls, const char * username, const char * password, const char * authmech, const char * hostname, int port, const char * mailbox)
-#line 784 "mn-uri.c"
+#line 807 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::new_imap"
-#line 499 "mn-uri.gob"
+#line 524 "mn-uri.gob"
 	g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 499 "mn-uri.gob"
-	g_return_val_if_fail (password != NULL, (MNURI * )0);
-#line 499 "mn-uri.gob"
+#line 524 "mn-uri.gob"
 	g_return_val_if_fail (hostname != NULL, (MNURI * )0);
-#line 499 "mn-uri.gob"
+#line 524 "mn-uri.gob"
 	g_return_val_if_fail (mailbox != NULL, (MNURI * )0);
-#line 795 "mn-uri.c"
+#line 816 "mn-uri.c"
 {
-#line 508 "mn-uri.gob"
+#line 533 "mn-uri.gob"
 	
     Self *self;
 
@@ -812,22 +833,20 @@ mn_uri_new_imap (gboolean ssl, gboolean starttls, const char * username, const c
     self_post_init(self);
     return self;
   }}
-#line 816 "mn-uri.c"
+#line 837 "mn-uri.c"
 #undef __GOB_FUNCTION__
 
-#line 527 "mn-uri.gob"
+#line 552 "mn-uri.gob"
 MNURI * 
 mn_uri_new_gmail (const char * username, const char * password)
-#line 822 "mn-uri.c"
+#line 843 "mn-uri.c"
 {
 #define __GOB_FUNCTION__ "MN:URI::new_gmail"
-#line 527 "mn-uri.gob"
+#line 552 "mn-uri.gob"
 	g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 527 "mn-uri.gob"
-	g_return_val_if_fail (password != NULL, (MNURI * )0);
-#line 829 "mn-uri.c"
+#line 848 "mn-uri.c"
 {
-#line 530 "mn-uri.gob"
+#line 555 "mn-uri.gob"
 	
     Self *self;
 
@@ -840,5 +859,5 @@ mn_uri_new_gmail (const char * username, const char * password)
     self_post_init(self);
     return self;
   }}
-#line 844 "mn-uri.c"
+#line 863 "mn-uri.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-uri.gob b/src/mn-uri.gob
@@ -61,7 +61,7 @@ requires 2.0.10
 #include <sys/socket.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
-#include <glib/gi18n-lib.h>
+#include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
 #include "mn-util.h"
@@ -94,7 +94,7 @@ class MN:URI from G:Object
   
   public char *scheme = NULL destroywith g_free;
   public char *username = NULL destroywith g_free; /* if scheme is defined, always defined */
-  public char *password = NULL destroywith g_free; /* if scheme is defined, always defined */
+  public char *password = NULL destroywith g_free;
   public char *authmech = NULL destroywith g_free;
   public char *hostname = NULL destroywith g_free;
   public int port = -1;
@@ -195,6 +195,7 @@ class MN:URI from G:Object
       char path_buf[buflen];
       char queries_buf[buflen];
       gboolean has_location = FALSE;
+      gboolean has_password = FALSE;
       gboolean has_authmech = FALSE;
       gboolean has_port = FALSE;
       gboolean has_path = FALSE;
@@ -221,17 +222,31 @@ class MN:URI from G:Object
        * For backward compatibility with previous versions of Mail
        * Notification, we also support ;auth= (in lowercase).
        */
+      
       pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
       n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
       g_free(pat);
 
       if (n >= 2)
 	{
+	  has_password = TRUE;
 	  if (n == 3)
 	    has_authmech = TRUE;
 	}
       else
-	return;			/* unparsable */
+	{
+	  pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
+	  n = sscanf(auth_buf, pat, username_buf, authmech_buf);
+	  g_free(pat);
+
+	  if (n >= 1)
+	    {
+	      if (n == 2)
+		has_authmech = TRUE;
+	    }
+	  else
+	    return;		/* unparsable */
+	}
 
       if (has_location)
 	{
@@ -278,7 +293,8 @@ class MN:URI from G:Object
 
       self->scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
       self->username = gnome_vfs_unescape_string(username_buf, NULL);
-      self->password = gnome_vfs_unescape_string(password_buf, NULL);
+      if (has_password)
+	self->password = gnome_vfs_unescape_string(password_buf, NULL);
       if (has_authmech)
 	self->authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
       if (has_location)
@@ -320,7 +336,6 @@ class MN:URI from G:Object
 	int i;
 	
 	g_return_if_fail(self->username != NULL);
-	g_return_if_fail(self->password != NULL);
 
 	escaped = gnome_vfs_escape_string(self->scheme);
 	string = g_string_new(escaped);
@@ -330,9 +345,12 @@ class MN:URI from G:Object
 	g_string_append_printf(string, "://%s", escaped);
 	g_free(escaped);
 
-	escaped = gnome_vfs_escape_string(self->password);
-	g_string_append_printf(string, ":%s", escaped);
-	g_free(escaped);
+	if (self->password)
+	  {
+	    escaped = gnome_vfs_escape_string(self->password);
+	    g_string_append_printf(string, ":%s", escaped);
+	    g_free(escaped);
+	  }
 
 	if (self->authmech)
 	  {
@@ -404,8 +422,15 @@ class MN:URI from G:Object
 	else
 	  self->human_readable = gnome_vfs_uri_to_string(self->vfs, GNOME_VFS_URI_HIDE_PASSWORD);
       }
-    else if (MN_URI_IS_POP(self) || MN_URI_IS_IMAP(self))
+    else if (MN_URI_IS_POP(self))
       self->human_readable = g_strdup_printf("%s@%s", self->username, self->hostname);
+    else if (MN_URI_IS_IMAP(self))
+      {
+	const char *default_path = self_get_default_path(self->scheme);
+	self->human_readable = (self->path && (! default_path || strcmp(self->path, default_path)))
+	  ? g_strdup_printf("%s@%s/%s", self->username, self->hostname, self->path)
+	  : g_strdup_printf("%s@%s", self->username, self->hostname);
+      }
     else if (MN_URI_IS_GMAIL(self))
       self->human_readable = g_strdup_printf("%s@gmail.com", self->username);
     else
@@ -456,7 +481,7 @@ class MN:URI from G:Object
     char *scheme;
 
     self = GET_NEW;
-    self->text = ! strncmp(text_uri, "pop3:", 5) /* also handle obsolete pop3 locators */
+    self->text = g_str_has_prefix(text_uri, "pop3:") /* also handle obsolete pop3 locators */
       ? g_strconcat("pop://", text_uri + 5, NULL)
       : g_strdup(text_uri);
 
@@ -474,7 +499,7 @@ class MN:URI from G:Object
     new_pop (gboolean ssl,
 	     gboolean stls,
 	     const char *username (check null),
-	     const char *password (check null),
+	     const char *password,
 	     const char *authmech,
 	     const char *hostname (check null),
 	     int port)
@@ -500,7 +525,7 @@ class MN:URI from G:Object
     new_imap (gboolean ssl,
 	      gboolean starttls,
 	      const char *username (check null),
-	      const char *password (check null),
+	      const char *password,
 	      const char *authmech,
 	      const char *hostname (check null),
 	      int port,
@@ -526,7 +551,7 @@ class MN:URI from G:Object
 
   public MNURI *
     new_gmail (const char *username (check null),
-	       const char *password (check null))
+	       const char *password)
   {
     Self *self;
 
diff --git a/src/mn-util.c b/src/mn-util.c
@@ -872,16 +872,16 @@ mn_g_object_connect (gpointer object,
       handler = g_new(SignalHandler, 1);
       handler->instance = instance;
 
-      if (! strncmp(signal_spec, "signal::", 8))
+      if (g_str_has_prefix(signal_spec, "signal::"))
 	handler->id = g_signal_connect(instance, signal_spec + 8, callback, data);
-      else if (! strncmp(signal_spec, "swapped_signal", 16)
-	       || ! strncmp(signal_spec, "swapped-signal", 16))
+      else if (g_str_has_prefix(signal_spec, "swapped_signal")
+	       || g_str_has_prefix(signal_spec, "swapped-signal"))
 	handler->id = g_signal_connect_swapped(instance, signal_spec + 16, callback, data);
-      else if (! strncmp(signal_spec, "signal_after::", 14)
-	       || ! strncmp(signal_spec, "signal-after::", 14))
+      else if (g_str_has_prefix(signal_spec, "signal_after::")
+	       || g_str_has_prefix(signal_spec, "signal-after::"))
 	handler->id = g_signal_connect_after(instance, signal_spec + 14, callback, data);
-      else if (! strncmp(signal_spec, "swapped_signal_after::", 22)
-	       || ! strncmp(signal_spec, "swapped-signal-after::", 22))
+      else if (g_str_has_prefix(signal_spec, "swapped_signal_after::")
+	       || g_str_has_prefix(signal_spec, "swapped-signal-after::"))
 	handler->id = g_signal_connect_data(instance, signal_spec + 22, callback, data, NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
       else
 	g_critical(_("invalid signal specification \"%s\""), signal_spec);
diff --git a/src/mn-util.h b/src/mn-util.h
@@ -118,4 +118,7 @@ gpointer	mn_g_object_connect		(gpointer	object,
 						 const char	*signal_spec,
 						 ...);
 
+#define MN_STRING_TO_POINTER(str)	((*str) ? (str) : NULL)
+#define MN_POINTER_TO_STRING(ptr)	((ptr) ? (ptr) : "")
+
 #endif /* _MN_UTIL_H */
diff --git a/tests/Makefile.in b/tests/Makefile.in
@@ -205,6 +205,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
diff --git a/tests/test-uri.c b/tests/test-uri.c
@@ -22,6 +22,7 @@
 
 static char *
 build_uri (const char *scheme,
+	   const char *password,
 	   const char *authmech,
 	   const char *hostname,
 	   int port,
@@ -31,8 +32,10 @@ build_uri (const char *scheme,
   GString *uri;
 
   uri = g_string_new(scheme);
-  g_string_append(uri, "://username:password");
+  g_string_append(uri, "://username");
 
+  if (password)
+    g_string_append_printf(uri, ":%s", password);
   if (authmech)
     g_string_append_printf(uri, ";AUTH=%s", authmech);
   if (hostname)
@@ -49,6 +52,7 @@ build_uri (const char *scheme,
 
 static char *
 build_canonical_uri (const char *scheme,
+		     const char *password,
 		     const char *authmech,
 		     const char *hostname,
 		     int port,
@@ -87,6 +91,7 @@ build_canonical_uri (const char *scheme,
     default_path = "INBOX";
 
   return build_uri(scheme,
+		   password,
 		   authmech,
 		   hostname,
 		   port != default_port ? port : -1,
@@ -111,8 +116,9 @@ main (int argc, char **argv)
 #define FOR(iterator, var) \
   for (iterator = 0; iterator < G_N_ELEMENTS(var); iterator++)
 
-  int a, b, c, d, e, f;
+  int a, b, c, d, e, f, g;
   const char *schemes[] = { "pop", "pops", "imap", "imaps", "gmail" };
+  const char *passwords[] = { NULL, "password" };
   const char *authmechs[] = { NULL, "CRAM-MD5" };
   const char *hostnames[] = { NULL, "hostname", "[::1]" };
   int ports[] = { -1, 110, 995, 143, 993, 555 };
@@ -124,11 +130,12 @@ main (int argc, char **argv)
   g_type_init();
 
   FOR(a, schemes)
-    FOR(b, authmechs)
-    FOR(c, hostnames)
-    FOR(d, ports)
-    FOR(e, paths)
-    FOR(f, queries)
+    FOR(b, passwords)
+    FOR(c, authmechs)
+    FOR(d, hostnames)
+    FOR(e, ports)
+    FOR(f, paths)
+    FOR(g, queries)
   {
     char *uri;
     char *canonical_uri;
@@ -136,8 +143,8 @@ main (int argc, char **argv)
 
     n_uri++;
 
-    uri = build_uri(schemes[a], authmechs[b], hostnames[c], ports[d], paths[e], queries[f]);
-    canonical_uri = build_canonical_uri(schemes[a], authmechs[b], hostnames[c], ports[d], paths[e], queries[f]);
+    uri = build_uri(schemes[a], passwords[b], authmechs[c], hostnames[d], ports[e], paths[f], queries[g]);
+    canonical_uri = build_canonical_uri(schemes[a], passwords[b], authmechs[c], hostnames[d], ports[e], paths[f], queries[g]);
 
     obj = mn_uri_new(uri);
     if (canonical_uri)
diff --git a/ui/Makefile.am b/ui/Makefile.am
@@ -1,7 +1,12 @@
 uidir = $(pkgdatadir)/ui
 
+if WITH_POP3_OR_IMAP_OR_GMAIL
+authentication_interfaces = authentication.glade
+authentication_projects = authentication.gladep
+endif
+
 interfaces =					\
-	$(mail_summary_interfaces)		\
+	$(authentication_interfaces)		\
 	mailbox-properties.glade		\
 	properties.glade			\
 	summary-dialog.glade			\
@@ -9,7 +14,7 @@ interfaces =					\
 	welcome.glade
 
 projects =					\
-	$(mail_summary_projects)		\
+	$(authentication_projects)		\
 	mailbox-properties.gladep		\
 	properties.gladep			\
 	summary-dialog.gladep			\
diff --git a/ui/Makefile.in b/ui/Makefile.in
@@ -35,7 +35,7 @@ NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
 subdir = ui
-DIST_COMMON = $(dist_ui_DATA) $(srcdir)/Makefile.am \
+DIST_COMMON = $(am__dist_ui_DATA_DIST) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/openssl.m4 \
@@ -48,6 +48,9 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
+am__dist_ui_DATA_DIST = authentication.glade mailbox-properties.glade \
+	properties.glade summary-dialog.glade summary-popup.glade \
+	welcome.glade
 am__installdirs = "$(DESTDIR)$(uidir)"
 dist_uiDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(dist_ui_DATA)
@@ -169,6 +172,8 @@ WITH_MIME_FALSE = @WITH_MIME_FALSE@
 WITH_MIME_TRUE = @WITH_MIME_TRUE@
 WITH_POP3_FALSE = @WITH_POP3_FALSE@
 WITH_POP3_OR_IMAP_FALSE = @WITH_POP3_OR_IMAP_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_FALSE = @WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@
+WITH_POP3_OR_IMAP_OR_GMAIL_TRUE = @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@
 WITH_POP3_OR_IMAP_TRUE = @WITH_POP3_OR_IMAP_TRUE@
 WITH_POP3_TRUE = @WITH_POP3_TRUE@
 WITH_REGRESSION_TESTS_FALSE = @WITH_REGRESSION_TESTS_FALSE@
@@ -208,8 +213,10 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 uidir = $(pkgdatadir)/ui
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authentication_interfaces = authentication.glade
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authentication_projects = authentication.gladep
 interfaces = \
-	$(mail_summary_interfaces)		\
+	$(authentication_interfaces)		\
 	mailbox-properties.glade		\
 	properties.glade			\
 	summary-dialog.glade			\
@@ -217,7 +224,7 @@ interfaces = \
 	welcome.glade
 
 projects = \
-	$(mail_summary_projects)		\
+	$(authentication_projects)		\
 	mailbox-properties.gladep		\
 	properties.gladep			\
 	summary-dialog.gladep			\
diff --git a/ui/authentication.glade b/ui/authentication.glade
@@ -0,0 +1,261 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkDialog" id="dialog">
+  <property name="border_width">6</property>
+  <property name="title" translatable="yes"></property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_CENTER</property>
+  <property name="modal">False</property>
+  <property name="resizable">False</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="icon">mail-notification.png</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="has_separator">False</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">12</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area1">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="button1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button2">
+	      <property name="visible">True</property>
+	      <property name="sensitive">False</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">_Authenticate</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHBox" id="hbox1">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">12</property>
+
+	  <child>
+	    <widget class="GtkImage" id="image1">
+	      <property name="visible">True</property>
+	      <property name="stock">gtk-dialog-authentication</property>
+	      <property name="icon_size">6</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox1">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">12</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes"></property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">True</property>
+		  <property name="selectable">True</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox2">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox2">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">12</property>
+
+		      <child>
+			<widget class="GtkLabel" id="username_label">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">_Username:</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">username_entry</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkEntry" id="username_entry">
+			  <property name="visible">True</property>
+			  <property name="sensitive">False</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox3">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">12</property>
+
+		      <child>
+			<widget class="GtkLabel" id="password_label">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">_Password:</property>
+			  <property name="use_underline">True</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="mnemonic_widget">password_entry</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkEntry" id="password_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="visibility">False</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char" translatable="yes">*</property>
+			  <property name="activates_default">True</property>
+			  <signal name="changed" handler="mn_authenticated_mailbox_password_prompt_changed_h" object="dialog" last_modification_time="Sun, 10 Oct 2004 21:53:42 GMT"/>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/authentication.gladep b/ui/authentication.gladep
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+  <name>Mail Notification Authentication</name>
+  <program_name>mail-notification</program_name>
+  <directory>../</directory>
+  <source_directory>../src</source_directory>
+  <pixmaps_directory>../art</pixmaps_directory>
+  <output_main_file>FALSE</output_main_file>
+  <output_support_files>FALSE</output_support_files>
+  <output_build_files>FALSE</output_build_files>
+  <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/properties.glade b/ui/properties.glade
@@ -82,41 +82,122 @@
 	      <property name="border_width">12</property>
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
+	      <property name="spacing">18</property>
 
 	      <child>
-		<widget class="GtkCheckButton" id="autostart_check">
+		<widget class="GtkVBox" id="vbox22">
 		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Whether to start Mail Notification when you log into your GNOME session or not</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">_Start Mail Notification on GNOME login</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		  <signal name="toggled" handler="mn_properties_autostart_toggled_h" last_modification_time="Mon, 23 Aug 2004 01:36:43 GMT"/>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
 
-	      <child>
-		<widget class="GtkCheckButton" id="blink_check">
-		  <property name="visible">True</property>
-		  <property name="tooltip" translatable="yes">Whether the status icon should blink on errors or not</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">_Blink on errors</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
+		  <child>
+		    <widget class="GtkLabel" id="label36">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox27">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label37">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">    </property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox23">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="autostart_check">
+			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">Whether to start Mail Notification when you log into your GNOME session or not</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Start Mail Notification on GNOME login</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <signal name="toggled" handler="mn_properties_autostart_toggled_h" last_modification_time="Mon, 23 Aug 2004 01:36:43 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="blink_check">
+			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">Whether the status icon should blink on errors or not</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Blink on errors</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -126,24 +207,24 @@
 	      </child>
 
 	      <child>
-		<widget class="GtkHBox" id="hbox9">
+		<widget class="GtkVBox" id="vbox24">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
+		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkCheckButton" id="command_new_mail_check">
+		    <widget class="GtkLabel" id="label38">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">Whether to run a command when new mail arrives or not</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes">_Run a command when new mail arrives:</property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <property name="active">False</property>
-		      <property name="inconsistent">False</property>
-		      <property name="draw_indicator">True</property>
-		      <signal name="toggled" handler="mn_properties_toggled_h" last_modification_time="Sun, 27 Jul 2003 08:45:08 GMT"/>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Commands&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -153,17 +234,152 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkEntry" id="command_new_mail_entry">
+		    <widget class="GtkHBox" id="hbox28">
 		      <property name="visible">True</property>
-		      <property name="tooltip" translatable="yes">The command to run when new mail arrives</property>
-		      <property name="can_focus">True</property>
-		      <property name="editable">True</property>
-		      <property name="visibility">True</property>
-		      <property name="max_length">0</property>
-		      <property name="text" translatable="yes"></property>
-		      <property name="has_frame">True</property>
-		      <property name="invisible_char" translatable="yes">*</property>
-		      <property name="activates_default">False</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label39">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">    </property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox25">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox29">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="command_new_mail_check">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Whether to run a command when new mail arrives or not</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">When _new mail arrives:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <signal name="toggled" handler="mn_properties_toggled_h" last_modification_time="Sun, 27 Jul 2003 08:45:08 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkEntry" id="command_new_mail_entry">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">The command to run when new mail arrives</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">True</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">0</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char" translatable="yes">*</property>
+				  <property name="activates_default">False</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox30">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="command_mail_read_check">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">Whether to run a command when all mail is read or not</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">When _all mail is read:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <signal name="toggled" handler="mn_properties_toggled_h" last_modification_time="Sat, 09 Oct 2004 17:36:36 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkEntry" id="command_mail_read_entry">
+				  <property name="visible">True</property>
+				  <property name="tooltip" translatable="yes">The command to run when all mail is read</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">True</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">0</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char" translatable="yes">*</property>
+				  <property name="activates_default">False</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>