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 c8b47d43cfcbcc581e184aa6b5696d949f816e6d
parent 2829733b35a59b67d5a7b69ffb6794b0137dc952
Author: Jean-Yves Lefort <jylefort@brutele.be>
Date:   Thu, 19 Aug 2004 08:47:29 +1000

mail-notification-0.6.1

* File descriptor leaks in the Sylpheed and Maildir backends
  have been fixed
* It was not possible to use some special characters (such as
  '@') in usernames, passwords etc (reported by Ronny
  Schoebel): now escapes URIs
* Now properly quotes arguments to the IMAP LOGIN and STATUS
  commands
* Gmail support didn't work in all situations: fixed (thanks
  to Phil Nelson for his help)
* A first startup dialog has been added
* A memory leak has been fixed
* A few minor issues have been fixed

Diffstat:
MAUTHORS | 3+--
MINSTALL | 7+++++--
MNEWS | 15+++++++++++++++
MREADME | 11+++++++----
MTODO | 2++
Mart/Makefile.am | 3+--
Mart/Makefile.in | 3+--
Dart/about-icon.png | 0
Dart/properties-icon.png | 0
Mconfig.h.in | 6++++++
Mconfigure | 27+++++++++++++++------------
Mconfigure.ac | 6+++---
Mdata/mail-notification.schemas.in | 11+++++++++++
Mhelp/C/mail-notification-C.omf | 4++--
Mhelp/C/mail-notification.xml | 20++++++++++++++++----
Mpo/POTFILES.in | 2++
Mpo/fr.gmo | 0
Mpo/fr.po | 526+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mpo/mail-notification.pot | 199++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Mpo/ru.gmo | 0
Mpo/ru.po | 199++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
Msrc/Makefile.am | 6++----
Msrc/Makefile.in | 5++---
Msrc/mn-about-dialog.c | 4++--
Msrc/mn-about-dialog.gob | 2+-
Msrc/mn-auth-combo-box.c | 2+-
Msrc/mn-autodetect-mailbox-properties.c | 2+-
Msrc/mn-automation.c | 2+-
Msrc/mn-blinking-image.c | 4++--
Msrc/mn-blinking-image.gob | 2+-
Msrc/mn-client-session.c | 3+--
Msrc/mn-conf.h | 1+
Msrc/mn-gmail-mailbox-properties.c | 2+-
Msrc/mn-gmail-mailbox.c | 133++++++++++++++++++++++++++++++++++++++++++-------------------------------------
Msrc/mn-gmail-mailbox.gob | 11+++++++++--
Msrc/mn-imap-mailbox-properties.c | 2+-
Msrc/mn-imap-mailbox.c | 370++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Msrc/mn-imap-mailbox.gob | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++------
Msrc/mn-mail-icon.c | 2+-
Msrc/mn-mailbox-view.c | 10+++++-----
Msrc/mn-mailbox-view.gob | 8++++----
Msrc/mn-mailbox.c | 12++++++------
Msrc/mn-mailbox.gob | 10+++++-----
Msrc/mn-mailboxes.c | 2+-
Msrc/mn-maildir-mailbox.c | 13++++++++++---
Msrc/mn-maildir-mailbox.gob | 9++++++++-
Msrc/mn-main.c | 15+++++++++++----
Msrc/mn-mbox-mailbox-private.h | 2+-
Msrc/mn-mbox-mailbox.c | 2+-
Msrc/mn-mbox-mailbox.gob | 2+-
Msrc/mn-mh-mailbox.c | 2+-
Msrc/mn-pending-mailbox.c | 2+-
Msrc/mn-pi-mailbox-properties.c | 2+-
Msrc/mn-pop3-mailbox-properties.c | 2+-
Msrc/mn-pop3-mailbox.c | 2+-
Msrc/mn-shell.c | 168++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Msrc/mn-shell.gob | 16++++++++++++++++
Msrc/mn-shell.h | 1+
Msrc/mn-sylpheed-mailbox.c | 13++++++++++---
Msrc/mn-sylpheed-mailbox.gob | 9++++++++-
Msrc/mn-system-mailbox-properties.c | 2+-
Msrc/mn-unsupported-mailbox.c | 2+-
Msrc/mn-uri.c | 211++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Mtests/test-uri.c | 150++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mtests/test-uri.expected | 146++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mui/Makefile.am | 6++++--
Mui/Makefile.in | 6++++--
Mui/dialog.glade | 1+
Mui/properties.glade | 2+-
Aui/welcome.glade | 244+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aui/welcome.gladep | 14++++++++++++++
71 files changed, 1725 insertions(+), 1017 deletions(-)
diff --git a/AUTHORS b/AUTHORS
@@ -8,7 +8,6 @@ Contributors:
 	* Dan Korostelev <dan@ats.energo.ru> (russian translations)
 
 External art sources:
-	* GNOME (about-icon.png)
 	* Google (gmail.png)
-	* Evolution (mail-notification.png, properties-icon.png)
+	* Evolution (mail-notification.png)
 	* GTK+ (unsupported.png)
diff --git a/INSTALL b/INSTALL
@@ -10,7 +10,7 @@ Index
 
 0. About this document
 
-	$Id: INSTALL,v 1.7 2004/08/16 16:08:17 jylefort Exp $
+	$Id: INSTALL,v 1.8 2004/08/18 22:45:35 jylefort Exp $
 
 	Copyright (c) 2003, 2004 Jean-Yves Lefort.
 
@@ -49,11 +49,14 @@ Index
 	Mail Notification uses the well-known GNU build system. Hence,
 	the following usual sequence will probably satisfy most users:
 
-		$ ./configure
+		$ ./configure --prefix=/usr
 		$ make
 		<get root privileges, if needed>
 		$ make install
 
+	IMPORTANT: you must install Mail Notification in the same
+	prefix as GNOME (commonly /usr or /opt/gnome).
+
 	The ./configure script behaviour can be changed using
 	command-line options: type "./configure --help" for an
 	exhaustive list.
diff --git a/NEWS b/NEWS
@@ -1,3 +1,18 @@
+0.6.1					19 August 2004
+
+	* File descriptor leaks in the Sylpheed and Maildir backends
+	  have been fixed
+	* It was not possible to use some special characters (such as
+	  '@') in usernames, passwords etc (reported by Ronny
+	  Schoebel): now escapes URIs
+	* Now properly quotes arguments to the IMAP LOGIN and STATUS
+	  commands
+	* Gmail support didn't work in all situations: fixed (thanks
+	  to Phil Nelson for his help)
+	* A first startup dialog has been added
+	* A memory leak has been fixed
+	* A few minor issues have been fixed
+	
 0.6.0					16 August 2004
 
 	* Added IMAP support
diff --git a/README b/README
@@ -11,7 +11,7 @@ Index
 
 0. About this document
 
-	$Id: README,v 1.16 2004/08/16 16:11:07 jylefort Exp $
+	$Id: README,v 1.18 2004/08/18 01:00:25 jylefort Exp $
 
 	Copyright (c) 2003, 2004 Jean-Yves Lefort.
 
@@ -42,12 +42,15 @@ Index
 
 2. Release notes
 
-	Some configuration keys have been obsoleted. For the sake of
-	cleanliness, you should remove them:
+	In this release or in previous ones, some configuration keys
+	have been obsoleted. For the sake of cleanliness, you should
+	remove them, by typing:
 
 		$ gconftool-2 --recursive-unset \
+			/apps/mail-notification/local \
+			/apps/mail-notification/remote \
 			/apps/mail-notification/commands/clicked \
-			/apps/mail-notification/preferences-dialog
+			/apps/mail-notification/ui/preferences-dialog
 
 3. Installation instructions
 
diff --git a/TODO b/TODO
@@ -1 +1,3 @@
 * add STARTTLS support to the IMAP backend
+* implement RFC 2965 cookie support
+* implement a MNURI object
diff --git a/art/Makefile.am b/art/Makefile.am
@@ -1,9 +1,8 @@
 GNOME_IMAGES = mail-notification.png
 APP_IMAGES = \
-	about-icon.png		\
 	logo.png		\
 	gmail.png		\
-	properties-icon.png	\
+	mail-notification.png	\
 	unsupported.png
 
 gnome_pixmapsdir = $(datadir)/pixmaps
diff --git a/art/Makefile.in b/art/Makefile.in
@@ -209,10 +209,9 @@ sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 GNOME_IMAGES = mail-notification.png
 APP_IMAGES = \
-	about-icon.png		\
 	logo.png		\
 	gmail.png		\
-	properties-icon.png	\
+	mail-notification.png	\
 	unsupported.png
 
 gnome_pixmapsdir = $(datadir)/pixmaps
diff --git a/art/about-icon.png b/art/about-icon.png
Binary files differ.
diff --git a/art/properties-icon.png b/art/properties-icon.png
Binary files differ.
diff --git a/config.h.in b/config.h.in
@@ -12,6 +12,12 @@
 /* Define to 1 if you have the `bind_textdomain_codeset' function. */
 #undef HAVE_BIND_TEXTDOMAIN_CODESET
 
+/* Define to 1 if you have the `close' function. */
+#undef HAVE_CLOSE
+
+/* Define to 1 if you have the `connect' function. */
+#undef HAVE_CONNECT
+
 /* Define to 1 if you have the `dcgettext' function. */
 #undef HAVE_DCGETTEXT
 
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.6.0.
+# Generated by GNU Autoconf 2.59 for mail-notification 0.6.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.6.0'
-PACKAGE_STRING='mail-notification 0.6.0'
+PACKAGE_VERSION='0.6.1'
+PACKAGE_STRING='mail-notification 0.6.1'
 PACKAGE_BUGREPORT='jylefort@brutele.be'
 
 ac_unique_file="src/mn-main.c"
@@ -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.6.0 to adapt to many kinds of systems.
+\`configure' configures mail-notification 0.6.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.6.0:";;
+     short | recursive ) echo "Configuration of mail-notification 0.6.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.6.0
+mail-notification configure 0.6.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.6.0, which was
+It was created by mail-notification $as_me 0.6.1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1828,7 +1828,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='mail-notification'
- VERSION='0.6.0'
+ VERSION='0.6.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -6312,7 +6312,8 @@ fi
 
 
 
-for ac_header in errno.h signal.h stdarg.h stdio.h stdlib.h string.h sys/types.h
+
+for ac_header in errno.h signal.h stdarg.h stdio.h stdlib.h string.h sys/types.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -6784,7 +6785,9 @@ fi
 
 
 
-for ac_func in atoi exit freeaddrinfo gai_strerror getaddrinfo getnameinfo getpeername getsockname memcpy memset read signal sleep socket sscanf strchr strcmp strlen strncmp strstr write
+
+
+for ac_func in atoi close connect exit freeaddrinfo gai_strerror getaddrinfo getnameinfo getpeername getsockname memcpy memset read signal sleep socket sscanf strchr strcmp strlen strncmp strstr write
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -8388,7 +8391,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by mail-notification $as_me 0.6.0, which was
+This file was extended by mail-notification $as_me 0.6.1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8451,7 +8454,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-mail-notification config.status 0.6.0
+mail-notification config.status 0.6.1
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/configure.ac b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(mail-notification, 0.6.0, jylefort@brutele.be)
+AC_INIT(mail-notification, 0.6.1, jylefort@brutele.be)
 AC_CONFIG_SRCDIR(src/mn-main.c)
 
 AC_PREREQ(2.59)
@@ -108,7 +108,7 @@ AC_PROG_CC
 AC_SYS_LARGEFILE
 
 # the order of these tests matters
-AC_CHECK_HEADERS(errno.h signal.h stdarg.h stdio.h stdlib.h string.h sys/types.h,, [AC_MSG_ERROR([header not found])])
+AC_CHECK_HEADERS(errno.h signal.h stdarg.h stdio.h stdlib.h string.h sys/types.h unistd.h,, [AC_MSG_ERROR([header not found])])
 AC_CHECK_HEADER(sys/uio.h,, [AC_MSG_ERROR([header not found])],
 [#include <sys/types.h>])
 AC_CHECK_HEADER(sys/socket.h,, [AC_MSG_ERROR([header not found])],
@@ -132,7 +132,7 @@ AC_CHECK_HEADER(arpa/inet.h,, [AC_MSG_ERROR([header not found])],
 #include <sys/socket.h>
 #include <netinet/in.h>])
 
-AC_CHECK_FUNCS(atoi exit freeaddrinfo gai_strerror getaddrinfo getnameinfo getpeername getsockname memcpy memset read signal sleep socket sscanf strchr strcmp strlen strncmp strstr write,, [AC_MSG_ERROR([library function not found])])
+AC_CHECK_FUNCS(atoi close connect exit freeaddrinfo gai_strerror getaddrinfo getnameinfo getpeername getsockname memcpy memset read signal sleep socket sscanf strchr strcmp strlen strncmp strstr write,, [AC_MSG_ERROR([library function not found])])
 
 ### build dependencies
 
diff --git a/data/mail-notification.schemas.in b/data/mail-notification.schemas.in
@@ -97,5 +97,16 @@
         <long>The width of the properties dialog in pixels.</long>
       </locale>
     </schema>
+    <schema>
+      <key>/schemas/apps/mail-notification/already-run</key>
+      <applyto>/apps/mail-notification/already-run</applyto>
+      <owner>mail-notification</owner>
+      <type>bool</type>
+      <default>0</default>
+      <locale name="C">
+        <short>Has already been run</short>
+	<long>Whether Mail Notification has already been run or not.</long>
+      </locale>
+    </schema> 
   </schemalist>
 </gconfschemafile>
diff --git a/help/C/mail-notification-C.omf b/help/C/mail-notification-C.omf
@@ -12,9 +12,9 @@
       Mail Notification Manual
     </title>
     <date>
-      2004-08-16
+      2004-08-19
     </date>
-    <version identifier="2.2" date="2004-08-16" description="Third release"/>
+    <version identifier="2.3" date="2004-08-19" description="Fourth 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.6.0">
-  <!ENTITY manrevision "2.2">
-  <!ENTITY date "Monday, August 16, 2004">
+  <!ENTITY appversion "0.6.1">
+  <!ENTITY manrevision "2.3">
+  <!ENTITY date "Thursday, August 19, 2004">
 
   <!ENTITY project "The Mail Notification Project">
 
@@ -25,7 +25,7 @@
   <!ENTITY gnomevfs "<link linkend=&#34;gnomevfs&#34;>GnomeVFS</link>">
 ]>
 
-<!-- $Id: mail-notification.xml,v 1.36 2004/08/16 15:58:56 jylefort Exp $ -->
+<!-- $Id: mail-notification.xml,v 1.37 2004/08/18 22:37:58 jylefort Exp $ -->
 <!-- Mail Notification Manual -->
 
 <!-- Copyright (c) 2004 Jean-Yves Lefort -->
@@ -133,6 +133,17 @@
 	</revdescription>
       </revision>
       <revision>
+	<revnumber>Mail Notification Manual V2.2</revnumber>
+	<date>Monday, August 16, 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.1</revnumber>
 	<date>Wednesday, July 21, 2004</date>
 	<revdescription>
@@ -713,6 +724,7 @@ endif</programlisting>
 	<!-- We don't use <firstname> and <surname> because we can't -->
 	<!-- unambiguously split some names. -->
 	<listitem><para>Dan Korostelev</para></listitem>
+	<listitem><para>Phil Nelson</para></listitem>
       </itemizedlist>
     </sect2>
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
@@ -1,3 +1,4 @@
+[encoding: UTF-8]
 data/GNOME_MailNotification_Automation.server.in.in
 data/mail-notification-properties.desktop.in
 data/mail-notification.desktop.in
@@ -64,3 +65,4 @@ src/mn-vfs.h
 ui/dialog.glade
 ui/mailbox-properties.glade
 ui/properties.glade
+ui/welcome.glade
diff --git a/po/fr.gmo b/po/fr.gmo
Binary files differ.
diff --git a/po/fr.po b/po/fr.po
@@ -8,14 +8,14 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 0.6.0\n"
+"Project-Id-Version: mail-notification 0.6.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-16 18:15+0200\n"
-"PO-Revision-Date: 2004-08-16 18:12+0200\n"
+"POT-Creation-Date: 2004-08-19 00:12+0200\n"
+"PO-Revision-Date: 2004-08-19 00:04+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"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
@@ -44,77 +44,85 @@ msgstr "Etre notifié lorsque du nouveau courrier arrive"
 
 #: data/mail-notification.schemas.in.h:1
 msgid "Delay between mail checks (minutes part)."
-msgstr "Délai entre les vérifications de courrier (partie minutes)."
+msgstr "Délai entre les vérifications de courrier (partie minutes)."
 
 #: data/mail-notification.schemas.in.h:2
 msgid "Delay between mail checks (seconds part)."
-msgstr "Délai entre les vérifications de courrier (partie secondes)."
+msgstr "Délai entre les vérifications de courrier (partie secondes)."
 
 #: data/mail-notification.schemas.in.h:3
 msgid "Double-clicked command"
-msgstr "Commande associée au double-click"
+msgstr "Commande associée au double-click"
 
 #: data/mail-notification.schemas.in.h:4
-msgid "Height of properties dialog"
-msgstr "Hauteur de la boîte de dialogue contenant les propriétés"
+msgid "Has already been run"
+msgstr "A déjà été exécuté"
 
 #: data/mail-notification.schemas.in.h:5
-msgid "Mailboxes list"
-msgstr "Liste des boîtes aux lettres"
+msgid "Height of properties dialog"
+msgstr "Hauteur de la boîte de dialogue contenant les propriétés"
 
 #: data/mail-notification.schemas.in.h:6
-msgid "Minutes between mail checks"
-msgstr "Minutes entre les vérifications de courrier"
+msgid "Mailboxes list"
+msgstr "Liste des boîtes aux lettres"
 
 #: data/mail-notification.schemas.in.h:7
+msgid "Minutes between mail checks"
+msgstr "Minutes entre les vérifications de courrier"
+
+#: data/mail-notification.schemas.in.h:8
 msgid "New mail command"
 msgstr "Commande de nouveau message"
 
-#: data/mail-notification.schemas.in.h:8
+#: data/mail-notification.schemas.in.h:9
 msgid "Run a command when new mail arrives"
-msgstr "Exécuter une commande lorsque du nouveau courrier arrive"
+msgstr "Exécuter une commande lorsque du nouveau courrier arrive"
 
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
 msgid "Run a command when the icon is double-clicked"
-msgstr "Exécuter une commande lorsque l'îcone est double-cliquée"
+msgstr "Exécuter une commande lorsque l'îcone est double-cliquée"
 
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
 msgid "Seconds between mail checks"
-msgstr "Secondes entre les vérifications de courrier"
+msgstr "Secondes entre les vérifications de courrier"
 
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
 msgid "The command to run when new mail arrives."
-msgstr "La commande à exécuter lorsque du nouveau courrier arrive."
+msgstr "La commande à exécuter lorsque du nouveau courrier arrive."
 
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
 msgid "The command to run when the icon is double-clicked."
-msgstr "La commande à exécuter lorsque l'îcone est double-cliquée."
+msgstr "La commande à exécuter lorsque l'îcone est double-cliquée."
 
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:14
 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."
+msgstr "La hauteur de la boîte de dialogue contenant les propriétés en pixels."
 
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:15
 msgid "The list of mailboxes to monitor."
-msgstr "La liste des boîtes aux lettres à surveiller."
+msgstr "La liste des boîtes aux lettres à surveiller."
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 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."
+msgstr "La largeur de la boîte de dialogue contenant les propriétés en pixels."
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
+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:18
 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."
+"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas."
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
 msgid "Whether to run a command when the icon is double-clicked or not."
 msgstr ""
-"Si une commande doit être exécutée lorsque l'îcone est double-cliquée ou pas."
+"Si une commande doit être exécutée lorsque l'îcone est double-cliquée ou pas."
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
 msgid "Width of properties dialog"
-msgstr "Largeur de la boîte de dialogue contenant les propriétés"
+msgstr "Largeur de la boîte de dialogue contenant les propriétés"
 
 #: data/mail-notification.soundlist.in.h:2
 msgid "New Mail"
@@ -130,7 +138,7 @@ msgstr "L'orientation du plateau."
 
 #: src/mn-about-dialog.gob:41
 msgid "A Mail Notification Icon"
-msgstr "Une Icône de Notification de Courrier"
+msgstr "Une Icône de Notification de Courrier"
 
 #: src/mn-about-dialog.gob:44
 msgid "Jean-Yves Lefort <jylefort@brutele.be>"
@@ -138,7 +146,7 @@ msgstr "Jean-Yves Lefort <jylefort@brutele.be>"
 
 #: src/mn-auth-combo-box.gob:99 src/mn-autodetect-mailbox-properties.gob:36
 msgid "<span style=\"italic\">autodetect</span>"
-msgstr "<span style=\"italic\">autodétecter</span>"
+msgstr "<span style=\"italic\">autodétecter</span>"
 
 #: src/mn-autodetect-mailbox-properties.gob:67
 msgid "_Location:"
@@ -150,201 +158,201 @@ msgstr "_Parcourir..."
 
 #: src/mn-autodetect-mailbox-properties.gob:80
 msgid "The URI of the mailbox"
-msgstr "L'URI de la boîte aux lettres"
+msgstr "L'URI de la boîte aux lettres"
 
 #: src/mn-autodetect-mailbox-properties.gob:117
 msgid "Select a File or Folder"
-msgstr "Sélectionnez un Fichier ou Dossier"
+msgstr "Sélectionnez un Fichier ou Dossier"
 
 #: src/mn-blinking-image.gob:30
 msgid "Whether the image is blinking or not"
 msgstr "Si l'image clignote ou pas"
 
-#: src/mn-client-session.c:196 src/mn-client-session.c:203
+#: src/mn-client-session.c:195 src/mn-client-session.c:202
 #, c-format
 msgid "unable to read from server: %s"
 msgstr "impossible de lire depuis le serveur: %s"
 
-#: src/mn-client-session.c:201
+#: src/mn-client-session.c:200
 msgid "unable to read from server: EOF"
 msgstr "impossible de lire depuis le serveur: EOF"
 
-#: src/mn-client-session.c:213
+#: src/mn-client-session.c:212
 #, c-format
 msgid "unable to decode data using SASL: %s"
-msgstr "impossible de décoder les données en utilisant SASL: %s"
+msgstr "impossible de décoder les données en utilisant SASL: %s"
 
-#: src/mn-client-session.c:287
+#: src/mn-client-session.c:286
 #, c-format
 msgid "resolving %s"
-msgstr "résolution de %s en cours"
+msgstr "résolution de %s en cours"
 
-#: src/mn-client-session.c:297
+#: src/mn-client-session.c:296
 #, c-format
 msgid "unable to resolve %s: %s"
-msgstr "impossible de résoudre %s: %s"
+msgstr "impossible de résoudre %s: %s"
 
-#: src/mn-client-session.c:334
+#: src/mn-client-session.c:333
 #, c-format
 msgid "%s: unsupported address family"
 msgstr "%s: famille d'adresse non prise en charge"
 
-#: src/mn-client-session.c:341
+#: src/mn-client-session.c:340
 #, 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 soquet: %s"
 
-#: src/mn-client-session.c:345
+#: src/mn-client-session.c:344
 #, c-format
 msgid "connecting to %s (%s) port %i"
-msgstr "connection à %s (%s) port %i en cours"
+msgstr "connection à %s (%s) port %i en cours"
 
-#: src/mn-client-session.c:348
+#: src/mn-client-session.c:347
 #, c-format
 msgid "unable to connect: %s"
 msgstr "impossible de se connecter: %s"
 
-#: src/mn-client-session.c:353
+#: src/mn-client-session.c:352
 msgid "connected successfully"
-msgstr "connecté avec succès"
+msgstr "connecté avec succès"
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:359
+#: src/mn-client-session.c:358
 #, c-format
 msgid "unable to connect to %s"
-msgstr "impossible de se connecter à %s"
+msgstr "impossible de se connecter à %s"
 
-#: src/mn-client-session.c:375
+#: src/mn-client-session.c:374
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
-msgstr "impossible d'initialiser la bibliothèque OpenSSL: %s"
+msgstr "impossible d'initialiser la bibliothèque OpenSSL: %s"
 
-#: src/mn-client-session.c:383
+#: src/mn-client-session.c:382
 #, c-format
 msgid "unable to create a SSL object: %s"
-msgstr "impossible de créer un objet SSL: %s"
+msgstr "impossible de créer un objet SSL: %s"
 
-#: src/mn-client-session.c:389
+#: src/mn-client-session.c:388
 #, c-format
 msgid "unable to set the SSL file descriptor: %s"
-msgstr "impossible de spécifier le descripteur de fichier SSL: %s"
+msgstr "impossible de spécifier le descripteur de fichier SSL: %s"
 
-#: src/mn-client-session.c:444
+#: src/mn-client-session.c:443
 #, c-format
 msgid "response \"%s\" is not valid in current context"
-msgstr "la réponse \"%s\" n'est pas valable dans le contexte actuel"
+msgstr "la réponse \"%s\" n'est pas valable dans le contexte actuel"
 
-#: src/mn-client-session.c:470
+#: src/mn-client-session.c:469
 #, c-format
 msgid "unable to parse response \"%s\""
-msgstr "impossible d'interpréter la réponse \"%s\""
+msgstr "impossible d'interpréter la réponse \"%s\""
 
-#: src/mn-client-session.c:517
+#: src/mn-client-session.c:516
 #, c-format
 msgid "unable to encode data using SASL: %s"
-msgstr "impossible d'encoder les données en utilisant SASL: %s"
+msgstr "impossible d'encoder les données en utilisant SASL: %s"
 
-#: src/mn-client-session.c:546 src/mn-client-session.c:553
+#: src/mn-client-session.c:545 src/mn-client-session.c:552
 #, c-format
 msgid "unable to write to server: %s"
-msgstr "impossible d'écrire vers le serveur: %s"
+msgstr "impossible d'écrire vers le serveur: %s"
 
-#: src/mn-client-session.c:551
+#: src/mn-client-session.c:550
 msgid "unable to write to server: EOF"
-msgstr "impossible d'écrire vers le serveur: EOF"
+msgstr "impossible d'écrire vers le serveur: EOF"
 
-#: src/mn-client-session.c:583
+#: src/mn-client-session.c:582
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "impossible d'encoder en Base64: %s"
 
-#: src/mn-client-session.c:686
+#: src/mn-client-session.c:685
 #, c-format
 msgid "unable to initialize the SASL library: %s"
-msgstr "impossible d'initialiser la bibliothèque SASL: %s"
+msgstr "impossible d'initialiser la bibliothèque SASL: %s"
 
-#: src/mn-client-session.c:695
+#: src/mn-client-session.c:694
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "impossible d'obtenir l'adresse locale du soquet: %s"
 
-#: src/mn-client-session.c:701
+#: src/mn-client-session.c:700
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr "impossible d'obtenir l'adresse distante du soquet: %s"
 
-#: src/mn-client-session.c:735
+#: src/mn-client-session.c:734
 #, c-format
 msgid "warning: unable to set SASL security properties: %s"
 msgstr ""
-"avertissement: impossible de spécifier les propriétés de sécurité SASL: %s"
+"avertissement: impossible de spécifier les propriétés de sécurité SASL: %s"
 
-#: src/mn-client-session.c:774
+#: src/mn-client-session.c:773
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
-"impossible de démarrer l'authentification SASL: SASL a demandé quelque chose "
+"impossible de démarrer l'authentification SASL: SASL a demandé quelque chose "
 "que nous ne connaissions pas"
 
-#: src/mn-client-session.c:778
+#: src/mn-client-session.c:777
 #, c-format
 msgid "unable to start SASL authentication: %s"
-msgstr "impossible de démarrer l'authentification SASL: %s"
+msgstr "impossible de démarrer l'authentification SASL: %s"
 
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:781
 #, c-format
 msgid "unable to create a SASL connection: %s"
-msgstr "impossible de créer une connection SASL: %s"
+msgstr "impossible de créer une connection SASL: %s"
 
-#: src/mn-client-session.c:832
+#: src/mn-client-session.c:831
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr ""
-"SASL a demandé quelque chose que nous ne connaissions pas, annulation de "
+"SASL a demandé quelque chose que nous ne connaissions pas, annulation de "
 "l'authentification SASL"
 
-#: src/mn-client-session.c:836
+#: src/mn-client-session.c:835
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, annulation de l'authentification SASL"
 
 #. compliance error
-#: src/mn-client-session.c:841
+#: src/mn-client-session.c:840
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
-msgstr "impossible de décoder l'entrée Base64 du serveur: %s"
+msgstr "impossible de décoder l'entrée Base64 du serveur: %s"
 
-#: src/mn-client-session.c:844
+#: src/mn-client-session.c:843
 msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
 msgstr ""
-"le serveur a envoyé un défi SASL, mais il y avait une réponse client SASL "
+"le serveur a envoyé un défi SASL, mais il y avait une réponse client SASL "
 "initiale en attente"
 
-#: src/mn-client-session.c:858
+#: src/mn-client-session.c:857
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
 msgstr ""
-"le serveur n'a pas envoyé de défi SASL, mais il n'y avait pas de réponse "
+"le serveur n'a pas envoyé de défi SASL, mais il n'y avait pas de réponse "
 "client SASL initiale en attente"
 
-#: src/mn-client-session.c:881
+#: src/mn-client-session.c:880
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr ""
-"une couche de sécurité SASL de facteur de force %i est maintenant active"
+"une couche de sécurité SASL de facteur de force %i est maintenant active"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:886
+#: src/mn-client-session.c:885
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
-msgstr "impossible d'obtenir la propriété SASL_MAXOUTBUF: %s"
+msgstr "impossible d'obtenir la propriété SASL_MAXOUTBUF: %s"
 
-#: src/mn-client-session.c:892
+#: src/mn-client-session.c:891
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
-msgstr "avertissement: impossible d'obtenir la propriété SASL_SSF: %s"
+msgstr "avertissement: impossible d'obtenir la propriété SASL_SSF: %s"
 
 #: src/mn-dialog.c:108
 msgid "A fatal error has occurred in Mail Notification"
@@ -360,42 +368,42 @@ msgstr "Votre mot de passe Gmail"
 
 #: src/mn-gmail-mailbox.gob:65
 msgid "unable to parse Gmail URI"
-msgstr "impossible d'interpréter l'URI Gmail"
+msgstr "impossible d'interpréter l'URI Gmail"
 
-#: src/mn-gmail-mailbox.gob:180
+#: src/mn-gmail-mailbox.gob:182
 msgid "logging in"
 msgstr "ouverture de session en cours"
 
-#: src/mn-gmail-mailbox.gob:194 src/mn-gmail-mailbox.gob:233
-#: src/mn-gmail-mailbox.gob:266 src/mn-gmail-mailbox.gob:370
+#: src/mn-gmail-mailbox.gob:201 src/mn-gmail-mailbox.gob:240
+#: src/mn-gmail-mailbox.gob:273 src/mn-gmail-mailbox.gob:377
 #, c-format
 msgid "unable to transfer data: %s"
-msgstr "impossible de transférer des données: %s"
+msgstr "impossible de transférer des données: %s"
 
-#: src/mn-gmail-mailbox.gob:219 src/mn-gmail-mailbox.gob:252
-#: src/mn-gmail-mailbox.gob:286
+#: src/mn-gmail-mailbox.gob:226 src/mn-gmail-mailbox.gob:259
+#: src/mn-gmail-mailbox.gob:293
 msgid "login failed"
-msgstr "l'ouverture de session a échoué"
+msgstr "l'ouverture de session a échoué"
 
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:287
 msgid "successfully logged in"
-msgstr "ouverture de session effectuée avec succès"
+msgstr "ouverture de session effectuée avec succès"
 
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:365
 msgid "searching for unread mail"
 msgstr "recherche du courrier non lu"
 
-#: src/mn-gmail-mailbox.gob:377
+#: src/mn-gmail-mailbox.gob:384
 msgid "unable to parse Gmail data"
-msgstr "impossible d'interpréter les données Gmail"
+msgstr "impossible d'interpréter les données Gmail"
 
 #: src/mn-imap-mailbox-properties.gob:92
 msgid "Mailbox:"
-msgstr "Boîte aux lettres:"
+msgstr "Boîte aux lettres:"
 
 #: src/mn-imap-mailbox-properties.gob:96
 msgid "in_box"
-msgstr "_boîte de réception"
+msgstr "_boîte de réception"
 
 #: src/mn-imap-mailbox-properties.gob:107
 msgid "oth_er:"
@@ -403,7 +411,7 @@ msgstr "autr_e:"
 
 #: src/mn-imap-mailbox-properties.gob:121
 msgid "The hostname or IP address of the IMAP server"
-msgstr "Le nom d'hôte ou adresse IP du serveur IMAP"
+msgstr "Le nom d'hôte ou adresse IP du serveur IMAP"
 
 #: src/mn-imap-mailbox-properties.gob:122
 msgid "Your username on the IMAP server"
@@ -416,28 +424,28 @@ msgstr "Votre mot de passe sur le serveur IMAP"
 #: src/mn-imap-mailbox-properties.gob:124
 #: src/mn-imap-mailbox-properties.gob:125
 msgid "The port number of the IMAP server"
-msgstr "Le numéro de port du serveur IMAP"
+msgstr "Le numéro de port du serveur IMAP"
 
 #: src/mn-imap-mailbox-properties.gob:126
 msgid "The mailbox name"
-msgstr "Le nom de la boîte aux lettres"
+msgstr "Le nom de la boîte aux lettres"
 
 #: src/mn-imap-mailbox.gob:124 src/mn-pop3-mailbox.gob:133
 msgid "SSL support has not been compiled in"
-msgstr "le support SSL n'a pas été inclus lors de la compilation"
+msgstr "le support SSL n'a pas été inclus lors de la compilation"
 
 #: src/mn-imap-mailbox.gob:128
 msgid "unable to parse IMAP URI"
-msgstr "impossible d'interpréter l'URI IMAP"
+msgstr "impossible d'interpréter l'URI IMAP"
 
 #: src/mn-imap-mailbox.gob:195
 msgid "server did not send capabilities"
-msgstr "le serveur n'a pas envoyé ses possibilités"
+msgstr "le serveur n'a pas envoyé ses possibilités"
 
 #: src/mn-imap-mailbox.gob:267
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
-"le serveur a annoncé LOGINDISABLED, pas d'utilisation de l'authentification "
+"le serveur a annoncé LOGINDISABLED, pas d'utilisation de l'authentification "
 "LOGIN"
 
 #: src/mn-imap-mailbox.gob:268
@@ -445,38 +453,38 @@ msgid "unable to login"
 msgstr "impossible d'ouvrir la session"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:336
 msgid "server did not send status"
-msgstr "le serveur n'a pas envoyé de status"
+msgstr "le serveur n'a pas envoyé de status"
 
-#: src/mn-imap-mailbox.gob:537 src/mn-pop3-mailbox.gob:715
+#: src/mn-imap-mailbox.gob:554 src/mn-pop3-mailbox.gob:715
 msgid "unknown server error"
 msgstr "erreur serveur inconnue"
 
-#: src/mn-imap-mailbox.gob:603 src/mn-pop3-mailbox.gob:645
+#: src/mn-imap-mailbox.gob:625 src/mn-pop3-mailbox.gob:645
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
-"un méchanisme d'authentification SASL a été sélectionné mais le support SASL "
-"n'a pas été inclus lors de la compilation"
+"un méchanisme 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:611 src/mn-pop3-mailbox.gob:657
+#: src/mn-imap-mailbox.gob:633 src/mn-pop3-mailbox.gob:657
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
-msgstr "méchanisme d'authentification inconnu \"%s\""
+msgstr "méchanisme d'authentification inconnu \"%s\""
 
-#: src/mn-imap-mailbox.gob:629
+#: src/mn-imap-mailbox.gob:651
 msgid "falling back to IMAP LOGIN authentication"
-msgstr "rétrogradation vers l'authentification IMAP LOGIN"
+msgstr "rétrogradation vers l'authentification IMAP LOGIN"
 
-#: src/mn-imap-mailbox.gob:633 src/mn-pop3-mailbox.gob:691
+#: src/mn-imap-mailbox.gob:655 src/mn-pop3-mailbox.gob:691
 msgid "authentication failed"
-msgstr "l'authentification a échoué"
+msgstr "l'authentification a échoué"
 
 #: src/mn-mail-icon.gob:81
 msgid "_Update"
-msgstr "_Mettre à Jour"
+msgstr "_Mettre à Jour"
 
 #: src/mn-mail-icon.gob:87
 msgid "R_emove From Notification Area"
@@ -485,20 +493,20 @@ msgstr "_Enlever de l'Aire de Notification"
 #: src/mn-mail-icon.gob:172
 #, c-format
 msgid "_Run %s"
-msgstr "_Exécuter %s"
+msgstr "_Exécuter %s"
 
 #: src/mn-mail-icon.gob:173
 msgid "_Run Default Action"
-msgstr "_Exécuter l'Action par Défaut"
+msgstr "_Exécuter l'Action par Défaut"
 
 #: src/mn-mailbox-properties-dialog.c:109
 msgid "Add a Mailbox"
-msgstr "Ajouter une Boîte aux Lettres"
+msgstr "Ajouter une Boîte aux Lettres"
 
 #: src/mn-mailbox-properties-dialog.c:331
 #, c-format
 msgid "%s Properties"
-msgstr "Propriétés de %s"
+msgstr "Propriétés de %s"
 
 #: src/mn-mailbox-properties-util.c:75
 msgid "_Username:"
@@ -518,7 +526,7 @@ msgstr "Port:"
 
 #: src/mn-mailbox-properties-util.c:180
 msgid "_Authentication mechanism:"
-msgstr "Méchanisme d'_authentification:"
+msgstr "Méchanisme d'_authentification:"
 
 #: src/mn-mailbox-properties.c:63
 msgid "Label"
@@ -526,7 +534,7 @@ msgstr "Etiquette"
 
 #: src/mn-mailbox-properties.c:64
 msgid "The marked up text to show in the type combo box"
-msgstr "Le texte marqué à afficher dans la boîte de type"
+msgstr "Le texte marqué à afficher dans la boîte de type"
 
 #: src/mn-mailbox-properties.c:69
 msgid "Size group"
@@ -534,7 +542,7 @@ msgstr "Groupe de taille"
 
 #: src/mn-mailbox-properties.c:70
 msgid "A GtkSizeGroup for aligning control labels"
-msgstr "Un GtkSizeGroup pour aligner les étiquettes des contrôles"
+msgstr "Un GtkSizeGroup pour aligner les étiquettes des contrôles"
 
 #: src/mn-mailbox-properties.c:75
 msgid "Complete"
@@ -542,19 +550,19 @@ msgstr "Complet"
 
 #: src/mn-mailbox-properties.c:76
 msgid "Whether the properties are completely filled or not"
-msgstr "Si les propriétés sont complètement remplies ou pas"
+msgstr "Si les propriétés sont complètement remplies ou pas"
 
 #: src/mn-mailbox-view.gob:91
 msgid "Unable to add mailbox"
-msgstr "Impossible d'ajouter la boîte aux lettres"
+msgstr "Impossible d'ajouter la boîte aux lettres"
 
 #: src/mn-mailbox-view.gob:91
 msgid "The mailbox is already in the list."
-msgstr "La boîte aux lettres est déjà dans la liste."
+msgstr "La boîte aux lettres est déjà dans la liste."
 
 #: src/mn-mailbox-view.gob:283
 msgid "Mailbox"
-msgstr "Boîte aux lettres"
+msgstr "Boîte aux lettres"
 
 #: src/mn-mailbox-view.gob:297
 msgid "Format"
@@ -562,23 +570,23 @@ msgstr "Format"
 
 #: src/mn-mailbox.gob:88
 msgid "The mailbox URI"
-msgstr "L'URI de la boîte aux lettres"
+msgstr "L'URI de la boîte aux lettres"
 
 #: src/mn-mailbox.gob:98
 msgid "The mailbox human-readable name"
-msgstr "Le nom, lisible par un humain, de la boîte aux lettres"
+msgstr "Le nom, lisible par un humain, de la boîte aux lettres"
 
 #: src/mn-mailbox.gob:102
 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"
+msgstr "Si la boîte aux lettres doit être vérifiée manuellement ou pas"
 
 #: src/mn-mailbox.gob:107
 msgid "Whether the mailbox has new mail or not"
-msgstr "Si la boîte aux lettres a du nouveau courrier ou pas"
+msgstr "Si la boîte aux lettres a du nouveau courrier ou pas"
 
 #: src/mn-mailbox.gob:112
 msgid "The mailbox error, if any"
-msgstr "L'erreur de la boîte aux lettres si il y en a une"
+msgstr "L'erreur de la boîte aux lettres si il y en a une"
 
 #: src/mn-mailbox.gob:218
 msgid "does not exist"
@@ -602,11 +610,11 @@ msgid_plural ""
 "As a fallback, they will be checked every %i seconds (this delay is "
 "configurable from the Properties Dialog)."
 msgstr[0] ""
-"Comme solution de secours, elles seront vérifiées toutes les %i seconde (ce "
-"délai est configurable depuis les Propriétés)."
+"Comme solution de secours, elles seront vérifiées toutes les %i seconde (ce "
+"délai est configurable depuis les Propriétés)."
 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)."
+"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:341
 #, c-format
@@ -617,11 +625,11 @@ msgid_plural ""
 "As a fallback, they will be checked every %i minutes (this delay is "
 "configurable from the Properties Dialog)."
 msgstr[0] ""
-"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
-"délai est configurable depuis les Propriétés)."
+"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
+"délai est configurable depuis les Propriétés)."
 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)."
+"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:352
 #, c-format
@@ -632,11 +640,11 @@ msgid_plural ""
 "As a fallback, they will be checked approximately every %i minutes (this "
 "delay is configurable from the Properties Dialog)."
 msgstr[0] ""
-"Comme solution de secours, elles seront vérifiées approximativement toutes "
-"les %i minute (ce délai est configurable depuis les Propriétés)."
+"Comme solution de secours, elles seront vérifiées approximativement toutes "
+"les %i minute (ce délai est configurable depuis les Propriétés)."
 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)."
+"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:366
 msgid "A monitoring error has occurred"
@@ -648,8 +656,8 @@ msgid ""
 "Mail Notification was unable to enable automatic notification for one or "
 "more mailboxes. %s"
 msgstr ""
-"Notification de Courrier n'a pas été en mesure d'activer la notification "
-"automatique pour une ou plusieures boîtes aux lettres. %s"
+"Notification de Courrier n'a pas été en mesure d'activer la notification "
+"automatique pour une ou plusieures boîtes aux lettres. %s"
 
 #: src/mn-mailboxes.gob:130
 #, c-format
@@ -669,14 +677,19 @@ msgstr "%s n'a pas de nouveau courrier"
 #: src/mn-mailboxes.gob:173
 #, c-format
 msgid "%s reported an error: %s"
-msgstr "%s a indiqué une erreur: %s"
+msgstr "%s a indiqué une erreur: %s"
 
-#: src/mn-maildir-mailbox.gob:97
+#: src/mn-maildir-mailbox.gob:98
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "impossible d'ouvrir le dossier \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:122
+#: src/mn-maildir-mailbox.gob:126
+#, c-format
+msgid "unable to close folder \"new\": %s"
+msgstr "impossible de fermer le dossier \"new\": %s"
+
+#: src/mn-maildir-mailbox.gob:129
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "erreur lors de la lecture du dossier \"new\": %s"
@@ -684,12 +697,12 @@ msgstr "erreur lors de la lecture du dossier \"new\": %s"
 #: src/mn-main.c:86
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Prises en charge de boîtes aux lettres disponibles: %s\n"
+msgstr "Prises en charge de boîtes aux lettres disponibles: %s\n"
 
 #: src/mn-main.c:104
 #, c-format
 msgid "Compiled-in features: %s\n"
-msgstr "Fonctionnalités disponibles: %s\n"
+msgstr "Fonctionnalités disponibles: %s\n"
 
 #: src/mn-main.c:133
 msgid "Enable informational output"
@@ -697,19 +710,19 @@ msgstr "Activer la sortie informationelle"
 
 #: src/mn-main.c:142
 msgid "List compiled-in features and exit"
-msgstr "Afficher les fonctionnalités disponibles et quitter"
+msgstr "Afficher les fonctionnalités disponibles et quitter"
 
 #: src/mn-main.c:151
 msgid "Display the properties dialog"
-msgstr "Afficher la boîte de dialogue contenant les propriétés"
+msgstr "Afficher la boîte de dialogue contenant les propriétés"
 
 #: src/mn-main.c:160
 msgid "Display the about dialog"
-msgstr "Afficher la boîte de dialogue \"à propos\""
+msgstr "Afficher la boîte de dialogue \"à propos\""
 
 #: src/mn-main.c:169
 msgid "Update the mail status"
-msgstr "Mettre à jour le status du courrier"
+msgstr "Mettre à jour le status du courrier"
 
 #: src/mn-main.c:178
 msgid "Report the mail status"
@@ -723,51 +736,51 @@ msgstr "Rapporter le status du courrier"
 msgid "multi-threading is not available"
 msgstr "le multi-threading n'est pas disponible"
 
-#: src/mn-main.c:244
-msgid "Unable to initialize the GnomeVFS library."
-msgstr "Impossible d'initialiser la bibliothèque GnomeVFS."
-
-#: src/mn-main.c:252
+#: src/mn-main.c:243
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
-"Bonobo n'a pas pu localiser l'objet automation. Veuillez vérifier votre "
+"Bonobo n'a pas pu localiser l'objet automation. Veuillez vérifier votre "
 "installation de la Notification de Courrier."
 
-#: src/mn-main.c:263
+#: src/mn-main.c:248
+msgid "Unable to initialize the GnomeVFS library."
+msgstr "Impossible d'initialiser la bibliothèque GnomeVFS."
+
+#: src/mn-main.c:270
 msgid "updating the mail status"
-msgstr "mise à jour du status du courrier"
+msgstr "mise à jour du status du courrier"
 
-#: src/mn-main.c:279
+#: src/mn-main.c:286
 msgid "Mail Notification is already running"
-msgstr "La Notification de Courrier est déjà en cours d'exécution"
+msgstr "La Notification de Courrier est déjà en cours d'exécution"
 
-#: src/mn-main.c:286
+#: src/mn-main.c:293
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 "Bonobo n'a pas pu localiser le fichier GNOME_MailNotification_Automation."
-"server. Veuillez vérifier votre installation de la Notification de Courrier."
+"server. Veuillez vérifier votre installation de la Notification de Courrier."
 
-#: src/mn-main.c:290
+#: src/mn-main.c:297
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
 msgstr ""
-"Bonobo n'a pas été en mesure d'inscrire le serveur d'automation. Veuillez "
-"vérifier votre installation de la Notification de Courrier."
+"Bonobo n'a pas été en mesure d'inscrire le serveur d'automation. Veuillez "
+"vérifier votre installation de la Notification de Courrier."
 
 #: src/mn-mbox-mailbox.gob:165
 #, c-format
 msgid "error while reading mailbox: %s"
-msgstr "erreur lors de la lecture de la boîte aux lettres: %s"
+msgstr "erreur lors de la lecture de la boîte aux lettres: %s"
 
 #: src/mn-mbox-mailbox.gob:173
 #, c-format
 msgid "unable to open mailbox: %s"
-msgstr "impossible d'ouvrir la boîte aux lettres: %s"
+msgstr "impossible d'ouvrir la boîte aux lettres: %s"
 
 #: src/mn-mh-mailbox.gob:111
 #, c-format
@@ -781,15 +794,15 @@ msgstr "impossible d'ouvrir .mh_sequences: %s"
 
 #: src/mn-pending-mailbox.gob:33
 msgid "detecting"
-msgstr "en cours de détection"
+msgstr "en cours de détection"
 
 #: src/mn-pi-mailbox-properties.gob:75
 msgid "_Hostname:"
-msgstr "Nom d'_hôte:"
+msgstr "Nom d'_hôte:"
 
 #: src/mn-pi-mailbox-properties.gob:93
 msgid "_Details"
-msgstr "_Détails"
+msgstr "_Détails"
 
 #: src/mn-pi-mailbox-properties.gob:105
 msgid "sta_ndard"
@@ -801,7 +814,7 @@ msgstr "_SSL"
 
 #: src/mn-pop3-mailbox-properties.gob:84
 msgid "The hostname or IP address of the POP3 server"
-msgstr "Le nom d'hôte ou adresse IP du serveur POP3"
+msgstr "Le nom d'hôte ou adresse IP du serveur POP3"
 
 #: src/mn-pop3-mailbox-properties.gob:85
 msgid "Your username on the POP3 server"
@@ -813,15 +826,15 @@ msgstr "Votre mot de passe sur le serveur POP3"
 
 #: src/mn-pop3-mailbox-properties.gob:87 src/mn-pop3-mailbox-properties.gob:88
 msgid "The port number of the POP3 server"
-msgstr "Le numéro de port du serveur POP3"
+msgstr "Le numéro de port du serveur POP3"
 
 #: src/mn-pop3-mailbox.gob:137
 msgid "unable to parse POP3 URI"
-msgstr "impossible d'interpréter l'URI POP3"
+msgstr "impossible d'interpréter l'URI POP3"
 
 #: src/mn-pop3-mailbox.gob:267
 msgid "invalid arguments for the LOGIN-DELAY capability"
-msgstr "arguments invalides pour la possibilité LOGIN-DELAY"
+msgstr "arguments invalides pour la possibilité LOGIN-DELAY"
 
 #: src/mn-pop3-mailbox.gob:495
 #, c-format
@@ -836,22 +849,22 @@ msgstr "le serveur ne supporte pas l'authentification APOP"
 
 #: src/mn-pop3-mailbox.gob:681
 msgid "falling back to APOP authentication"
-msgstr "rétrogradation vers l'authentification APOP"
+msgstr "rétrogradation vers l'authentification APOP"
 
 #: src/mn-pop3-mailbox.gob:686
 msgid "falling back to USER/PASS authentication"
-msgstr "rétrogradation vers l'authentification USER/PASS"
+msgstr "rétrogradation vers l'authentification USER/PASS"
 
 #: src/mn-properties.c:132
 msgid "No mailbox selected."
-msgstr "Pas de boîte aux lettres sélectionnée."
+msgstr "Pas de boîte aux lettres sélectionnée."
 
 #: src/mn-properties.c:137
 #, 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"
+msgstr[0] "%i boîte aux lettres sélectionnée"
+msgstr[1] "%i boîtes aux lettres sélectionnées"
 
 #: src/mn-shell.gob:191
 msgid "A command error has occurred"
@@ -861,13 +874,13 @@ msgstr "Une erreur de commande s'est produite"
 #, c-format
 msgid "Unable to execute double-clicked command: %s."
 msgstr ""
-"Impossible d'exécuter la commande associée au double-click sur l'icône: %s."
+"Impossible d'exécuter la commande associée au double-click sur l'icône: %s."
 
 #: src/mn-shell.gob:297
 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"
+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:301
 msgid "You have no new mail."
@@ -876,14 +889,14 @@ msgstr "Vous n'avez pas de nouveau courrier."
 #: src/mn-shell.gob:304
 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"
+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:309
 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"
+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:325
 msgid "You have new mail."
@@ -897,45 +910,50 @@ msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
 #, 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: %"
+"Impossible d'exécuter la commande associée à l'arrivée de nouveau courrier: %"
 "s"
 
 #: src/mn-stock.c:28
 msgid "Select _All"
-msgstr "Sélectionner _Tout"
+msgstr "Sélectionner _Tout"
 
-#: src/mn-sylpheed-mailbox.gob:83
+#: src/mn-sylpheed-mailbox.gob:84
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "impossible d'ouvrir le dossier: %s"
 
-#: src/mn-sylpheed-mailbox.gob:114
+#: src/mn-sylpheed-mailbox.gob:118
+#, c-format
+msgid "unable to close folder: %s"
+msgstr "impossible de fermer le dossier: %s"
+
+#: src/mn-sylpheed-mailbox.gob:121
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "erreur lors de la lecture du dossier: %s"
 
-#: src/mn-system-mailbox-properties.gob:33 src/mn-uri.c:617
+#: src/mn-system-mailbox-properties.gob:33 src/mn-uri.c:672
 msgid "System Mailbox"
-msgstr "Boîte aux Lettres Système"
+msgstr "Boîte aux Lettres Système"
 
 #: src/mn-system-mailbox-properties.gob:56
 #, c-format
 msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
 msgstr ""
-"Votre boîte aux lettres système (<span weight=\"bold\">%s</span>) sera "
-"utilisée."
+"Votre boîte aux lettres système (<span weight=\"bold\">%s</span>) sera "
+"utilisée."
 
 #: src/mn-system-mailbox-properties.gob:63
 msgid ""
 "The location of your system mailbox could not be detected. Please set the "
 "MAIL environment variable."
 msgstr ""
-"L'emplacement de votre boîte aux lettres système n'a pu être détecté. "
-"Veuillez spécifier la variable d'environnement MAIL."
+"L'emplacement de votre boîte aux lettres système n'a pu être détecté. "
+"Veuillez spécifier la variable d'environnement MAIL."
 
 #: src/mn-unsupported-mailbox.gob:31
 msgid "The reason why the mailbox is unsupported"
-msgstr "La raison pour laquelle la boîte aux lettres n'est pas prise en charge"
+msgstr "La raison pour laquelle la boîte aux lettres n'est pas prise en charge"
 
 #: src/mn-unsupported-mailbox.gob:38
 msgid "unsupported"
@@ -949,15 +967,15 @@ msgstr "erreur de chargement d'image: %s"
 #: src/mn-util.c:154
 #, c-format
 msgid "widget %s not found in interface %s"
-msgstr "élément %s non trouvé dans interface %s"
+msgstr "élément %s non trouvé dans interface %s"
 
 #: src/mn-util.c:261
 msgid "received an invalid URI list"
-msgstr "une liste d'URI invalide a été reçue"
+msgstr "une liste d'URI invalide a été reçue"
 
 #: src/mn-util.c:297
 msgid "received an invalid Mozilla URL"
-msgstr "une URL Mozilla invalide a été reçue"
+msgstr "une URL Mozilla invalide a été reçue"
 
 #: src/mn-util.c:389
 msgid "Unable to display help"
@@ -966,11 +984,11 @@ msgstr "Impossible d'afficher l'aide"
 #: src/mn-util.c:403
 #, c-format
 msgid "Unable to create a thread: %s."
-msgstr "Impossible de créer un thread: %s."
+msgstr "Impossible de créer un thread: %s."
 
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
-msgstr "_Type de boîte aux lettres:"
+msgstr "_Type de boîte aux lettres:"
 
 #: ui/properties.glade.h:1
 msgid "    "
@@ -986,27 +1004,27 @@ 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>"
+msgstr "<span weight=\"bold\">Général</span>"
 
 #: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">Mailboxes</span>"
-msgstr "<span weight=\"bold\">Boîtes aux lettres</span>"
+msgstr "<span weight=\"bold\">Boîtes aux lettres</span>"
 
 #: ui/properties.glade.h:6
 msgid "Mail Notification Properties"
-msgstr "Propriétés de la Notification de Courrier"
+msgstr "Propriétés de la Notification de Courrier"
 
 #: ui/properties.glade.h:7
 msgid "The amount of time to wait between mail checks"
-msgstr "La quantité de temps à attendre entre les vérifications de courrier"
+msgstr "La quantité de temps à attendre entre les vérifications de courrier"
 
 #: ui/properties.glade.h:8
 msgid "The command to run when new mail arrives"
-msgstr "La commande à exécuter lorsque du nouveau courrier arrive"
+msgstr "La commande à exécuter lorsque du nouveau courrier arrive"
 
 #: ui/properties.glade.h:9
 msgid "The command to run when the icon is double-clicked"
-msgstr "La commande à exécuter lorsque l'îcone est double-cliquée"
+msgstr "La commande à exécuter lorsque l'îcone est double-cliquée"
 
 #: ui/properties.glade.h:10
 msgid "When _new mail arrives:"
@@ -1014,21 +1032,21 @@ msgstr "Lorsque du _nouveau courrier arrive:"
 
 #: ui/properties.glade.h:11
 msgid "When double-click_ed:"
-msgstr "Lorsque l'îcone est double-cliqué_e:"
+msgstr "Lorsque l'îcone est double-cliqué_e:"
 
 #: ui/properties.glade.h:12
 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"
+"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas"
 
 #: ui/properties.glade.h:13
 msgid "Whether to run a command when the icon is double-clicked or not"
 msgstr ""
-"Si une commande doit être exécutée lorsque l'îcone est double-cliquée ou pas"
+"Si une commande doit être exécutée lorsque l'îcone est double-cliquée ou pas"
 
 #: ui/properties.glade.h:14
 msgid "_Delay between mail checks:"
-msgstr "_Délai entre les vérifications de courrier:"
+msgstr "_Délai entre les vérifications de courrier:"
 
 #: ui/properties.glade.h:15
 msgid "minutes"
@@ -1037,3 +1055,37 @@ msgstr "minutes"
 #: ui/properties.glade.h:16
 msgid "seconds"
 msgstr "secondes"
+
+#: ui/welcome.glade.h:1
+msgid ""
+"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
+"\n"
+"Mail Notification has been loaded successfully.\n"
+"\n"
+"Since this is the first time you run Mail Notification, you might want to "
+"configure it.\n"
+"\n"
+"Note: this message will not be shown anymore. To configure Mail Notification "
+"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
+"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
+"span>."
+msgstr ""
+"<span weight=\"bold\" size=\"larger\">Premier démarrage</span>\n"
+"\n"
+"La Notification de Courrier a été chargée avec succès.\n"
+"\n"
+"Etant donné que c'est la première fois que vous utilisez la Notification de "
+"Courrier, vous voudrez probablement la configurer.\n"
+"\n"
+"Note: ce message ne sera plus affiché à nouveau. Pour configurer la "
+"Notification de Courrier ultérieurement, choisissez <span weight=\"bold"
+"\">Applications</span> → <span weight=\"bold\">Préférences du bureau</span> "
+"→ <span weight=\"bold\">Notification de Courrier</span>."
+
+#: ui/welcome.glade.h:8
+msgid "_Configure Mail Notification"
+msgstr "_Configurer la Notification de Courrier"
+
+#: ui/welcome.glade.h:9
+msgid "_Skip configuration"
+msgstr "_Passer la configuration"
diff --git a/po/mail-notification.pot b/po/mail-notification.pot
@@ -8,12 +8,12 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-16 18:15+0200\n"
+"POT-Creation-Date: 2004-08-19 00:12+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"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
@@ -53,62 +53,70 @@ msgid "Double-clicked command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:4
-msgid "Height of properties dialog"
+msgid "Has already been run"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:5
-msgid "Mailboxes list"
+msgid "Height of properties dialog"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:6
-msgid "Minutes between mail checks"
+msgid "Mailboxes list"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:7
-msgid "New mail command"
+msgid "Minutes between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:8
-msgid "Run a command when new mail arrives"
+msgid "New mail command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:9
-msgid "Run a command when the icon is double-clicked"
+msgid "Run a command when new mail arrives"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:10
-msgid "Seconds between mail checks"
+msgid "Run a command when the icon is double-clicked"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:11
-msgid "The command to run when new mail arrives."
+msgid "Seconds between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:12
-msgid "The command to run when the icon is double-clicked."
+msgid "The command to run when new mail arrives."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:13
-msgid "The height of the properties dialog in pixels."
+msgid "The command to run when the icon is double-clicked."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:14
-msgid "The list of mailboxes to monitor."
+msgid "The height of the properties dialog in pixels."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:15
-msgid "The width of the properties dialog in pixels."
+msgid "The list of mailboxes to monitor."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:16
-msgid "Whether to run a command when new mail arrives or not."
+msgid "The width of the properties dialog in pixels."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:17
-msgid "Whether to run a command when the icon is double-clicked or not."
+msgid "Whether Mail Notification has already been run or not."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:18
+msgid "Whether to run a command when new mail arrives or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:19
+msgid "Whether to run a command when the icon is double-clicked or not."
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:20
 msgid "Width of properties dialog"
 msgstr ""
 
@@ -156,178 +164,178 @@ msgstr ""
 msgid "Whether the image is blinking or not"
 msgstr ""
 
-#: src/mn-client-session.c:196 src/mn-client-session.c:203
+#: src/mn-client-session.c:195 src/mn-client-session.c:202
 #, c-format
 msgid "unable to read from server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:201
+#: src/mn-client-session.c:200
 msgid "unable to read from server: EOF"
 msgstr ""
 
-#: src/mn-client-session.c:213
+#: src/mn-client-session.c:212
 #, c-format
 msgid "unable to decode data using SASL: %s"
 msgstr ""
 
-#: src/mn-client-session.c:287
+#: src/mn-client-session.c:286
 #, c-format
 msgid "resolving %s"
 msgstr ""
 
-#: src/mn-client-session.c:297
+#: src/mn-client-session.c:296
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr ""
 
-#: src/mn-client-session.c:334
+#: src/mn-client-session.c:333
 #, c-format
 msgid "%s: unsupported address family"
 msgstr ""
 
-#: src/mn-client-session.c:341
+#: src/mn-client-session.c:340
 #, c-format
 msgid "%s: unable to create socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:345
+#: src/mn-client-session.c:344
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr ""
 
-#: src/mn-client-session.c:348
+#: src/mn-client-session.c:347
 #, c-format
 msgid "unable to connect: %s"
 msgstr ""
 
-#: src/mn-client-session.c:353
+#: src/mn-client-session.c:352
 msgid "connected successfully"
 msgstr ""
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:359
+#: src/mn-client-session.c:358
 #, c-format
 msgid "unable to connect to %s"
 msgstr ""
 
-#: src/mn-client-session.c:375
+#: src/mn-client-session.c:374
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr ""
 
-#: src/mn-client-session.c:383
+#: src/mn-client-session.c:382
 #, c-format
 msgid "unable to create a SSL object: %s"
 msgstr ""
 
-#: src/mn-client-session.c:389
+#: src/mn-client-session.c:388
 #, c-format
 msgid "unable to set the SSL file descriptor: %s"
 msgstr ""
 
-#: src/mn-client-session.c:444
+#: src/mn-client-session.c:443
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr ""
 
-#: src/mn-client-session.c:470
+#: src/mn-client-session.c:469
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr ""
 
-#: src/mn-client-session.c:517
+#: src/mn-client-session.c:516
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr ""
 
-#: src/mn-client-session.c:546 src/mn-client-session.c:553
+#: src/mn-client-session.c:545 src/mn-client-session.c:552
 #, c-format
 msgid "unable to write to server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:551
+#: src/mn-client-session.c:550
 msgid "unable to write to server: EOF"
 msgstr ""
 
-#: src/mn-client-session.c:583
+#: src/mn-client-session.c:582
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr ""
 
-#: src/mn-client-session.c:686
+#: src/mn-client-session.c:685
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr ""
 
-#: src/mn-client-session.c:695
+#: src/mn-client-session.c:694
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:701
+#: src/mn-client-session.c:700
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:735
+#: src/mn-client-session.c:734
 #, c-format
 msgid "warning: unable to set SASL security properties: %s"
 msgstr ""
 
-#: src/mn-client-session.c:774
+#: src/mn-client-session.c:773
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
 
-#: src/mn-client-session.c:778
+#: src/mn-client-session.c:777
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr ""
 
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:781
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr ""
 
-#: src/mn-client-session.c:832
+#: src/mn-client-session.c:831
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr ""
 
-#: src/mn-client-session.c:836
+#: src/mn-client-session.c:835
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr ""
 
 #. compliance error
-#: src/mn-client-session.c:841
+#: src/mn-client-session.c:840
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:844
+#: src/mn-client-session.c:843
 msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
 msgstr ""
 
-#: src/mn-client-session.c:858
+#: src/mn-client-session.c:857
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
 msgstr ""
 
-#: src/mn-client-session.c:881
+#: src/mn-client-session.c:880
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr ""
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:886
+#: src/mn-client-session.c:885
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr ""
 
-#: src/mn-client-session.c:892
+#: src/mn-client-session.c:891
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr ""
@@ -348,30 +356,30 @@ msgstr ""
 msgid "unable to parse Gmail URI"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:180
+#: src/mn-gmail-mailbox.gob:182
 msgid "logging in"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:194 src/mn-gmail-mailbox.gob:233
-#: src/mn-gmail-mailbox.gob:266 src/mn-gmail-mailbox.gob:370
+#: src/mn-gmail-mailbox.gob:201 src/mn-gmail-mailbox.gob:240
+#: src/mn-gmail-mailbox.gob:273 src/mn-gmail-mailbox.gob:377
 #, c-format
 msgid "unable to transfer data: %s"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:219 src/mn-gmail-mailbox.gob:252
-#: src/mn-gmail-mailbox.gob:286
+#: src/mn-gmail-mailbox.gob:226 src/mn-gmail-mailbox.gob:259
+#: src/mn-gmail-mailbox.gob:293
 msgid "login failed"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:287
 msgid "successfully logged in"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:365
 msgid "searching for unread mail"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:377
+#: src/mn-gmail-mailbox.gob:384
 msgid "unable to parse Gmail data"
 msgstr ""
 
@@ -429,30 +437,30 @@ msgid "unable to login"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:336
 msgid "server did not send status"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:537 src/mn-pop3-mailbox.gob:715
+#: src/mn-imap-mailbox.gob:554 src/mn-pop3-mailbox.gob:715
 msgid "unknown server error"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:603 src/mn-pop3-mailbox.gob:645
+#: src/mn-imap-mailbox.gob:625 src/mn-pop3-mailbox.gob:645
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:611 src/mn-pop3-mailbox.gob:657
+#: src/mn-imap-mailbox.gob:633 src/mn-pop3-mailbox.gob:657
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:629
+#: src/mn-imap-mailbox.gob:651
 msgid "falling back to IMAP LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:633 src/mn-pop3-mailbox.gob:691
+#: src/mn-imap-mailbox.gob:655 src/mn-pop3-mailbox.gob:691
 msgid "authentication failed"
 msgstr ""
 
@@ -639,12 +647,17 @@ msgstr ""
 msgid "%s reported an error: %s"
 msgstr ""
 
-#: src/mn-maildir-mailbox.gob:97
+#: src/mn-maildir-mailbox.gob:98
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr ""
 
-#: src/mn-maildir-mailbox.gob:122
+#: src/mn-maildir-mailbox.gob:126
+#, c-format
+msgid "unable to close folder \"new\": %s"
+msgstr ""
+
+#: src/mn-maildir-mailbox.gob:129
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr ""
@@ -691,31 +704,31 @@ msgstr ""
 msgid "multi-threading is not available"
 msgstr ""
 
-#: src/mn-main.c:244
-msgid "Unable to initialize the GnomeVFS library."
-msgstr ""
-
-#: src/mn-main.c:252
+#: src/mn-main.c:243
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
 
-#: src/mn-main.c:263
+#: src/mn-main.c:248
+msgid "Unable to initialize the GnomeVFS library."
+msgstr ""
+
+#: src/mn-main.c:270
 msgid "updating the mail status"
 msgstr ""
 
-#: src/mn-main.c:279
+#: src/mn-main.c:286
 msgid "Mail Notification is already running"
 msgstr ""
 
-#: src/mn-main.c:286
+#: src/mn-main.c:293
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 
-#: src/mn-main.c:290
+#: src/mn-main.c:297
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -863,17 +876,22 @@ msgstr ""
 msgid "Select _All"
 msgstr ""
 
-#: src/mn-sylpheed-mailbox.gob:83
+#: src/mn-sylpheed-mailbox.gob:84
 #, c-format
 msgid "unable to open folder: %s"
 msgstr ""
 
-#: src/mn-sylpheed-mailbox.gob:114
+#: src/mn-sylpheed-mailbox.gob:118
+#, c-format
+msgid "unable to close folder: %s"
+msgstr ""
+
+#: src/mn-sylpheed-mailbox.gob:121
 #, c-format
 msgid "error while reading folder: %s"
 msgstr ""
 
-#: src/mn-system-mailbox-properties.gob:33 src/mn-uri.c:617
+#: src/mn-system-mailbox-properties.gob:33 src/mn-uri.c:672
 msgid "System Mailbox"
 msgstr ""
 
@@ -990,3 +1008,26 @@ msgstr ""
 #: ui/properties.glade.h:16
 msgid "seconds"
 msgstr ""
+
+#: ui/welcome.glade.h:1
+msgid ""
+"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
+"\n"
+"Mail Notification has been loaded successfully.\n"
+"\n"
+"Since this is the first time you run Mail Notification, you might want to "
+"configure it.\n"
+"\n"
+"Note: this message will not be shown anymore. To configure Mail Notification "
+"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
+"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
+"span>."
+msgstr ""
+
+#: ui/welcome.glade.h:8
+msgid "_Configure Mail Notification"
+msgstr ""
+
+#: ui/welcome.glade.h:9
+msgid "_Skip configuration"
+msgstr ""
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-08-16 18:15+0200\n"
+"POT-Creation-Date: 2004-08-19 00:12+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"
@@ -60,74 +60,83 @@ msgid "Double-clicked command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:4
-msgid "Height of properties dialog"
+msgid "Has already been run"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:5
-msgid "Mailboxes list"
+msgid "Height of properties dialog"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:6
-msgid "Minutes between mail checks"
+msgid "Mailboxes list"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:7
-msgid "New mail command"
+msgid "Minutes between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:8
+msgid "New mail command"
+msgstr ""
+
+#: data/mail-notification.schemas.in.h:9
 #, fuzzy
 msgid "Run a command when new mail arrives"
 msgstr ""
 "Иконка в облаÑти ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸, уведомлÑÑŽÑ‰Ð°Ñ Ð¾ приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:10
 #, fuzzy
 msgid "Run a command when the icon is double-clicked"
 msgstr ""
 "Иконка в облаÑти ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸, уведомлÑÑŽÑ‰Ð°Ñ Ð¾ приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:11
 msgid "Seconds between mail checks"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:11
+#: data/mail-notification.schemas.in.h:12
 #, fuzzy
 msgid "The command to run when new mail arrives."
 msgstr ""
 "Иконка в облаÑти ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸, уведомлÑÑŽÑ‰Ð°Ñ Ð¾ приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:12
+#: data/mail-notification.schemas.in.h:13
 #, fuzzy
 msgid "The command to run when the icon is double-clicked."
 msgstr ""
 "Иконка в облаÑти ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸, уведомлÑÑŽÑ‰Ð°Ñ Ð¾ приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:14
 msgid "The height of the properties dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:15
 msgid "The list of mailboxes to monitor."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:16
 msgid "The width of the properties dialog in pixels."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:17
+#, fuzzy
+msgid "Whether Mail Notification has already been run or not."
+msgstr "Иконка входÑщих Ñообщений"
+
+#: data/mail-notification.schemas.in.h:18
 #, fuzzy
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 "Иконка в облаÑти ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸, уведомлÑÑŽÑ‰Ð°Ñ Ð¾ приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:17
+#: data/mail-notification.schemas.in.h:19
 #, fuzzy
 msgid "Whether to run a command when the icon is double-clicked or not."
 msgstr ""
 "Иконка в облаÑти ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð½ÐµÐ»Ð¸, уведомлÑÑŽÑ‰Ð°Ñ Ð¾ приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:20
 msgid "Width of properties dialog"
 msgstr ""
 
@@ -175,178 +184,178 @@ msgstr ""
 msgid "Whether the image is blinking or not"
 msgstr ""
 
-#: src/mn-client-session.c:196 src/mn-client-session.c:203
+#: src/mn-client-session.c:195 src/mn-client-session.c:202
 #, c-format
 msgid "unable to read from server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:201
+#: src/mn-client-session.c:200
 msgid "unable to read from server: EOF"
 msgstr ""
 
-#: src/mn-client-session.c:213
+#: src/mn-client-session.c:212
 #, c-format
 msgid "unable to decode data using SASL: %s"
 msgstr ""
 
-#: src/mn-client-session.c:287
+#: src/mn-client-session.c:286
 #, c-format
 msgid "resolving %s"
 msgstr ""
 
-#: src/mn-client-session.c:297
+#: src/mn-client-session.c:296
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr ""
 
-#: src/mn-client-session.c:334
+#: src/mn-client-session.c:333
 #, c-format
 msgid "%s: unsupported address family"
 msgstr ""
 
-#: src/mn-client-session.c:341
+#: src/mn-client-session.c:340
 #, c-format
 msgid "%s: unable to create socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:345
+#: src/mn-client-session.c:344
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr ""
 
-#: src/mn-client-session.c:348
+#: src/mn-client-session.c:347
 #, c-format
 msgid "unable to connect: %s"
 msgstr ""
 
-#: src/mn-client-session.c:353
+#: src/mn-client-session.c:352
 msgid "connected successfully"
 msgstr ""
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:359
+#: src/mn-client-session.c:358
 #, c-format
 msgid "unable to connect to %s"
 msgstr ""
 
-#: src/mn-client-session.c:375
+#: src/mn-client-session.c:374
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr ""
 
-#: src/mn-client-session.c:383
+#: src/mn-client-session.c:382
 #, c-format
 msgid "unable to create a SSL object: %s"
 msgstr ""
 
-#: src/mn-client-session.c:389
+#: src/mn-client-session.c:388
 #, c-format
 msgid "unable to set the SSL file descriptor: %s"
 msgstr ""
 
-#: src/mn-client-session.c:444
+#: src/mn-client-session.c:443
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr ""
 
-#: src/mn-client-session.c:470
+#: src/mn-client-session.c:469
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr ""
 
-#: src/mn-client-session.c:517
+#: src/mn-client-session.c:516
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr ""
 
-#: src/mn-client-session.c:546 src/mn-client-session.c:553
+#: src/mn-client-session.c:545 src/mn-client-session.c:552
 #, c-format
 msgid "unable to write to server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:551
+#: src/mn-client-session.c:550
 msgid "unable to write to server: EOF"
 msgstr ""
 
-#: src/mn-client-session.c:583
+#: src/mn-client-session.c:582
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr ""
 
-#: src/mn-client-session.c:686
+#: src/mn-client-session.c:685
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr ""
 
-#: src/mn-client-session.c:695
+#: src/mn-client-session.c:694
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:701
+#: src/mn-client-session.c:700
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:735
+#: src/mn-client-session.c:734
 #, c-format
 msgid "warning: unable to set SASL security properties: %s"
 msgstr ""
 
-#: src/mn-client-session.c:774
+#: src/mn-client-session.c:773
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
 
-#: src/mn-client-session.c:778
+#: src/mn-client-session.c:777
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr ""
 
-#: src/mn-client-session.c:782
+#: src/mn-client-session.c:781
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr ""
 
-#: src/mn-client-session.c:832
+#: src/mn-client-session.c:831
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr ""
 
-#: src/mn-client-session.c:836
+#: src/mn-client-session.c:835
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr ""
 
 #. compliance error
-#: src/mn-client-session.c:841
+#: src/mn-client-session.c:840
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:844
+#: src/mn-client-session.c:843
 msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
 msgstr ""
 
-#: src/mn-client-session.c:858
+#: src/mn-client-session.c:857
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
 msgstr ""
 
-#: src/mn-client-session.c:881
+#: src/mn-client-session.c:880
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr ""
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:886
+#: src/mn-client-session.c:885
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr ""
 
-#: src/mn-client-session.c:892
+#: src/mn-client-session.c:891
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr ""
@@ -367,30 +376,30 @@ msgstr ""
 msgid "unable to parse Gmail URI"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:180
+#: src/mn-gmail-mailbox.gob:182
 msgid "logging in"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:194 src/mn-gmail-mailbox.gob:233
-#: src/mn-gmail-mailbox.gob:266 src/mn-gmail-mailbox.gob:370
+#: src/mn-gmail-mailbox.gob:201 src/mn-gmail-mailbox.gob:240
+#: src/mn-gmail-mailbox.gob:273 src/mn-gmail-mailbox.gob:377
 #, c-format
 msgid "unable to transfer data: %s"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:219 src/mn-gmail-mailbox.gob:252
-#: src/mn-gmail-mailbox.gob:286
+#: src/mn-gmail-mailbox.gob:226 src/mn-gmail-mailbox.gob:259
+#: src/mn-gmail-mailbox.gob:293
 msgid "login failed"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:280
+#: src/mn-gmail-mailbox.gob:287
 msgid "successfully logged in"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:358
+#: src/mn-gmail-mailbox.gob:365
 msgid "searching for unread mail"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:377
+#: src/mn-gmail-mailbox.gob:384
 msgid "unable to parse Gmail data"
 msgstr ""
 
@@ -448,30 +457,30 @@ msgid "unable to login"
 msgstr ""
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:319
+#: src/mn-imap-mailbox.gob:336
 msgid "server did not send status"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:537 src/mn-pop3-mailbox.gob:715
+#: src/mn-imap-mailbox.gob:554 src/mn-pop3-mailbox.gob:715
 msgid "unknown server error"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:603 src/mn-pop3-mailbox.gob:645
+#: src/mn-imap-mailbox.gob:625 src/mn-pop3-mailbox.gob:645
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:611 src/mn-pop3-mailbox.gob:657
+#: src/mn-imap-mailbox.gob:633 src/mn-pop3-mailbox.gob:657
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:629
+#: src/mn-imap-mailbox.gob:651
 msgid "falling back to IMAP LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:633 src/mn-pop3-mailbox.gob:691
+#: src/mn-imap-mailbox.gob:655 src/mn-pop3-mailbox.gob:691
 msgid "authentication failed"
 msgstr ""
 
@@ -658,12 +667,17 @@ msgstr ""
 msgid "%s reported an error: %s"
 msgstr ""
 
-#: src/mn-maildir-mailbox.gob:97
+#: src/mn-maildir-mailbox.gob:98
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr ""
 
-#: src/mn-maildir-mailbox.gob:122
+#: src/mn-maildir-mailbox.gob:126
+#, c-format
+msgid "unable to close folder \"new\": %s"
+msgstr ""
+
+#: src/mn-maildir-mailbox.gob:129
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr ""
@@ -710,32 +724,32 @@ msgstr ""
 msgid "multi-threading is not available"
 msgstr ""
 
-#: src/mn-main.c:244
-msgid "Unable to initialize the GnomeVFS library."
-msgstr ""
-
-#: src/mn-main.c:252
+#: src/mn-main.c:243
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
 
-#: src/mn-main.c:263
+#: src/mn-main.c:248
+msgid "Unable to initialize the GnomeVFS library."
+msgstr ""
+
+#: src/mn-main.c:270
 msgid "updating the mail status"
 msgstr ""
 
-#: src/mn-main.c:279
+#: src/mn-main.c:286
 #, fuzzy
 msgid "Mail Notification is already running"
 msgstr "Иконка входÑщих Ñообщений"
 
-#: src/mn-main.c:286
+#: src/mn-main.c:293
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 
-#: src/mn-main.c:290
+#: src/mn-main.c:297
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -883,17 +897,22 @@ msgstr ""
 msgid "Select _All"
 msgstr ""
 
-#: src/mn-sylpheed-mailbox.gob:83
+#: src/mn-sylpheed-mailbox.gob:84
 #, c-format
 msgid "unable to open folder: %s"
 msgstr ""
 
-#: src/mn-sylpheed-mailbox.gob:114
+#: src/mn-sylpheed-mailbox.gob:118
+#, c-format
+msgid "unable to close folder: %s"
+msgstr ""
+
+#: src/mn-sylpheed-mailbox.gob:121
 #, c-format
 msgid "error while reading folder: %s"
 msgstr ""
 
-#: src/mn-system-mailbox-properties.gob:33 src/mn-uri.c:617
+#: src/mn-system-mailbox-properties.gob:33 src/mn-uri.c:672
 msgid "System Mailbox"
 msgstr ""
 
@@ -1015,3 +1034,27 @@ msgstr ""
 #: ui/properties.glade.h:16
 msgid "seconds"
 msgstr ""
+
+#: ui/welcome.glade.h:1
+msgid ""
+"<span weight=\"bold\" size=\"larger\">First startup</span>\n"
+"\n"
+"Mail Notification has been loaded successfully.\n"
+"\n"
+"Since this is the first time you run Mail Notification, you might want to "
+"configure it.\n"
+"\n"
+"Note: this message will not be shown anymore. To configure Mail Notification "
+"again, choose <span weight=\"bold\">Applications</span> → <span weight=\"bold"
+"\">Desktop Preferences</span> → <span weight=\"bold\">Mail Notification</"
+"span>."
+msgstr ""
+
+#: ui/welcome.glade.h:8
+#, fuzzy
+msgid "_Configure Mail Notification"
+msgstr "Иконка входÑщих Ñообщений"
+
+#: ui/welcome.glade.h:9
+msgid "_Skip configuration"
+msgstr ""
diff --git a/src/Makefile.am b/src/Makefile.am
@@ -207,18 +207,16 @@ mail_notification_SOURCES = \
 	mn-vfs.h
 BUILT_SOURCES = $(idl_built_sources) $(gob_built_sources)
 
-mail_notification_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
-
-gnomelocaledir = $(datadir)/locale
 AM_CPPFLAGS = $(WARN_CFLAGS) $(G_ASSERTIONS) $(GNOME_CFLAGS) $(SOUP_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) \
 	-I$(top_srcdir) \
 	-DPREFIX="\"$(prefix)\"" \
 	-DSYSCONFDIR="\"$(sysconfdir)\"" \
 	-DDATADIR="\"$(datadir)\"" \
 	-DLIBDIR="\"$(libdir)\"" \
-	-DGNOMELOCALEDIR="\"$(gnomelocaledir)\"" \
+	-DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
 	-DUIDIR="\"$(pkgdatadir)/ui\"" \
 	-DG_LOG_DOMAIN="\"$(PACKAGE)\""
+AM_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
 
 CLEANFILES = $(idl_built_sources)
 MAINTAINERCLEANFILES = $(gob_built_sources)
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -542,18 +542,17 @@ mail_notification_SOURCES = \
 	mn-vfs.h
 
 BUILT_SOURCES = $(idl_built_sources) $(gob_built_sources)
-mail_notification_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
-gnomelocaledir = $(datadir)/locale
 AM_CPPFLAGS = $(WARN_CFLAGS) $(G_ASSERTIONS) $(GNOME_CFLAGS) $(SOUP_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) \
 	-I$(top_srcdir) \
 	-DPREFIX="\"$(prefix)\"" \
 	-DSYSCONFDIR="\"$(sysconfdir)\"" \
 	-DDATADIR="\"$(datadir)\"" \
 	-DLIBDIR="\"$(libdir)\"" \
-	-DGNOMELOCALEDIR="\"$(gnomelocaledir)\"" \
+	-DGNOMELOCALEDIR="\"$(datadir)/locale\"" \
 	-DUIDIR="\"$(pkgdatadir)/ui\"" \
 	-DG_LOG_DOMAIN="\"$(PACKAGE)\""
 
+AM_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
 CLEANFILES = $(idl_built_sources)
 MAINTAINERCLEANFILES = $(gob_built_sources)
 all: $(BUILT_SOURCES)
diff --git a/src/mn-about-dialog.c b/src/mn-about-dialog.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -125,7 +125,7 @@ mn_about_dialog_init (MNAboutDialog * self G_GNUC_UNUSED)
 			  logo);
     g_object_unref(logo);
 
-    icon = mn_pixbuf_new("about-icon.png");
+    icon = mn_pixbuf_new("mail-notification.png");
     gtk_window_set_icon(GTK_WINDOW(self), icon);
     g_object_unref(icon);
   
diff --git a/src/mn-about-dialog.gob b/src/mn-about-dialog.gob
@@ -45,7 +45,7 @@ class MN:About:Dialog from Gnome:About
 			  logo);
     g_object_unref(logo);
 
-    icon = mn_pixbuf_new("about-icon.png");
+    icon = mn_pixbuf_new("mail-notification.png");
     gtk_window_set_icon(GTK_WINDOW(self), icon);
     g_object_unref(icon);
   }
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.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
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.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-automation.c b/src/mn-automation.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 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.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -136,7 +136,7 @@ ___finalize(GObject *obj_self)
 #define VAR timeout_id
 	{
 #line 49 "mn-blinking-image.gob"
-	 g_source_remove(VAR); }
+	 if (VAR) g_source_remove(VAR); }
 #line 141 "mn-blinking-image.c"
 	memset(&timeout_id, 0, sizeof(timeout_id));
 #undef VAR
diff --git a/src/mn-blinking-image.gob b/src/mn-blinking-image.gob
@@ -46,7 +46,7 @@ class MN:Blinking:Image from Gtk:Image
       g_value_set_boolean(VAL, selfp->blinking);
     };
 
-  private unsigned int timeout_id destroy { g_source_remove(VAR); };
+  private unsigned int timeout_id destroy { if (VAR) g_source_remove(VAR); };
   private gboolean is_on = TRUE; /* is currently displaying the on pixbuf? */
   private GdkPixbuf *on_pixbuf unrefwith g_object_unref;
   private GdkPixbuf *off_pixbuf unrefwith g_object_unref;
diff --git a/src/mn-client-session.c b/src/mn-client-session.c
@@ -26,7 +26,6 @@
 #include <unistd.h>
 #include <sys/socket.h>
 #include <netdb.h>
-#include <sys/param.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <errno.h>
@@ -258,7 +257,7 @@ mn_client_session_run (MNClientSessionState *states,
 #endif /* WITH_SASL */
   if (session.error)
     {
-      g_set_error(err, 0, 0, session.error);
+      g_set_error(err, 0, 0, "%s", session.error);
       g_free(session.error);
       return FALSE;
     }
diff --git a/src/mn-conf.h b/src/mn-conf.h
@@ -44,6 +44,7 @@
 #define MN_CONF_UI_NAMESPACE			MN_CONF_NAMESPACE "/ui"
 #define MN_CONF_PREFERENCES_DIALOG		MN_CONF_UI_NAMESPACE "/preferences-dialog"	/* obsolete */
 #define MN_CONF_PROPERTIES_DIALOG		MN_CONF_UI_NAMESPACE "/properties-dialog"
+#define MN_CONF_ALREADY_RUN			MN_CONF_NAMESPACE "/already-run"
 
 void		mn_conf_init		(void);
 
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.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-gmail-mailbox.c b/src/mn-gmail-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -409,6 +409,8 @@ mn_gmail_mailbox_login (MNGmailMailbox * self)
 #line 171 "mn-gmail-mailbox.gob"
 	
     char *uri;
+    char *escaped_username;
+    char *escaped_password;
 
     g_return_if_fail(selfp->logged_in == FALSE);
 
@@ -418,26 +420,31 @@ mn_gmail_mailbox_login (MNGmailMailbox * self)
 	
     mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
 
-    uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", selfp->username, selfp->password);
+    escaped_username = gnome_vfs_escape_string(selfp->username);
+    escaped_password = gnome_vfs_escape_string(selfp->password);
+    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);
+
     self_get(self, uri, self_login_cb1);
     g_free(uri);
   }}
-#line 426 "mn-gmail-mailbox.c"
+#line 433 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 187 "mn-gmail-mailbox.gob"
+#line 194 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_login_cb1 (SoupMessage * message, gpointer user_data)
-#line 432 "mn-gmail-mailbox.c"
+#line 439 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login_cb1"
-#line 187 "mn-gmail-mailbox.gob"
+#line 194 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 187 "mn-gmail-mailbox.gob"
+#line 194 "mn-gmail-mailbox.gob"
 	g_return_if_fail (user_data != NULL);
-#line 439 "mn-gmail-mailbox.c"
+#line 446 "mn-gmail-mailbox.c"
 {
-#line 190 "mn-gmail-mailbox.gob"
+#line 197 "mn-gmail-mailbox.gob"
 	
     Self *self = user_data;
 
@@ -473,22 +480,22 @@ mn_gmail_mailbox_login_cb1 (SoupMessage * message, gpointer user_data)
     /* if this point is reached, an error occurred */
     mn_mailbox_end_check(MN_MAILBOX(self));
   }}
-#line 477 "mn-gmail-mailbox.c"
+#line 484 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 226 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_login_cb2 (SoupMessage * message, gpointer user_data)
-#line 483 "mn-gmail-mailbox.c"
+#line 490 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login_cb2"
-#line 226 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 226 "mn-gmail-mailbox.gob"
+#line 233 "mn-gmail-mailbox.gob"
 	g_return_if_fail (user_data != NULL);
-#line 490 "mn-gmail-mailbox.c"
+#line 497 "mn-gmail-mailbox.c"
 {
-#line 229 "mn-gmail-mailbox.gob"
+#line 236 "mn-gmail-mailbox.gob"
 	
     Self *self = user_data;
 
@@ -518,22 +525,22 @@ mn_gmail_mailbox_login_cb2 (SoupMessage * message, gpointer user_data)
     /* if this point is reached, an error occurred */
     mn_mailbox_end_check(MN_MAILBOX(self));
   }}
-#line 522 "mn-gmail-mailbox.c"
+#line 529 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 259 "mn-gmail-mailbox.gob"
+#line 266 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_login_cb3 (SoupMessage * message, gpointer user_data)
-#line 528 "mn-gmail-mailbox.c"
+#line 535 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login_cb3"
-#line 259 "mn-gmail-mailbox.gob"
+#line 266 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 259 "mn-gmail-mailbox.gob"
+#line 266 "mn-gmail-mailbox.gob"
 	g_return_if_fail (user_data != NULL);
-#line 535 "mn-gmail-mailbox.c"
+#line 542 "mn-gmail-mailbox.c"
 {
-#line 262 "mn-gmail-mailbox.gob"
+#line 269 "mn-gmail-mailbox.gob"
 	
     Self *self = user_data;
 
@@ -564,24 +571,24 @@ mn_gmail_mailbox_login_cb3 (SoupMessage * message, gpointer user_data)
     /* if this point is reached, an error occurred */
     mn_mailbox_end_check(MN_MAILBOX(self));
   }}
-#line 568 "mn-gmail-mailbox.c"
+#line 575 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 293 "mn-gmail-mailbox.gob"
+#line 300 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
-#line 574 "mn-gmail-mailbox.c"
+#line 581 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::update_cookies"
-#line 293 "mn-gmail-mailbox.gob"
+#line 300 "mn-gmail-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 293 "mn-gmail-mailbox.gob"
+#line 300 "mn-gmail-mailbox.gob"
 	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 293 "mn-gmail-mailbox.gob"
+#line 300 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 583 "mn-gmail-mailbox.c"
+#line 590 "mn-gmail-mailbox.c"
 {
-#line 295 "mn-gmail-mailbox.gob"
+#line 302 "mn-gmail-mailbox.gob"
 	
     const GSList *set_cookie_headers;
     const GSList *l;
@@ -593,7 +600,7 @@ mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
 	char *equal;
 
 	equal = strchr(value, '=');
-	if (equal)
+	if (equal && equal - value > 0)
 	  {
 	    char *end;
 	    char *cookie_name;
@@ -610,22 +617,22 @@ mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
 	  }
       }
   }}
-#line 614 "mn-gmail-mailbox.c"
+#line 621 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 324 "mn-gmail-mailbox.gob"
+#line 331 "mn-gmail-mailbox.gob"
 static char * 
 mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
-#line 620 "mn-gmail-mailbox.c"
+#line 627 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie"
-#line 324 "mn-gmail-mailbox.gob"
+#line 331 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (self != NULL, (char * )0);
-#line 324 "mn-gmail-mailbox.gob"
+#line 331 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 627 "mn-gmail-mailbox.c"
+#line 634 "mn-gmail-mailbox.c"
 {
-#line 326 "mn-gmail-mailbox.gob"
+#line 333 "mn-gmail-mailbox.gob"
 	
     GString *cookie;
     char *str;
@@ -643,17 +650,17 @@ mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
 
     return str;
   }}
-#line 647 "mn-gmail-mailbox.c"
+#line 654 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 344 "mn-gmail-mailbox.gob"
+#line 351 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
-#line 653 "mn-gmail-mailbox.c"
+#line 660 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie_cb"
 {
-#line 346 "mn-gmail-mailbox.gob"
+#line 353 "mn-gmail-mailbox.gob"
 	
     GString *cookie = user_data;
 
@@ -662,41 +669,41 @@ 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 666 "mn-gmail-mailbox.c"
+#line 673 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 355 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_check_internal (MNGmailMailbox * self)
-#line 672 "mn-gmail-mailbox.c"
+#line 679 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check_internal"
-#line 355 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 355 "mn-gmail-mailbox.gob"
+#line 362 "mn-gmail-mailbox.gob"
 	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 679 "mn-gmail-mailbox.c"
+#line 686 "mn-gmail-mailbox.c"
 {
-#line 357 "mn-gmail-mailbox.gob"
+#line 364 "mn-gmail-mailbox.gob"
 	
     mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
 
     self_get(self, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", self_check_internal_cb);
   }}
-#line 687 "mn-gmail-mailbox.c"
+#line 694 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 363 "mn-gmail-mailbox.gob"
+#line 370 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_check_internal_cb (SoupMessage * message, gpointer user_data)
-#line 693 "mn-gmail-mailbox.c"
+#line 700 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check_internal_cb"
-#line 363 "mn-gmail-mailbox.gob"
+#line 370 "mn-gmail-mailbox.gob"
 	g_return_if_fail (message != NULL);
-#line 698 "mn-gmail-mailbox.c"
+#line 705 "mn-gmail-mailbox.c"
 {
-#line 366 "mn-gmail-mailbox.gob"
+#line 373 "mn-gmail-mailbox.gob"
 	
     Self *self = user_data;
 
@@ -715,20 +722,20 @@ mn_gmail_mailbox_check_internal_cb (SoupMessage * message, gpointer user_data)
 
     mn_mailbox_end_check(MN_MAILBOX(self));
   }}
-#line 719 "mn-gmail-mailbox.c"
+#line 726 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 385 "mn-gmail-mailbox.gob"
+#line 392 "mn-gmail-mailbox.gob"
 static int 
 mn_gmail_mailbox_get_unread_count (SoupMessage * message)
-#line 725 "mn-gmail-mailbox.c"
+#line 732 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_unread_count"
-#line 385 "mn-gmail-mailbox.gob"
+#line 392 "mn-gmail-mailbox.gob"
 	g_return_val_if_fail (message != NULL, (int )0);
-#line 730 "mn-gmail-mailbox.c"
+#line 737 "mn-gmail-mailbox.c"
 {
-#line 387 "mn-gmail-mailbox.gob"
+#line 394 "mn-gmail-mailbox.gob"
 	
     int count = -1;
     char *body;
@@ -754,5 +761,5 @@ mn_gmail_mailbox_get_unread_count (SoupMessage * message)
     
     return count;
   }}
-#line 758 "mn-gmail-mailbox.c"
+#line 765 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-gmail-mailbox.gob b/src/mn-gmail-mailbox.gob
@@ -170,6 +170,8 @@ class MN:Gmail:Mailbox from MN:Mailbox
     login (self)
   {
     char *uri;
+    char *escaped_username;
+    char *escaped_password;
 
     g_return_if_fail(selfp->logged_in == FALSE);
 
@@ -179,7 +181,12 @@ class MN:Gmail:Mailbox from MN:Mailbox
 	
     mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
 
-    uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", selfp->username, selfp->password);
+    escaped_username = gnome_vfs_escape_string(selfp->username);
+    escaped_password = gnome_vfs_escape_string(selfp->password);
+    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);
+
     self_get(self, uri, self_login_cb1);
     g_free(uri);
   }
@@ -303,7 +310,7 @@ class MN:Gmail:Mailbox from MN:Mailbox
 	char *equal;
 
 	equal = strchr(value, '=');
-	if (equal)
+	if (equal && equal - value > 0)
 	  {
 	    char *end;
 	    char *cookie_name;
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.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-imap-mailbox.c b/src/mn-imap-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -124,6 +124,7 @@ static void mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate *
 static gboolean mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const char * capability) G_GNUC_UNUSED;
 static int mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static char * mn_imap_mailbox_quote (const char * str) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
 static MNMailboxClass *parent_class = NULL;
@@ -150,6 +151,7 @@ static MNMailboxClass *parent_class = NULL;
 #define self_session_has_capability mn_imap_mailbox_session_has_capability
 #define self_session_authenticate mn_imap_mailbox_session_authenticate
 #define self_session_authenticate_fallback mn_imap_mailbox_session_authenticate_fallback
+#define self_quote mn_imap_mailbox_quote
 GType
 mn_imap_mailbox_get_type (void)
 {
@@ -203,19 +205,19 @@ ___finalize(GObject *obj_self)
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
 #line 89 "mn-imap-mailbox.gob"
 	if(self->_priv->hostname) { ((*(void (*)(void *))g_free)) (self->_priv->hostname); self->_priv->hostname = NULL; }
-#line 207 "mn-imap-mailbox.c"
+#line 209 "mn-imap-mailbox.c"
 #line 91 "mn-imap-mailbox.gob"
 	if(self->_priv->username) { ((*(void (*)(void *))g_free)) (self->_priv->username); self->_priv->username = NULL; }
-#line 210 "mn-imap-mailbox.c"
+#line 212 "mn-imap-mailbox.c"
 #line 92 "mn-imap-mailbox.gob"
 	if(self->_priv->password) { ((*(void (*)(void *))g_free)) (self->_priv->password); self->_priv->password = NULL; }
-#line 213 "mn-imap-mailbox.c"
+#line 215 "mn-imap-mailbox.c"
 #line 93 "mn-imap-mailbox.gob"
 	if(self->_priv->authmech) { ((*(void (*)(void *))g_free)) (self->_priv->authmech); self->_priv->authmech = NULL; }
-#line 216 "mn-imap-mailbox.c"
+#line 218 "mn-imap-mailbox.c"
 #line 94 "mn-imap-mailbox.gob"
 	if(self->_priv->mailbox) { ((*(void (*)(void *))g_free)) (self->_priv->mailbox); self->_priv->mailbox = NULL; }
-#line 219 "mn-imap-mailbox.c"
+#line 221 "mn-imap-mailbox.c"
 	g_free (priv);
 }
 #undef __GOB_FUNCTION__
@@ -230,7 +232,7 @@ mn_imap_mailbox_init (MNIMAPMailbox * o G_GNUC_UNUSED)
 #line 97 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
-#line 234 "mn-imap-mailbox.c"
+#line 236 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
@@ -242,16 +244,16 @@ mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
 	g_object_class->constructor = ___2_mn_imap_mailbox_constructor;
 #line 133 "mn-imap-mailbox.gob"
 	mn_mailbox_class->impl_is = ___3_mn_imap_mailbox_impl_is;
-#line 374 "mn-imap-mailbox.gob"
+#line 391 "mn-imap-mailbox.gob"
 	mn_mailbox_class->impl_threaded_check = ___f_mn_imap_mailbox_impl_threaded_check;
-#line 248 "mn-imap-mailbox.c"
+#line 250 "mn-imap-mailbox.c"
 	g_object_class->finalize = ___finalize;
  {
 #line 98 "mn-imap-mailbox.gob"
 
     MN_MAILBOX_CLASS(class)->format = "IMAP";
   
-#line 255 "mn-imap-mailbox.c"
+#line 257 "mn-imap-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
@@ -261,7 +263,7 @@ mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
 #line 102 "mn-imap-mailbox.gob"
 static GObject * 
 ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 265 "mn-imap-mailbox.c"
+#line 267 "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): \
@@ -298,14 +300,14 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, guint n_construct_pr
 
     return object;
   }}
-#line 302 "mn-imap-mailbox.c"
+#line 304 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
 #line 133 "mn-imap-mailbox.gob"
 static gboolean 
 ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
-#line 309 "mn-imap-mailbox.c"
+#line 311 "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): \
@@ -314,7 +316,7 @@ ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_is"
 #line 133 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 318 "mn-imap-mailbox.c"
+#line 320 "mn-imap-mailbox.c"
 {
 #line 135 "mn-imap-mailbox.gob"
 	
@@ -327,14 +329,14 @@ ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
 
     return is;
   }}
-#line 331 "mn-imap-mailbox.c"
+#line 333 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
 #line 146 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 338 "mn-imap-mailbox.c"
+#line 340 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_greeting_cb"
 #line 146 "mn-imap-mailbox.gob"
@@ -343,7 +345,7 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
 	g_return_val_if_fail (response != NULL, (int )0);
 #line 146 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 347 "mn-imap-mailbox.c"
+#line 349 "mn-imap-mailbox.c"
 {
 #line 150 "mn-imap-mailbox.gob"
 	
@@ -370,32 +372,32 @@ 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"
 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"
 	g_return_val_if_fail (session != NULL, (int )0);
 #line 175 "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"
 	
     return self_session_write(priv, "CAPABILITY");
   }}
-#line 393 "mn-imap-mailbox.c"
+#line 395 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 182 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 399 "mn-imap-mailbox.c"
+#line 401 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_cb"
 #line 182 "mn-imap-mailbox.gob"
@@ -404,7 +406,7 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
 	g_return_val_if_fail (response != NULL, (int )0);
 #line 182 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 408 "mn-imap-mailbox.c"
+#line 410 "mn-imap-mailbox.c"
 {
 #line 186 "mn-imap-mailbox.gob"
 	
@@ -432,20 +434,20 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
     
     return RESULT_DEFAULT_HANDLER;
   }}
-#line 436 "mn-imap-mailbox.c"
+#line 438 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 212 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 442 "mn-imap-mailbox.c"
+#line 444 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_authenticate_cb"
 #line 212 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
 #line 212 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 449 "mn-imap-mailbox.c"
+#line 451 "mn-imap-mailbox.c"
 {
 #line 215 "mn-imap-mailbox.gob"
 	
@@ -462,13 +464,13 @@ mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessio
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 466 "mn-imap-mailbox.c"
+#line 468 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 230 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 472 "mn-imap-mailbox.c"
+#line 474 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_authenticate_cb"
 #line 230 "mn-imap-mailbox.gob"
@@ -477,7 +479,7 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
 	g_return_val_if_fail (response != NULL, (int )0);
 #line 230 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 481 "mn-imap-mailbox.c"
+#line 483 "mn-imap-mailbox.c"
 {
 #line 234 "mn-imap-mailbox.gob"
 	
@@ -506,20 +508,20 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 510 "mn-imap-mailbox.c"
+#line 512 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 #line 261 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 516 "mn-imap-mailbox.c"
+#line 518 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_login_cb"
 #line 261 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
 #line 261 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 523 "mn-imap-mailbox.c"
+#line 525 "mn-imap-mailbox.c"
 {
 #line 264 "mn-imap-mailbox.gob"
 	
@@ -530,28 +532,38 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
       return STATE_LOGOUT;
     }
     else
-      return self_session_write(priv, "LOGIN %s %s",
-				priv->mailbox->_priv->username,
-				priv->mailbox->_priv->password);
+      {
+	char *quoted_username;
+	char *quoted_password;
+	int result;
+
+	quoted_username = self_quote(priv->mailbox->_priv->username);
+	quoted_password = self_quote(priv->mailbox->_priv->password);
+	result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
+	g_free(quoted_username);
+	g_free(quoted_password);
+
+	return result;
+      }
   }}
-#line 538 "mn-imap-mailbox.c"
+#line 550 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 277 "mn-imap-mailbox.gob"
+#line 287 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 544 "mn-imap-mailbox.c"
+#line 556 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_login_cb"
-#line 277 "mn-imap-mailbox.gob"
+#line 287 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 277 "mn-imap-mailbox.gob"
+#line 287 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 277 "mn-imap-mailbox.gob"
+#line 287 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 553 "mn-imap-mailbox.c"
+#line 565 "mn-imap-mailbox.c"
 {
-#line 281 "mn-imap-mailbox.gob"
+#line 291 "mn-imap-mailbox.gob"
 	
     if (response->tag)
       {
@@ -568,43 +580,50 @@ mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionRespo
     
     return RESULT_DEFAULT_HANDLER;
   }}
-#line 572 "mn-imap-mailbox.c"
+#line 584 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 298 "mn-imap-mailbox.gob"
+#line 308 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_status_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 578 "mn-imap-mailbox.c"
+#line 590 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_status_cb"
-#line 298 "mn-imap-mailbox.gob"
+#line 308 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 298 "mn-imap-mailbox.gob"
+#line 308 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 585 "mn-imap-mailbox.c"
+#line 597 "mn-imap-mailbox.c"
 {
-#line 301 "mn-imap-mailbox.gob"
+#line 311 "mn-imap-mailbox.gob"
 	
-    return self_session_write(priv, "STATUS \"%s\" (UNSEEN)", priv->mailbox->_priv->mailbox);
+    char *quoted_mailbox;
+    int result;
+
+    quoted_mailbox = self_quote(priv->mailbox->_priv->mailbox);
+    result = self_session_write(priv, "STATUS %s (UNSEEN)", quoted_mailbox);
+    g_free(quoted_mailbox);
+
+    return result;
   }}
-#line 591 "mn-imap-mailbox.c"
+#line 610 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 305 "mn-imap-mailbox.gob"
+#line 322 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 597 "mn-imap-mailbox.c"
+#line 616 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_status_cb"
-#line 305 "mn-imap-mailbox.gob"
+#line 322 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 305 "mn-imap-mailbox.gob"
+#line 322 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 305 "mn-imap-mailbox.gob"
+#line 322 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 606 "mn-imap-mailbox.c"
+#line 625 "mn-imap-mailbox.c"
 {
-#line 309 "mn-imap-mailbox.gob"
+#line 326 "mn-imap-mailbox.gob"
 	
     if (response->tag)
       {
@@ -644,43 +663,43 @@ mn_imap_mailbox_handle_status_cb (MNClientSession * session, MNClientSessionResp
     
     return RESULT_DEFAULT_HANDLER;
   }}
-#line 648 "mn-imap-mailbox.c"
+#line 667 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 349 "mn-imap-mailbox.gob"
+#line 366 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 654 "mn-imap-mailbox.c"
+#line 673 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_logout_cb"
-#line 349 "mn-imap-mailbox.gob"
+#line 366 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 349 "mn-imap-mailbox.gob"
+#line 366 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 661 "mn-imap-mailbox.c"
+#line 680 "mn-imap-mailbox.c"
 {
-#line 352 "mn-imap-mailbox.gob"
+#line 369 "mn-imap-mailbox.gob"
 	
     return self_session_write(priv, "LOGOUT");
   }}
-#line 667 "mn-imap-mailbox.c"
+#line 686 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 356 "mn-imap-mailbox.gob"
+#line 373 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 673 "mn-imap-mailbox.c"
+#line 692 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_logout_cb"
-#line 356 "mn-imap-mailbox.gob"
+#line 373 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 356 "mn-imap-mailbox.gob"
+#line 373 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 356 "mn-imap-mailbox.gob"
+#line 373 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 682 "mn-imap-mailbox.c"
+#line 701 "mn-imap-mailbox.c"
 {
-#line 360 "mn-imap-mailbox.gob"
+#line 377 "mn-imap-mailbox.gob"
 	
     if (response->tag && HAS_CURRENT_TAG(response, priv))
       {
@@ -694,25 +713,25 @@ mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResp
     else
       return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }}
-#line 698 "mn-imap-mailbox.c"
+#line 717 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 374 "mn-imap-mailbox.gob"
+#line 391 "mn-imap-mailbox.gob"
 static void 
 ___f_mn_imap_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 704 "mn-imap-mailbox.c"
+#line 723 "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 374 "mn-imap-mailbox.gob"
+#line 391 "mn-imap-mailbox.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 374 "mn-imap-mailbox.gob"
+#line 391 "mn-imap-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 714 "mn-imap-mailbox.c"
+#line 733 "mn-imap-mailbox.c"
 {
-#line 376 "mn-imap-mailbox.gob"
+#line 393 "mn-imap-mailbox.gob"
 	
     Self *self = SELF(mailbox);
     MNClientSessionState states[] = {
@@ -767,46 +786,46 @@ ___f_mn_imap_mailbox_impl_threaded_check (MNMailbox * mailbox G_GNUC_UNUSED)
     g_strfreev(priv.capabilities);
     mn_pointers_free(priv.auth_mechanisms);
   }}
-#line 771 "mn-imap-mailbox.c"
+#line 790 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 431 "mn-imap-mailbox.gob"
+#line 448 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 778 "mn-imap-mailbox.c"
+#line 797 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::notice_cb"
-#line 431 "mn-imap-mailbox.gob"
+#line 448 "mn-imap-mailbox.gob"
 	g_return_if_fail (session != NULL);
-#line 431 "mn-imap-mailbox.gob"
+#line 448 "mn-imap-mailbox.gob"
 	g_return_if_fail (str != NULL);
-#line 431 "mn-imap-mailbox.gob"
+#line 448 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 787 "mn-imap-mailbox.c"
+#line 806 "mn-imap-mailbox.c"
 {
-#line 435 "mn-imap-mailbox.gob"
+#line 452 "mn-imap-mailbox.gob"
 	
     mn_mailbox_notice(MN_MAILBOX(priv->mailbox), "%s", str);
   }}
-#line 793 "mn-imap-mailbox.c"
+#line 812 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 439 "mn-imap-mailbox.gob"
+#line 456 "mn-imap-mailbox.gob"
 static MNClientSessionResponse * 
 mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 799 "mn-imap-mailbox.c"
+#line 818 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_new_cb"
-#line 439 "mn-imap-mailbox.gob"
+#line 456 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 439 "mn-imap-mailbox.gob"
+#line 456 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 439 "mn-imap-mailbox.gob"
+#line 456 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 808 "mn-imap-mailbox.c"
+#line 827 "mn-imap-mailbox.c"
 {
-#line 443 "mn-imap-mailbox.gob"
+#line 460 "mn-imap-mailbox.gob"
 	
     MNClientSessionResponse *response = NULL;
 
@@ -853,50 +872,50 @@ mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, 
     
     return response;
   }}
-#line 857 "mn-imap-mailbox.c"
+#line 876 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 490 "mn-imap-mailbox.gob"
+#line 507 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 863 "mn-imap-mailbox.c"
+#line 882 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_free_cb"
-#line 490 "mn-imap-mailbox.gob"
+#line 507 "mn-imap-mailbox.gob"
 	g_return_if_fail (session != NULL);
-#line 490 "mn-imap-mailbox.gob"
+#line 507 "mn-imap-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 490 "mn-imap-mailbox.gob"
+#line 507 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 872 "mn-imap-mailbox.c"
+#line 891 "mn-imap-mailbox.c"
 {
-#line 494 "mn-imap-mailbox.gob"
+#line 511 "mn-imap-mailbox.gob"
 	
-    g_free(response->tag);
     g_free(response->continuation);
+    g_free(response->tag);
     g_free(response->response);
     g_free(response->code);
     g_free(response->arguments);
     g_free(response);
   }}
-#line 883 "mn-imap-mailbox.c"
+#line 902 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 503 "mn-imap-mailbox.gob"
+#line 520 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 889 "mn-imap-mailbox.c"
+#line 908 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::custom_handler_cb"
-#line 503 "mn-imap-mailbox.gob"
+#line 520 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 503 "mn-imap-mailbox.gob"
+#line 520 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 503 "mn-imap-mailbox.gob"
+#line 520 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 898 "mn-imap-mailbox.c"
+#line 917 "mn-imap-mailbox.c"
 {
-#line 508 "mn-imap-mailbox.gob"
+#line 525 "mn-imap-mailbox.gob"
 	
     switch (result)
       {
@@ -918,47 +937,48 @@ mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionRes
 	g_return_val_if_reached(0);
       }
   }}
-#line 922 "mn-imap-mailbox.c"
+#line 941 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 530 "mn-imap-mailbox.gob"
+#line 547 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 928 "mn-imap-mailbox.c"
+#line 947 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_set_error_from_arguments"
-#line 530 "mn-imap-mailbox.gob"
+#line 547 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 530 "mn-imap-mailbox.gob"
+#line 547 "mn-imap-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 935 "mn-imap-mailbox.c"
+#line 954 "mn-imap-mailbox.c"
 {
-#line 533 "mn-imap-mailbox.gob"
+#line 550 "mn-imap-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 944 "mn-imap-mailbox.c"
+#line 963 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 540 "mn-imap-mailbox.gob"
+#line 557 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...)
-#line 950 "mn-imap-mailbox.c"
+#line 969 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_write"
-#line 540 "mn-imap-mailbox.gob"
+#line 557 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 540 "mn-imap-mailbox.gob"
+#line 557 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (format != NULL, (int )0);
-#line 957 "mn-imap-mailbox.c"
+#line 976 "mn-imap-mailbox.c"
 {
-#line 544 "mn-imap-mailbox.gob"
+#line 561 "mn-imap-mailbox.gob"
 	
     va_list args;
     char *command;
+    int result;
 
     va_start(args, format);
     command = g_strdup_vprintf(format, args);
@@ -966,25 +986,29 @@ mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * forma
     
     if (priv->numeric_tag == 1000)
       priv->numeric_tag = 0;
+
     g_free(priv->tag);
     priv->tag = g_strdup_printf("a%03i", priv->numeric_tag++);
 
-    return mn_client_session_write(priv->session, "%s %s", priv->tag, command);
+    result = mn_client_session_write(priv->session, "%s %s", priv->tag, command);
+    g_free(command);
+
+    return result;
   }}
-#line 975 "mn-imap-mailbox.c"
+#line 999 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 560 "mn-imap-mailbox.gob"
+#line 582 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities)
-#line 981 "mn-imap-mailbox.c"
+#line 1005 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_parse_capabilities"
-#line 560 "mn-imap-mailbox.gob"
+#line 582 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 986 "mn-imap-mailbox.c"
+#line 1010 "mn-imap-mailbox.c"
 {
-#line 563 "mn-imap-mailbox.gob"
+#line 585 "mn-imap-mailbox.gob"
 	
     if (capabilities)
       {
@@ -999,22 +1023,22 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
     else
       priv->capabilities = g_new0(char *, 1);
   }}
-#line 1003 "mn-imap-mailbox.c"
+#line 1027 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 578 "mn-imap-mailbox.gob"
+#line 600 "mn-imap-mailbox.gob"
 static gboolean 
 mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const char * capability)
-#line 1009 "mn-imap-mailbox.c"
+#line 1033 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_has_capability"
-#line 578 "mn-imap-mailbox.gob"
+#line 600 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (gboolean )0);
-#line 578 "mn-imap-mailbox.gob"
+#line 600 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (capability != NULL, (gboolean )0);
-#line 1016 "mn-imap-mailbox.c"
+#line 1040 "mn-imap-mailbox.c"
 {
-#line 581 "mn-imap-mailbox.gob"
+#line 603 "mn-imap-mailbox.gob"
 	
     int i;
 
@@ -1026,20 +1050,20 @@ mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const cha
     
     return FALSE;
   }}
-#line 1030 "mn-imap-mailbox.c"
+#line 1054 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 593 "mn-imap-mailbox.gob"
+#line 615 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1036 "mn-imap-mailbox.c"
+#line 1060 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate"
-#line 593 "mn-imap-mailbox.gob"
+#line 615 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1041 "mn-imap-mailbox.c"
+#line 1065 "mn-imap-mailbox.c"
 {
-#line 595 "mn-imap-mailbox.gob"
+#line 617 "mn-imap-mailbox.gob"
 	
     if (priv->mailbox->_priv->authmech)
       {
@@ -1068,20 +1092,20 @@ mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
 	return STATE_LOGIN;
       }
   }}
-#line 1072 "mn-imap-mailbox.c"
+#line 1096 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 624 "mn-imap-mailbox.gob"
+#line 646 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv)
-#line 1078 "mn-imap-mailbox.c"
+#line 1102 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate_fallback"
-#line 624 "mn-imap-mailbox.gob"
+#line 646 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1083 "mn-imap-mailbox.c"
+#line 1107 "mn-imap-mailbox.c"
 {
-#line 626 "mn-imap-mailbox.gob"
+#line 648 "mn-imap-mailbox.gob"
 	
     if (! priv->mailbox->_priv->authmech)
       {
@@ -1091,5 +1115,41 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv)
 
     return mn_client_session_error(priv->session, _("authentication failed"));
   }}
-#line 1095 "mn-imap-mailbox.c"
+#line 1119 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+/**
+ * mn_imap_mailbox_quote:
+ * @str: the string to quote
+ *
+ * Quotes a string using RFC 3501 BNF rules.
+ *
+ * Return value: the quoted string.
+ **/
+#line 666 "mn-imap-mailbox.gob"
+static char * 
+mn_imap_mailbox_quote (const char * str)
+#line 1133 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::quote"
+#line 666 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (str != NULL, (char * )0);
+#line 1138 "mn-imap-mailbox.c"
+{
+#line 668 "mn-imap-mailbox.gob"
+	
+    GString *quoted;
+    int i;
+
+    quoted = g_string_new("\"");
+    for (i = 0; str[i]; i++)
+      if (str[i] == '"' || str[i] == '\\') /* quoted-specials in BNF */
+	g_string_append_printf(quoted, "\\%c", str[i]);
+      else
+	g_string_append_c(quoted, str[i]);
+    g_string_append_c(quoted, '"');
+
+    return g_string_free(quoted, FALSE);
+  }}
+#line 1155 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-imap-mailbox.gob b/src/mn-imap-mailbox.gob
@@ -269,9 +269,19 @@ class MN:IMAP:Mailbox from MN:Mailbox
       return STATE_LOGOUT;
     }
     else
-      return self_session_write(priv, "LOGIN %s %s",
-				priv->mailbox->_priv->username,
-				priv->mailbox->_priv->password);
+      {
+	char *quoted_username;
+	char *quoted_password;
+	int result;
+
+	quoted_username = self_quote(priv->mailbox->_priv->username);
+	quoted_password = self_quote(priv->mailbox->_priv->password);
+	result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
+	g_free(quoted_username);
+	g_free(quoted_password);
+
+	return result;
+      }
   }
   
   private int
@@ -299,7 +309,14 @@ class MN:IMAP:Mailbox from MN:Mailbox
     enter_status_cb (MNClientSession *session (check null),
 		     MNClientSessionPrivate *priv (check null))
   {
-    return self_session_write(priv, "STATUS \"%s\" (UNSEEN)", priv->mailbox->_priv->mailbox);
+    char *quoted_mailbox;
+    int result;
+
+    quoted_mailbox = self_quote(priv->mailbox->_priv->mailbox);
+    result = self_session_write(priv, "STATUS %s (UNSEEN)", quoted_mailbox);
+    g_free(quoted_mailbox);
+
+    return result;
   }
   
   private int
@@ -492,8 +509,8 @@ class MN:IMAP:Mailbox from MN:Mailbox
 		      MNClientSessionResponse *response (check null),
 		      MNClientSessionPrivate *priv (check null))
   {
-    g_free(response->tag);
     g_free(response->continuation);
+    g_free(response->tag);
     g_free(response->response);
     g_free(response->code);
     g_free(response->arguments);
@@ -544,6 +561,7 @@ class MN:IMAP:Mailbox from MN:Mailbox
   {
     va_list args;
     char *command;
+    int result;
 
     va_start(args, format);
     command = g_strdup_vprintf(format, args);
@@ -551,10 +569,14 @@ class MN:IMAP:Mailbox from MN:Mailbox
     
     if (priv->numeric_tag == 1000)
       priv->numeric_tag = 0;
+
     g_free(priv->tag);
     priv->tag = g_strdup_printf("a%03i", priv->numeric_tag++);
 
-    return mn_client_session_write(priv->session, "%s %s", priv->tag, command);
+    result = mn_client_session_write(priv->session, "%s %s", priv->tag, command);
+    g_free(command);
+
+    return result;
   }
 
   private void
@@ -632,4 +654,29 @@ class MN:IMAP:Mailbox from MN:Mailbox
 
     return mn_client_session_error(priv->session, _("authentication failed"));
   }
+
+  /**
+   * quote:
+   * @str: the string to quote
+   *
+   * Quotes a string using RFC 3501 BNF rules.
+   *
+   * Return value: the quoted string.
+   **/
+  private char *
+    quote (const char *str (check null))
+  {
+    GString *quoted;
+    int i;
+
+    quoted = g_string_new("\"");
+    for (i = 0; str[i]; i++)
+      if (str[i] == '"' || str[i] == '\\') /* quoted-specials in BNF */
+	g_string_append_printf(quoted, "\\%c", str[i]);
+      else
+	g_string_append_c(quoted, str[i]);
+    g_string_append_c(quoted, '"');
+
+    return g_string_free(quoted, FALSE);
+  }
 }
diff --git a/src/mn-mail-icon.c b/src/mn-mail-icon.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-mailbox-view.c b/src/mn-mailbox-view.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -892,10 +892,10 @@ mn_mailbox_view_update (MNMailboxView * self)
 	mailbox = l->data;
 
 	if (! self_has_mailbox(self, mailbox))
-	{
-	  gtk_list_store_append(GTK_LIST_STORE(model), &iter);
-	  self_update_iter(self, &iter, mailbox);
-	}
+	  {
+	    gtk_list_store_append(GTK_LIST_STORE(model), &iter);
+	    self_update_iter(self, &iter, mailbox);
+	  }
       }
   }}
 #line 902 "mn-mailbox-view.c"
diff --git a/src/mn-mailbox-view.gob b/src/mn-mailbox-view.gob
@@ -364,10 +364,10 @@ class MN:Mailbox:View from Gtk:Tree:View
 	mailbox = l->data;
 
 	if (! self_has_mailbox(self, mailbox))
-	{
-	  gtk_list_store_append(GTK_LIST_STORE(model), &iter);
-	  self_update_iter(self, &iter, mailbox);
-	}
+	  {
+	    gtk_list_store_append(GTK_LIST_STORE(model), &iter);
+	    self_update_iter(self, &iter, mailbox);
+	  }
       }
   }
   
diff --git a/src/mn-mailbox.c b/src/mn-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -621,11 +621,11 @@ mn_mailbox_new_async_thread (gpointer data)
 
     vfs_uri = gnome_vfs_uri_new(info->uri);
     if (vfs_uri) /* the scheme is supported by GnomeVFS, therefore we require that the URI exists */
-    {
-      if (! mn_vfs_test(info->uri, G_FILE_TEST_EXISTS))
-	mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
-      gnome_vfs_uri_unref(vfs_uri);
-    }
+      {
+	if (! mn_vfs_test(info->uri, G_FILE_TEST_EXISTS))
+	  mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
+	gnome_vfs_uri_unref(vfs_uri);
+      }
 
     if (! mailbox)
       {
diff --git a/src/mn-mailbox.gob b/src/mn-mailbox.gob
@@ -213,11 +213,11 @@ class MN:Mailbox from G:Object
 
     vfs_uri = gnome_vfs_uri_new(info->uri);
     if (vfs_uri) /* the scheme is supported by GnomeVFS, therefore we require that the URI exists */
-    {
-      if (! mn_vfs_test(info->uri, G_FILE_TEST_EXISTS))
-	mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
-      gnome_vfs_uri_unref(vfs_uri);
-    }
+      {
+	if (! mn_vfs_test(info->uri, G_FILE_TEST_EXISTS))
+	  mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
+	gnome_vfs_uri_unref(vfs_uri);
+      }
 
     if (! mailbox)
       {
diff --git a/src/mn-mailboxes.c b/src/mn-mailboxes.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-maildir-mailbox.c b/src/mn-maildir-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:30 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -222,6 +222,7 @@ ___4_mn_maildir_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
 	
     char *new_uri;
     GnomeVFSResult result;
+    GnomeVFSResult close_result;
     GnomeVFSDirectoryHandle *handle;
     GnomeVFSFileInfo *file_info;
     gboolean has_new = FALSE;
@@ -253,11 +254,17 @@ ___4_mn_maildir_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
 	  }
       }
     gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
 
     GDK_THREADS_ENTER();
 
     if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
-      mn_mailbox_set_has_new(self, has_new);
+      {
+	if (close_result == GNOME_VFS_OK)
+	  mn_mailbox_set_has_new(self, has_new);
+	else
+	  mn_mailbox_set_error(self, _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
+      }
     else
       mn_mailbox_set_error(self, _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
     mn_mailbox_end_check(self);
@@ -265,6 +272,6 @@ ___4_mn_maildir_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
     gdk_flush();
     GDK_THREADS_LEAVE();
   }}
-#line 269 "mn-maildir-mailbox.c"
+#line 276 "mn-maildir-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
diff --git a/src/mn-maildir-mailbox.gob b/src/mn-maildir-mailbox.gob
@@ -82,6 +82,7 @@ class MN:Maildir:Mailbox from MN:Mailbox
   {
     char *new_uri;
     GnomeVFSResult result;
+    GnomeVFSResult close_result;
     GnomeVFSDirectoryHandle *handle;
     GnomeVFSFileInfo *file_info;
     gboolean has_new = FALSE;
@@ -113,11 +114,17 @@ class MN:Maildir:Mailbox from MN:Mailbox
 	  }
       }
     gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
 
     GDK_THREADS_ENTER();
 
     if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
-      mn_mailbox_set_has_new(self, has_new);
+      {
+	if (close_result == GNOME_VFS_OK)
+	  mn_mailbox_set_has_new(self, has_new);
+	else
+	  mn_mailbox_set_error(self, _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
+      }
     else
       mn_mailbox_set_error(self, _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
     mn_mailbox_end_check(self);
diff --git a/src/mn-main.c b/src/mn-main.c
@@ -238,6 +238,10 @@ main (int argc, char **argv)
     {
     case Bonobo_ACTIVATION_REG_ALREADY_ACTIVE:
     case Bonobo_ACTIVATION_REG_SUCCESS:
+      automation = bonobo_activation_activate_from_id(AUTOMATION_IID, 0, NULL, &ev);
+      if (CORBA_Object_is_nil(automation, &ev))
+	mn_fatal_error_dialog(_("Bonobo could not locate the automation object. Please check your Mail Notification installation."));
+
       if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
 	{
 	  if (! gnome_vfs_init())
@@ -245,12 +249,15 @@ main (int argc, char **argv)
 
 	  mn_conf_init();
 	  mn_shell = mn_shell_new();
+
+	  if (! eel_gconf_get_boolean(MN_CONF_ALREADY_RUN))
+	    {
+	      if (! arg_display_properties)
+		mn_shell_run_welcome(mn_shell);
+	      eel_gconf_set_boolean(MN_CONF_ALREADY_RUN, TRUE);
+	    }
 	}
       
-      automation = bonobo_activation_activate_from_id(AUTOMATION_IID, 0, NULL, &ev);
-      if (CORBA_Object_is_nil(automation, &ev))
-	mn_fatal_error_dialog(_("Bonobo could not locate the automation object. Please check your Mail Notification installation."));
-
       if (arg_display_properties)
 	GNOME_MNAutomation_displayProperties(automation, &ev);
       if (arg_display_about)
diff --git a/src/mn-mbox-mailbox-private.h b/src/mn-mbox-mailbox-private.h
@@ -12,7 +12,7 @@ extern "C" {
 
 #line 22 "mn-mbox-mailbox.gob"
 
-#include <time.h>
+#include <libgnomevfs/gnome-vfs.h>
 
 #line 18 "mn-mbox-mailbox-private.h"
 struct _MNmboxMailboxPrivate {
diff --git a/src/mn-mbox-mailbox.c b/src/mn-mbox-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:30 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-mbox-mailbox.gob b/src/mn-mbox-mailbox.gob
@@ -20,7 +20,7 @@
 #include "mn-mailbox.h"
 %}
 %privateheader{
-#include <time.h>
+#include <libgnomevfs/gnome-vfs.h>
 %}
 %{
 #include "config.h"
diff --git a/src/mn-mh-mailbox.c b/src/mn-mh-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:30 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-pending-mailbox.c b/src/mn-pending-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
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.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
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.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:30 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-pop3-mailbox.c b/src/mn-pop3-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:30 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-shell.c b/src/mn-shell.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -92,6 +92,7 @@ static GObjectClass *parent_class = NULL;
 #define self_update_icon mn_shell_update_icon
 #define self_new mn_shell_new
 #define self_display_about mn_shell_display_about
+#define self_run_welcome mn_shell_run_welcome
 #define self_report mn_shell_report
 GType
 mn_shell_get_type (void)
@@ -145,7 +146,7 @@ ___dispose (GObject *obj_self)
 		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
 #line 41 "mn-shell.gob"
 	if(self->mailboxes) { ((*(void (*)(void *))g_object_unref)) (self->mailboxes); self->mailboxes = NULL; }
-#line 149 "mn-shell.c"
+#line 150 "mn-shell.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -158,7 +159,7 @@ ___finalize(GObject *obj_self)
 	gpointer priv = self->_priv;
 #line 57 "mn-shell.gob"
 	___2_mn_shell_finalize(obj_self);
-#line 162 "mn-shell.c"
+#line 163 "mn-shell.c"
 	g_free (priv);
 }
 #undef __GOB_FUNCTION__
@@ -173,20 +174,20 @@ mn_shell_class_init (MNShellClass * c G_GNUC_UNUSED)
 
 #line 57 "mn-shell.gob"
 	g_object_class->finalize = ___finalize;
-#line 177 "mn-shell.c"
+#line 178 "mn-shell.c"
 	g_object_class->dispose = ___dispose;
 }
 #undef __GOB_FUNCTION__
 #line 45 "mn-shell.gob"
 static void 
 mn_shell_init (MNShell * self G_GNUC_UNUSED)
-#line 184 "mn-shell.c"
+#line 185 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::init"
 	self->_priv = g_new0 (MNShellPrivate, 1);
 #line 41 "mn-shell.gob"
 	self->mailboxes = mn_mailboxes_new();
-#line 190 "mn-shell.c"
+#line 191 "mn-shell.c"
  {
 #line 46 "mn-shell.gob"
 
@@ -199,7 +200,7 @@ mn_shell_init (MNShell * self G_GNUC_UNUSED)
     g_signal_connect(G_OBJECT(self->mailboxes), "list-changed", G_CALLBACK(self_mailboxes_list_changed_h), self);
     g_signal_connect(G_OBJECT(self->mailboxes), "status-changed", G_CALLBACK(self_mailboxes_status_changed_h), self);
   
-#line 203 "mn-shell.c"
+#line 204 "mn-shell.c"
  }
 }
 #undef __GOB_FUNCTION__
@@ -209,7 +210,7 @@ mn_shell_init (MNShell * self G_GNUC_UNUSED)
 #line 57 "mn-shell.gob"
 static void 
 ___2_mn_shell_finalize (GObject * object G_GNUC_UNUSED)
-#line 213 "mn-shell.c"
+#line 214 "mn-shell.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
@@ -221,14 +222,14 @@ ___2_mn_shell_finalize (GObject * object G_GNUC_UNUSED)
     gtk_main_quit();
     PARENT_HANDLER(object);
   }}
-#line 225 "mn-shell.c"
+#line 226 "mn-shell.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
 #line 64 "mn-shell.gob"
 static void 
 mn_shell_mailboxes_list_changed_h (MNMailboxes * mailboxes, gpointer user_data)
-#line 232 "mn-shell.c"
+#line 233 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::mailboxes_list_changed_h"
 #line 64 "mn-shell.gob"
@@ -237,7 +238,7 @@ mn_shell_mailboxes_list_changed_h (MNMailboxes * mailboxes, gpointer user_data)
 	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
 #line 64 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 241 "mn-shell.c"
+#line 242 "mn-shell.c"
 {
 #line 67 "mn-shell.gob"
 	
@@ -246,13 +247,13 @@ mn_shell_mailboxes_list_changed_h (MNMailboxes * mailboxes, gpointer user_data)
     self_update_sensitivity(self);
     self_update_icon(self);
   }}
-#line 250 "mn-shell.c"
+#line 251 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 74 "mn-shell.gob"
 static void 
 mn_shell_mailboxes_status_changed_h (MNMailboxes * mailboxes, gpointer user_data)
-#line 256 "mn-shell.c"
+#line 257 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::mailboxes_status_changed_h"
 #line 74 "mn-shell.gob"
@@ -261,7 +262,7 @@ mn_shell_mailboxes_status_changed_h (MNMailboxes * mailboxes, gpointer user_data
 	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
 #line 74 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 265 "mn-shell.c"
+#line 266 "mn-shell.c"
 {
 #line 77 "mn-shell.gob"
 	
@@ -269,20 +270,20 @@ mn_shell_mailboxes_status_changed_h (MNMailboxes * mailboxes, gpointer user_data
 
     self_update_icon(self);
   }}
-#line 273 "mn-shell.c"
+#line 274 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 83 "mn-shell.gob"
 static void 
 mn_shell_init_icon (MNShell * self)
-#line 279 "mn-shell.c"
+#line 280 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::init_icon"
 #line 83 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 83 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 286 "mn-shell.c"
+#line 287 "mn-shell.c"
 {
 #line 85 "mn-shell.gob"
 	
@@ -301,18 +302,18 @@ mn_shell_init_icon (MNShell * self)
     self_update_sensitivity(self);
     self_update_icon(self);
   }}
-#line 305 "mn-shell.c"
+#line 306 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 102 "mn-shell.gob"
 static void 
 mn_shell_notify_double_clicked_command_cb (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 311 "mn-shell.c"
+#line 312 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::notify_double_clicked_command_cb"
 #line 102 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 316 "mn-shell.c"
+#line 317 "mn-shell.c"
 {
 #line 107 "mn-shell.gob"
 	
@@ -320,13 +321,13 @@ mn_shell_notify_double_clicked_command_cb (GConfClient * client, guint cnxn_id, 
 
     self_update_command(self);
   }}
-#line 324 "mn-shell.c"
+#line 325 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 113 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
-#line 330 "mn-shell.c"
+#line 331 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_h"
 #line 113 "mn-shell.gob"
@@ -335,7 +336,7 @@ mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 113 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 339 "mn-shell.c"
+#line 340 "mn-shell.c"
 {
 #line 116 "mn-shell.gob"
 	
@@ -343,13 +344,13 @@ mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
     if (eel_gconf_get_boolean(MN_CONF_COMMANDS_DOUBLE_CLICKED_ENABLED))
       self_run_double_clicked_command(self);
   }}
-#line 347 "mn-shell.c"
+#line 348 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 122 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_run_h (MNMailIcon * icon, gpointer user_data)
-#line 353 "mn-shell.c"
+#line 354 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_run_h"
 #line 122 "mn-shell.gob"
@@ -358,20 +359,20 @@ mn_shell_icon_activate_run_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 122 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 362 "mn-shell.c"
+#line 363 "mn-shell.c"
 {
 #line 125 "mn-shell.gob"
 	
     Self *self = user_data;
     self_run_double_clicked_command(self);
   }}
-#line 369 "mn-shell.c"
+#line 370 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 130 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data)
-#line 375 "mn-shell.c"
+#line 376 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_update_h"
 #line 130 "mn-shell.gob"
@@ -380,20 +381,20 @@ mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 130 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 384 "mn-shell.c"
+#line 385 "mn-shell.c"
 {
 #line 133 "mn-shell.gob"
 	
     Self *self = user_data;
     mn_mailboxes_check(self->mailboxes);
   }}
-#line 391 "mn-shell.c"
+#line 392 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 138 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data)
-#line 397 "mn-shell.c"
+#line 398 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_properties_h"
 #line 138 "mn-shell.gob"
@@ -402,19 +403,19 @@ mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 138 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 406 "mn-shell.c"
+#line 407 "mn-shell.c"
 {
 #line 141 "mn-shell.gob"
 	
     mn_properties_display();
   }}
-#line 412 "mn-shell.c"
+#line 413 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 145 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data)
-#line 418 "mn-shell.c"
+#line 419 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_help_h"
 #line 145 "mn-shell.gob"
@@ -423,19 +424,19 @@ mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 145 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 427 "mn-shell.c"
+#line 428 "mn-shell.c"
 {
 #line 148 "mn-shell.gob"
 	
     mn_display_help(NULL);
   }}
-#line 433 "mn-shell.c"
+#line 434 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 152 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data)
-#line 439 "mn-shell.c"
+#line 440 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_about_h"
 #line 152 "mn-shell.gob"
@@ -444,20 +445,20 @@ mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 152 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 448 "mn-shell.c"
+#line 449 "mn-shell.c"
 {
 #line 155 "mn-shell.gob"
 	
     Self *self = user_data;
     self_display_about(self);
   }}
-#line 455 "mn-shell.c"
+#line 456 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 160 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_data)
-#line 461 "mn-shell.c"
+#line 462 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_remove_h"
 #line 160 "mn-shell.gob"
@@ -466,20 +467,20 @@ mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_fail (MN_IS_MAIL_ICON (icon));
 #line 160 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 470 "mn-shell.c"
+#line 471 "mn-shell.c"
 {
 #line 163 "mn-shell.gob"
 	
     Self *self = user_data;
     g_object_unref(self);
   }}
-#line 477 "mn-shell.c"
+#line 478 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 168 "mn-shell.gob"
 static void 
 mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
-#line 483 "mn-shell.c"
+#line 484 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
 #line 168 "mn-shell.gob"
@@ -488,7 +489,7 @@ mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
 	g_return_if_fail (GTK_IS_OBJECT (object));
 #line 168 "mn-shell.gob"
 	g_return_if_fail (user_data != NULL);
-#line 492 "mn-shell.c"
+#line 493 "mn-shell.c"
 {
 #line 171 "mn-shell.gob"
 	
@@ -497,20 +498,20 @@ mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
     /* The Notification Area applet has been terminated. Recreate the icon. */
     self_init_icon(self);
   }}
-#line 501 "mn-shell.c"
+#line 502 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 178 "mn-shell.gob"
 static void 
 mn_shell_run_double_clicked_command (MNShell * self)
-#line 507 "mn-shell.c"
+#line 508 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::run_double_clicked_command"
 #line 178 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 178 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 514 "mn-shell.c"
+#line 515 "mn-shell.c"
 {
 #line 180 "mn-shell.gob"
 	
@@ -533,20 +534,20 @@ mn_shell_run_double_clicked_command (MNShell * self)
 	g_free(command);
       }
   }}
-#line 537 "mn-shell.c"
+#line 538 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 201 "mn-shell.gob"
 static void 
 mn_shell_update_command (MNShell * self)
-#line 543 "mn-shell.c"
+#line 544 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_command"
 #line 201 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 201 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 550 "mn-shell.c"
+#line 551 "mn-shell.c"
 {
 #line 203 "mn-shell.gob"
 	
@@ -556,20 +557,20 @@ mn_shell_update_command (MNShell * self)
     mn_mail_icon_set_command(selfp->icon, command);
     g_free(command);
   }}
-#line 560 "mn-shell.c"
+#line 561 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 211 "mn-shell.gob"
 static void 
 mn_shell_update_sensitivity (MNShell * self)
-#line 566 "mn-shell.c"
+#line 567 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_sensitivity"
 #line 211 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 211 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 573 "mn-shell.c"
+#line 574 "mn-shell.c"
 {
 #line 213 "mn-shell.gob"
 	
@@ -589,20 +590,20 @@ mn_shell_update_sensitivity (MNShell * self)
 
     gtk_widget_set_sensitive(selfp->icon->update_item, has_manual);
   }}
-#line 593 "mn-shell.c"
+#line 594 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 231 "mn-shell.gob"
 static void 
 mn_shell_update_icon (MNShell * self)
-#line 599 "mn-shell.c"
+#line 600 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_icon"
 #line 231 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 231 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 606 "mn-shell.c"
+#line 607 "mn-shell.c"
 {
 #line 233 "mn-shell.gob"
 	
@@ -735,13 +736,13 @@ mn_shell_update_icon (MNShell * self)
     if (tooltip)
       g_string_free(tooltip, TRUE);
   }}
-#line 739 "mn-shell.c"
+#line 740 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 364 "mn-shell.gob"
 MNShell * 
 mn_shell_new (void)
-#line 745 "mn-shell.c"
+#line 746 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::new"
 {
@@ -749,20 +750,20 @@ mn_shell_new (void)
 	
     return MN_SHELL(GET_NEW);
   }}
-#line 753 "mn-shell.c"
+#line 754 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 370 "mn-shell.gob"
 void 
 mn_shell_display_about (MNShell * self)
-#line 759 "mn-shell.c"
+#line 760 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::display_about"
 #line 370 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 370 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 766 "mn-shell.c"
+#line 767 "mn-shell.c"
 {
 #line 372 "mn-shell.gob"
 	
@@ -776,25 +777,54 @@ mn_shell_display_about (MNShell * self)
     g_object_add_weak_pointer(G_OBJECT(selfp->about), (gpointer *) &selfp->about);
     gtk_widget_show(GTK_WIDGET(selfp->about));
   }}
-#line 780 "mn-shell.c"
+#line 781 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
 #line 384 "mn-shell.gob"
 void 
-mn_shell_report (MNShell * self, char ** report)
-#line 786 "mn-shell.c"
+mn_shell_run_welcome (MNShell * self)
+#line 787 "mn-shell.c"
 {
-#define __GOB_FUNCTION__ "MN:Shell::report"
+#define __GOB_FUNCTION__ "MN:Shell::run_welcome"
 #line 384 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
 #line 384 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 384 "mn-shell.gob"
-	g_return_if_fail (report != NULL);
-#line 795 "mn-shell.c"
+#line 794 "mn-shell.c"
 {
 #line 386 "mn-shell.gob"
 	
+    GtkWidget *dialog;
+    int response;
+
+    mn_create_interface("welcome", "dialog", &dialog, NULL);
+    gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+
+    response = gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+
+    if (response == GTK_RESPONSE_OK)
+      mn_properties_display();
+  }}
+#line 810 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 400 "mn-shell.gob"
+void 
+mn_shell_report (MNShell * self, char ** report)
+#line 816 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::report"
+#line 400 "mn-shell.gob"
+	g_return_if_fail (self != NULL);
+#line 400 "mn-shell.gob"
+	g_return_if_fail (MN_IS_SHELL (self));
+#line 400 "mn-shell.gob"
+	g_return_if_fail (report != NULL);
+#line 825 "mn-shell.c"
+{
+#line 402 "mn-shell.gob"
+	
     GString *string;
     GSList *l;
 
@@ -821,5 +851,5 @@ mn_shell_report (MNShell * self, char ** report)
     *report = string->str;
     g_string_free(string, FALSE);
   }}
-#line 825 "mn-shell.c"
+#line 855 "mn-shell.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-shell.gob b/src/mn-shell.gob
@@ -382,6 +382,22 @@ class MN:Shell from G:Object
   }
 
   public void
+    run_welcome (self)
+  {
+    GtkWidget *dialog;
+    int response;
+
+    mn_create_interface("welcome", "dialog", &dialog, NULL);
+    gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+
+    response = gtk_dialog_run(GTK_DIALOG(dialog));
+    gtk_widget_destroy(dialog);
+
+    if (response == GTK_RESPONSE_OK)
+      mn_properties_display();
+  }
+  
+  public void
     report (self, char **report (check null))
   {
     GString *string;
diff --git a/src/mn-shell.h b/src/mn-shell.h
@@ -58,6 +58,7 @@ struct _MNShellClass {
 GType	mn_shell_get_type	(void);
 MNShell * 	mn_shell_new	(void);
 void 	mn_shell_display_about	(MNShell * self);
+void 	mn_shell_run_welcome	(MNShell * self);
 void 	mn_shell_report	(MNShell * self,
 					char ** report);
 
diff --git a/src/mn-sylpheed-mailbox.c b/src/mn-sylpheed-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:52 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
@@ -210,6 +210,7 @@ ___4_mn_sylpheed_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
 #line 71 "mn-sylpheed-mailbox.gob"
 	
     GnomeVFSResult result;
+    GnomeVFSResult close_result;
     GnomeVFSDirectoryHandle *handle;
     GnomeVFSFileInfo *file_info;
     int total_count = 0;
@@ -245,11 +246,17 @@ ___4_mn_sylpheed_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
 	  mark_count = (file_info->size - sizeof(int)) / (sizeof(int) * 2);
       }
     gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
     
     GDK_THREADS_ENTER();
     
     if (result == GNOME_VFS_ERROR_EOF)
-      mn_mailbox_set_has_new(self, total_count != mark_count);
+      {
+	if (close_result == GNOME_VFS_OK)
+	  mn_mailbox_set_has_new(self, total_count != mark_count);
+	else
+	  mn_mailbox_set_error(self, _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
+      }
     else
       mn_mailbox_set_error(self, _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
     mn_mailbox_end_check(self);
@@ -257,6 +264,6 @@ ___4_mn_sylpheed_mailbox_impl_threaded_check (MNMailbox * self G_GNUC_UNUSED)
     gdk_flush();
     GDK_THREADS_LEAVE();
   }}
-#line 261 "mn-sylpheed-mailbox.c"
+#line 268 "mn-sylpheed-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
diff --git a/src/mn-sylpheed-mailbox.gob b/src/mn-sylpheed-mailbox.gob
@@ -70,6 +70,7 @@ class MN:Sylpheed:Mailbox from MN:Mailbox
     impl_threaded_check (MN:Mailbox *self (check null type))
   {
     GnomeVFSResult result;
+    GnomeVFSResult close_result;
     GnomeVFSDirectoryHandle *handle;
     GnomeVFSFileInfo *file_info;
     int total_count = 0;
@@ -105,11 +106,17 @@ class MN:Sylpheed:Mailbox from MN:Mailbox
 	  mark_count = (file_info->size - sizeof(int)) / (sizeof(int) * 2);
       }
     gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
     
     GDK_THREADS_ENTER();
     
     if (result == GNOME_VFS_ERROR_EOF)
-      mn_mailbox_set_has_new(self, total_count != mark_count);
+      {
+	if (close_result == GNOME_VFS_OK)
+	  mn_mailbox_set_has_new(self, total_count != mark_count);
+	else
+	  mn_mailbox_set_error(self, _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
+      }
     else
       mn_mailbox_set_error(self, _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
     mn_mailbox_end_check(self);
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.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:31 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-unsupported-mailbox.c b/src/mn-unsupported-mailbox.c
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.9) on Mon Aug 16 18:13:53 2004
+/* Generated by GOB (v2.0.9) on Thu Aug 19 00:41:32 2004
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
diff --git a/src/mn-uri.c b/src/mn-uri.c
@@ -89,27 +89,51 @@ mn_uri_build_generic (const char *scheme,
 		      const char *path)
 {
   GString *uri;
-
+  char *escaped;
+      
   g_return_val_if_fail(scheme != NULL, NULL);
 
-  uri = g_string_new(scheme);
+  escaped = gnome_vfs_escape_string(scheme);
+  uri = g_string_new(escaped);
+  g_free(escaped);
+
   g_string_append(uri, "://");
 
   if (username)
-    g_string_append(uri, username);
+    {
+      escaped = gnome_vfs_escape_string(username);
+      g_string_append(uri, escaped);
+      g_free(escaped);
+    }
   if (password)
-    g_string_append_printf(uri, ":%s", password);
+    {
+      escaped = gnome_vfs_escape_string(password);
+      g_string_append_printf(uri, ":%s", escaped);
+      g_free(escaped);
+    }
   if (authmech)
-    g_string_append_printf(uri, ";auth=%s", authmech);
+    {
+      escaped = gnome_vfs_escape_string(authmech);
+      g_string_append_printf(uri, ";AUTH=%s", escaped);
+      g_free(escaped);
+    }
   if (hostname)
-    g_string_append_printf(uri, mn_uri_is_ipv6_address(hostname) ? "@[%s]" : "@%s", hostname);
+    {
+      escaped = gnome_vfs_escape_host_and_path_string(hostname);
+      g_string_append_printf(uri, mn_uri_is_ipv6_address(hostname) ? "@[%s]" : "@%s", escaped);
+      g_free(escaped);
+    }
   if (port >= 0)
     {
       g_return_val_if_fail(hostname != NULL, NULL);
       g_string_append_printf(uri, ":%i", port);
     }
   if (path)
-    g_string_append_printf(uri, "/%s", path);
+    {
+      escaped = gnome_vfs_escape_path_string(path);
+      g_string_append_printf(uri, "/%s", escaped);
+      g_free(escaped);
+    }
 
   return g_string_free(uri, FALSE);
 }
@@ -131,7 +155,8 @@ mn_uri_build_generic (const char *scheme,
  * WARNING: the parsing is very lax, this function is NOT intended to
  * be used on untrusted URIs.
  *
- * Return value: TRUE is @uri has at least a scheme, FALSE otherwise.
+ * Return value: TRUE is @uri has at least a scheme, username and
+ *               password, FALSE otherwise.
  **/
 static gboolean
 mn_uri_parse_generic (const char *uri,
@@ -143,79 +168,109 @@ mn_uri_parse_generic (const char *uri,
 		      int *port,
 		      char **path)
 {
-  int n1;
-  char scheme_buf[513];
-  char auth_buf[513];
-  char host_buf[513];
+  int len;
 
   g_return_val_if_fail(uri != NULL, FALSE);
   
-  n1 = sscanf(uri, "%512[^:]://%512[^@]@%512s", scheme_buf, auth_buf, host_buf);
-  if (n1 > 0)
-    {
-      char username_buf[513];
-      char password_buf[513];
-      char authmech_buf[513];
-      char hostname_buf[513];
-      int _port;
-      char path_buf[513];
-      gboolean has_username = FALSE;
-      gboolean has_password = FALSE;
-      gboolean has_authmech = FALSE;
-      gboolean has_hostname = FALSE;
-      gboolean has_port = FALSE;
-      gboolean has_path = FALSE;
-
-      if (n1 > 1)
-	{
-	  int n2;
-
-	  n2 = sscanf(auth_buf, "%512[^:]:%512[^;];auth=%512s", username_buf, password_buf, authmech_buf);
-	  has_username = n2 > 0;
-	  has_password = n2 > 1;
-	  has_authmech = n2 > 2;
-
-	  if (n1 > 2)
-	    {
-	      int n3;
-	      char hostport_buf[513];
-
-	      n3 = sscanf(host_buf, "%512[^/]/%512s", hostport_buf, path_buf);
-	      has_path = n3 > 1;
-
-	      if (n3 > 0)
-		{
-		  int n4;
-		  
-		  n4 = sscanf(hostport_buf, "[%512[^]]]:%i", hostname_buf, &_port);
-		  if (n4 == 0)
-		    n4 = sscanf(hostport_buf, "%512[^:]:%i", hostname_buf, &_port);
-
-		  has_hostname = n4 > 0;
-		  has_port = n4 > 1;
-		}
-	    }
-	}
-
-      if (scheme)
-	*scheme = g_strdup(scheme_buf);
-      if (username)
-	*username = has_username ? g_strdup(username_buf) : NULL;
-      if (password)
-	*password = has_password ? g_strdup(password_buf) : NULL;
-      if (authmech)
-	*authmech = has_authmech ? g_strdup(authmech_buf) : NULL;
-      if (hostname)
-	*hostname = has_hostname ? g_strdup(hostname_buf) : NULL;
-      if (port)
-	*port = has_port ? _port : -1;
-      if (path)
-	*path = has_path ? g_strdup(path_buf) : NULL;
-      
-      return TRUE;
-    }
-  else
-    return FALSE;
+  len = strlen(uri);
+  
+  {
+    char *pat;
+    int n;
+    char scheme_buf[len + 1];
+    char username_buf[len + 1];
+    char password_buf[len + 1];
+    char authmech_buf[len + 1];
+    char hostpart_buf[len + 1];
+    char hostname_buf[len + 1];
+    int _port;
+    char path_buf[len + 1];
+    gboolean has_authmech = FALSE;
+    gboolean has_hostpart = FALSE;
+    gboolean has_port = FALSE;
+    gboolean has_path = FALSE;
+
+    /*
+     * For backward compatibility with previous versions of Mail
+     * Notification, we also support ;auth= (in lowercase).
+     */
+
+    pat = g_strdup_printf("%%%i[^:]://%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%i[^@]@%%%is", len, len, len, len, len);
+    n = sscanf(uri, pat, scheme_buf, username_buf, password_buf, authmech_buf, hostpart_buf);
+    g_free(pat);
+
+    if (n >= 4)
+      {
+	has_authmech = TRUE;
+	has_hostpart = n > 4;
+      }
+    else
+      {
+	pat = g_strdup_printf("%%%i[^:]://%%%i[^:]:%%%i[^@]@%%%is", len, len, len, len);
+	n = sscanf(uri, pat, scheme_buf, username_buf, password_buf, hostpart_buf);
+	g_free(pat);
+
+	if (n >= 3)
+	  has_hostpart = n > 3;
+	else
+	  return FALSE;
+      }
+  
+    if (has_hostpart)
+      {
+	pat = g_strdup_printf("[%%%i[^]]]:%%u/%%%is", len, len);
+	n = sscanf(hostpart_buf, pat, hostname_buf, &_port, path_buf);
+	g_free(pat);
+
+	if (n < 1)
+	  {
+	    pat = g_strdup_printf("%%%i[^:]:%%u/%%%is", len, len);
+	    n = sscanf(hostpart_buf, pat, hostname_buf, &_port, path_buf);
+	    g_free(pat);
+	  }
+
+	if (n >= 2)
+	  {
+	    has_port = TRUE;
+	    has_path = n > 2;
+	  }
+	else
+	  {
+	    pat = g_strdup_printf("[%%%i[^]]]/%%%is", len, len);
+	    n = sscanf(hostpart_buf, pat, hostname_buf, path_buf);
+	    g_free(pat);
+
+	    if (n < 1)
+	      {
+		pat = g_strdup_printf("%%%i[^/]/%%%is", len, len);
+		n = sscanf(hostpart_buf, pat, hostname_buf, path_buf);
+		g_free(pat);
+	      }
+
+	    if (n < 1)
+	      return FALSE;
+
+	    has_path = n > 1;
+	  }
+      }
+
+    if (scheme)
+      *scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
+    if (username)
+      *username = gnome_vfs_unescape_string(username_buf, NULL);
+    if (password)
+      *password = gnome_vfs_unescape_string(password_buf, NULL);
+    if (authmech)
+      *authmech = has_authmech ? gnome_vfs_unescape_string(authmech_buf, NULL) : NULL;
+    if (hostname)
+      *hostname = has_hostpart ? gnome_vfs_unescape_string(hostname_buf, NULL) : NULL;
+    if (port)
+      *port = has_port ? _port : -1;
+    if (path)
+      *path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : NULL;
+
+    return TRUE;
+  }
 }
 
 /**
diff --git a/tests/test-uri.c b/tests/test-uri.c
@@ -29,105 +29,105 @@ main (int argc, char **argv)
   const char *pop_uri_list[] = {
     "pop://invalid",
 
-    "pop://username:password@hostname",
-    "pop://username:password@hostname:110",
-    "pop://username:password@hostname:555",
+    "pop://usern%40me:password@hostname",
+    "pop://usern%40me:password@hostname:110",
+    "pop://usern%40me:password@hostname:555",
 
-    "pop://username:password@[::1]",
-    "pop://username:password@[::1]:110",
-    "pop://username:password@[::1]:555",
+    "pop://usern%40me:password@[::1]",
+    "pop://usern%40me:password@[::1]:110",
+    "pop://usern%40me:password@[::1]:555",
 
-    "pop://username:password;auth=MECH@hostname",
-    "pop://username:password;auth=MECH@hostname:110",
-    "pop://username:password;auth=MECH@hostname:555",
+    "pop://usern%40me:password;auth=MECH@hostname",
+    "pop://usern%40me:password;auth=MECH@hostname:110",
+    "pop://usern%40me:password;auth=MECH@hostname:555",
 
-    "pop://username:password;auth=MECH@[::1]",
-    "pop://username:password;auth=MECH@[::1]:110",
-    "pop://username:password;auth=MECH@[::1]:555",
+    "pop://usern%40me:password;auth=MECH@[::1]",
+    "pop://usern%40me:password;auth=MECH@[::1]:110",
+    "pop://usern%40me:password;auth=MECH@[::1]:555",
       
     "pops://invalid",
 
-    "pops://username:password@hostname",
-    "pops://username:password@hostname:995",
-    "pops://username:password@hostname:555",
+    "pops://usern%40me:password@hostname",
+    "pops://usern%40me:password@hostname:995",
+    "pops://usern%40me:password@hostname:555",
 
-    "pops://username:password@[::1]",
-    "pops://username:password@[::1]:995",
-    "pops://username:password@[::1]:555",
+    "pops://usern%40me:password@[::1]",
+    "pops://usern%40me:password@[::1]:995",
+    "pops://usern%40me:password@[::1]:555",
 
-    "pops://username:password;auth=MECH@hostname",
-    "pops://username:password;auth=MECH@hostname:995",
-    "pops://username:password;auth=MECH@hostname:555",
+    "pops://usern%40me:password;auth=MECH@hostname",
+    "pops://usern%40me:password;auth=MECH@hostname:995",
+    "pops://usern%40me:password;auth=MECH@hostname:555",
 
-    "pops://username:password;auth=MECH@[::1]",
-    "pops://username:password;auth=MECH@[::1]:995",
-    "pops://username:password;auth=MECH@[::1]:555",
+    "pops://usern%40me:password;auth=MECH@[::1]",
+    "pops://usern%40me:password;auth=MECH@[::1]:995",
+    "pops://usern%40me:password;auth=MECH@[::1]:555",
   };
   const char *imap_uri_list[] = {
     "imap://invalid",
 
-    "imap://username:password@hostname",
-    "imap://username:password@hostname/mailbox",
-    "imap://username:password@hostname:143",
-    "imap://username:password@hostname:143/mailbox",
-    "imap://username:password@hostname:555",
-    "imap://username:password@hostname:555/mailbox",
+    "imap://usern%40me:password@hostname",
+    "imap://usern%40me:password@hostname/mailbox",
+    "imap://usern%40me:password@hostname:143",
+    "imap://usern%40me:password@hostname:143/mailbox",
+    "imap://usern%40me:password@hostname:555",
+    "imap://usern%40me:password@hostname:555/mailbox",
     
-    "imap://username:password@[::1]",
-    "imap://username:password@[::1]/mailbox",
-    "imap://username:password@[::1]:143",
-    "imap://username:password@[::1]:143/mailbox",
-    "imap://username:password@[::1]:555",
-    "imap://username:password@[::1]:555/mailbox",
-
-    "imap://username:password;auth=MECH@hostname",
-    "imap://username:password;auth=MECH@hostname/mailbox",
-    "imap://username:password;auth=MECH@hostname:143",
-    "imap://username:password;auth=MECH@hostname:143/mailbox",
-    "imap://username:password;auth=MECH@hostname:555",
-    "imap://username:password;auth=MECH@hostname:555/mailbox",
+    "imap://usern%40me:password@[::1]",
+    "imap://usern%40me:password@[::1]/mailbox",
+    "imap://usern%40me:password@[::1]:143",
+    "imap://usern%40me:password@[::1]:143/mailbox",
+    "imap://usern%40me:password@[::1]:555",
+    "imap://usern%40me:password@[::1]:555/mailbox",
+
+    "imap://usern%40me:password;auth=MECH@hostname",
+    "imap://usern%40me:password;auth=MECH@hostname/mailbox",
+    "imap://usern%40me:password;auth=MECH@hostname:143",
+    "imap://usern%40me:password;auth=MECH@hostname:143/mailbox",
+    "imap://usern%40me:password;auth=MECH@hostname:555",
+    "imap://usern%40me:password;auth=MECH@hostname:555/mailbox",
       
-    "imap://username:password;auth=MECH@[::1]",
-    "imap://username:password;auth=MECH@[::1]/mailbox",
-    "imap://username:password;auth=MECH@[::1]:143",
-    "imap://username:password;auth=MECH@[::1]:143/mailbox",
-    "imap://username:password;auth=MECH@[::1]:555",
-    "imap://username:password;auth=MECH@[::1]:555/mailbox",
+    "imap://usern%40me:password;auth=MECH@[::1]",
+    "imap://usern%40me:password;auth=MECH@[::1]/mailbox",
+    "imap://usern%40me:password;auth=MECH@[::1]:143",
+    "imap://usern%40me:password;auth=MECH@[::1]:143/mailbox",
+    "imap://usern%40me:password;auth=MECH@[::1]:555",
+    "imap://usern%40me:password;auth=MECH@[::1]:555/mailbox",
 
     "imaps://invalid",
 
-    "imaps://username:password@hostname",
-    "imaps://username:password@hostname/mailbox",
-    "imaps://username:password@hostname:993",
-    "imaps://username:password@hostname:993/mailbox",
-    "imaps://username:password@hostname:555",
-    "imaps://username:password@hostname:555/mailbox",
+    "imaps://usern%40me:password@hostname",
+    "imaps://usern%40me:password@hostname/mailbox",
+    "imaps://usern%40me:password@hostname:993",
+    "imaps://usern%40me:password@hostname:993/mailbox",
+    "imaps://usern%40me:password@hostname:555",
+    "imaps://usern%40me:password@hostname:555/mailbox",
     
-    "imaps://username:password@[::1]",
-    "imaps://username:password@[::1]/mailbox",
-    "imaps://username:password@[::1]:993",
-    "imaps://username:password@[::1]:993/mailbox",
-    "imaps://username:password@[::1]:555",
-    "imaps://username:password@[::1]:555/mailbox",
-
-    "imaps://username:password;auth=MECH@hostname",
-    "imaps://username:password;auth=MECH@hostname/mailbox",
-    "imaps://username:password;auth=MECH@hostname:993",
-    "imaps://username:password;auth=MECH@hostname:993/mailbox",
-    "imaps://username:password;auth=MECH@hostname:555",
-    "imaps://username:password;auth=MECH@hostname:555/mailbox",
+    "imaps://usern%40me:password@[::1]",
+    "imaps://usern%40me:password@[::1]/mailbox",
+    "imaps://usern%40me:password@[::1]:993",
+    "imaps://usern%40me:password@[::1]:993/mailbox",
+    "imaps://usern%40me:password@[::1]:555",
+    "imaps://usern%40me:password@[::1]:555/mailbox",
+
+    "imaps://usern%40me:password;auth=MECH@hostname",
+    "imaps://usern%40me:password;auth=MECH@hostname/mailbox",
+    "imaps://usern%40me:password;auth=MECH@hostname:993",
+    "imaps://usern%40me:password;auth=MECH@hostname:993/mailbox",
+    "imaps://usern%40me:password;auth=MECH@hostname:555",
+    "imaps://usern%40me:password;auth=MECH@hostname:555/mailbox",
       
-    "imaps://username:password;auth=MECH@[::1]",
-    "imaps://username:password;auth=MECH@[::1]/mailbox",
-    "imaps://username:password;auth=MECH@[::1]:993",
-    "imaps://username:password;auth=MECH@[::1]:993/mailbox",
-    "imaps://username:password;auth=MECH@[::1]:555",
-    "imaps://username:password;auth=MECH@[::1]:555/mailbox",
+    "imaps://usern%40me:password;auth=MECH@[::1]",
+    "imaps://usern%40me:password;auth=MECH@[::1]/mailbox",
+    "imaps://usern%40me:password;auth=MECH@[::1]:993",
+    "imaps://usern%40me:password;auth=MECH@[::1]:993/mailbox",
+    "imaps://usern%40me:password;auth=MECH@[::1]:555",
+    "imaps://usern%40me:password;auth=MECH@[::1]:555/mailbox",
   };
   const char *gmail_uri_list[] = {
     "gmail://invalid",
 
-    "gmail://username:password"
+    "gmail://usern%40me:password"
   };
   int i;
       
diff --git a/tests/test-uri.expected b/tests/test-uri.expected
@@ -1,78 +1,78 @@
 pop 0: invalid
-pop 1: pop://username:password@hostname
-pop 2: pop://username:password@hostname
-pop 3: pop://username:password@hostname:555
-pop 4: pop://username:password@[::1]
-pop 5: pop://username:password@[::1]
-pop 6: pop://username:password@[::1]:555
-pop 7: pop://username:password;auth=MECH@hostname
-pop 8: pop://username:password;auth=MECH@hostname
-pop 9: pop://username:password;auth=MECH@hostname:555
-pop 10: pop://username:password;auth=MECH@[::1]
-pop 11: pop://username:password;auth=MECH@[::1]
-pop 12: pop://username:password;auth=MECH@[::1]:555
+pop 1: pop://usern%40me:password@hostname
+pop 2: pop://usern%40me:password@hostname
+pop 3: pop://usern%40me:password@hostname:555
+pop 4: pop://usern%40me:password@[::1]
+pop 5: pop://usern%40me:password@[::1]
+pop 6: pop://usern%40me:password@[::1]:555
+pop 7: pop://usern%40me:password;AUTH=MECH@hostname
+pop 8: pop://usern%40me:password;AUTH=MECH@hostname
+pop 9: pop://usern%40me:password;AUTH=MECH@hostname:555
+pop 10: pop://usern%40me:password;AUTH=MECH@[::1]
+pop 11: pop://usern%40me:password;AUTH=MECH@[::1]
+pop 12: pop://usern%40me:password;AUTH=MECH@[::1]:555
 pop 13: invalid
-pop 14: pops://username:password@hostname
-pop 15: pops://username:password@hostname
-pop 16: pops://username:password@hostname:555
-pop 17: pops://username:password@[::1]
-pop 18: pops://username:password@[::1]
-pop 19: pops://username:password@[::1]:555
-pop 20: pops://username:password;auth=MECH@hostname
-pop 21: pops://username:password;auth=MECH@hostname
-pop 22: pops://username:password;auth=MECH@hostname:555
-pop 23: pops://username:password;auth=MECH@[::1]
-pop 24: pops://username:password;auth=MECH@[::1]
-pop 25: pops://username:password;auth=MECH@[::1]:555
+pop 14: pops://usern%40me:password@hostname
+pop 15: pops://usern%40me:password@hostname
+pop 16: pops://usern%40me:password@hostname:555
+pop 17: pops://usern%40me:password@[::1]
+pop 18: pops://usern%40me:password@[::1]
+pop 19: pops://usern%40me:password@[::1]:555
+pop 20: pops://usern%40me:password;AUTH=MECH@hostname
+pop 21: pops://usern%40me:password;AUTH=MECH@hostname
+pop 22: pops://usern%40me:password;AUTH=MECH@hostname:555
+pop 23: pops://usern%40me:password;AUTH=MECH@[::1]
+pop 24: pops://usern%40me:password;AUTH=MECH@[::1]
+pop 25: pops://usern%40me:password;AUTH=MECH@[::1]:555
 imap 0: invalid
-imap 1: imap://username:password@hostname
-imap 2: imap://username:password@hostname/mailbox
-imap 3: imap://username:password@hostname
-imap 4: imap://username:password@hostname/mailbox
-imap 5: imap://username:password@hostname:555
-imap 6: imap://username:password@hostname:555/mailbox
-imap 7: imap://username:password@[::1]
-imap 8: imap://username:password@[::1]/mailbox
-imap 9: imap://username:password@[::1]
-imap 10: imap://username:password@[::1]/mailbox
-imap 11: imap://username:password@[::1]:555
-imap 12: imap://username:password@[::1]:555/mailbox
-imap 13: imap://username:password;auth=MECH@hostname
-imap 14: imap://username:password;auth=MECH@hostname/mailbox
-imap 15: imap://username:password;auth=MECH@hostname
-imap 16: imap://username:password;auth=MECH@hostname/mailbox
-imap 17: imap://username:password;auth=MECH@hostname:555
-imap 18: imap://username:password;auth=MECH@hostname:555/mailbox
-imap 19: imap://username:password;auth=MECH@[::1]
-imap 20: imap://username:password;auth=MECH@[::1]/mailbox
-imap 21: imap://username:password;auth=MECH@[::1]
-imap 22: imap://username:password;auth=MECH@[::1]/mailbox
-imap 23: imap://username:password;auth=MECH@[::1]:555
-imap 24: imap://username:password;auth=MECH@[::1]:555/mailbox
+imap 1: imap://usern%40me:password@hostname
+imap 2: imap://usern%40me:password@hostname/mailbox
+imap 3: imap://usern%40me:password@hostname
+imap 4: imap://usern%40me:password@hostname/mailbox
+imap 5: imap://usern%40me:password@hostname:555
+imap 6: imap://usern%40me:password@hostname:555/mailbox
+imap 7: imap://usern%40me:password@[::1]
+imap 8: imap://usern%40me:password@[::1]/mailbox
+imap 9: imap://usern%40me:password@[::1]
+imap 10: imap://usern%40me:password@[::1]/mailbox
+imap 11: imap://usern%40me:password@[::1]:555
+imap 12: imap://usern%40me:password@[::1]:555/mailbox
+imap 13: imap://usern%40me:password;AUTH=MECH@hostname
+imap 14: imap://usern%40me:password;AUTH=MECH@hostname/mailbox
+imap 15: imap://usern%40me:password;AUTH=MECH@hostname
+imap 16: imap://usern%40me:password;AUTH=MECH@hostname/mailbox
+imap 17: imap://usern%40me:password;AUTH=MECH@hostname:555
+imap 18: imap://usern%40me:password;AUTH=MECH@hostname:555/mailbox
+imap 19: imap://usern%40me:password;AUTH=MECH@[::1]
+imap 20: imap://usern%40me:password;AUTH=MECH@[::1]/mailbox
+imap 21: imap://usern%40me:password;AUTH=MECH@[::1]
+imap 22: imap://usern%40me:password;AUTH=MECH@[::1]/mailbox
+imap 23: imap://usern%40me:password;AUTH=MECH@[::1]:555
+imap 24: imap://usern%40me:password;AUTH=MECH@[::1]:555/mailbox
 imap 25: invalid
-imap 26: imaps://username:password@hostname
-imap 27: imaps://username:password@hostname/mailbox
-imap 28: imaps://username:password@hostname
-imap 29: imaps://username:password@hostname/mailbox
-imap 30: imaps://username:password@hostname:555
-imap 31: imaps://username:password@hostname:555/mailbox
-imap 32: imaps://username:password@[::1]
-imap 33: imaps://username:password@[::1]/mailbox
-imap 34: imaps://username:password@[::1]
-imap 35: imaps://username:password@[::1]/mailbox
-imap 36: imaps://username:password@[::1]:555
-imap 37: imaps://username:password@[::1]:555/mailbox
-imap 38: imaps://username:password;auth=MECH@hostname
-imap 39: imaps://username:password;auth=MECH@hostname/mailbox
-imap 40: imaps://username:password;auth=MECH@hostname
-imap 41: imaps://username:password;auth=MECH@hostname/mailbox
-imap 42: imaps://username:password;auth=MECH@hostname:555
-imap 43: imaps://username:password;auth=MECH@hostname:555/mailbox
-imap 44: imaps://username:password;auth=MECH@[::1]
-imap 45: imaps://username:password;auth=MECH@[::1]/mailbox
-imap 46: imaps://username:password;auth=MECH@[::1]
-imap 47: imaps://username:password;auth=MECH@[::1]/mailbox
-imap 48: imaps://username:password;auth=MECH@[::1]:555
-imap 49: imaps://username:password;auth=MECH@[::1]:555/mailbox
+imap 26: imaps://usern%40me:password@hostname
+imap 27: imaps://usern%40me:password@hostname/mailbox
+imap 28: imaps://usern%40me:password@hostname
+imap 29: imaps://usern%40me:password@hostname/mailbox
+imap 30: imaps://usern%40me:password@hostname:555
+imap 31: imaps://usern%40me:password@hostname:555/mailbox
+imap 32: imaps://usern%40me:password@[::1]
+imap 33: imaps://usern%40me:password@[::1]/mailbox
+imap 34: imaps://usern%40me:password@[::1]
+imap 35: imaps://usern%40me:password@[::1]/mailbox
+imap 36: imaps://usern%40me:password@[::1]:555
+imap 37: imaps://usern%40me:password@[::1]:555/mailbox
+imap 38: imaps://usern%40me:password;AUTH=MECH@hostname
+imap 39: imaps://usern%40me:password;AUTH=MECH@hostname/mailbox
+imap 40: imaps://usern%40me:password;AUTH=MECH@hostname
+imap 41: imaps://usern%40me:password;AUTH=MECH@hostname/mailbox
+imap 42: imaps://usern%40me:password;AUTH=MECH@hostname:555
+imap 43: imaps://usern%40me:password;AUTH=MECH@hostname:555/mailbox
+imap 44: imaps://usern%40me:password;AUTH=MECH@[::1]
+imap 45: imaps://usern%40me:password;AUTH=MECH@[::1]/mailbox
+imap 46: imaps://usern%40me:password;AUTH=MECH@[::1]
+imap 47: imaps://usern%40me:password;AUTH=MECH@[::1]/mailbox
+imap 48: imaps://usern%40me:password;AUTH=MECH@[::1]:555
+imap 49: imaps://usern%40me:password;AUTH=MECH@[::1]:555/mailbox
 gmail 0: invalid
-gmail 1: gmail://username:password
+gmail 1: gmail://usern%40me:password
diff --git a/ui/Makefile.am b/ui/Makefile.am
@@ -3,12 +3,14 @@ uidir = $(pkgdatadir)/ui
 interfaces =					\
 	dialog.glade				\
 	mailbox-properties.glade		\
-	properties.glade
+	properties.glade			\
+	welcome.glade
 
 projects =					\
 	dialog.gladep				\
 	mailbox-properties.gladep		\
-	properties.gladep
+	properties.gladep			\
+	welcome.gladep
 
 dist_ui_DATA = $(interfaces)
 
diff --git a/ui/Makefile.in b/ui/Makefile.in
@@ -210,12 +210,14 @@ uidir = $(pkgdatadir)/ui
 interfaces = \
 	dialog.glade				\
 	mailbox-properties.glade		\
-	properties.glade
+	properties.glade			\
+	welcome.glade
 
 projects = \
 	dialog.gladep				\
 	mailbox-properties.gladep		\
-	properties.gladep
+	properties.gladep			\
+	welcome.gladep
 
 dist_ui_DATA = $(interfaces)
 EXTRA_DIST = $(projects)
diff --git a/ui/dialog.glade b/ui/dialog.glade
@@ -12,6 +12,7 @@
   <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>
diff --git a/ui/properties.glade b/ui/properties.glade
@@ -12,7 +12,7 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
-  <property name="icon">properties-icon.png</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>
diff --git a/ui/welcome.glade b/ui/welcome.glade
@@ -0,0 +1,244 @@
+<?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="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-7</property>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment3">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">0</property>
+		  <property name="yscale">0</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">0</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox4">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkImage" id="image4">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-close</property>
+			  <property name="icon_size">4</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="GtkLabel" id="label4">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">_Skip configuration</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.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>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button2">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment2">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">0</property>
+		  <property name="yscale">0</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">0</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox3">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkImage" id="image3">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-properties</property>
+			  <property name="icon_size">4</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="GtkLabel" id="label3">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">_Configure Mail Notification</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.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>
+		    </widget>
+		  </child>
+		</widget>
+	      </child>
+	    </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="pixbuf">logo.png</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">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label1">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot; size=&quot;larger&quot;&gt;First startup&lt;/span&gt;
+
+Mail Notification has been loaded successfully.
+
+Since this is the first time you run Mail Notification, you might want to configure it.
+
+Note: this message will not be shown anymore. To configure Mail Notification again, choose &lt;span weight=&quot;bold&quot;&gt;Applications&lt;/span&gt; → &lt;span weight=&quot;bold&quot;&gt;Desktop Preferences&lt;/span&gt; → &lt;span weight=&quot;bold&quot;&gt;Mail Notification&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">True</property>
+	      <property name="selectable">False</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">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>
+  </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/welcome.gladep b/ui/welcome.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 Welcome</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>