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 2abad4e8f58083028a0f887a61c62cb94c320084
parent 4e15c31f6ecbf82043494043d83ca8bd4a6a951e
Author: Jean-Yves Lefort <jylefort@brutele.be>
Date:   Wed, 10 Aug 2005 06:04:21 +1000

mail-notification-2.0

* Core changes:
        * Evolution support has been added
        * Mailboxes can now be assigned a custom name
        * For greater flexibility, mailboxes configuration is
          now stored in ~/.gnome2/mail-notification/mailboxes.xml
          (previously, it was stored in the GConf database)
        * The mailbox list widget has been redesigned
        * The mailbox properties dialog has been redesigned
        * Copying a mailbox to the clipboard does not make it
          available to Nautilus anymore: that behaviour was
          confusing and useless. However, pasting files copied
          from Nautilus still works.
        * If a mailbox requires authentication and the
          necessary credentials are not provided in the
          mailbox properties dialog, Mail Notification now
          lets GNOME prompt the user for the credentials
        * A test popup can now be displayed from the Mail
          Summary Popup properties tab
        * The --report command line option has been removed
        * The Mail Notification item is now also listed in the
          GNOME >= 2.10 Preferences menu
        * The welcome dialog has been removed
        * A few icons have been modified
        * The third-party libegg code has been updated
        * Now requires GTK+ version 2.6.0 or superior
        * Minor fixes and cleanups

* mbox, MH, Maildir and Sylpheed changes:
        * Immediate notification did not work properly with
          fast kernel notifiers (kqueue, inotify, dnotify,
          ...): fixed
        * Unseekable files are now supported
        * Mailbox type changes are now detected and handled
          (previously, Mail Notification had to be restarted
          if a mailbox changed type)
        * The location of the system mailbox is now resolved
          at runtime rather than when the mailbox is added
          (eases sharing the Mail Notification settings across
          multiple computers)

* mbox changes:
        * When immediate notification is not available, the
          mailbox is now also checked when its size or ctime
          changes (previously, it was only checked if its
          mtime had changed)

* Sylpheed changes:
        * Mail Notification now tries to avoid race conditions
          which may occur while Sylpheed is being used
        * Mark file errors are not ignored anymore
        * A memory leak has been fixed

* POP3, IMAP and Gmail changes:
        * The username can now also be left out, and will be
          prompted when needed

* POP3 and IMAP changes:
        * Non-UTF-8 characters are now escaped from
          uncompliant server responses before being displayed
          in the user interface
        * If the system resolver is not reentrant,
          getaddrinfo()/getnameinfo() calls are now serialized
        * The Cyrus SASL library is now initialized only once,
          since multiple sasl_client_init()/sasl_done()
          invocations may cause problems (another benefit is
          that it allows the SASL library to use the POP3
          initial client response feature, which saves a
          roundtrip during the SASL authentication exchange)
        * When the authentication mechanism option is set to
          "autodetect", Mail Notification will now try to
          authenticate using each server-supported SASL
          mechanism
        * Mail Notification was incorrectly disallowing empty
          SASL server challenges, although they are legit:
          fixed

* POP3 changes:
        * The TOP optional command is now supported. This
          solves some issues with POP3 servers (for instance,
          pop.gmail.com) which incorrectly archive mails that
          have been accessed using the RETR command.
        * Initial SASL client responses are now handled
          properly (passed as an argument to the AUTH command
          rather than in the SASL authentication exchange)

* IMAP changes:
        * If, while idling, the server abruptly drops the
          connection, Mail Notification now reconnects rather
          than considering it an error
        * When idling, Mail Notification now only wakes up if
          it receives a response indicating that the mailbox
          might have changed
        * By default, Mail Notification now avoids using the
          IDLE extension if the remote server software is
          known to have a broken IDLE implementation
        * UTF-8 mailbox names are now converted to modified
          UTF-7, as required by RFC 3501

* Gmail changes:
        * Functionality has been restored after the Gmail web
          site was modified; to prevent future disruptions and
          simplify the source code, the Gmail Atom feed
          (https://mail.google.com/mail/feed/atom) is now used
        * Now works even if the Gmail account language is not
          set to English
        * libsoup and ICU are no longer required

* Updated translations:
        * French
        * Serbian (Filip Miletic)
        * German (Hendrik Brandt, Jens Seidel)

Diffstat:
MAUTHORS | 19+++++++++----------
MINSTALL | 85+++++++++++++++++++++++++++++++++++++++++++------------------------------------
MMakefile.am | 1-
MMakefile.in | 140+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
MNEWS | 126+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
MREADME | 31+++++++++++++++++--------------
MTODO | 2--
Macinclude.m4 | 2+-
Maclocal.m4 | 7372++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
Mart/Makefile.am | 9++++++---
Mart/Makefile.in | 118++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------
Mart/gmail.png | 0
Dart/unsupported.png | 0
Mautogen.sh | 21++++++++++++++-------
Dautotools.conf | 10----------
Mcompile | 147+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Mconfig.h.in | 40++++++++++++++++++++++++++--------------
Mconfigure | 19162++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
Mconfigure.ac | 74+++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Adata/GNOME_MailNotification.server.in.in | 18++++++++++++++++++
Ddata/GNOME_MailNotification_Automation.server.in.in | 18------------------
Adata/GNOME_MailNotification_Evolution.server.in | 36++++++++++++++++++++++++++++++++++++
Mdata/Makefile.am | 35+++++++++++++++++++++--------------
Mdata/Makefile.in | 200+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Mdata/mail-notification.schemas.in | 24+-----------------------
Mdepcomp | 375++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
Mhelp/C/Makefile.am | 8+++++++-
Mhelp/C/Makefile.in | 120++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
Ahelp/C/figures/mailbox-emblem-error.png | 0
Ahelp/C/figures/mailbox-emblem-polled.png | 0
Ahelp/C/figures/mailbox-emblem-unknown.png | 0
Mhelp/C/mail-notification-C.omf | 4++--
Mhelp/C/mail-notification.xml | 406+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Ahelp/C/validate.stamp | 0
Mhelp/Makefile.in | 124++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------
Minstall-sh | 496+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
Mintltool-extract.in | 352+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
Mintltool-merge.in | 190++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Mintltool-update.in | 49+++++++++++++++++++++++++++++++------------------
Altmain.sh | 6500+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mm4/Makefile.am | 7++++++-
Mm4/Makefile.in | 109+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
Am4/evolution-plugin.m4 | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Am4/gnome.m4 | 48++++++++++++++++++++++++++++++++++++++++++++++++
Dm4/icu.m4 | 67-------------------------------------------------------------------
Am4/intltool.m4 | 184+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Am4/reentrant-resolver.m4 | 49+++++++++++++++++++++++++++++++++++++++++++++++++
Mmissing | 153+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
Mmkinstalldirs | 164++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Apo/ChangeLog | 0
Mpo/Makefile.in.in | 67++++++++++++++++++++++++++++++++++++++-----------------------------
Mpo/POTFILES.in | 59++++++++++++++++++++++++-----------------------------------
Dpo/bg.gmo | 0
Mpo/bg.po | 1552+++++++++++++++++--------------------------------------------------------------
Dpo/de.gmo | 0
Mpo/de.po | 1672+++++++++++++++++++++++++++++++++++++------------------------------------------
Dpo/fr.gmo | 0
Mpo/fr.po | 1699++++++++++++++++++++++++++++++++++++++-----------------------------------------
Dpo/mail-notification.pot | 1860-------------------------------------------------------------------------------
Dpo/pl.gmo | 0
Mpo/pl.po | 1025+++++++++++++++++++++++++++----------------------------------------------------
Dpo/pt.gmo | 0
Mpo/pt.po | 97+++++++++++++++++++++++++++++++++++++++----------------------------------------
Dpo/ru.gmo | 0
Mpo/ru.po | 1911++++++++++++++-----------------------------------------------------------------
Dpo/sr.gmo | 0
Mpo/sr.po | 1955++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Dpo/sr@Latn.gmo | 0
Mpo/sr@Latn.po | 1961++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Asrc/GNOME_MailNotification.idl | 35+++++++++++++++++++++++++++++++++++
Asrc/GNOME_MailNotification_Evolution.idl | 50++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/MNAutomation.idl | 33---------------------------------
Msrc/Makefile.am | 257+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Msrc/Makefile.in | 1806+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Msrc/egg-editable-toolbar.c | 111++++++++++++++++++++++++++++++++++++++-----------------------------------------
Msrc/egg-editable-toolbar.h | 20+++++++++-----------
Msrc/egg-toolbar-editor.c | 58+++++++++++++++++++---------------------------------------
Msrc/egg-toolbars-model.c | 50++++++++++++++++++++++++--------------------------
Msrc/egg-toolbars-model.h | 13++++++++-----
Msrc/eggtrayicon.c | 95++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Msrc/eggtrayicon.h | 5++++-
Dsrc/ent2h.sh | 51---------------------------------------------------
Msrc/mn-about-dialog-private.h | 2+-
Msrc/mn-about-dialog.c | 95+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Msrc/mn-about-dialog.gob | 61++++++++++++++++++++++++++++++++++++++++++++-----------------
Msrc/mn-about-dialog.h | 9++++-----
Msrc/mn-auth-combo-box-private.h | 2+-
Msrc/mn-auth-combo-box.c | 128+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Msrc/mn-auth-combo-box.gob | 62++++++++++++++++++++++++++++++++++++++++++++++++++------------
Msrc/mn-auth-combo-box.h | 2+-
Msrc/mn-authenticated-mailbox-private.h | 18+++++++++++++-----
Asrc/mn-authenticated-mailbox-properties-private.h | 19+++++++++++++++++++
Asrc/mn-authenticated-mailbox-properties.c | 277+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-authenticated-mailbox-properties.gob | 141+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-authenticated-mailbox-properties.h | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-authenticated-mailbox.c | 487++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
Msrc/mn-authenticated-mailbox.gob | 225++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Msrc/mn-authenticated-mailbox.h | 28+++++++++++++++++++++++-----
Msrc/mn-autodetect-mailbox-properties-private.h | 10++++------
Msrc/mn-autodetect-mailbox-properties.c | 435+++++++++++++++++++++++++++++++------------------------------------------------
Msrc/mn-autodetect-mailbox-properties.gob | 143+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Msrc/mn-autodetect-mailbox-properties.h | 15++++++---------
Msrc/mn-automation-private.h | 2+-
Msrc/mn-automation.c | 110++++++++++++++++++++++++++++++++-----------------------------------------------
Msrc/mn-automation.gob | 27++++++++-------------------
Msrc/mn-automation.h | 6+++---
Msrc/mn-blinking-image-private.h | 4++--
Msrc/mn-blinking-image.c | 42+++++++++++++++++-------------------------
Msrc/mn-blinking-image.gob | 14+++++++-------
Msrc/mn-blinking-image.h | 2+-
Msrc/mn-client-session.c | 537+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Msrc/mn-client-session.h | 132++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Msrc/mn-conf.c | 42++++++++++++++++++++++++++++++++++++------
Msrc/mn-conf.h | 10++++++----
Asrc/mn-corba-object-private.h | 26++++++++++++++++++++++++++
Asrc/mn-corba-object.c | 406+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-corba-object.gob | 121+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-corba-object.h | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-custom-vfs-mailbox-private.h | 17+++++++++++++++++
Asrc/mn-custom-vfs-mailbox.c | 308+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-custom-vfs-mailbox.gob | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-custom-vfs-mailbox.h | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-dialog-private.h | 17+++++++++++++++++
Asrc/mn-dialog.c | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-dialog.gob | 33+++++++++++++++++++++++++++++++++
Asrc/mn-dialog.h | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-folder-tree-control.c | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-folder-tree-control.h | 28++++++++++++++++++++++++++++
Asrc/mn-evolution-glue-private.h | 17+++++++++++++++++
Asrc/mn-evolution-glue.c | 238+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-glue.gob | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-glue.h | 61+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox-private.h | 31+++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox-properties-private.h | 43+++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox-properties.c | 572+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox-properties.gob | 280+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox-properties.h | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox.c | 541+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox.gob | 256+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-mailbox.h | 81+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution-plugin.c | 191+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-evolution.h | 28++++++++++++++++++++++++++++
Msrc/mn-gmail-mailbox-private.h | 12+++++-------
Msrc/mn-gmail-mailbox-properties-private.h | 12++++--------
Msrc/mn-gmail-mailbox-properties.c | 334++++++++++++++++++++++++-------------------------------------------------------
Msrc/mn-gmail-mailbox-properties.gob | 119+++++++++++++++++++++++++++++++++----------------------------------------------
Msrc/mn-gmail-mailbox-properties.h | 17++++++-----------
Msrc/mn-gmail-mailbox.c | 1571+++++++++++++++++++------------------------------------------------------------
Msrc/mn-gmail-mailbox.gob | 1046+++++++++++++++----------------------------------------------------------------
Msrc/mn-gmail-mailbox.h | 18+++++++++++++++++-
Msrc/mn-gmime-stream-vfs-private.h | 8++++----
Msrc/mn-gmime-stream-vfs.c | 233+++++++++++++++++++++++++++++++++++--------------------------------------------
Msrc/mn-gmime-stream-vfs.gob | 83+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
Msrc/mn-gmime-stream-vfs.h | 5+++--
Dsrc/mn-icu.c | 83-------------------------------------------------------------------------------
Dsrc/mn-icu.h | 30------------------------------
Msrc/mn-imap-mailbox-private.h | 10+++++-----
Msrc/mn-imap-mailbox-properties-private.h | 20+++++++++++++-------
Msrc/mn-imap-mailbox-properties.c | 420++++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/mn-imap-mailbox-properties.gob | 225+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Msrc/mn-imap-mailbox-properties.h | 4+++-
Msrc/mn-imap-mailbox.c | 1600+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
Msrc/mn-imap-mailbox.gob | 911+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------
Msrc/mn-imap-mailbox.h | 46++++++++++++++++++++++++++++++++++++++++++----
Msrc/mn-mail-icon-private.h | 2+-
Msrc/mn-mail-icon.c | 99+++++++++++++++++++++++--------------------------------------------------------
Msrc/mn-mail-icon.gob | 33++++++++++++++++-----------------
Msrc/mn-mail-icon.h | 2+-
Asrc/mn-mail-summary-popup-private.h | 38++++++++++++++++++++++++++++++++++++++
Asrc/mn-mail-summary-popup.c | 746+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-mail-summary-popup.gob | 412+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-mail-summary-popup.h | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-mailbox-private.h | 48++++++++++++------------------------------------
Asrc/mn-mailbox-properties-dialog-private.h | 52++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-mailbox-properties-dialog.c | 1244+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Asrc/mn-mailbox-properties-dialog.gob | 528+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-mailbox-properties-dialog.h | 111++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
Asrc/mn-mailbox-properties-private.h | 21+++++++++++++++++++++
Dsrc/mn-mailbox-properties-util.c | 200-------------------------------------------------------------------------------
Dsrc/mn-mailbox-properties-util.h | 52----------------------------------------------------
Msrc/mn-mailbox-properties.c | 428++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Asrc/mn-mailbox-properties.gob | 89+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-mailbox-properties.h | 113++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
Msrc/mn-mailbox-view-private.h | 14+++++++-------
Msrc/mn-mailbox-view.c | 1091++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/mn-mailbox-view.gob | 602+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
Msrc/mn-mailbox-view.h | 2+-
Msrc/mn-mailbox.c | 1545+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Msrc/mn-mailbox.gob | 991+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------
Msrc/mn-mailbox.h | 80+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Msrc/mn-mailboxes-private.h | 14+++++++++-----
Msrc/mn-mailboxes.c | 1224++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
Msrc/mn-mailboxes.gob | 547+++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------
Msrc/mn-mailboxes.h | 37++++++++++++++++++++++---------------
Asrc/mn-maildir-mailbox-backend-private.h | 17+++++++++++++++++
Asrc/mn-maildir-mailbox-backend.c | 287+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-maildir-mailbox-backend.gob | 158+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-maildir-mailbox-backend.h | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/mn-maildir-mailbox-private.h | 17-----------------
Dsrc/mn-maildir-mailbox.c | 297-------------------------------------------------------------------------------
Dsrc/mn-maildir-mailbox.gob | 155-------------------------------------------------------------------------------
Dsrc/mn-maildir-mailbox.h | 57---------------------------------------------------------
Asrc/mn-main-window-private.h | 56++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-main-window.c | 2275+++++++++++++++++++++++++++++++++++++++++++++++--------------------------------
Asrc/mn-main-window.gob | 880+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-main-window.h | 79++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------
Msrc/mn-main.c | 272++++++++++++++++++++++++++++++++++++++++---------------------------------------
Asrc/mn-mbox-mailbox-backend-private.h | 26++++++++++++++++++++++++++
Asrc/mn-mbox-mailbox-backend.c | 346+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-mbox-mailbox-backend.gob | 231+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-mbox-mailbox-backend.h | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/mn-mbox-mailbox-private.h | 28----------------------------
Dsrc/mn-mbox-mailbox.c | 348-------------------------------------------------------------------------------
Dsrc/mn-mbox-mailbox.gob | 195-------------------------------------------------------------------------------
Dsrc/mn-mbox-mailbox.h | 62--------------------------------------------------------------
Msrc/mn-message-mime.c | 60+++++++++++++++++++++++++++++++-----------------------------
Msrc/mn-message-mime.h | 10+++++-----
Msrc/mn-message-private.h | 2+-
Msrc/mn-message-view-private.h | 16++++++++--------
Msrc/mn-message-view.c | 207++++++++++++++++++++++++++++++++++++-------------------------------------------
Msrc/mn-message-view.gob | 33+++++++++++++++++----------------
Msrc/mn-message-view.h | 2+-
Msrc/mn-message.c | 204++++++++++++++++++++++++++++++++++++-------------------------------------------
Msrc/mn-message.gob | 26++++++++++++++------------
Msrc/mn-message.h | 26+++++++++++++-------------
Asrc/mn-mh-mailbox-backend-private.h | 17+++++++++++++++++
Asrc/mn-mh-mailbox-backend.c | 309+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-mh-mailbox-backend.gob | 180+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-mh-mailbox-backend.h | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/mn-mh-mailbox-private.h | 17-----------------
Dsrc/mn-mh-mailbox.c | 309-------------------------------------------------------------------------------
Dsrc/mn-mh-mailbox.gob | 167-------------------------------------------------------------------------------
Dsrc/mn-mh-mailbox.h | 57---------------------------------------------------------
Dsrc/mn-pending-mailbox-private.h | 17-----------------
Dsrc/mn-pending-mailbox.c | 142-------------------------------------------------------------------------------
Dsrc/mn-pending-mailbox.gob | 43-------------------------------------------
Dsrc/mn-pending-mailbox.h | 58----------------------------------------------------------
Asrc/mn-pi-mailbox-private.h | 20++++++++++++++++++++
Msrc/mn-pi-mailbox-properties-private.h | 6++----
Msrc/mn-pi-mailbox-properties.c | 625++++++++++++++++++++++++++++++++++++-------------------------------------------
Msrc/mn-pi-mailbox-properties.gob | 330++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/mn-pi-mailbox-properties.h | 33+++++++--------------------------
Asrc/mn-pi-mailbox.c | 550+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-pi-mailbox.gob | 217+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-pi-mailbox.h | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-pop3-mailbox-private.h | 6+++---
Msrc/mn-pop3-mailbox-properties-private.h | 2+-
Msrc/mn-pop3-mailbox-properties.c | 238++++++++++++++++++++++---------------------------------------------------------
Msrc/mn-pop3-mailbox-properties.gob | 110++++++++++++++++++++++++-------------------------------------------------------
Msrc/mn-pop3-mailbox-properties.h | 4+++-
Msrc/mn-pop3-mailbox.c | 1157+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Msrc/mn-pop3-mailbox.gob | 693+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Msrc/mn-pop3-mailbox.h | 14++++++++++----
Asrc/mn-properties-dialog-private.h | 123+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-properties-dialog.c | 1119++++++++++++++++++++++++++++++++++++++++++++++---------------------------------
Asrc/mn-properties-dialog.gob | 489+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-properties-dialog.h | 83++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
Asrc/mn-reentrant-mailbox-private.h | 33+++++++++++++++++++++++++++++++++
Asrc/mn-reentrant-mailbox.c | 420+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-reentrant-mailbox.gob | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-reentrant-mailbox.h | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-sasl.c | 51+++++++++++++++++++++++++++------------------------
Msrc/mn-sasl.h | 5++---
Dsrc/mn-sgml-entities.h | 277-------------------------------------------------------------------------------
Dsrc/mn-sgml-ref.c | 131-------------------------------------------------------------------------------
Dsrc/mn-sgml-ref.h | 24------------------------
Msrc/mn-shell-private.h | 26++++++++++++++++++--------
Msrc/mn-shell.c | 871+++++++++++++++++++++++++++++++++++++++----------------------------------------
Msrc/mn-shell.gob | 362++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
Msrc/mn-shell.h | 14++++++++------
Dsrc/mn-soup.c | 150-------------------------------------------------------------------------------
Dsrc/mn-soup.h | 26--------------------------
Msrc/mn-ssl.c | 29+++++++++++++----------------
Msrc/mn-stock.c | 19++++++++++++++-----
Msrc/mn-stock.h | 10+++++++++-
Dsrc/mn-summary-popup.c | 557-------------------------------------------------------------------------------
Dsrc/mn-summary-popup.h | 25-------------------------
Asrc/mn-sylpheed-mailbox-backend-private.h | 22++++++++++++++++++++++
Asrc/mn-sylpheed-mailbox-backend.c | 467+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-sylpheed-mailbox-backend.gob | 282+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-sylpheed-mailbox-backend.h | 62++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/mn-sylpheed-mailbox-private.h | 17-----------------
Dsrc/mn-sylpheed-mailbox.c | 354-------------------------------------------------------------------------------
Dsrc/mn-sylpheed-mailbox.gob | 194-------------------------------------------------------------------------------
Dsrc/mn-sylpheed-mailbox.h | 57---------------------------------------------------------
Dsrc/mn-system-mailbox-properties-private.h | 24------------------------
Dsrc/mn-system-mailbox-properties.c | 335-------------------------------------------------------------------------------
Dsrc/mn-system-mailbox-properties.gob | 79-------------------------------------------------------------------------------
Dsrc/mn-system-mailbox-properties.h | 78------------------------------------------------------------------------------
Asrc/mn-system-vfs-mailbox-private.h | 17+++++++++++++++++
Asrc/mn-system-vfs-mailbox-properties-private.h | 17+++++++++++++++++
Asrc/mn-system-vfs-mailbox-properties.c | 217+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-system-vfs-mailbox-properties.gob | 80+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-system-vfs-mailbox-properties.h | 69+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-system-vfs-mailbox.c | 237+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-system-vfs-mailbox.gob | 96+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-system-vfs-mailbox.h | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-tooltips-private.h | 14+++++++-------
Msrc/mn-tooltips.c | 215++++++++++++++++++++++++++++++++++++-------------------------------------------
Msrc/mn-tooltips.gob | 48+++++++++++++++++++++++-------------------------
Msrc/mn-tooltips.h | 2+-
Dsrc/mn-unsupported-mailbox-private.h | 22----------------------
Dsrc/mn-unsupported-mailbox.c | 268-------------------------------------------------------------------------------
Dsrc/mn-unsupported-mailbox.gob | 51---------------------------------------------------
Dsrc/mn-unsupported-mailbox.h | 77-----------------------------------------------------------------------------
Dsrc/mn-uri-private.h | 17-----------------
Dsrc/mn-uri.c | 883-------------------------------------------------------------------------------
Dsrc/mn-uri.gob | 588-------------------------------------------------------------------------------
Dsrc/mn-uri.h | 124-------------------------------------------------------------------------------
Msrc/mn-util.c | 489+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
Msrc/mn-util.h | 35++++++++++++++++++++++++++++++-----
Asrc/mn-vfs-mailbox-backend-private.h | 27+++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox-backend.c | 463+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox-backend.gob | 167+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox-backend.h | 83+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox-private.h | 33+++++++++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox.c | 610++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox.gob | 420+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/mn-vfs-mailbox.h | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/mn-vfs.c | 19++++++++++++++++++-
Msrc/mn-vfs.h | 6+++++-
Asrc/nautilus-cell-renderer-pixbuf-emblem.c | 505+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/nautilus-cell-renderer-pixbuf-emblem.h | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/org-gnome-mail-notification.eplug.in | 17+++++++++++++++++
Dsrc/xhtml-lat1.ent | 196-------------------------------------------------------------------------------
Dsrc/xhtml-special.ent | 79-------------------------------------------------------------------------------
Dsrc/xhtml-symbol.ent | 242-------------------------------------------------------------------------------
Mtests/Makefile.am | 20--------------------
Mtests/Makefile.in | 200++++++++++++++++++++++++++++++++++++++++---------------------------------------
Dtests/test-sgml-ref.c | 51---------------------------------------------------
Dtests/test-uri.c | 164-------------------------------------------------------------------------------
Mui/Makefile.am | 29+++++++++--------------------
Mui/Makefile.in | 135+++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------
Dui/authentication.glade | 260-------------------------------------------------------------------------------
Dui/authentication.gladep | 14--------------
Aui/edit-toolbars-dialog.glade | 163+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aui/edit-toolbars-dialog.gladep | 14++++++++++++++
Dui/edit-toolbars.glade | 159-------------------------------------------------------------------------------
Dui/edit-toolbars.gladep | 14--------------
Aui/mail-summary-popup.glade | 120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aui/mail-summary-popup.gladep | 14++++++++++++++
Aui/mailbox-properties-dialog.glade | 336+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aui/mailbox-properties-dialog.gladep | 14++++++++++++++
Dui/mailbox-properties.glade | 122-------------------------------------------------------------------------------
Dui/mailbox-properties.gladep | 14--------------
Dui/main.glade | 93-------------------------------------------------------------------------------
Dui/main.gladep | 14--------------
Aui/properties-dialog.glade | 1890+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aui/properties-dialog.gladep | 14++++++++++++++
Dui/properties.glade | 1744-------------------------------------------------------------------------------
Dui/properties.gladep | 14--------------
Dui/summary-popup.glade | 115-------------------------------------------------------------------------------
Dui/summary-popup.gladep | 14--------------
Dui/welcome.glade | 244-------------------------------------------------------------------------------
Dui/welcome.gladep | 14--------------
355 files changed, 74809 insertions(+), 34904 deletions(-)
diff --git a/AUTHORS b/AUTHORS
@@ -4,24 +4,23 @@
 
 Developed by Jean-Yves Lefort <jylefort@brutele.be>.
 
-Contributors:
-	* Hendrik Brandt <eru@gmx.li> (German translations)
+Translators:
+	* Hendrik Brandt <eru@gmx.li>,
+	  Jens Seidel <jensseidel@users.sf.net> (German)
 	* Duarte Henriques <duarte_henriques@myrealbox.com>
-	  (Portuguese translations)
-	* Dan Korostelev <dan@ats.energo.ru> (Russian translations)
-	* Filip Miletic <filmil@gmail.com> (Serbian translations)
-	* Vladimir Petkov <vpetkov@i-space.org> (Bulgarian
-	  translations)
+	  (Portuguese)
+	* Dan Korostelev <dan@ats.energo.ru> (Russian)
+	* Filip Miletic <filmil@gmail.com> (Serbian)
+	* Vladimir Petkov <vpetkov@i-space.org> (Bulgarian)
 	* Tomasz Sarota-Raczek <tomasz.sarota.raczek@gmail.com>,
-	  Maurycy Pawłowski-Wieroński <maurycy@abstrakcja.pl>
-	  (Polish translations)
+	  Maurycy Pawłowski-Wieroński <maurycy@abstrakcja.pl> (Polish)
 
 External code sources:
 	* libegg (src/egg*)
+	* Nautilus (src/nautilus*)
 
 External art sources (images taken as-is or slightly modified):
 	* Google (gmail.png)
 	* Evolution (mail-notification.png)
-	* GTK+ (unsupported.png)
 	* GNOME Icon Theme (main-window.png)
 	* libegg (hand-open.png)
diff --git a/INSTALL b/INSTALL
@@ -11,7 +11,7 @@ Index
 
 0. About this document
 
-	$Id: INSTALL,v 1.17 2005/03/01 01:43:58 jylefort Exp $
+	$Id: INSTALL,v 1.18 2005/08/03 16:48:43 jylefort Exp $
 
 	Copyright (C) 2003-2005 Jean-Yves Lefort.
 
@@ -20,31 +20,21 @@ Index
 
 1. Dependencies
 
-	Mandatory libraries:
+	Mandatory:
 
-		* GTK+ (version 2.4.0 or superior)
+		* GTK+ (version 2.6.0 or superior)
 		  http://www.gtk.org/
 
 		* GNOME (version 2.6.0 or superior)
 		  http://www.gnome.org/
 
-	Optional libraries:
+	Optional:
 
 		* for mbox, MH, Maildir, POP3, IMAP and Sylpheed support:
 
 		  GMime (version 2.1.0 or superior)
 		  http://spruce.sourceforge.net/gmime/
 
-		* for Gmail support:
-
-		  GNOME (version 2.8.0 or superior)
-		  http://www.gnome.org/
-
-		* for Gmail timestamps support:
-
-		  ICU (version 2.6 or superior)
-		  http://ibm.com/software/globalization/icu/
-
 		* for SSL/TLS support:
 
 		  OpenSSL (version 0.9.5b or superior)
@@ -55,32 +45,37 @@ Index
 		  Cyrus SASL (version 2.0 or superior)
 		  http://asg.web.cmu.edu/sasl/sasl-library.html
 
+		* for Evolution support:
+
+		  Evolution (version 2.2 or superior)
+		  http://www.gnome.org/projects/evolution/
+
 2. Instructions
 
-	Mail Notification uses the well-known GNU build system. Hence,
-	the following usual sequence will probably satisfy most users:
+	Mail Notification uses the GNU build system. Hence, the
+	following usual sequence will probably satisfy most users:
 
-		$ ./configure --prefix=/usr
+		$ ./configure
 		$ 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). To
-		  know where GNOME is installed on your system, type:
-
-			$ pkg-config --variable prefix libgnome-2.0
-
 		* Due to a bug in bonobo-activation
 		  (http://bugzilla.gnome.org/show_bug.cgi?id=151082),
 		  your session must be restarted after installing Mail
 		  Notification.
 
-	The ./configure script options are documented below. They are
-	enabled by default and automatically disabled if a requirement
-	is not met, so you probably do not need to use them.
+		* For building Evolution support, you must specify the
+		  path to the Evolution source directory, for
+		  instance:
+
+			$ ./configure \
+			    --with-evolution-source-dir=$HOME/evolution-2.2.3
+
+	The configure script options which are specific to Mail
+	Notification are documented below.
 
 3. Configure options
 
@@ -128,29 +123,41 @@ Index
 		Requirements: Cyrus SASL version 2.0 or superior.
 		Applies to: POP3, IMAP.
 
-	--enable-sylpheed (default: yes)
+	--enable-ipv6 (default: yes)
 
-		Enable Sylpheed mailbox support.
+		Enable IPv6 support.
 
-		Requirements: GMime version 2.1.0 or superior.
+		Applies to: POP3, IMAP.
 
 	--enable-gmail (default: yes)
 
 		Enable Gmail mailbox support.
 
-		Requirements: GNOME version 2.8.0 or superior.
+	--enable-evolution (default: yes)
 
-	--enable-gmail-timestamps (default: yes)
+		Enable Evolution mailbox support.
 
-		Enable Gmail timestamps support. If this option is
-		disabled, Mail Notification will not be able to
-		display the timestamps of Gmail messages.
+		Requirements: Evolution version 2.2 or superior.
 
-		Requirements: GNOME version 2.8.0 or superior.
-		Applies to: Gmail.
+		You must specify the path to the Evolution source
+		directory, for instance:
 
-	--enable-ipv6 (default: yes)
+			$ ./configure \
+			    --with-evolution-source-dir=$HOME/evolution-2.2.3
 
-		Enable IPv6 support.
+	--with-evolution-source-dir=DIR (default: no)
 
-		Applies to: POP3, IMAP.
+		Specify the path to the Evolution source directory,
+		which is required for building Evolution mailbox
+		support.
+
+		Requirements: the source directory corresponding to
+		              the version of Evolution installed on
+		              your system.
+		Applies to: Evolution.
+
+	--enable-sylpheed (default: yes)
+
+		Enable Sylpheed mailbox support.
+
+		Requirements: GMime version 2.1.0 or superior.
diff --git a/Makefile.am b/Makefile.am
@@ -6,7 +6,6 @@ SUBDIRS = art data help m4 po src $(tests) ui
 
 EXTRA_DIST = \
 	autogen.sh		\
-	autotools.conf		\
 	intltool-extract.in	\
 	intltool-merge.in	\
 	intltool-update.in
diff --git a/Makefile.in b/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -33,16 +33,22 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-subdir = .
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
 	$(top_srcdir)/configure AUTHORS COPYING INSTALL NEWS TODO \
-	compile config.guess config.sub depcomp install-sh missing \
-	mkinstalldirs
+	compile config.guess config.sub depcomp install-sh ltmain.sh \
+	missing mkinstalldirs
+subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -76,6 +82,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -88,15 +95,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -113,10 +129,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -127,9 +139,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -142,12 +157,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -155,7 +173,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -172,25 +189,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -211,20 +231,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -239,12 +278,15 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
 @WITH_REGRESSION_TESTS_TRUE@tests = tests
 SUBDIRS = art data help m4 po src $(tests) ui
 EXTRA_DIST = \
 	autogen.sh		\
-	autotools.conf		\
 	intltool-extract.in	\
 	intltool-merge.in	\
 	intltool-update.in
@@ -308,6 +350,15 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 
 distclean-hdr:
 	-rm -f config.h stamp-h1
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
@@ -317,7 +368,13 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@set fnord $$MAKEFLAGS; amf=$$2; \
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -329,7 +386,7 @@ $(RECURSIVE_TARGETS):
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -337,7 +394,13 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@set fnord $$MAKEFLAGS; amf=$$2; \
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
 	dot_seen=no; \
 	case "$@" in \
 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -358,7 +421,7 @@ maintainer-clean-recursive:
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -604,12 +667,13 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-recursive
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+distclean-am: clean-am distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags
 
 dvi: dvi-recursive
 
@@ -639,7 +703,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-recursive
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-recursive
 
@@ -654,19 +718,19 @@ uninstall-am: uninstall-info-am
 uninstall-info: uninstall-info-recursive
 
 .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
-	check-am clean clean-generic clean-recursive ctags \
-	ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
-	dist-tarZ dist-zip distcheck distclean distclean-generic \
-	distclean-hdr distclean-recursive distclean-tags \
-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic maintainer-clean-recursive \
-	mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
-	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
-	uninstall-info-am
+	check-am clean clean-generic clean-libtool clean-recursive \
+	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+	dist-shar dist-tarZ dist-zip distcheck distclean \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-recursive distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/NEWS b/NEWS
@@ -1,17 +1,131 @@
+2.0					August 9, 2005
+
+	* Core changes:
+		* Evolution support has been added
+		* Mailboxes can now be assigned a custom name
+		* For greater flexibility, mailboxes configuration is
+		  now stored in ~/.gnome2/mail-notification/mailboxes.xml
+		  (previously, it was stored in the GConf database)
+		* The mailbox list widget has been redesigned
+		* The mailbox properties dialog has been redesigned
+		* Copying a mailbox to the clipboard does not make it
+		  available to Nautilus anymore: that behaviour was
+		  confusing and useless. However, pasting files copied
+		  from Nautilus still works.
+		* If a mailbox requires authentication and the
+		  necessary credentials are not provided in the
+		  mailbox properties dialog, Mail Notification now
+		  lets GNOME prompt the user for the credentials
+		* A test popup can now be displayed from the Mail
+		  Summary Popup properties tab
+		* The --report command line option has been removed
+		* The Mail Notification item is now also listed in the
+		  GNOME >= 2.10 Preferences menu
+		* The welcome dialog has been removed
+		* A few icons have been modified
+		* The third-party libegg code has been updated
+		* Now requires GTK+ version 2.6.0 or superior
+		* Minor fixes and cleanups
+
+	* mbox, MH, Maildir and Sylpheed changes:
+		* Immediate notification did not work properly with
+		  fast kernel notifiers (kqueue, inotify, dnotify,
+		  ...): fixed
+		* Unseekable files are now supported
+		* Mailbox type changes are now detected and handled
+		  (previously, Mail Notification had to be restarted
+		  if a mailbox changed type)
+		* The location of the system mailbox is now resolved
+		  at runtime rather than when the mailbox is added
+		  (eases sharing the Mail Notification settings across
+		  multiple computers)
+
+	* mbox changes:
+		* When immediate notification is not available, the
+		  mailbox is now also checked when its size or ctime
+		  changes (previously, it was only checked if its
+		  mtime had changed)
+
+	* Sylpheed changes:
+		* Mail Notification now tries to avoid race conditions
+		  which may occur while Sylpheed is being used
+		* Mark file errors are not ignored anymore
+		* A memory leak has been fixed
+
+	* POP3, IMAP and Gmail changes:
+		* The username can now also be left out, and will be
+		  prompted when needed
+
+	* POP3 and IMAP changes:
+		* Non-UTF-8 characters are now escaped from
+		  uncompliant server responses before being displayed
+		  in the user interface
+		* If the system resolver is not reentrant,
+		  getaddrinfo()/getnameinfo() calls are now serialized
+		* The Cyrus SASL library is now initialized only once,
+		  since multiple sasl_client_init()/sasl_done()
+		  invocations may cause problems (another benefit is
+		  that it allows the SASL library to use the POP3
+		  initial client response feature, which saves a
+		  roundtrip during the SASL authentication exchange)
+		* When the authentication mechanism option is set to
+		  "autodetect", Mail Notification will now try to
+		  authenticate using each server-supported SASL
+		  mechanism
+		* Mail Notification was incorrectly disallowing empty
+		  SASL server challenges, although they are legit:
+		  fixed
+
+	* POP3 changes:
+		* The TOP optional command is now supported. This
+		  solves some issues with POP3 servers (for instance,
+		  pop.gmail.com) which incorrectly archive mails that
+		  have been accessed using the RETR command.
+		* Initial SASL client responses are now handled
+		  properly (passed as an argument to the AUTH command
+		  rather than in the SASL authentication exchange)
+
+	* IMAP changes:
+		* If, while idling, the server abruptly drops the
+		  connection, Mail Notification now reconnects rather
+		  than considering it an error
+		* When idling, Mail Notification now only wakes up if
+		  it receives a response indicating that the mailbox
+		  might have changed
+		* By default, Mail Notification now avoids using the
+		  IDLE extension if the remote server software is
+		  known to have a broken IDLE implementation
+		* UTF-8 mailbox names are now converted to modified
+		  UTF-7, as required by RFC 3501
+
+	* Gmail changes:
+		* Functionality has been restored after the Gmail web
+		  site was modified; to prevent future disruptions and
+		  simplify the source code, the Gmail Atom feed
+		  (https://mail.google.com/mail/feed/atom) is now used
+		* Now works even if the Gmail account language is not
+		  set to English
+		* libsoup and ICU are no longer required
+
+	* Updated translations:
+		* French
+		* Serbian (Filip Miletic)
+		* German (Hendrik Brandt, Jens Seidel)
+
 1.1					March 6, 2005
 
-	* IMAP fixes:
+	* IMAP changes:
 		* is more tolerant towards uncompliant FETCH responses
 		* ignores case of responses (RFC 3501)
 		* makes sure the server responses are valid ASCII (RFC
 		  3501)
 
-	* Gmail fixes:
+	* Gmail changes:
 		* properly converts timestamps (requires ICU)
 		* handles timestamps from previous years
 		* displays all the messages of a conversation
 
-	* POP3 and IMAP fixes:
+	* POP3 and IMAP changes:
 		* does not loop infinitely when no password is
 		  specified, an authentication mechanism is specified
 		  and authentication fails
@@ -19,7 +133,7 @@
 		  is specified and the server does not support any
 		  SASL authentication mechanism
 
-	* POP3 and Gmail fixes:
+	* POP3 and Gmail changes:
 		* makes sure the server responses are valid UTF-8
 
 	* The mail summary dialog has been replaced by a main window,
@@ -67,7 +181,7 @@
 
 0.8.1					November 4, 2004
 
-	* Mail summary popup fixes and improvements:
+	* Mail summary popup changes:
 		* do not recreate it when updating its contents:
 		  removes some flicker
 		* added a workaround for a Metacity bug which
@@ -104,7 +218,7 @@
 
 0.7.1					October 25, 2004
 
-	* Gmail fixes:
+	* Gmail changes:
 		* does not crash when a GNOME proxy is set
 		* handles starred and labelled messages
 		* ignores non-inbox messages
diff --git a/README b/README
@@ -11,7 +11,7 @@ Index
 
 0. About this document
 
-	$Id: README,v 1.25 2005/03/01 16:55:41 jylefort Exp $
+	$Id: README,v 1.28 2005/08/07 13:14:38 jylefort Exp $
 
 	Copyright (C) 2003-2005 Jean-Yves Lefort.
 
@@ -31,33 +31,36 @@ Index
 	Mail Notification features include:
 
 		* multiple mailbox support
-		* mbox, MH, Maildir, Sylpheed, POP3, IMAP and Gmail
-		  support
+		* mbox, MH, Maildir, POP3, IMAP, Gmail, Evolution and
+		  Sylpheed support
 		* SASL authentication support
 		* APOP authentication support
 		* SSL/TLS support
 		* automatic detection of mailbox format
 		* immediate notification (the status icon is updated
-		  within seconds after a mailbox changes)
+		  immediately or within seconds after a mailbox
+		  changes)
 		* a mail summary
 		* HIG 2.0 compliance
 
 2. Issues in third-party software affecting Mail Notification
 
-	As of March 1, 2005, the following issues are unfixed, and may
-	cause Mail Notification (and other GNOME multi-threaded
-	programs) to crash or hang.
+	* Thread-safety bugs in libgnomeui may cause Mail Notification
+	  (and other multi-threaded GNOME applications) to crash or
+	  hang.
 
-	* thread-safety bug in GLib:
-	  http://bugzilla.gnome.org/show_bug.cgi?id=64764
+	  http://bugzilla.gnome.org/show_bug.cgi?id=152023
+	  http://bugzilla.gnome.org/show_bug.cgi?id=312180
 
-	  Reported on 2001-11-17, maintainers apparently do not care.
+	* An infinite loop in GnomeVFS may affect mailboxes which use
+	  HTTP authentication (for instance, Gmail mailboxes).
 
-	* thread-safety bugs in libgnomeui:
-	  http://bugzilla.gnome.org/show_bug.cgi?id=152023
+	  http://bugzilla.gnome.org/show_bug.cgi?id=310596
+	  (fixed on 20050723)
 
-	  Reported on 2004-09-06, patches provided, maintainers
-	  apparently do not care.
+	* An unidentified bug, probably in the Metacity window
+	  manager, may sometimes cause the mail summary popup to be
+	  misplaced.
 
 3. Installation instructions
 
diff --git a/TODO b/TODO
@@ -1,8 +1,6 @@
 * Check the SSL certificate's hostname against the hostname we used
   (RFC 3501, section 11.1)
 
-* See if we can add an Evolution data server mailbox backend
-
 * List the available IMAP folders in the mailbox properties dialog
 
 * Allow to set a different mail reader for each mailbox. Invoking the
diff --git a/acinclude.m4 b/acinclude.m4
@@ -36,7 +36,7 @@ dnl MN_FEATURE_DEFINE(FEATURE)
 dnl
 AC_DEFUN([MN_FEATURE_DEFINE],
 [if MN_FEATURE_ENABLED([$1]); then
-	AC_DEFINE(MN_FEATURE_SYMBOL_NAME([$1]), 1, [Define to 1 if [$1] is enabled])
+	AC_DEFINE(MN_FEATURE_SYMBOL_NAME([$1]), 1, [Define to 1 if $1 is enabled])
 fi
 ])
 
diff --git a/aclocal.m4 b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,8 +11,246 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+dnl AM_GCONF_SOURCE_2
+dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
+dnl  (i.e. pass to gconftool-2
+dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
+dnl  you should install foo.schemas files
+dnl
+
+AC_DEFUN([AM_GCONF_SOURCE_2],
+[
+  if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+    GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+  else
+    GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+  fi
+
+  AC_ARG_WITH(gconf-source, 
+  [  --with-gconf-source=sourceaddress      Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",)
+
+  AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
+  AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
+
+  if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+    GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+  fi
+
+  AC_ARG_WITH(gconf-schema-file-dir, 
+  [  --with-gconf-schema-file-dir=dir        Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",)
+
+  AC_SUBST(GCONF_SCHEMA_FILE_DIR)
+  AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
+
+  AC_ARG_ENABLE(schemas-install,
+     [  --disable-schemas-install	Disable the schemas installation],
+     [case "${enableval}" in
+       yes) schemas_install=true ;;
+       no)  schemas_install=false ;;
+       *) AC_MSG_ERROR(bad value ${enableval} for --disable-schemas-install) ;;
+     esac],[schemas_install=true])
+     AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test x$schemas_install = xtrue)
+])
+
+# Configure paths for GTK+
+# Owen Taylor     1997-2001
+
+dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, 
+dnl pass to pkg-config
+dnl
+AC_DEFUN([AM_PATH_GTK_2_0],
+[dnl 
+dnl Get the cflags and libraries from pkg-config
+dnl
+AC_ARG_ENABLE(gtktest, [  --disable-gtktest       do not try to compile and run a test GTK+ program],
+		    , enable_gtktest=yes)
+
+  pkg_config_args=gtk+-2.0
+  for module in . $4
+  do
+      case "$module" in
+         gthread) 
+             pkg_config_args="$pkg_config_args gthread-2.0"
+         ;;
+      esac
+  done
+
+  no_gtk=""
+
+  AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+
+  if test x$PKG_CONFIG != xno ; then
+    if pkg-config --atleast-pkgconfig-version 0.7 ; then
+      :
+    else
+      echo "*** pkg-config too old; version 0.7 or better required."
+      no_gtk=yes
+      PKG_CONFIG=no
+    fi
+  else
+    no_gtk=yes
+  fi
+
+  min_gtk_version=ifelse([$1], ,2.0.0,$1)
+  AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
+
+  if test x$PKG_CONFIG != xno ; then
+    ## don't try to run the test against uninstalled libtool libs
+    if $PKG_CONFIG --uninstalled $pkg_config_args; then
+	  echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
+	  enable_gtktest=no
+    fi
+
+    if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
+	  :
+    else
+	  no_gtk=yes
+    fi
+  fi
+
+  if test x"$no_gtk" = x ; then
+    GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
+    GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
+    gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_gtktest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GTK_CFLAGS"
+      LIBS="$GTK_LIBS $LIBS"
+dnl
+dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
+dnl checks the results of pkg-config to some extent)
+dnl
+      rm -f conf.gtktest
+      AC_TRY_RUN([
+#include <gtk/gtk.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.gtktest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_gtk_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_gtk_version");
+     exit(1);
+   }
+
+  if ((gtk_major_version != $gtk_config_major_version) ||
+      (gtk_minor_version != $gtk_config_minor_version) ||
+      (gtk_micro_version != $gtk_config_micro_version))
+    {
+      printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
+             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
+             gtk_major_version, gtk_minor_version, gtk_micro_version);
+      printf ("*** was found! If pkg-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
+      printf("*** to point to the correct configuration files\n");
+    } 
+  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
+	   (gtk_minor_version != GTK_MINOR_VERSION) ||
+           (gtk_micro_version != GTK_MICRO_VERSION))
+    {
+      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
+	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+	     gtk_major_version, gtk_minor_version, gtk_micro_version);
+    }
+  else
+    {
+      if ((gtk_major_version > major) ||
+        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
+        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
+               gtk_major_version, gtk_minor_version, gtk_micro_version);
+        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
+	       major, minor, micro);
+        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
+        printf("*** correct copy of pkg-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_gtk" = x ; then
+     AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$PKG_CONFIG" = "no" ; then
+       echo "*** A new enough version of pkg-config was not found."
+       echo "*** See http://pkgconfig.sourceforge.net"
+     else
+       if test -f conf.gtktest ; then
+        :
+       else
+          echo "*** Could not run GTK+ test program, checking why..."
+	  ac_save_CFLAGS="$CFLAGS"
+	  ac_save_LIBS="$LIBS"
+          CFLAGS="$CFLAGS $GTK_CFLAGS"
+          LIBS="$LIBS $GTK_LIBS"
+          AC_TRY_LINK([
+#include <gtk/gtk.h>
+#include <stdio.h>
+],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
+          echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+	  echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GTK_CFLAGS=""
+     GTK_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GTK_CFLAGS)
+  AC_SUBST(GTK_LIBS)
+  rm -f conf.gtktest
+])
+
 # Copyright (C) 1995-2002 Free Software Foundation, Inc.
-# Copyright (C) 2001-2003 Red Hat, Inc.
+# Copyright (C) 2001-2003,2004 Red Hat, Inc.
 #
 # This file is free software, distributed under the terms of the GNU
 # General Public License.  As a special exception to the GNU General
@@ -35,7 +273,9 @@
 #
 # Added better handling of ALL_LINGUAS from GNU gettext version 
 # written by Bruno Haible, Owen Taylor <otaylor.redhat.com> 5/30/3002
-
+#
+# Modified to require ngettext
+# Matthias Clasen <mclasen@redhat.com> 08/06/2004
 #
 # We need this here as well, since someone might use autoconf-2.5x
 # to configure GLib then an older version to configure a package
@@ -128,16 +368,27 @@ glib_DEFUN([GLIB_WITH_NLS],
       #
       # First check in libc
       #
-      AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
+      AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc,
         [AC_TRY_LINK([
 #include <libintl.h>
 ],
-          [return (int) dgettext ("","")],
-	  gt_cv_func_dgettext_libc=yes,
-          gt_cv_func_dgettext_libc=no)
+         [return !ngettext ("","", 1)],
+	  gt_cv_func_ngettext_libc=yes,
+          gt_cv_func_ngettext_libc=no)
         ])
   
-      if test "$gt_cv_func_dgettext_libc" = "yes" ; then
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+	      AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
+        	[AC_TRY_LINK([
+#include <libintl.h>
+],
+	          [return !dgettext ("","")],
+		  gt_cv_func_dgettext_libc=yes,
+	          gt_cv_func_dgettext_libc=no)
+        	])
+      fi
+  
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
         AC_CHECK_FUNCS(bind_textdomain_codeset)
       fi
 
@@ -145,25 +396,29 @@ glib_DEFUN([GLIB_WITH_NLS],
       # If we don't have everything we want, check in libintl
       #
       if test "$gt_cv_func_dgettext_libc" != "yes" \
+	 || test "$gt_cv_func_ngettext_libc" != "yes" \
          || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
         
         AC_CHECK_LIB(intl, bindtextdomain,
-	    [AC_CHECK_LIB(intl, dgettext,
-		          gt_cv_func_dgettext_libintl=yes)])
+	    [AC_CHECK_LIB(intl, ngettext,
+		    [AC_CHECK_LIB(intl, dgettext,
+			          gt_cv_func_dgettext_libintl=yes)])])
 
 	if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
 	  AC_MSG_CHECKING([if -liconv is needed to use gettext])
 	  AC_MSG_RESULT([])
-          AC_CHECK_LIB(intl, dcgettext,
+  	  AC_CHECK_LIB(intl, ngettext,
+          	[AC_CHECK_LIB(intl, dcgettext,
 		       [gt_cv_func_dgettext_libintl=yes
 			libintl_extra_libs=-liconv],
-			:,-liconv)
+			:,-liconv)],
+		:,-liconv)
         fi
 
         #
         # If we found libintl, then check in it for bind_textdomain_codeset();
         # we'll prefer libc if neither have bind_textdomain_codeset(),
-        # and both have dgettext
+        # and both have dgettext and ngettext
         #
         if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
           glib_save_LIBS="$LIBS"
@@ -175,7 +430,8 @@ glib_DEFUN([GLIB_WITH_NLS],
           if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
             gt_cv_func_dgettext_libc=no
           else
-            if test "$gt_cv_func_dgettext_libc" = "yes"; then
+            if test "$gt_cv_func_dgettext_libc" = "yes" \
+		&& test "$gt_cv_func_ngettext_libc" = "yes"; then
               gt_cv_func_dgettext_libintl=no
             fi
           fi
@@ -392,270 +648,6274 @@ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)])
 AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)])
 ])dnl
 
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# 
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
 
-dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
-# serial 1 IT_PROG_INTLTOOL
-AC_DEFUN([IT_PROG_INTLTOOL],
-[
-
-if test -n "$1"; then
-    AC_MSG_CHECKING(for intltool >= $1)
-
-    INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'`
-    INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }'  < ${ac_aux_dir}/intltool-update.in`
-    changequote({{,}})
-    INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < ${ac_aux_dir}/intltool-update.in`
-    changequote([,])
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_ifval([$1], [$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+		
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test "x$ac_cv_env_[]$1[]_set" = "xset"; then
+	pkg_cv_[]$1=$ac_cv_env_[]$1[]_value
+elif test -n "$PKG_CONFIG"; then
+	if AC_RUN_LOG([$PKG_CONFIG --exists "$3" >/dev/null 2>&1]); then
+		pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
+else
+	pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
 
-    if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
-	AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
-    else
-	AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old.  You need intltool $1 or later.])
-	exit 1
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.in
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_CACHE_CHECK([for $1][_CFLAGS], [pkg_cv_][$1][_CFLAGS],
+	[_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])])
+AC_CACHE_CHECK([for $1][_LIBS], [pkg_cv_][$1][_LIBS],
+	[_PKG_CONFIG([$1][_LIBS], [libs], [$2])])
+
+if test $pkg_failed = yes; then
+	$1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" 1>&AS_MESSAGE_LOG_FD
+
+	ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met.
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
+to avoid the need to call pkg-config.  See the pkg-config man page for
+more details.])],
+		[$4])
+elif test $pkg_failed = untried; then
+	ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
+to avoid the need to call pkg-config.  See the pkg-config man page for
+more details.
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+		[$4])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+	ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+AC_DEFUN([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+])
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+AC_DEFUN([_LT_COMPILER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+AC_DEFUN([_LT_LINKER_BOILERPLATE],
+[ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+])# _LT_LINKER_BOILERPLATE
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
     fi
+  done
 fi
 
-  INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-     INTLTOOL_KEYS_RULE='%.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-     INTLTOOL_PROP_RULE='%.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-      INTLTOOL_OAF_RULE='%.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
-     INTLTOOL_PONG_RULE='%.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-   INTLTOOL_SERVER_RULE='%.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-    INTLTOOL_SHEET_RULE='%.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-       INTLTOOL_UI_RULE='%.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-      INTLTOOL_XML_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' 
-      INTLTOOL_XAM_RULE='%.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-      INTLTOOL_KBD_RULE='%.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-    INTLTOOL_CAVES_RULE='%.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-  INTLTOOL_SCHEMAS_RULE='%.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-    INTLTOOL_THEME_RULE='%.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
-
-AC_SUBST(INTLTOOL_DESKTOP_RULE)
-AC_SUBST(INTLTOOL_DIRECTORY_RULE)
-AC_SUBST(INTLTOOL_KEYS_RULE)
-AC_SUBST(INTLTOOL_PROP_RULE)
-AC_SUBST(INTLTOOL_OAF_RULE)
-AC_SUBST(INTLTOOL_PONG_RULE)
-AC_SUBST(INTLTOOL_SERVER_RULE)
-AC_SUBST(INTLTOOL_SHEET_RULE)
-AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
-AC_SUBST(INTLTOOL_UI_RULE)
-AC_SUBST(INTLTOOL_XAM_RULE)
-AC_SUBST(INTLTOOL_KBD_RULE)
-AC_SUBST(INTLTOOL_XML_RULE)
-AC_SUBST(INTLTOOL_XML_NOMERGE_RULE)
-AC_SUBST(INTLTOOL_CAVES_RULE)
-AC_SUBST(INTLTOOL_SCHEMAS_RULE)
-AC_SUBST(INTLTOOL_THEME_RULE)
-
-# Use the tools built into the package, not the ones that are installed.
-
-INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
-INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
-INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
-
-AC_SUBST(INTLTOOL_EXTRACT)
-AC_SUBST(INTLTOOL_MERGE)
-AC_SUBST(INTLTOOL_UPDATE)
-
-AC_PATH_PROG(INTLTOOL_PERL, perl)
-if test -z "$INTLTOOL_PERL"; then
-   AC_MSG_ERROR([perl not found; required for intltool])
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
 fi
-if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
-   AC_MSG_ERROR([perl 5.x required for intltool])
 fi
-if test "x$2" != "xno-xml"; then
-   AC_MSG_CHECKING([for XML::Parser])
-   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
-       AC_MSG_RESULT([ok])
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
    else
-       AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
    fi
-fi
+  fi
+  rm -rf conftest*
+  ;;
 
-AC_PATH_PROG(ICONV, iconv, iconv)
-AC_PATH_PROG(MSGFMT, msgfmt, msgfmt)
-AC_PATH_PROG(MSGMERGE, msgmerge, msgmerge)
-AC_PATH_PROG(XGETTEXT, xgettext, xgettext)
-
-# Remove file type tags (using []) from po/POTFILES.
-
-ifdef([AC_DIVERSION_ICMDS],[
-  AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)
-      changequote(,)
-      mv -f po/POTFILES po/POTFILES.tmp
-      sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
-      rm -f po/POTFILES.tmp
-      changequote([,])
-  AC_DIVERT_POP()
-],[
-  ifdef([AC_CONFIG_COMMANDS_PRE],[
-    AC_CONFIG_COMMANDS_PRE([
-        changequote(,)
-        mv -f po/POTFILES po/POTFILES.tmp
-        sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
-        rm -f po/POTFILES.tmp
-        changequote([,])
-    ])
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
   ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
 
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # Keeping the `.' argument allows $(mkdir_p) to be used without
-  # argument.  Indeed, we sometimes output rules like
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.
-  # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
-  # expensive solution, as it forces Make to start a sub-shell.)
-  mkdir_p='mkdir -p -- .'
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
 else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
+    ifelse([$6], , :, [$6])
 fi
-AC_SUBST([mkdir_p])
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+       $SED '/^$/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
 ])
 
-# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
 
-AC_CONFIG_COMMANDS([intltool], [
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
 
-intltool_edit="-e 's:@INTLTOOL_EXTRACT@:`pwd`/intltool-extract:g' \
-               -e 's:@INTLTOOL_ICONV@:${ICONV}:g' \
-               -e 's:@INTLTOOL_MSGFMT@:${MSGFMT}:g' \
-               -e 's:@INTLTOOL_MSGMERGE@:${MSGMERGE}:g' \
-               -e 's:@INTLTOOL_XGETTEXT@:${XGETTEXT}:g' \
-               -e 's:@INTLTOOL_PERL@:${INTLTOOL_PERL}:g'"
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
 
-eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
-  > intltool-extract.out
-if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
-  rm -f intltool-extract.out
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    # 
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+    while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
 else
-  mv -f intltool-extract.out intltool-extract
+  AC_MSG_RESULT(none)
 fi
-chmod ugo+x intltool-extract
-chmod u+w intltool-extract
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
 
-eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-merge.in \
-  > intltool-merge.out
-if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
-  rm -f intltool-merge.out
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
 else
-  mv -f intltool-merge.out intltool-merge
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_unknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
 fi
-chmod ugo+x intltool-merge
-chmod u+w intltool-merge
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
 
-eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-update.in \
-  > intltool-update.out
-if cmp -s intltool-update intltool-update.out 2>/dev/null; then
-  rm -f intltool-update.out
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+     $SED '/^$/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
 else
-  mv -f intltool-update.out intltool-update
+  need_locks=no
 fi
-chmod ugo+x intltool-update
-chmod u+w intltool-update
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
 
-], INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
-INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${ICONV}'
-MSGFMT='${MSGFMT}' MSGMERGE='${MSGMERGE}' XGETTEXT='${XGETTEXT}')
 
-])
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
 
-# deprecated macros
-AC_DEFUN([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
 
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
 
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
 
-dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
-dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
-dnl also defines GSTUFF_PKG_ERRORS on error
-AC_DEFUN(PKG_CHECK_MODULES, [
-  succeeded=no
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
 
-  if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
   fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
 
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+bsdi[[45]]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
   else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        AC_MSG_CHECKING(for $2)
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
 
-        if $PKG_CONFIG --exists "$2" ; then
-            AC_MSG_RESULT(yes)
-            succeeded=yes
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
 
-            AC_MSG_CHECKING($1_CFLAGS)
-            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
-            AC_MSG_RESULT($$1_CFLAGS)
+freebsd1*)
+  dynamic_linker=no
+  ;;
 
-            AC_MSG_CHECKING($1_LIBS)
-            $1_LIBS=`$PKG_CONFIG --libs "$2"`
-            AC_MSG_RESULT($$1_LIBS)
-        else
-            $1_CFLAGS=""
-            $1_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but 
-            ## do set a variable so people can do so.
-            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
-            ifelse([$4], ,echo $$1_PKG_ERRORS,)
-        fi
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+	lt_cv_path_NM="$tmp_nm -B"
+	break
+        ;;
+      *)
+	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	*/dev/null*)
+	  lt_cv_path_NM="$tmp_nm -p"
+	  break
+	  ;;
+	*)
+	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	  ;;
+	esac
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!).  If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+# _LT_AC_PROG_CXXCPP
+# ---------------
+AC_DEFUN([_LT_AC_PROG_CXXCPP],
+[
+AC_REQUIRE([AC_PROG_CXX])
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+fi
+])# _LT_AC_PROG_CXXCPP
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+    ;;
+  esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ 	]]" >/dev/null; then :
+  else
+    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([_LT_AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[[012]]|aix4.[[012]].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# -bexpall does not export symbols beginning with underscore (_)
+	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds it's shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+        case "$host_os" in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+        esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes ; then
+      lt_int_apple_cc_single_mod=no
+      output_verbose_link_cmd='echo'
+      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+       lt_int_apple_cc_single_mod=yes
+      fi
+      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+       _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      else
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+        fi
+        _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          else
+            _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          fi
+            _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[[12]]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | kfreebsd*-gnu | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+        ;;
+      ia64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        ;;
+      *)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC*)
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case "$host_cpu" in
+	    ia64*|hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC*)
+        # Portland Group C++ compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  openbsd*)
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    fi
+    output_verbose_link_cmd='echo'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx*)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sco*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker. We must also pass each convience library through
+	    # to the system linker between allextract/defaultextract.
+	    # The C++ compiler will combine linker options so we
+	    # cannot just pass the convience library names through
+	    # without $wl.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDGIRSTW]]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris* | sysv5*)
+  symcode='[[BDRT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+           _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    case "$host_cpu" in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  pgCC*)
+	    # Portland Group C++ compiler.
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      sco*)
+	case $cc_basename in
+	  CC*)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      unixware*)
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
+         _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      pgcc* | pgf77* | pgf90*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    unicos*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  _LT_CC_BASENAME([$compiler])
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+    
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+    
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* )			# Portland Group f77 and f90 compilers
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[[012]]|aix4.[[012]].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+  	fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       _LT_AC_SYS_LIBPATH_AIX
+       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi[[45]]*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case "$host_os" in
+        rhapsody* | darwin1.[[012]])
+         _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[[012]])
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+         _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         _LT_AC_TAGVAR(ld_shlibs, $1)=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	   ;;
+	 *)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv5*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+      ;;
 
-        AC_SUBST($1_CFLAGS)
-        AC_SUBST($1_LIBS)
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
-     fi
-  fi
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
 
-  if test $succeeded = yes; then
-     ifelse([$3], , :, [$3])
-  else
-     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
   fi
 ])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
 
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
 
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
 
-#                                                        -*- Autoconf -*-
-# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
-# Generated from amversion.in; do not edit by hand.
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])
+
+# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
@@ -668,26 +6928,15 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
 # Call AM_AUTOMAKE_VERSION so it can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-	 [AM_AUTOMAKE_VERSION([1.9.4])])
+	 [AM_AUTOMAKE_VERSION([1.9.6])])
 
-# AM_AUX_DIR_EXPAND
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
@@ -734,26 +6983,16 @@ AC_PREREQ([2.50])dnl
 am_aux_dir=`cd $ac_aux_dir && pwd`
 ])
 
-# AM_CONDITIONAL                                              -*- Autoconf -*-
-
-# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 6
+# serial 7
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -777,26 +7016,15 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# serial 7						-*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
 # Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
+# serial 8
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -805,7 +7033,6 @@ fi])])
 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 
 
-
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
@@ -945,27 +7172,16 @@ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])
 ])
 
-# Generate code to set up dependency tracking.   -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
-#   Free Software Foundation, Inc.
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-#serial 2
+#serial 3
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
@@ -1024,54 +7240,31 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 7
+# serial 8
 
 # AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
 AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 
-# Do all the work for Automake.                            -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things.  But this isn't really a big deal.
+# Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
 # Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# serial 12
 
-# serial 11
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
 
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
@@ -1173,51 +7366,27 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 install_sh=${install_sh-"$am_aux_dir/install-sh"}
 AC_SUBST(install_sh)])
 
-#                                                          -*- Autoconf -*-
-# Copyright (C) 2003  Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 1
+# serial 2
 
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
@@ -1232,28 +7401,17 @@ fi
 rmdir .tst 2>/dev/null
 AC_SUBST([am__leading_dot])])
 
-# Add --enable-maintainer-mode option to configure.
+# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
 # Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
+# serial 4
 
 AC_DEFUN([AM_MAINTAINER_MODE],
 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
@@ -1272,26 +7430,15 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
-# Check to see how 'make' treats includes.	-*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -1335,27 +7482,16 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-#  -*- Autoconf -*-
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
+# serial 4
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -1381,27 +7517,16 @@ else
 fi
 ])
 
+# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
 # AM_PROG_MKDIR_P
 # ---------------
 # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-
-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
+#
 # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
 # created by `make install' are always world readable, even if the
 # installer happens to have an overly restrictive umask (e.g. 077).
@@ -1455,26 +7580,15 @@ else
 fi
 AC_SUBST([mkdir_p])])
 
-# Helper functions for option handling.                    -*- Autoconf -*-
-
-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
+# Helper functions for option handling.                     -*- Autoconf -*-
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -1499,28 +7613,16 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-#
-# Check to make sure that the build environment is sane.
-#
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # AM_SANITY_CHECK
 # ---------------
@@ -1563,25 +7665,14 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# AM_PROG_INSTALL_STRIP
-
-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
+# AM_PROG_INSTALL_STRIP
+# ---------------------
 # One issue with vendor `install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
@@ -1604,25 +7695,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004  Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 1
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
+# serial 2
 
 # _AM_PROG_TAR(FORMAT)
 # --------------------
@@ -1710,245 +7789,10 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
-m4_include([m4/icu.m4])
+m4_include([m4/evolution-plugin.m4])
+m4_include([m4/gnome.m4])
+m4_include([m4/intltool.m4])
 m4_include([m4/openssl.m4])
+m4_include([m4/reentrant-resolver.m4])
 m4_include([m4/sasl2.m4])
-dnl AM_GCONF_SOURCE_2
-dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
-dnl  (i.e. pass to gconftool-2
-dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
-dnl  you should install foo.schemas files
-dnl
-
-AC_DEFUN([AM_GCONF_SOURCE_2],
-[
-  if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
-    GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-  else
-    GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
-  fi
-
-  AC_ARG_WITH(gconf-source, 
-  [  --with-gconf-source=sourceaddress      Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",)
-
-  AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
-  AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
-
-  if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
-    GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
-  fi
-
-  AC_ARG_WITH(gconf-schema-file-dir, 
-  [  --with-gconf-schema-file-dir=dir        Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",)
-
-  AC_SUBST(GCONF_SCHEMA_FILE_DIR)
-  AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
-
-  AC_ARG_ENABLE(schemas-install,
-     [  --disable-schemas-install	Disable the schemas installation],
-     [case "${enableval}" in
-       yes) schemas_install=true ;;
-       no)  schemas_install=false ;;
-       *) AC_MSG_ERROR(bad value ${enableval} for --disable-schemas-install) ;;
-     esac],[schemas_install=true])
-     AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test x$schemas_install = xtrue)
-])
-
-# Configure paths for GTK+
-# Owen Taylor     1997-2001
-
-dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
-dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, 
-dnl pass to pkg-config
-dnl
-AC_DEFUN([AM_PATH_GTK_2_0],
-[dnl 
-dnl Get the cflags and libraries from pkg-config
-dnl
-AC_ARG_ENABLE(gtktest, [  --disable-gtktest       do not try to compile and run a test GTK+ program],
-		    , enable_gtktest=yes)
-
-  pkg_config_args=gtk+-2.0
-  for module in . $4
-  do
-      case "$module" in
-         gthread) 
-             pkg_config_args="$pkg_config_args gthread-2.0"
-         ;;
-      esac
-  done
-
-  no_gtk=""
-
-  AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-
-  if test x$PKG_CONFIG != xno ; then
-    if pkg-config --atleast-pkgconfig-version 0.7 ; then
-      :
-    else
-      echo "*** pkg-config too old; version 0.7 or better required."
-      no_gtk=yes
-      PKG_CONFIG=no
-    fi
-  else
-    no_gtk=yes
-  fi
-
-  min_gtk_version=ifelse([$1], ,2.0.0,$1)
-  AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
-
-  if test x$PKG_CONFIG != xno ; then
-    ## don't try to run the test against uninstalled libtool libs
-    if $PKG_CONFIG --uninstalled $pkg_config_args; then
-	  echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
-	  enable_gtktest=no
-    fi
-
-    if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
-	  :
-    else
-	  no_gtk=yes
-    fi
-  fi
-
-  if test x"$no_gtk" = x ; then
-    GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
-    GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
-    gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-    gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-    gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-    if test "x$enable_gtktest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-      CFLAGS="$CFLAGS $GTK_CFLAGS"
-      LIBS="$GTK_LIBS $LIBS"
-dnl
-dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
-dnl checks the results of pkg-config to some extent)
-dnl
-      rm -f conf.gtktest
-      AC_TRY_RUN([
-#include <gtk/gtk.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int 
-main ()
-{
-  int major, minor, micro;
-  char *tmp_version;
-
-  system ("touch conf.gtktest");
-
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = g_strdup("$min_gtk_version");
-  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_gtk_version");
-     exit(1);
-   }
-
-  if ((gtk_major_version != $gtk_config_major_version) ||
-      (gtk_minor_version != $gtk_config_minor_version) ||
-      (gtk_micro_version != $gtk_config_micro_version))
-    {
-      printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
-             $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
-             gtk_major_version, gtk_minor_version, gtk_micro_version);
-      printf ("*** was found! If pkg-config was correct, then it is best\n");
-      printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
-      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
-      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
-      printf("*** required on your system.\n");
-      printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
-      printf("*** to point to the correct configuration files\n");
-    } 
-  else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
-	   (gtk_minor_version != GTK_MINOR_VERSION) ||
-           (gtk_micro_version != GTK_MICRO_VERSION))
-    {
-      printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
-	     GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
-      printf("*** library (version %d.%d.%d)\n",
-	     gtk_major_version, gtk_minor_version, gtk_micro_version);
-    }
-  else
-    {
-      if ((gtk_major_version > major) ||
-        ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
-        ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
-      {
-        return 0;
-       }
-     else
-      {
-        printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
-               gtk_major_version, gtk_minor_version, gtk_micro_version);
-        printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
-	       major, minor, micro);
-        printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
-        printf("***\n");
-        printf("*** If you have already installed a sufficiently new version, this error\n");
-        printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
-        printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
-        printf("*** correct copy of pkg-config. (In this case, you will have to\n");
-        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
-        printf("*** so that the correct libraries are found at run-time))\n");
-      }
-    }
-  return 1;
-}
-],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-     fi
-  fi
-  if test "x$no_gtk" = x ; then
-     AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
-     ifelse([$2], , :, [$2])     
-  else
-     AC_MSG_RESULT(no)
-     if test "$PKG_CONFIG" = "no" ; then
-       echo "*** A new enough version of pkg-config was not found."
-       echo "*** See http://pkgconfig.sourceforge.net"
-     else
-       if test -f conf.gtktest ; then
-        :
-       else
-          echo "*** Could not run GTK+ test program, checking why..."
-	  ac_save_CFLAGS="$CFLAGS"
-	  ac_save_LIBS="$LIBS"
-          CFLAGS="$CFLAGS $GTK_CFLAGS"
-          LIBS="$LIBS $GTK_LIBS"
-          AC_TRY_LINK([
-#include <gtk/gtk.h>
-#include <stdio.h>
-],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
-          echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system"
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
-        [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-       fi
-     fi
-     GTK_CFLAGS=""
-     GTK_LIBS=""
-     ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(GTK_CFLAGS)
-  AC_SUBST(GTK_LIBS)
-  rm -f conf.gtktest
-])
-
 m4_include([acinclude.m4])
diff --git a/art/Makefile.am b/art/Makefile.am
@@ -1,10 +1,13 @@
+if WITH_GMAIL
+gmail_icon = gmail.png
+endif
+
 gnome_pixmapsdir = $(datadir)/pixmaps
 dist_gnome_pixmaps_DATA = mail-notification.png
 
 app_pixmapsdir = $(pkgdatadir)/ui
 dist_app_pixmaps_DATA = \
-	gmail.png		\
+	$(gmail_icon)		\
 	hand-open.png		\
 	logo.png		\
-	main-window.png		\
-	unsupported.png
+	main-window.png
diff --git a/art/Makefile.in b/art/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,13 +34,20 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 subdir = art
-DIST_COMMON = $(dist_app_pixmaps_DATA) $(dist_gnome_pixmaps_DATA) \
-	$(srcdir)/Makefile.am $(srcdir)/Makefile.in
+DIST_COMMON = $(am__dist_app_pixmaps_DATA_DIST) \
+	$(dist_gnome_pixmaps_DATA) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -48,6 +55,8 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
+am__dist_app_pixmaps_DATA_DIST = gmail.png hand-open.png logo.png \
+	main-window.png
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -64,6 +73,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -76,15 +86,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -101,10 +120,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -115,9 +130,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -130,12 +148,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -143,7 +164,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -160,25 +180,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -199,20 +222,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -227,16 +269,20 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+@WITH_GMAIL_TRUE@gmail_icon = gmail.png
 gnome_pixmapsdir = $(datadir)/pixmaps
 dist_gnome_pixmaps_DATA = mail-notification.png
 app_pixmapsdir = $(pkgdatadir)/ui
 dist_app_pixmaps_DATA = \
-	gmail.png		\
+	$(gmail_icon)		\
 	hand-open.png		\
 	logo.png		\
-	main-window.png		\
-	unsupported.png
+	main-window.png
 
 all: all-am
 
@@ -270,6 +316,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 install-dist_app_pixmapsDATA: $(dist_app_pixmaps_DATA)
 	@$(NORMAL_INSTALL)
@@ -372,11 +427,11 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
 
 dvi: dvi-am
 
@@ -405,7 +460,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -418,15 +473,16 @@ ps-am:
 uninstall-am: uninstall-dist_app_pixmapsDATA \
 	uninstall-dist_gnome_pixmapsDATA uninstall-info-am
 
-.PHONY: all all-am check check-am clean clean-generic distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am \
-	install-dist_app_pixmapsDATA install-dist_gnome_pixmapsDATA \
-	install-exec install-exec-am install-info install-info-am \
-	install-man install-strip installcheck installcheck-am \
-	installdirs maintainer-clean maintainer-clean-generic \
-	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
-	uninstall-am uninstall-dist_app_pixmapsDATA \
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dist_app_pixmapsDATA \
+	install-dist_gnome_pixmapsDATA install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-dist_app_pixmapsDATA \
 	uninstall-dist_gnome_pixmapsDATA uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/art/gmail.png b/art/gmail.png
Binary files differ.
diff --git a/art/unsupported.png b/art/unsupported.png
Binary files differ.
diff --git a/autogen.sh b/autogen.sh
@@ -1,15 +1,22 @@
 #!/bin/sh
 
+# change this to the path to mkinstalldirs on your system
+MKINSTALLDIRS="/usr/local/gnu-autotools/share/automake-1.9/mkinstalldirs"
+
 run() {
-    echo "Running $1..."
-    $1 || exit
+    echo "Running $*..."
+    $* || exit
 }
 
-. autotools.conf
+run intltoolize --force
+
+# po/Makefile.in.in requires mkinstalldirs, but intltoolize does not provide it
+run ln -sf "$MKINSTALLDIRS" mkinstalldirs
 
-run "$ACLOCAL"
-run "$AUTOHEADER"
-run "$AUTOCONF"
-run "$AUTOMAKE"
+run libtoolize --force
+run aclocal -I m4
+run autoheader
+run autoconf
+run automake --add-missing --force-missing
 
 echo "Finished successfully."
diff --git a/autotools.conf b/autotools.conf
@@ -1,10 +0,0 @@
-export AUTOCONF_VER=259
-export AUTOMAKE_VER=19
-export LIBTOOL_VER=15
-
-export LIBTOOLIZE="libtoolize$LIBTOOL_VER --automake"
-export ACLOCAL="aclocal$AUTOMAKE_VER -I m4"
-export AUTOHEADER="autoheader$AUTOCONF_VER"
-export AUTOM4TE="autom4te$AUTOCONF_VER"
-export AUTOCONF="autoconf$AUTOCONF_VER"
-export AUTOMAKE="automake$AUTOMAKE_VER"
diff --git a/compile b/compile
@@ -1,8 +1,9 @@
 #! /bin/sh
-
 # Wrapper for compilers which do not understand `-c -o'.
 
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,83 +18,125 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-# Usage:
-# compile PROGRAM [ARGS]...
-# `-o FOO.o' is removed from the args passed to the actual compile.
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
 
-prog=$1
-shift
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+esac
 
 ofile=
 cfile=
-args=
-while test $# -gt 0; do
-   case "$1" in
-    -o)
-       # configure might choose to run compile as `compile cc -o foo foo.c'.
-       # So we do something ugly here.
-       ofile=$2
-       shift
-       case "$ofile" in
-	*.o | *.obj)
-	   ;;
-	*)
-	   args="$args -o $ofile"
-	   ofile=
-	   ;;
-       esac
-       ;;
-    *.c)
-       cfile=$1
-       args="$args $1"
-       ;;
-    *)
-       args="$args $1"
-       ;;
-   esac
-   shift
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as `compile cc -o foo foo.c'.
+	# So we strip `-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
 done
 
 if test -z "$ofile" || test -z "$cfile"; then
-   # If no `-o' option was seen then we might have been invoked from a
-   # pattern rule where we don't need one.  That is ok -- this is a
-   # normal compilation that the losing compiler can handle.  If no
-   # `.c' file was seen then we are probably linking.  That is also
-   # ok.
-   exec "$prog" $args
+  # If no `-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # `.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
 fi
 
 # Name of file we expect compiler to create.
-cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
 
 # Create the lock directory.
 # Note: use `[/.-]' here to ensure that we don't use the same name
 # that we are using for the .o file.  Also, base the name on the expected
 # object file name, since that is what matters with a parallel build.
-lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
 while true; do
-   if mkdir $lockdir > /dev/null 2>&1; then
-      break
-   fi
-   sleep 1
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
 done
 # FIXME: race condition here if user kills between mkdir and trap.
-trap "rmdir $lockdir; exit 1" 1 2 15
+trap "rmdir '$lockdir'; exit 1" 1 2 15
 
 # Run the compile.
-"$prog" $args
-status=$?
+"$@"
+ret=$?
 
 if test -f "$cofile"; then
-   mv "$cofile" "$ofile"
+  mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  mv "${cofile}bj" "$ofile"
 fi
 
-rmdir $lockdir
-exit $status
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/config.h.in b/config.h.in
@@ -12,6 +12,9 @@
 /* Define to 1 if you have the `dcgettext' function. */
 #undef HAVE_DCGETTEXT
 
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
@@ -27,6 +30,9 @@
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Define to 1 if the system resolver is reentrant */
+#undef HAVE_REENTRANT_RESOLVER
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
@@ -45,6 +51,9 @@
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* Define to 1 if you have the `timegm' function. */
+#undef HAVE_TIMEGM
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
@@ -69,43 +78,46 @@
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+#undef TM_IN_SYS_TIME
+
 /* Version number of package */
 #undef VERSION
 
-/* Define to 1 if [gmail] is enabled */
-#undef WITH_GMAIL
+/* Define to 1 if evolution is enabled */
+#undef WITH_EVOLUTION
 
-/* Define to 1 if [gmail-timestamps] is enabled */
-#undef WITH_GMAIL_TIMESTAMPS
+/* Define to 1 if gmail is enabled */
+#undef WITH_GMAIL
 
-/* Define to 1 if [imap] is enabled */
+/* Define to 1 if imap is enabled */
 #undef WITH_IMAP
 
-/* Define to 1 if [ipv6] is enabled */
+/* Define to 1 if ipv6 is enabled */
 #undef WITH_IPV6
 
-/* Define to 1 if [maildir] is enabled */
+/* Define to 1 if maildir is enabled */
 #undef WITH_MAILDIR
 
-/* Define to 1 if [mbox] is enabled */
+/* Define to 1 if mbox is enabled */
 #undef WITH_MBOX
 
-/* Define to 1 if [mh] is enabled */
+/* Define to 1 if mh is enabled */
 #undef WITH_MH
 
-/* Define to 1 if [mime] is enabled */
+/* Define to 1 if mime is enabled */
 #undef WITH_MIME
 
-/* Define to 1 if [pop3] is enabled */
+/* Define to 1 if pop3 is enabled */
 #undef WITH_POP3
 
-/* Define to 1 if [sasl] is enabled */
+/* Define to 1 if sasl is enabled */
 #undef WITH_SASL
 
-/* Define to 1 if [ssl] is enabled */
+/* Define to 1 if ssl is enabled */
 #undef WITH_SSL
 
-/* Define to 1 if [sylpheed] is enabled */
+/* Define to 1 if sylpheed is enabled */
 #undef WITH_SYLPHEED
 
 /* Number of bits in a file offset, on hosts where this is settable. */
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 1.1.
+# Generated by GNU Autoconf 2.59 for Mail Notification 2.0.
 #
 # Report bugs to <jylefort@brutele.be>.
 #
@@ -243,6 +243,160 @@ IFS=" 	$as_nl"
 $as_unset CDPATH
 
 
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "$0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
 # Name of the host.
 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 # so uname gets run too.
@@ -267,10 +421,10 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 : ${ac_max_here_lines=38}
 
 # Identity of this package.
-PACKAGE_NAME='mail-notification'
+PACKAGE_NAME='Mail Notification'
 PACKAGE_TARNAME='mail-notification'
-PACKAGE_VERSION='1.1'
-PACKAGE_STRING='mail-notification 1.1'
+PACKAGE_VERSION='2.0'
+PACKAGE_STRING='Mail Notification 2.0'
 PACKAGE_BUGREPORT='jylefort@brutele.be'
 
 ac_unique_file="src/mn-main.c"
@@ -311,7 +465,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS WARN_CFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GETTEXT_PACKAGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL ICONV MSGMERGE PKG_CONFIG GTK_CFLAGS GTK_LIBS GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 GLIB_GENMARSHAL GMIME_CFLAGS GMIME_LIBS OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS SOUP_CFLAGS SOUP_LIBS ICU_CONFIG ICU_CFLAGS ICU_LIBS WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_GMAIL_TIMESTAMPS_TRUE WITH_GMAIL_TIMESTAMPS_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS ac_prefix_program WARN_CFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL GETTEXT_PACKAGE USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL INTLTOOL_ICONV INTLTOOL_MSGFMT INTLTOOL_MSGMERGE INTLTOOL_XGETTEXT PKG_CONFIG GTK_CFLAGS GTK_LIBS ac_pt_PKG_CONFIG GNOME_CFLAGS GNOME_LIBS GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE gnome_prefix gnome_cappletdir GCONFTOOL ORBIT_IDL LIBBONOBO_IDL BONOBO_ACTIVATION_IDL GOB2 GLIB_GENMARSHAL GMIME_CFLAGS GMIME_LIBS OPENSSL_CFLAGS OPENSSL_LIBS SASL_CFLAGS SASL_LIBS EVOLUTION_PLUGIN_CFLAGS EVOLUTION_PLUGIN_LIBS evolution_plugindir WITH_MBOX_TRUE WITH_MBOX_FALSE WITH_MH_TRUE WITH_MH_FALSE WITH_MAILDIR_TRUE WITH_MAILDIR_FALSE WITH_POP3_TRUE WITH_POP3_FALSE WITH_IMAP_TRUE WITH_IMAP_FALSE WITH_POP3_OR_IMAP_TRUE WITH_POP3_OR_IMAP_FALSE WITH_POP3_OR_IMAP_OR_GMAIL_TRUE WITH_POP3_OR_IMAP_OR_GMAIL_FALSE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE WITH_SSL_TRUE WITH_SSL_FALSE WITH_SASL_TRUE WITH_SASL_FALSE WITH_GMAIL_TRUE WITH_GMAIL_FALSE WITH_EVOLUTION_TRUE WITH_EVOLUTION_FALSE WITH_SYLPHEED_TRUE WITH_SYLPHEED_FALSE WITH_MIME_TRUE WITH_MIME_FALSE WITH_REGRESSION_TESTS_TRUE WITH_REGRESSION_TESTS_FALSE LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -772,6 +926,54 @@ ac_env_CPP_set=${CPP+set}
 ac_env_CPP_value=$CPP
 ac_cv_env_CPP_set=${CPP+set}
 ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+ac_env_F77_set=${F77+set}
+ac_env_F77_value=$F77
+ac_cv_env_F77_set=${F77+set}
+ac_cv_env_F77_value=$F77
+ac_env_FFLAGS_set=${FFLAGS+set}
+ac_env_FFLAGS_value=$FFLAGS
+ac_cv_env_FFLAGS_set=${FFLAGS+set}
+ac_cv_env_FFLAGS_value=$FFLAGS
+ac_env_PKG_CONFIG_set=${PKG_CONFIG+set}
+ac_env_PKG_CONFIG_value=$PKG_CONFIG
+ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set}
+ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG
+ac_env_GNOME_CFLAGS_set=${GNOME_CFLAGS+set}
+ac_env_GNOME_CFLAGS_value=$GNOME_CFLAGS
+ac_cv_env_GNOME_CFLAGS_set=${GNOME_CFLAGS+set}
+ac_cv_env_GNOME_CFLAGS_value=$GNOME_CFLAGS
+ac_env_GNOME_LIBS_set=${GNOME_LIBS+set}
+ac_env_GNOME_LIBS_value=$GNOME_LIBS
+ac_cv_env_GNOME_LIBS_set=${GNOME_LIBS+set}
+ac_cv_env_GNOME_LIBS_value=$GNOME_LIBS
+ac_env_GMIME_CFLAGS_set=${GMIME_CFLAGS+set}
+ac_env_GMIME_CFLAGS_value=$GMIME_CFLAGS
+ac_cv_env_GMIME_CFLAGS_set=${GMIME_CFLAGS+set}
+ac_cv_env_GMIME_CFLAGS_value=$GMIME_CFLAGS
+ac_env_GMIME_LIBS_set=${GMIME_LIBS+set}
+ac_env_GMIME_LIBS_value=$GMIME_LIBS
+ac_cv_env_GMIME_LIBS_set=${GMIME_LIBS+set}
+ac_cv_env_GMIME_LIBS_value=$GMIME_LIBS
+ac_env_EVOLUTION_PLUGIN_CFLAGS_set=${EVOLUTION_PLUGIN_CFLAGS+set}
+ac_env_EVOLUTION_PLUGIN_CFLAGS_value=$EVOLUTION_PLUGIN_CFLAGS
+ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_set=${EVOLUTION_PLUGIN_CFLAGS+set}
+ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_value=$EVOLUTION_PLUGIN_CFLAGS
+ac_env_EVOLUTION_PLUGIN_LIBS_set=${EVOLUTION_PLUGIN_LIBS+set}
+ac_env_EVOLUTION_PLUGIN_LIBS_value=$EVOLUTION_PLUGIN_LIBS
+ac_cv_env_EVOLUTION_PLUGIN_LIBS_set=${EVOLUTION_PLUGIN_LIBS+set}
+ac_cv_env_EVOLUTION_PLUGIN_LIBS_value=$EVOLUTION_PLUGIN_LIBS
 
 #
 # Report the --help message.
@@ -780,7 +982,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 1.1 to adapt to many kinds of systems.
+\`configure' configures Mail Notification 2.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -837,12 +1039,17 @@ Program names:
   --program-prefix=PREFIX            prepend PREFIX to installed program names
   --program-suffix=SUFFIX            append SUFFIX to installed program names
   --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
 _ACEOF
 fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of mail-notification 1.1:";;
+     short | recursive ) echo "Configuration of Mail Notification 2.0:";;
    esac
   cat <<\_ACEOF
 
@@ -856,19 +1063,25 @@ Optional Features:
   --disable-imap          disable IMAP support
   --disable-ssl           disable SSL/TLS support
   --disable-sasl          disable SASL authentication support
-  --disable-sylpheed      disable Sylpheed support
-  --disable-gmail         disable Gmail support
-  --disable-gmail-timestamps
-                          disable Gmail timestamps support
   --disable-ipv6          disable IPv6 support
+  --disable-gmail         disable Gmail support
+  --disable-evolution     disable Evolution support
+  --disable-sylpheed      disable Sylpheed support
   --enable-compile-warnings=no|yes|error
                           enable compiler warnings [no]
   --enable-regression-tests
                           build and run regression tests
   --enable-maintainer-mode  enable make rules and dependencies not useful
 			  (and sometimes confusing) to the casual installer
+  --enable-shared[=PKGS]
+                          build shared libraries [default=yes]
+  --enable-static[=PKGS]
+                          build static libraries [default=yes]
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
+  --disable-libtool-lock  avoid locking (might break parallel builds)
   --disable-largefile     omit support for large files
   --disable-gtktest       do not try to compile and run a test GTK+ program
   --disable-schemas-install	Disable the schemas installation
@@ -876,8 +1089,18 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-tags[=TAGS]
+                          include additional configurations [automatic]
+  --with-reentrant-resolver
+                          specify that the system resolver is reentrant
+                          [autodetect]
   --with-gconf-source=sourceaddress      Config database for installing schema files.
   --with-gconf-schema-file-dir=dir        Directory for installing schema files.
+  --with-evolution-source-dir=DIR
+                          path to the Evolution source tree
 
 Some influential environment variables:
   CC          C compiler command
@@ -887,6 +1110,22 @@ Some influential environment variables:
   CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
               headers in a nonstandard directory <include dir>
   CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CXXCPP      C++ preprocessor
+  F77         Fortran 77 compiler command
+  FFLAGS      Fortran 77 compiler flags
+  PKG_CONFIG  path to pkg-config utility
+  GNOME_CFLAGS
+              C compiler flags for GNOME, overriding pkg-config
+  GNOME_LIBS  linker flags for GNOME, overriding pkg-config
+  GMIME_CFLAGS
+              C compiler flags for GMIME, overriding pkg-config
+  GMIME_LIBS  linker flags for GMIME, overriding pkg-config
+  EVOLUTION_PLUGIN_CFLAGS
+              C compiler flags for EVOLUTION_PLUGIN, overriding pkg-config
+  EVOLUTION_PLUGIN_LIBS
+              linker flags for EVOLUTION_PLUGIN, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -987,7 +1226,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-mail-notification configure 1.1
+Mail Notification configure 2.0
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1001,7 +1240,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 1.1, which was
+It was created by Mail Notification $as_me 2.0, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1341,6 +1580,77 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+# by default, install in the same prefix as GNOME
+if test "x$prefix" = xNONE; then
+  echo $ECHO_N "checking for prefix by $ECHO_C" >&6
+  # Extract the first word of "gnome-open", so it can be a program name with args.
+set dummy gnome-open; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_prefix_program+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $ac_prefix_program in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_prefix_program="$ac_prefix_program" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_prefix_program="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+ac_prefix_program=$ac_cv_path_ac_prefix_program
+
+if test -n "$ac_prefix_program"; then
+  echo "$as_me:$LINENO: result: $ac_prefix_program" >&5
+echo "${ECHO_T}$ac_prefix_program" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  if test -n "$ac_prefix_program"; then
+    prefix=`(dirname "$ac_prefix_program") 2>/dev/null ||
+$as_expr X"$ac_prefix_program" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_prefix_program" : 'X\(//\)[^/]' \| \
+	 X"$ac_prefix_program" : 'X\(//\)$' \| \
+	 X"$ac_prefix_program" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_prefix_program" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    prefix=`(dirname "$prefix") 2>/dev/null ||
+$as_expr X"$prefix" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$prefix" : 'X\(//\)[^/]' \| \
+	 X"$prefix" : 'X\(//\)$' \| \
+	 X"$prefix" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$prefix" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  fi
+fi
+
+
 ### command line arguments
 
 # Check whether --enable-mbox or --disable-mbox was given.
@@ -1427,17 +1737,17 @@ esac
 else
   enable_sasl=yes
 fi;
-# Check whether --enable-sylpheed or --disable-sylpheed was given.
-if test "${enable_sylpheed+set}" = set; then
-  enableval="$enable_sylpheed"
+# Check whether --enable-ipv6 or --disable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then
+  enableval="$enable_ipv6"
   case "$enableval" in
-	yes|no) enable_sylpheed=$enableval ;;
-	*) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-sylpheed" >&5
-echo "$as_me: error: bad value $enableval for --enable-sylpheed" >&2;}
+	yes|no) enable_ipv6=$enableval ;;
+	*) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-ipv6" >&5
+echo "$as_me: error: bad value $enableval for --enable-ipv6" >&2;}
    { (exit 1); exit 1; }; } ;;
 esac
 else
-  enable_sylpheed=yes
+  enable_ipv6=yes
 fi;
 # Check whether --enable-gmail or --disable-gmail was given.
 if test "${enable_gmail+set}" = set; then
@@ -1451,29 +1761,29 @@ esac
 else
   enable_gmail=yes
 fi;
-# Check whether --enable-gmail-timestamps or --disable-gmail-timestamps was given.
-if test "${enable_gmail_timestamps+set}" = set; then
-  enableval="$enable_gmail_timestamps"
+# Check whether --enable-evolution or --disable-evolution was given.
+if test "${enable_evolution+set}" = set; then
+  enableval="$enable_evolution"
   case "$enableval" in
-	yes|no) enable_gmail_timestamps=$enableval ;;
-	*) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-gmail-timestamps" >&5
-echo "$as_me: error: bad value $enableval for --enable-gmail-timestamps" >&2;}
+	yes|no) enable_evolution=$enableval ;;
+	*) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-evolution" >&5
+echo "$as_me: error: bad value $enableval for --enable-evolution" >&2;}
    { (exit 1); exit 1; }; } ;;
 esac
 else
-  enable_gmail_timestamps=yes
+  enable_evolution=yes
 fi;
-# Check whether --enable-ipv6 or --disable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
-  enableval="$enable_ipv6"
+# Check whether --enable-sylpheed or --disable-sylpheed was given.
+if test "${enable_sylpheed+set}" = set; then
+  enableval="$enable_sylpheed"
   case "$enableval" in
-	yes|no) enable_ipv6=$enableval ;;
-	*) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-ipv6" >&5
-echo "$as_me: error: bad value $enableval for --enable-ipv6" >&2;}
+	yes|no) enable_sylpheed=$enableval ;;
+	*) { { echo "$as_me:$LINENO: error: bad value $enableval for --enable-sylpheed" >&5
+echo "$as_me: error: bad value $enableval for --enable-sylpheed" >&2;}
    { (exit 1); exit 1; }; } ;;
 esac
 else
-  enable_ipv6=yes
+  enable_sylpheed=yes
 fi;
 
 # Check whether --enable-compile-warnings or --disable-compile-warnings was given.
@@ -1528,7 +1838,7 @@ fi;
 
 ### initialization
 
-am__api_version="1.9"
+# needed by AC_REENTRANT_RESOLVER
 ac_aux_dir=
 for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
   if test -f $ac_dir/install-sh; then
@@ -1554,6 +1864,90 @@ ac_config_guess="$SHELL $ac_aux_dir/config.guess"
 ac_config_sub="$SHELL $ac_aux_dir/config.sub"
 ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking target system type" >&5
+echo $ECHO_N "checking target system type... $ECHO_C" >&6
+if test "${ac_cv_target+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_target_alias=$target_alias
+test "x$ac_cv_target_alias" = "x" &&
+  ac_cv_target_alias=$ac_cv_host_alias
+ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6
+target=$ac_cv_target
+target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+
+am__api_version="1.9"
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
 # incompatible versions:
@@ -1835,7 +2229,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='mail-notification'
- VERSION='1.1'
+ VERSION='2.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -1991,18 +2385,78 @@ fi
 
           ac_config_headers="$ac_config_headers config.h"
 
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi;
 
-### i18n
-
-GETTEXT_PACKAGE=mail-notification
-
-cat >>confdefs.h <<_ACEOF
-#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
-_ACEOF
-
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=yes
+fi;
 
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+  enableval="$enable_fast_install"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi;
 
-ALL_LINGUAS="bg de fr pl pt ru sr sr@Latn"
 DEPDIR="${am__leading_dot}deps"
 
           ac_config_commands="$ac_config_commands depfiles"
@@ -3107,424 +3561,16374 @@ else
 fi
 
 
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+if test "${lt_cv_path_SED+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+  # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
 do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
   fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
 
-  # Broken: fails on valid input.
-continue
 fi
-rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+SED=$lt_cv_path_SED
+echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
 
-  # Passes both tests.
-ac_preproc_ok=:
-break
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
 fi
-rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
 
-    done
-    ac_cv_prog_CPP=$CPP
 
-fi
-  CPP=$ac_cv_prog_CPP
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
 else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
 else
-  ac_cpp_err=yes
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
 fi
-if test -z "$ac_cpp_err"; then
-  :
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
 else
-  ac_cpp_err=yes
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
 fi
-rm -f conftest.err conftest.$ac_ext
 
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
 fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$CC -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
 
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
+echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+	lt_cv_path_NM="$tmp_nm -B"
+	break
+        ;;
+      *)
+	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	*/dev/null*)
+	  lt_cv_path_NM="$tmp_nm -p"
+	  break
+	  ;;
+	*)
+	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	  ;;
+	esac
+      esac
     fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
+fi
+echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6
+NM="$lt_cv_path_NM"
 
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
 
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
+echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-int
-main ()
-{
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+bsdi[45]*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu | dragonfly*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
 
-ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
 
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line 4044 "configure"' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*|powerpc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <string.h>
 
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  lt_cv_cc_needs_belf=yes
 else
-  ac_cv_header_stdc=no
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+lt_cv_cc_needs_belf=no
 fi
-rm -f conftest*
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
+echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
 
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <stdlib.h>
-
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
 else
-  ac_cv_header_stdc=no
+  ac_cpp_err=yes
 fi
-rm -f conftest*
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.$ac_ext
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
 int
 main ()
 {
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+
+  ;
+  return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  :
+  ac_cv_header_stdc=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ---------------------------------- ##
+## Report this to jylefort@brutele.be ##
+## ---------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+  CXX=$ac_ct_CXX
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+depcc="$CXX"  am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+
+
+
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$F77"; then
+  ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+  echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$F77" && break
+  done
+fi
+if test -z "$F77"; then
+  ac_ct_F77=$F77
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_F77"; then
+  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_F77="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+  echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_F77" && break
+done
+
+  F77=$ac_ct_F77
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:5623:" \
+     "checking for Fortran 77 compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file.  (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+      program main
+#ifndef __GNUC__
+       choke me
+#endif
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_f77_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_f77_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_f77_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+if test "$ac_test_FFLAGS" = set; then
+  FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-g -O2"
+  else
+    FFLAGS="-g"
+  fi
+else
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-O2"
+  else
+    FFLAGS=
+  fi
+fi
+
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+
+# find the maximum length of command line arguments
+echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+    while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+	       = "XX$teststring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      teststring=$teststring$teststring
+    done
+    teststring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
+else
+  echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+linux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDGIRSTW]'
+    lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+    lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris* | sysv5*)
+  symcode='[BDRT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGIRSTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+  echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+if test "${lt_cv_objdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e 1s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  AR=$ac_ct_AR
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  RANLIB=$ac_ct_RANLIB
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+  withval="$with_pic"
+  pic_mode="$withval"
+else
+  pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+#
+# Check for any special shared library compilation flags.
+#
+lt_prog_cc_shlib=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    lt_prog_cc_shlib='-belf'
+    ;;
+  esac
+fi
+if test -n "$lt_prog_cc_shlib"; then
+  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
+echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
+  if echo "$old_CC $old_CFLAGS " | grep "[ 	]$lt_prog_cc_shlib[ 	]" >/dev/null; then :
+  else
+    { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
+echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
+    lt_cv_prog_cc_can_build_shared=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+       $echo "X$_lt_linker_boilerplate" | $Xsed > conftest.exp
+       $SED '/^$/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         lt_prog_compiler_static_works=yes
+       fi
+     else
+       lt_prog_compiler_static_works=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:6721: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:6725: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic='-qnocommon'
+         lt_prog_compiler_wl='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      pgcc* | pgf77* | pgf90*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-fpic'
+	lt_prog_compiler_static='-static'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      lt_prog_compiler_pic='-Kpic'
+      lt_prog_compiler_static='-dn'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_can_build_shared=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:6983: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:6987: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
+
+if test x"$lt_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:7045: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:7049: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+     $SED '/^$/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag=
+  enable_shared_with_static_runtimes=no
+  archive_cmds=
+  archive_expsym_cmds=
+  old_archive_From_new_cmds=
+  old_archive_from_expsyms_cmds=
+  export_dynamic_flag_spec=
+  whole_archive_flag_spec=
+  thread_safe_flag_spec=
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_direct=no
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  link_all_deplibs=unknown
+  hardcode_automatic=no
+  module_cmds=
+  module_expsym_cmds=
+  always_export_symbols=no
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      allow_undefined_flag=unsupported
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* )			# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec=
+      export_dynamic_flag_spec=
+      whole_archive_flag_spec=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L=yes
+  	  hardcode_libdir_flag_spec='-L$libdir'
+  	  hardcode_libdir_separator=
+	  fi
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+  	fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  always_export_symbols=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec=' '
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case "$host_os" in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc=no
+      hardcode_direct=no
+      hardcode_automatic=yes
+      hardcode_shlibpath_var=unsupported
+      whole_archive_flag_spec=''
+      link_all_deplibs=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+         archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_flag_spec_ld='+b $libdir'
+	  hardcode_libdir_separator=:
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	ia64*)
+	  hardcode_libdir_flag_spec='-L$libdir'
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	*)
+	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_separator=:
+	  hardcode_direct=yes
+	  export_dynamic_flag_spec='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    openbsd*)
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+
+    sco3.2v5*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      hardcode_shlibpath_var=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      no_undefined_flag='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv5*)
+      no_undefined_flag=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      hardcode_libdir_flag_spec=
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag
+        allow_undefined_flag=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc=no
+        else
+	  archive_cmds_need_lc=yes
+        fi
+        allow_undefined_flag=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+   test -n "$runpath_var" || \
+   test "X$hardcode_automatic" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
+
+if test "$hardcode_action" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 9285 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 9383 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# Report which librarie types wil actually be built
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+    ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler \
+    CC \
+    LD \
+    lt_prog_compiler_wl \
+    lt_prog_compiler_pic \
+    lt_prog_compiler_static \
+    lt_prog_compiler_no_builtin_flag \
+    export_dynamic_flag_spec \
+    thread_safe_flag_spec \
+    whole_archive_flag_spec \
+    enable_shared_with_static_runtimes \
+    old_archive_cmds \
+    old_archive_from_new_cmds \
+    predep_objects \
+    postdep_objects \
+    predeps \
+    postdeps \
+    compiler_lib_search_path \
+    archive_cmds \
+    archive_expsym_cmds \
+    postinstall_cmds \
+    postuninstall_cmds \
+    old_archive_from_expsyms_cmds \
+    allow_undefined_flag \
+    no_undefined_flag \
+    export_symbols_cmds \
+    hardcode_libdir_flag_spec \
+    hardcode_libdir_flag_spec_ld \
+    hardcode_libdir_separator \
+    hardcode_automatic \
+    module_cmds \
+    module_expsym_cmds \
+    lt_cv_prog_compiler_c_o \
+    exclude_expsyms \
+    include_expsyms; do
+
+    case $var in
+    old_archive_cmds | \
+    old_archive_from_new_cmds | \
+    archive_cmds | \
+    archive_expsym_cmds | \
+    module_cmds | \
+    module_expsym_cmds | \
+    old_archive_from_expsyms_cmds | \
+    export_symbols_cmds | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
+
+  cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags or --without-tags was given.
+if test "${with_tags+set}" = set; then
+  withval="$with_tags"
+  tagnames="$withval"
+fi;
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+    else
+      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+    "") ;;
+    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+	    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+	    (test "X$CXX" != "Xg++"))) ; then
+	  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+  lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec_CXX=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+ld_shlibs_CXX=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      aix_use_runtimelinking=no
+
+      # Test if we are trying to use run time linking or normal
+      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+      # need to do runtime linking.
+      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	for ld_flag in $LDFLAGS; do
+	  case $ld_flag in
+	  *-brtl*)
+	    aix_use_runtimelinking=yes
+	    break
+	    ;;
+	  esac
+	done
+      esac
+
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    archive_cmds_CXX=''
+    hardcode_direct_CXX=yes
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  hardcode_direct_CXX=yes
+	else
+	  # We have old collect2
+	  hardcode_direct_CXX=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L_CXX=yes
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  hardcode_libdir_separator_CXX=
+	fi
+      esac
+      shared_flag='-shared'
+      if test "$aix_use_runtimelinking" = yes; then
+	shared_flag="$shared_flag "'${wl}-G'
+      fi
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='${wl}-G'
+	else
+	  shared_flag='${wl}-bM:SRE'
+	fi
+      fi
+    fi
+
+    # It seems that -bexpall does not export symbols beginning with
+    # underscore (_), so it is better to generate a list of symbols to export.
+    always_export_symbols_CXX=yes
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      allow_undefined_flag_CXX='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+	allow_undefined_flag_CXX="-z nodefs"
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	no_undefined_flag_CXX=' ${wl}-bernotok'
+	allow_undefined_flag_CXX=' ${wl}-berok'
+	# -bexpall does not export symbols beginning with underscore (_)
+	always_export_symbols_CXX=yes
+	# Exported symbols can be pulled into shared objects from archives
+	whole_archive_flag_spec_CXX=' '
+	archive_cmds_need_lc_CXX=yes
+	# This is similar to how AIX traditionally builds it's shared libraries.
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+    # as there is no search path for DLLs.
+    hardcode_libdir_flag_spec_CXX='-L$libdir'
+    allow_undefined_flag_CXX=unsupported
+    always_export_symbols_CXX=no
+    enable_shared_with_static_runtimes_CXX=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+  ;;
+      darwin* | rhapsody*)
+        case "$host_os" in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+        esac
+      archive_cmds_need_lc_CXX=no
+      hardcode_direct_CXX=no
+      hardcode_automatic_CXX=yes
+      hardcode_shlibpath_var_CXX=unsupported
+      whole_archive_flag_spec_CXX=''
+      link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes ; then
+      lt_int_apple_cc_single_mod=no
+      output_verbose_link_cmd='echo'
+      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
+       lt_int_apple_cc_single_mod=yes
+      fi
+      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      else
+          archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+        fi
+        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          else
+            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          fi
+            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+          archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+          module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+          archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_CXX=no
+          ;;
+      esac
+      fi
+        ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      ghcx*)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    ld_shlibs_CXX=no
+    ;;
+  freebsd-elf*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  freebsd* | kfreebsd*-gnu | dragonfly*)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    ld_shlibs_CXX=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    hardcode_direct_CXX=yes
+    hardcode_minus_L_CXX=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC*)
+      # FIXME: insert proper C++ library support
+      ld_shlibs_CXX=no
+      ;;
+    aCC*)
+      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+	hardcode_libdir_separator_CXX=:
+        ;;
+      ia64*)
+	hardcode_libdir_flag_spec_CXX='-L$libdir'
+        ;;
+      *)
+	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+	export_dynamic_flag_spec_CXX='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      ;;
+    ia64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    *)
+      hardcode_direct_CXX=yes
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      aCC*)
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case "$host_cpu" in
+	    ia64*|hppa*64*)
+	      archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	      ;;
+	    *)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC*)
+	# SGI C++
+	archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	  else
+	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	link_all_deplibs_CXX=yes
+	;;
+    esac
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+	archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc*)
+	# Intel C++
+	with_gnu_ld=yes
+	# version 8.0 and above of icpc choke on multiply defined symbols
+	# if we add $predep_objects and $postdep_objects, however 7.1 and
+	# earlier do not add the objects themselves.
+	case `$CC -V 2>&1` in
+	*"Version 7."*)
+  	  archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+  	  archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	*)  # Version 8.0 or newer
+	  tmp_idyn=
+	  case $host_cpu in
+	    ia64*) tmp_idyn=' -i_dynamic';;
+	  esac
+  	  archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	  archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	  ;;
+	esac
+	archive_cmds_need_lc_CXX=no
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      pgCC*)
+        # Portland Group C++ compiler
+	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+  	archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+        ;;
+      cxx*)
+	# Compaq C++
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      hardcode_libdir_flag_spec_CXX='-R$libdir'
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  openbsd2*)
+    # C++ shared libraries are fairly broken
+    ld_shlibs_CXX=no
+    ;;
+  openbsd*)
+    hardcode_direct_CXX=yes
+    hardcode_shlibpath_var_CXX=no
+    archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+      archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+      export_dynamic_flag_spec_CXX='${wl}-E'
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    fi
+    output_verbose_link_cmd='echo'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC*)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+	;;
+      RCC*)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx*)
+	allow_undefined_flag_CXX=' -expect_unresolved \*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry ${output_objdir}/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  sco*)
+    archive_cmds_need_lc_CXX=no
+    case $cc_basename in
+      CC*)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      lcc*)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC*)
+	# Sun C++ 4.2, 5.x and Centerline C++
+	no_undefined_flag_CXX=' -zdefs'
+	archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+	archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-R$libdir'
+	hardcode_shlibpath_var_CXX=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker. We must also pass each convience library through
+	    # to the system linker between allextract/defaultextract.
+	    # The C++ compiler will combine linker options so we
+	    # cannot just pass the convience library names through
+	    # without $wl.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	link_all_deplibs_CXX=yes
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx*)
+	# Green Hills C++ Compiler
+	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC*)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+esac
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_CXX"; then
+	     compiler_lib_search_path_CXX="${prev}${p}"
+	   else
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_CXX"; then
+	   postdeps_CXX="${prev}${p}"
+	 else
+	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$predep_objects_CXX"; then
+	   predep_objects_CXX="$p"
+	 else
+	   predep_objects_CXX="$predep_objects_CXX $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_CXX"; then
+	   postdep_objects_CXX="$p"
+	 else
+	   postdep_objects_CXX="$postdep_objects_CXX $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    lt_prog_compiler_wl_CXX='-Wl,'
+    lt_prog_compiler_static_CXX='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_CXX='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_CXX='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      lt_prog_compiler_pic_CXX=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_CXX=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	;;
+      *)
+	lt_prog_compiler_pic_CXX='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      lt_prog_compiler_pic_CXX='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  lt_prog_compiler_static_CXX='-Bstatic'
+	else
+	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68*)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+       darwin*)
+         # PIC is the default on this platform
+         # Common symbols not allowed in MH_DYLIB files
+         case $cc_basename in
+           xlc*)
+           lt_prog_compiler_pic_CXX='-qnocommon'
+           lt_prog_compiler_wl_CXX='-Wl,'
+           ;;
+         esac
+       ;;
+      dgux*)
+	case $cc_basename in
+	  ec++*)
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  ghcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu | dragonfly*)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    if test "$host_cpu" != ia64; then
+	      lt_prog_compiler_pic_CXX='+Z'
+	    fi
+	    ;;
+	  aCC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    case "$host_cpu" in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      lt_prog_compiler_pic_CXX='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC*)
+	    # KAI C++ Compiler
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  icpc* | ecpc*)
+	    # Intel C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  pgCC*)
+	    # Portland Group C++ compiler.
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-fpic'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  cxx*)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx*)
+	    lt_prog_compiler_pic_CXX='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC*)
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    ;;
+	  RCC*)
+	    # Rational C++ 2.4.1
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  cxx*)
+	    # Digital/Compaq C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      sco*)
+	case $cc_basename in
+	  CC*)
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    lt_prog_compiler_wl_CXX='-Qoption ld '
+	    ;;
+	  gcx*)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC*)
+	    # Sun C++ 4.x
+	    lt_prog_compiler_pic_CXX='-pic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  lcc*)
+	    # Lucid
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC*)
+	    # NonStop-UX NCC 3.20
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      unixware*)
+	;;
+      vxworks*)
+	;;
+      *)
+	lt_prog_compiler_can_build_shared_CXX=no
+	;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_CXX=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:11631: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:11635: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
+
+if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+    case $lt_prog_compiler_pic_CXX in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+     esac
+else
+    lt_prog_compiler_pic_CXX=
+     lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_CXX=
+    ;;
+  *)
+    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_CXX=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:11693: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:11697: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+     $SED '/^$/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_CXX=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    else
+      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    export_symbols_cmds_CXX="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_CXX=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_CXX in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_CXX
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+        allow_undefined_flag_CXX=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_CXX=no
+        else
+	  archive_cmds_need_lc_CXX=yes
+        fi
+        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+   test -n "$runpath_var_CXX" || \
+   test "X$hardcode_automatic_CXX" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_CXX" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+     test "$hardcode_minus_L_CXX" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_CXX=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_CXX=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_CXX=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6
+
+if test "$hardcode_action_CXX" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 13062 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 13160 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_CXX \
+    CC_CXX \
+    LD_CXX \
+    lt_prog_compiler_wl_CXX \
+    lt_prog_compiler_pic_CXX \
+    lt_prog_compiler_static_CXX \
+    lt_prog_compiler_no_builtin_flag_CXX \
+    export_dynamic_flag_spec_CXX \
+    thread_safe_flag_spec_CXX \
+    whole_archive_flag_spec_CXX \
+    enable_shared_with_static_runtimes_CXX \
+    old_archive_cmds_CXX \
+    old_archive_from_new_cmds_CXX \
+    predep_objects_CXX \
+    postdep_objects_CXX \
+    predeps_CXX \
+    postdeps_CXX \
+    compiler_lib_search_path_CXX \
+    archive_cmds_CXX \
+    archive_expsym_cmds_CXX \
+    postinstall_cmds_CXX \
+    postuninstall_cmds_CXX \
+    old_archive_from_expsyms_cmds_CXX \
+    allow_undefined_flag_CXX \
+    no_undefined_flag_CXX \
+    export_symbols_cmds_CXX \
+    hardcode_libdir_flag_spec_CXX \
+    hardcode_libdir_flag_spec_ld_CXX \
+    hardcode_libdir_separator_CXX \
+    hardcode_automatic_CXX \
+    module_cmds_CXX \
+    module_expsym_cmds_CXX \
+    lt_cv_prog_compiler_c_o_CXX \
+    exclude_expsyms_CXX \
+    include_expsyms_CXX; do
+
+    case $var in
+    old_archive_cmds_CXX | \
+    old_archive_from_new_cmds_CXX | \
+    archive_cmds_CXX | \
+    archive_expsym_cmds_CXX | \
+    module_cmds_CXX | \
+    module_expsym_cmds_CXX | \
+    old_archive_from_expsyms_cmds_CXX | \
+    export_symbols_cmds_CXX | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_CXX"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4* | aix5*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_F77='-Wl,'
+    lt_prog_compiler_static_F77='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_F77='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_F77=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_F77=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_F77='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      else
+	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_F77='-qnocommon'
+         lt_prog_compiler_wl_F77='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-KPIC'
+	lt_prog_compiler_static_F77='-static'
+        ;;
+      pgcc* | pgf77* | pgf90*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-fpic'
+	lt_prog_compiler_static_F77='-static'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_F77='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_F77='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      lt_prog_compiler_pic_F77='-Kpic'
+      lt_prog_compiler_static_F77='-dn'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_F77='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_F77='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_F77='-Qoption ld '
+      lt_prog_compiler_pic_F77='-PIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_F77='-Kconform_pic'
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_F77='-pic'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_F77=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_F77"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:14045: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:14049: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
+
+if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+    case $lt_prog_compiler_pic_F77 in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+     esac
+else
+    lt_prog_compiler_pic_F77=
+     lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_F77=
+    ;;
+  *)
+    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_F77=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:14107: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:14111: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+     $SED '/^$/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_F77=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_F77=
+  enable_shared_with_static_runtimes_F77=no
+  archive_cmds_F77=
+  archive_expsym_cmds_F77=
+  old_archive_From_new_cmds_F77=
+  old_archive_from_expsyms_cmds_F77=
+  export_dynamic_flag_spec_F77=
+  whole_archive_flag_spec_F77=
+  thread_safe_flag_spec_F77=
+  hardcode_libdir_flag_spec_F77=
+  hardcode_libdir_flag_spec_ld_F77=
+  hardcode_libdir_separator_F77=
+  hardcode_direct_F77=no
+  hardcode_minus_L_F77=no
+  hardcode_shlibpath_var_F77=unsupported
+  link_all_deplibs_F77=unknown
+  hardcode_automatic_F77=no
+  module_cmds_F77=
+  module_expsym_cmds_F77=
+  always_export_symbols_F77=no
+  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_F77=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_F77=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_F77=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_F77=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_F77=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=no
+      enable_shared_with_static_runtimes_F77=yes
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_F77='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* )			# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_F77='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    sunos4*)
+      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_F77" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_F77=
+      export_dynamic_flag_spec_F77=
+      whole_archive_flag_spec_F77=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=yes
+      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_F77=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_F77=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_F77=''
+      hardcode_direct_F77=yes
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_F77=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_F77=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_F77=yes
+  	  hardcode_libdir_flag_spec_F77='-L$libdir'
+  	  hardcode_libdir_separator_F77=
+	  fi
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+  	fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_F77=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_F77='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_F77="-z nodefs"
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_F77=' ${wl}-bernotok'
+	  allow_undefined_flag_F77=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  always_export_symbols_F77=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_F77=' '
+	  archive_cmds_need_lc_F77=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_F77=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_F77=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_F77=' '
+      allow_undefined_flag_F77=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_F77='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_F77=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case "$host_os" in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_F77=no
+      hardcode_direct_F77=no
+      hardcode_automatic_F77=yes
+      hardcode_shlibpath_var_F77=unsupported
+      whole_archive_flag_spec_F77=''
+      link_all_deplibs_F77=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+         archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_F77=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_F77=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_direct_F77=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+	  hardcode_libdir_separator_F77=:
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+	  ;;
+	ia64*)
+	  hardcode_libdir_flag_spec_F77='-L$libdir'
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	*)
+	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_separator_F77=:
+	  hardcode_direct_F77=yes
+	  export_dynamic_flag_spec_F77='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      link_all_deplibs_F77=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    newsos6)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_F77='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_F77='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      allow_undefined_flag_F77=unsupported
+      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    sco3.2v5*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      no_undefined_flag_F77=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_shlibpath_var_F77=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs_F77=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_F77='$CC -r -o $output$reload_objs'
+	  hardcode_direct_F77=no
+        ;;
+	motorola)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_F77=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_F77=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      no_undefined_flag_F77='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv5*)
+      no_undefined_flag_F77=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      hardcode_libdir_flag_spec_F77=
+      hardcode_shlibpath_var_F77=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      ld_shlibs_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_F77=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_F77 in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_F77
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+        allow_undefined_flag_F77=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_F77=no
+        else
+	  archive_cmds_need_lc_F77=yes
+        fi
+        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+   test -n "$runpath_var_F77" || \
+   test "X$hardcode_automatic_F77" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_F77" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+     test "$hardcode_minus_L_F77" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_F77=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_F77=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_F77=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6
+
+if test "$hardcode_action_F77" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_F77 \
+    CC_F77 \
+    LD_F77 \
+    lt_prog_compiler_wl_F77 \
+    lt_prog_compiler_pic_F77 \
+    lt_prog_compiler_static_F77 \
+    lt_prog_compiler_no_builtin_flag_F77 \
+    export_dynamic_flag_spec_F77 \
+    thread_safe_flag_spec_F77 \
+    whole_archive_flag_spec_F77 \
+    enable_shared_with_static_runtimes_F77 \
+    old_archive_cmds_F77 \
+    old_archive_from_new_cmds_F77 \
+    predep_objects_F77 \
+    postdep_objects_F77 \
+    predeps_F77 \
+    postdeps_F77 \
+    compiler_lib_search_path_F77 \
+    archive_cmds_F77 \
+    archive_expsym_cmds_F77 \
+    postinstall_cmds_F77 \
+    postuninstall_cmds_F77 \
+    old_archive_from_expsyms_cmds_F77 \
+    allow_undefined_flag_F77 \
+    no_undefined_flag_F77 \
+    export_symbols_cmds_F77 \
+    hardcode_libdir_flag_spec_F77 \
+    hardcode_libdir_flag_spec_ld_F77 \
+    hardcode_libdir_separator_F77 \
+    hardcode_automatic_F77 \
+    module_cmds_F77 \
+    module_expsym_cmds_F77 \
+    lt_cv_prog_compiler_c_o_F77 \
+    exclude_expsyms_F77 \
+    include_expsyms_F77; do
+
+    case $var in
+    old_archive_cmds_F77 | \
+    old_archive_from_new_cmds_F77 | \
+    archive_cmds_F77 | \
+    archive_expsym_cmds_F77 | \
+    module_cmds_F77 | \
+    module_expsym_cmds_F77 | \
+    old_archive_from_expsyms_cmds_F77 | \
+    export_symbols_cmds_F77 | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_F77"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+old_archive_cmds_GCJ=$old_archive_cmds
+
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:16229: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:16233: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_GCJ='-Wl,'
+    lt_prog_compiler_static_GCJ='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_GCJ='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_GCJ=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_GCJ=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_GCJ='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      else
+	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+      darwin*)
+        # PIC is the default on this platform
+        # Common symbols not allowed in MH_DYLIB files
+       case $cc_basename in
+         xlc*)
+         lt_prog_compiler_pic_GCJ='-qnocommon'
+         lt_prog_compiler_wl_GCJ='-Wl,'
+         ;;
+       esac
+       ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    linux*)
+      case $cc_basename in
+      icc* | ecc*)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-KPIC'
+	lt_prog_compiler_static_GCJ='-static'
+        ;;
+      pgcc* | pgf77* | pgf90*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+	# which looks to be a dead project)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-fpic'
+	lt_prog_compiler_static_GCJ='-static'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_GCJ='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_GCJ='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      lt_prog_compiler_pic_GCJ='-Kpic'
+      lt_prog_compiler_static_GCJ='-dn'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95*)
+	lt_prog_compiler_wl_GCJ='-Qoption ld ';;
+      *)
+	lt_prog_compiler_wl_GCJ='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_GCJ='-Qoption ld '
+      lt_prog_compiler_pic_GCJ='-PIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_GCJ='-Kconform_pic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    unicos*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_GCJ='-pic'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_GCJ=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:16491: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:16495: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $echo "X$_lt_compiler_boilerplate" | $Xsed >conftest.exp
+     $SED '/^$/d' conftest.err >conftest.er2
+     if test ! -s conftest.err || diff conftest.exp conftest.er2 >/dev/null; then
+       lt_prog_compiler_pic_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
+
+if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+    case $lt_prog_compiler_pic_GCJ in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+     esac
+else
+    lt_prog_compiler_pic_GCJ=
+     lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_GCJ=
+    ;;
+  *)
+    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_GCJ=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:16553: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:16557: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $echo "X$_lt_compiler_boilerplate" | $Xsed > out/conftest.exp
+     $SED '/^$/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.err || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       lt_cv_prog_compiler_c_o_GCJ=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
+   $rm out/* && rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_GCJ=
+  enable_shared_with_static_runtimes_GCJ=no
+  archive_cmds_GCJ=
+  archive_expsym_cmds_GCJ=
+  old_archive_From_new_cmds_GCJ=
+  old_archive_from_expsyms_cmds_GCJ=
+  export_dynamic_flag_spec_GCJ=
+  whole_archive_flag_spec_GCJ=
+  thread_safe_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_ld_GCJ=
+  hardcode_libdir_separator_GCJ=
+  hardcode_direct_GCJ=no
+  hardcode_minus_L_GCJ=no
+  hardcode_shlibpath_var_GCJ=unsupported
+  link_all_deplibs_GCJ=unknown
+  hardcode_automatic_GCJ=no
+  module_cmds_GCJ=
+  module_expsym_cmds_GCJ=
+  always_export_symbols_GCJ=no
+  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_GCJ=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+  # Just being paranoid about ensuring that cc_basename is set.
+  for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_GCJ=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+	whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_GCJ=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>/dev/null` in
+      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+
+      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_GCJ=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_GCJ=unsupported
+	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=no
+      enable_shared_with_static_runtimes_GCJ=yes
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    linux*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	tmp_addflag=
+	case $cc_basename,$host_cpu in
+	pgcc*)				# Portland Group C compiler
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag'
+	  ;;
+	pgf77* | pgf90* )			# Portland Group f77 and f90 compilers
+	  whole_archive_flag_spec_GCJ='${wl}--whole-archive,`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+	  tmp_addflag=' $pic_flag -Mnomain' ;;
+	ecc*,ia64* | icc*,ia64*)		# Intel C compiler on ia64
+	  tmp_addflag=' -i_dynamic' ;;
+	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
+	  tmp_addflag=' -i_dynamic -nofor_main' ;;
+	ifc* | ifort*)			# Intel Fortran compiler
+	  tmp_addflag=' -nofor_main' ;;
+	esac
+	archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+	if test $supports_anon_versioning = yes; then
+	  archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
+  cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+  $echo "local: *; };" >> $output_objdir/$libname.ver~
+	  $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+	fi
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    sunos4*)
+      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_GCJ" = no; then
+      runpath_var=
+      hardcode_libdir_flag_spec_GCJ=
+      export_dynamic_flag_spec_GCJ=
+      whole_archive_flag_spec_GCJ=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=yes
+      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_GCJ=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_GCJ=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+	aix_use_runtimelinking=no
+
+	# Test if we are trying to use run time linking or normal
+	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
+	# need to do runtime linking.
+	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	  for ld_flag in $LDFLAGS; do
+  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+  	    aix_use_runtimelinking=yes
+  	    break
+  	  fi
+	  done
+	esac
+
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_GCJ=''
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_GCJ=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_GCJ=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_GCJ=yes
+  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+  	  hardcode_libdir_separator_GCJ=
+	  fi
+	esac
+	shared_flag='-shared'
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag="$shared_flag "'${wl}-G'
+	fi
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='${wl}-G'
+	  else
+	    shared_flag='${wl}-bM:SRE'
+  	fi
+	fi
+      fi
+
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      always_export_symbols_GCJ=yes
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_GCJ='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+       cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_GCJ="-z nodefs"
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_GCJ=' ${wl}-bernotok'
+	  allow_undefined_flag_GCJ=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  always_export_symbols_GCJ=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_GCJ=' '
+	  archive_cmds_need_lc_GCJ=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_GCJ=no
+      ;;
+
+    bsdi[45]*)
+      export_dynamic_flag_spec_GCJ=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ=' '
+      allow_undefined_flag_GCJ=unsupported
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext_cmds=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_GCJ='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_GCJ=yes
+      ;;
+
+    darwin* | rhapsody*)
+      case "$host_os" in
+        rhapsody* | darwin1.[012])
+         allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
+         ;;
+       *) # Darwin 1.3 on
+         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+           allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+         else
+           case ${MACOSX_DEPLOYMENT_TARGET} in
+             10.[012])
+               allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
+               ;;
+             10.*)
+               allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
+               ;;
+           esac
+         fi
+         ;;
+      esac
+      archive_cmds_need_lc_GCJ=no
+      hardcode_direct_GCJ=no
+      hardcode_automatic_GCJ=yes
+      hardcode_shlibpath_var_GCJ=unsupported
+      whole_archive_flag_spec_GCJ=''
+      link_all_deplibs_GCJ=yes
+    if test "$GCC" = yes ; then
+    	output_verbose_link_cmd='echo'
+        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
+      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      case $cc_basename in
+        xlc*)
+         output_verbose_link_cmd='echo'
+         archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+         module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
+          # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+         archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+          ;;
+       *)
+         ld_shlibs_GCJ=no
+          ;;
+      esac
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_GCJ=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu | dragonfly*)
+      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_direct_GCJ=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+	  hardcode_libdir_separator_GCJ=:
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+	  ;;
+	ia64*)
+	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	*)
+	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_separator_GCJ=:
+	  hardcode_direct_GCJ=yes
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    newsos6)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      allow_undefined_flag_GCJ=unsupported
+      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    sco3.2v5*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      no_undefined_flag_GCJ=' -z text'
+      if test "$GCC" = yes; then
+	wlarc='${wl}'
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
+      else
+	wlarc=''
+	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *)
+ 	# The compiler driver will combine linker options so we
+ 	# cannot just pass the convience library names through
+ 	# without $wl, iff we do not link with $LD.
+ 	# Luckily, gcc supports the same syntax we need for Sun Studio.
+ 	# Supported since Solaris 2.6 (maybe 2.5.1?)
+ 	case $wlarc in
+ 	'')
+ 	  whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+ 	*)
+ 	  whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
+ 	esac ;;
+      esac
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+	  hardcode_direct_GCJ=no
+        ;;
+	motorola)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_GCJ=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_GCJ=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      no_undefined_flag_GCJ='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv5*)
+      no_undefined_flag_GCJ=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      hardcode_libdir_flag_spec_GCJ=
+      hardcode_shlibpath_var_GCJ=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      ld_shlibs_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_GCJ=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_GCJ in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_GCJ
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+        allow_undefined_flag_GCJ=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_GCJ=no
+        else
+	  archive_cmds_need_lc_GCJ=yes
+        fi
+        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+if test "$GCC" = yes; then
+  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+  else
+    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+  fi
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[45]*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext_cmds='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+knetbsd*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+   test -n "$runpath_var_GCJ" || \
+   test "X$hardcode_automatic_GCJ" = "Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_GCJ" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+     test "$hardcode_minus_L_GCJ" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_GCJ=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_GCJ=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_GCJ=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6
+
+if test "$hardcode_action_GCJ" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 18793 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 18891 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_GCJ \
+    CC_GCJ \
+    LD_GCJ \
+    lt_prog_compiler_wl_GCJ \
+    lt_prog_compiler_pic_GCJ \
+    lt_prog_compiler_static_GCJ \
+    lt_prog_compiler_no_builtin_flag_GCJ \
+    export_dynamic_flag_spec_GCJ \
+    thread_safe_flag_spec_GCJ \
+    whole_archive_flag_spec_GCJ \
+    enable_shared_with_static_runtimes_GCJ \
+    old_archive_cmds_GCJ \
+    old_archive_from_new_cmds_GCJ \
+    predep_objects_GCJ \
+    postdep_objects_GCJ \
+    predeps_GCJ \
+    postdeps_GCJ \
+    compiler_lib_search_path_GCJ \
+    archive_cmds_GCJ \
+    archive_expsym_cmds_GCJ \
+    postinstall_cmds_GCJ \
+    postuninstall_cmds_GCJ \
+    old_archive_from_expsyms_cmds_GCJ \
+    allow_undefined_flag_GCJ \
+    no_undefined_flag_GCJ \
+    export_symbols_cmds_GCJ \
+    hardcode_libdir_flag_spec_GCJ \
+    hardcode_libdir_flag_spec_ld_GCJ \
+    hardcode_libdir_separator_GCJ \
+    hardcode_automatic_GCJ \
+    module_cmds_GCJ \
+    module_expsym_cmds_GCJ \
+    lt_cv_prog_compiler_c_o_GCJ \
+    exclude_expsyms_GCJ \
+    include_expsyms_GCJ; do
+
+    case $var in
+    old_archive_cmds_GCJ | \
+    old_archive_from_new_cmds_GCJ | \
+    archive_cmds_GCJ | \
+    archive_expsym_cmds_GCJ | \
+    module_cmds_GCJ | \
+    module_expsym_cmds_GCJ | \
+    old_archive_from_expsyms_cmds_GCJ | \
+    export_symbols_cmds_GCJ | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_GCJ"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$rm conftest*
+
+ac_outfile=conftest.$ac_objext
+printf "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$rm conftest*
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+for cc_temp in $compiler""; do
+  case $cc_temp in
+    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
+    SED SHELL STRIP \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_RC \
+    CC_RC \
+    LD_RC \
+    lt_prog_compiler_wl_RC \
+    lt_prog_compiler_pic_RC \
+    lt_prog_compiler_static_RC \
+    lt_prog_compiler_no_builtin_flag_RC \
+    export_dynamic_flag_spec_RC \
+    thread_safe_flag_spec_RC \
+    whole_archive_flag_spec_RC \
+    enable_shared_with_static_runtimes_RC \
+    old_archive_cmds_RC \
+    old_archive_from_new_cmds_RC \
+    predep_objects_RC \
+    postdep_objects_RC \
+    predeps_RC \
+    postdeps_RC \
+    compiler_lib_search_path_RC \
+    archive_cmds_RC \
+    archive_expsym_cmds_RC \
+    postinstall_cmds_RC \
+    postuninstall_cmds_RC \
+    old_archive_from_expsyms_cmds_RC \
+    allow_undefined_flag_RC \
+    no_undefined_flag_RC \
+    export_symbols_cmds_RC \
+    hardcode_libdir_flag_spec_RC \
+    hardcode_libdir_flag_spec_ld_RC \
+    hardcode_libdir_separator_RC \
+    hardcode_automatic_RC \
+    module_cmds_RC \
+    module_expsym_cmds_RC \
+    lt_cv_prog_compiler_c_o_RC \
+    exclude_expsyms_RC \
+    include_expsyms_RC; do
+
+    case $var in
+    old_archive_cmds_RC | \
+    old_archive_from_new_cmds_RC | \
+    archive_cmds_RC | \
+    archive_expsym_cmds_RC | \
+    module_cmds_RC | \
+    module_expsym_cmds_RC | \
+    old_archive_from_expsyms_cmds_RC | \
+    export_symbols_cmds_RC | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$lt_STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext_cmds='$shrext_cmds'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_RC"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
+  if test -f "$ltmain_in"; then
+    test -f Makefile && make "$ltmain"
+  fi
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	;;
+
+      *)
+	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
 
-fi
 
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
 
 
 
@@ -3534,68 +19938,18 @@ fi
 
 
 
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
 
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+### i18n
 
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+GETTEXT_PACKAGE=mail-notification
 
-fi
+cat >>confdefs.h <<_ACEOF
+#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
+_ACEOF
 
-done
 
 
+ALL_LINGUAS="bg de fr pl pt ru sr sr@Latn"
 
 
 for ac_header in locale.h
@@ -3963,7 +20317,66 @@ if test $ac_cv_header_libintl_h = yes; then
       #
       # First check in libc
       #
-      echo "$as_me:$LINENO: checking for dgettext in libc" >&5
+      echo "$as_me:$LINENO: checking for ngettext in libc" >&5
+echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6
+if test "${gt_cv_func_ngettext_libc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <libintl.h>
+
+int
+main ()
+{
+return !ngettext ("","", 1)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  gt_cv_func_ngettext_libc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+gt_cv_func_ngettext_libc=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
+echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6
+
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
+	      echo "$as_me:$LINENO: checking for dgettext in libc" >&5
 echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6
 if test "${gt_cv_func_dgettext_libc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3980,7 +20393,7 @@ cat >>conftest.$ac_ext <<_ACEOF
 int
 main ()
 {
-return (int) dgettext ("","")
+return !dgettext ("","")
   ;
   return 0;
 }
@@ -4020,8 +20433,9 @@ rm -f conftest.err conftest.$ac_objext \
 fi
 echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
 echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6
+      fi
 
-      if test "$gt_cv_func_dgettext_libc" = "yes" ; then
+      if test "$gt_cv_func_ngettext_libc" = "yes" ; then
 
 for ac_func in bind_textdomain_codeset
 do
@@ -4130,6 +20544,7 @@ done
       # If we don't have everything we want, check in libintl
       #
       if test "$gt_cv_func_dgettext_libc" != "yes" \
+	 || test "$gt_cv_func_ngettext_libc" != "yes" \
          || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
 
         echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
@@ -4197,13 +20612,156 @@ fi
 echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
 echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6
 if test $ac_cv_lib_intl_bindtextdomain = yes; then
+  echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6
+if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char ngettext ();
+int
+main ()
+{
+ngettext ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_intl_ngettext=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_intl_ngettext=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6
+if test $ac_cv_lib_intl_ngettext = yes; then
   echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
 echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6
 if test "${ac_cv_lib_intl_dgettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lintl  $LIBS"
+LIBS="-lintl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dgettext ();
+int
+main ()
+{
+dgettext ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_intl_dgettext=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_intl_dgettext=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6
+if test $ac_cv_lib_intl_dgettext = yes; then
+  gt_cv_func_dgettext_libintl=yes
+fi
+
+fi
+
+fi
+
+
+	if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
+	  echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
+echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6
+	  echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6
+  	  echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6
+if test "${ac_cv_lib_intl_ngettext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lintl -liconv $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -4217,11 +20775,11 @@ extern "C"
 #endif
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
-char dgettext ();
+char ngettext ();
 int
 main ()
 {
-dgettext ();
+ngettext ();
   ;
   return 0;
 }
@@ -4248,32 +20806,21 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_intl_dgettext=yes
+  ac_cv_lib_intl_ngettext=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_dgettext=no
+ac_cv_lib_intl_ngettext=no
 fi
 rm -f conftest.err conftest.$ac_objext \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6
-if test $ac_cv_lib_intl_dgettext = yes; then
-  gt_cv_func_dgettext_libintl=yes
-fi
-
-fi
-
-
-	if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
-	  echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
-echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6
-	  echo "$as_me:$LINENO: result: " >&5
-echo "${ECHO_T}" >&6
-          echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
+echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6
+if test $ac_cv_lib_intl_ngettext = yes; then
+  echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
 echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6
 if test "${ac_cv_lib_intl_dcgettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4344,12 +20891,16 @@ else
   :
 fi
 
+else
+  :
+fi
+
         fi
 
         #
         # If we found libintl, then check in it for bind_textdomain_codeset();
         # we'll prefer libc if neither have bind_textdomain_codeset(),
-        # and both have dgettext
+        # and both have dgettext and ngettext
         #
         if test "$gt_cv_func_dgettext_libintl" = "yes" ; then
           glib_save_LIBS="$LIBS"
@@ -4462,7 +21013,8 @@ done
           if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then
             gt_cv_func_dgettext_libc=no
           else
-            if test "$gt_cv_func_dgettext_libc" = "yes"; then
+            if test "$gt_cv_func_dgettext_libc" = "yes" \
+		&& test "$gt_cv_func_ngettext_libc" = "yes"; then
               gt_cv_func_dgettext_libintl=no
             fi
           fi
@@ -5101,12 +21653,12 @@ fi
 set dummy iconv; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ICONV+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_ICONV+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $ICONV in
+  case $INTLTOOL_ICONV in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_ICONV="$ICONV" # Let the user override the test with a path.
+  ac_cv_path_INTLTOOL_ICONV="$INTLTOOL_ICONV" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5116,22 +21668,22 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ICONV="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_INTLTOOL_ICONV="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
 
-  test -z "$ac_cv_path_ICONV" && ac_cv_path_ICONV="iconv"
+  test -z "$ac_cv_path_INTLTOOL_ICONV" && ac_cv_path_INTLTOOL_ICONV="iconv"
   ;;
 esac
 fi
-ICONV=$ac_cv_path_ICONV
+INTLTOOL_ICONV=$ac_cv_path_INTLTOOL_ICONV
 
-if test -n "$ICONV"; then
-  echo "$as_me:$LINENO: result: $ICONV" >&5
-echo "${ECHO_T}$ICONV" >&6
+if test -n "$INTLTOOL_ICONV"; then
+  echo "$as_me:$LINENO: result: $INTLTOOL_ICONV" >&5
+echo "${ECHO_T}$INTLTOOL_ICONV" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
@@ -5141,12 +21693,12 @@ fi
 set dummy msgfmt; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_MSGFMT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $MSGFMT in
+  case $INTLTOOL_MSGFMT in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ac_cv_path_INTLTOOL_MSGFMT="$INTLTOOL_MSGFMT" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5156,22 +21708,22 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_INTLTOOL_MSGFMT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
 
-  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+  test -z "$ac_cv_path_INTLTOOL_MSGFMT" && ac_cv_path_INTLTOOL_MSGFMT="msgfmt"
   ;;
 esac
 fi
-MSGFMT=$ac_cv_path_MSGFMT
+INTLTOOL_MSGFMT=$ac_cv_path_INTLTOOL_MSGFMT
 
-if test -n "$MSGFMT"; then
-  echo "$as_me:$LINENO: result: $MSGFMT" >&5
-echo "${ECHO_T}$MSGFMT" >&6
+if test -n "$INTLTOOL_MSGFMT"; then
+  echo "$as_me:$LINENO: result: $INTLTOOL_MSGFMT" >&5
+echo "${ECHO_T}$INTLTOOL_MSGFMT" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
@@ -5181,12 +21733,12 @@ fi
 set dummy msgmerge; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_MSGMERGE+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $MSGMERGE in
+  case $INTLTOOL_MSGMERGE in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+  ac_cv_path_INTLTOOL_MSGMERGE="$INTLTOOL_MSGMERGE" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5196,22 +21748,22 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_INTLTOOL_MSGMERGE="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
 
-  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE="msgmerge"
+  test -z "$ac_cv_path_INTLTOOL_MSGMERGE" && ac_cv_path_INTLTOOL_MSGMERGE="msgmerge"
   ;;
 esac
 fi
-MSGMERGE=$ac_cv_path_MSGMERGE
+INTLTOOL_MSGMERGE=$ac_cv_path_INTLTOOL_MSGMERGE
 
-if test -n "$MSGMERGE"; then
-  echo "$as_me:$LINENO: result: $MSGMERGE" >&5
-echo "${ECHO_T}$MSGMERGE" >&6
+if test -n "$INTLTOOL_MSGMERGE"; then
+  echo "$as_me:$LINENO: result: $INTLTOOL_MSGMERGE" >&5
+echo "${ECHO_T}$INTLTOOL_MSGMERGE" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
@@ -5221,12 +21773,12 @@ fi
 set dummy xgettext; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if test "${ac_cv_path_INTLTOOL_XGETTEXT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $XGETTEXT in
+  case $INTLTOOL_XGETTEXT in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ac_cv_path_INTLTOOL_XGETTEXT="$INTLTOOL_XGETTEXT" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5236,22 +21788,22 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_INTLTOOL_XGETTEXT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
 
-  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT="xgettext"
+  test -z "$ac_cv_path_INTLTOOL_XGETTEXT" && ac_cv_path_INTLTOOL_XGETTEXT="xgettext"
   ;;
 esac
 fi
-XGETTEXT=$ac_cv_path_XGETTEXT
+INTLTOOL_XGETTEXT=$ac_cv_path_INTLTOOL_XGETTEXT
 
-if test -n "$XGETTEXT"; then
-  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-echo "${ECHO_T}$XGETTEXT" >&6
+if test -n "$INTLTOOL_XGETTEXT"; then
+  echo "$as_me:$LINENO: result: $INTLTOOL_XGETTEXT" >&5
+echo "${ECHO_T}$INTLTOOL_XGETTEXT" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
@@ -5265,32 +21817,6 @@ fi
 
 
 
-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-  # Keeping the `.' argument allows $(mkdir_p) to be used without
-  # argument.  Indeed, we sometimes output rules like
-  #   $(mkdir_p) $(somedir)
-  # where $(somedir) is conditionally defined.
-  # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more
-  # expensive solution, as it forces Make to start a sub-shell.)
-  mkdir_p='mkdir -p -- .'
-else
-  # On NextStep and OpenStep, the `mkdir' command does not
-  # recognize any option.  It will interpret all options as
-  # directories to create, and then abort because `.' already
-  # exists.
-  for d in ./-p ./--version;
-  do
-    test -d $d && rmdir $d
-  done
-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
-  if test -f "$ac_aux_dir/mkinstalldirs"; then
-    mkdir_p='$(mkinstalldirs)'
-  else
-    mkdir_p='$(install_sh) -d'
-  fi
-fi
-
-
 
 # Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
 
@@ -6575,37 +23101,270 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
   $EGREP "memchr" >/dev/null 2>&1; then
   :
 else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+if test $ac_cv_header_stdc != yes; then
+	{ { echo "$as_me:$LINENO: error: ANSI C headers not present" >&5
+echo "$as_me: error: ANSI C headers not present" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+# Check whether --with-reentrant-resolver or --without-reentrant-resolver was given.
+if test "${with_reentrant_resolver+set}" = set; then
+  withval="$with_reentrant_resolver"
+  case "$withval" in
+	yes|no|autodetect) reentrant_resolver=$withval ;;
+	*) { { echo "$as_me:$LINENO: error: bad value $withval for --with-reentrant-resolver" >&5
+echo "$as_me: error: bad value $withval for --with-reentrant-resolver" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  reentrant_resolver=autodetect
+fi;
+
+if test $reentrant_resolver = autodetect; then
+	echo "$as_me:$LINENO: checking if the system resolver is reentrant" >&5
+echo $ECHO_N "checking if the system resolver is reentrant... $ECHO_C" >&6
+
+	case "$target_os" in
+		# FreeBSD >= 5.3
+		freebsd5.[3-9]*|freebsd5.[1-9][0-9]*|freebsd[6-9]*|freebsd[1-9][0-9]*)
+			reentrant_resolver=yes ;;
+
+		# FreeBSD < 5.3, NetBSD, OpenBSD
+		freebsd*|netbsd*|openbsd*)
+			reentrant_resolver=no ;;
+
+		# Linux
+		linux*)
+			reentrant_resolver=yes ;;
+
+		*)
+			reentrant_resolver=unknown ;;
+	esac
+
+	if test $reentrant_resolver = unknown; then
+		reentrant_resolver=no
+		echo "$as_me:$LINENO: result: unknown, assuming it is not (use --with-reentrant-resolver to override)" >&5
+echo "${ECHO_T}unknown, assuming it is not (use --with-reentrant-resolver to override)" >&6
+	else
+		echo "$as_me:$LINENO: result: $reentrant_resolver" >&5
+echo "${ECHO_T}$reentrant_resolver" >&6
+	fi
+fi
+
+if test $reentrant_resolver = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_REENTRANT_RESOLVER 1
+_ACEOF
+
+fi
+
+# timegm() is non-standard, define HAVE_TIMEGM if it is present
+
+for ac_func in timegm
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+eval "$as_ac_var=no"
 fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
 fi
-rm -f conftest*
+done
 
-fi
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
+# see if "struct tm" is defined in sys/time.h
+echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6
+if test "${ac_cv_struct_tm+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6613,69 +23372,58 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
+#include <sys/types.h>
+#include <time.h>
 
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 int
 main ()
 {
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+struct tm *tp; tp->tm_sec;
+  ;
+  return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  :
+  ac_cv_struct_tm=time.h
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+ac_cv_struct_tm=sys/time.h
 fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
+echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+echo "${ECHO_T}$ac_cv_struct_tm" >&6
+if test $ac_cv_struct_tm = sys/time.h; then
 
 cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
+#define TM_IN_SYS_TIME 1
 _ACEOF
 
 fi
 
-if test $ac_cv_header_stdc != yes; then
-	{ { echo "$as_me:$LINENO: error: ANSI C headers not present" >&5
-echo "$as_me: error: ANSI C headers not present" >&2;}
-   { (exit 1); exit 1; }; }
-fi
 
 ### mandatory libraries and programs
 
@@ -6752,7 +23500,7 @@ fi
     no_gtk=yes
   fi
 
-  min_gtk_version=2.4.0
+  min_gtk_version=2.6.0
   echo "$as_me:$LINENO: checking for GTK+ - version >= $min_gtk_version" >&5
 echo $ECHO_N "checking for GTK+ - version >= $min_gtk_version... $ECHO_C" >&6
 
@@ -6982,15 +23730,244 @@ echo "$as_me: error: unable to find the GTK+ library" >&2;}
   fi
 
 
-  rm -f conf.gtktest
+  rm -f conf.gtktest
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+
+if test -n "$ac_pt_PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  PKG_CONFIG=$ac_pt_PKG_CONFIG
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+	else
+		echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+		PKG_CONFIG=""
+	fi
+
+fi
+
+pkg_failed=no
+echo "$as_me:$LINENO: checking for GNOME_CFLAGS" >&5
+echo $ECHO_N "checking for GNOME_CFLAGS... $ECHO_C" >&6
+if test "${pkg_cv_GNOME_CFLAGS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "x$ac_cv_env_GNOME_CFLAGS_set" = "xset"; then
+	pkg_cv_GNOME_CFLAGS=$ac_cv_env_GNOME_CFLAGS_value
+elif test -n "$PKG_CONFIG"; then
+	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0\" >/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" >/dev/null 2>&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+		pkg_cv_GNOME_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
+else
+	pkg_failed=untried
+fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GNOME_CFLAGS" >&5
+echo "${ECHO_T}$pkg_cv_GNOME_CFLAGS" >&6
+echo "$as_me:$LINENO: checking for GNOME_LIBS" >&5
+echo $ECHO_N "checking for GNOME_LIBS... $ECHO_C" >&6
+if test "${pkg_cv_GNOME_LIBS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "x$ac_cv_env_GNOME_LIBS_set" = "xset"; then
+	pkg_cv_GNOME_LIBS=$ac_cv_env_GNOME_LIBS_value
+elif test -n "$PKG_CONFIG"; then
+	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0\" >/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" >/dev/null 2>&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+		pkg_cv_GNOME_LIBS=`$PKG_CONFIG --libs "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
+else
+	pkg_failed=untried
+fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GNOME_LIBS" >&5
+echo "${ECHO_T}$pkg_cv_GNOME_LIBS" >&6
+
+if test $pkg_failed = yes; then
+	GNOME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0"`
+	# Put the nasty error message in config.log where it belongs
+	echo "$GNOME_PKG_ERRORS" 1>&5
+
+	{ { echo "$as_me:$LINENO: error: unable to find the GNOME libraries" >&5
+echo "$as_me: error: unable to find the GNOME libraries" >&2;}
+   { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+	{ { echo "$as_me:$LINENO: error: unable to find the GNOME libraries" >&5
+echo "$as_me: error: unable to find the GNOME libraries" >&2;}
+   { (exit 1); exit 1; }; }
+else
+	GNOME_CFLAGS=$pkg_cv_GNOME_CFLAGS
+	GNOME_LIBS=$pkg_cv_GNOME_LIBS
+	:
+fi
+
+  if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
+    GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
+  else
+    GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
+  fi
+
+
+# Check whether --with-gconf-source or --without-gconf-source was given.
+if test "${with_gconf_source+set}" = set; then
+  withval="$with_gconf_source"
+  GCONF_SCHEMA_CONFIG_SOURCE="$withval"
+fi;
+
+
+  echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5
+echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6
+
+  if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
+    GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+  fi
+
+
+# Check whether --with-gconf-schema-file-dir or --without-gconf-schema-file-dir was given.
+if test "${with_gconf_schema_file_dir+set}" = set; then
+  withval="$with_gconf_schema_file_dir"
+  GCONF_SCHEMA_FILE_DIR="$withval"
+fi;
+
+
+  echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5
+echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6
+
+  # Check whether --enable-schemas-install or --disable-schemas-install was given.
+if test "${enable_schemas_install+set}" = set; then
+  enableval="$enable_schemas_install"
+  case "${enableval}" in
+       yes) schemas_install=true ;;
+       no)  schemas_install=false ;;
+       *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-schemas-install" >&5
+echo "$as_me: error: bad value ${enableval} for --disable-schemas-install" >&2;}
+   { (exit 1); exit 1; }; } ;;
+     esac
+else
+  schemas_install=true
+fi;
+
+
+if test x$schemas_install = xtrue; then
+  GCONF_SCHEMAS_INSTALL_TRUE=
+  GCONF_SCHEMAS_INSTALL_FALSE='#'
+else
+  GCONF_SCHEMAS_INSTALL_TRUE='#'
+  GCONF_SCHEMAS_INSTALL_FALSE=
+fi
 
 
 
-  succeeded=no
 
-  if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
@@ -7015,7 +23992,6 @@ do
 done
 done
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
   ;;
 esac
 fi
@@ -7029,116 +24005,208 @@ else
 echo "${ECHO_T}no" >&6
 fi
 
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+done
 
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        echo "$as_me:$LINENO: checking for gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0" >&5
-echo $ECHO_N "checking for gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0... $ECHO_C" >&6
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 
-        if $PKG_CONFIG --exists "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0" ; then
-            echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-            succeeded=yes
-
-            echo "$as_me:$LINENO: checking GNOME_CFLAGS" >&5
-echo $ECHO_N "checking GNOME_CFLAGS... $ECHO_C" >&6
-            GNOME_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0"`
-            echo "$as_me:$LINENO: result: $GNOME_CFLAGS" >&5
-echo "${ECHO_T}$GNOME_CFLAGS" >&6
-
-            echo "$as_me:$LINENO: checking GNOME_LIBS" >&5
-echo $ECHO_N "checking GNOME_LIBS... $ECHO_C" >&6
-            GNOME_LIBS=`$PKG_CONFIG --libs "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0"`
-            echo "$as_me:$LINENO: result: $GNOME_LIBS" >&5
-echo "${ECHO_T}$GNOME_LIBS" >&6
-        else
-            GNOME_CFLAGS=""
-            GNOME_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but
-            ## do set a variable so people can do so.
-            GNOME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0"`
+if test -n "$ac_pt_PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-        fi
+  PKG_CONFIG=$ac_pt_PKG_CONFIG
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
 
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+	else
+		echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+		PKG_CONFIG=""
+	fi
 
+fi
 
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
-     fi
-  fi
+echo "$as_me:$LINENO: checking for the GNOME installation prefix" >&5
+echo $ECHO_N "checking for the GNOME installation prefix... $ECHO_C" >&6
 
-  if test $succeeded = yes; then
-     :
-  else
-     { { echo "$as_me:$LINENO: error: unable to find the GNOME libraries" >&5
-echo "$as_me: error: unable to find the GNOME libraries" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
+gnome_prefix=""
+if test -n "$PKG_CONFIG"; then
+	gnome_prefix=`$PKG_CONFIG --variable prefix libgnome-2.0`
+fi
 
+if test -n "$gnome_prefix"; then
+	echo "$as_me:$LINENO: result: $gnome_prefix" >&5
+echo "${ECHO_T}$gnome_prefix" >&6
+	:
+else
+	echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+	:
+fi
 
-  if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
-    GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
-  else
-    GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
-  fi
 
 
-# Check whether --with-gconf-source or --without-gconf-source was given.
-if test "${with_gconf_source+set}" = set; then
-  withval="$with_gconf_source"
-  GCONF_SCHEMA_CONFIG_SOURCE="$withval"
-fi;
 
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 
-  echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5
-echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6
+if test -n "$PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-  if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
-    GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
   fi
+done
+done
 
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 
-# Check whether --with-gconf-schema-file-dir or --without-gconf-schema-file-dir was given.
-if test "${with_gconf_schema_file_dir+set}" = set; then
-  withval="$with_gconf_schema_file_dir"
-  GCONF_SCHEMA_FILE_DIR="$withval"
-fi;
+if test -n "$ac_pt_PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
+  PKG_CONFIG=$ac_pt_PKG_CONFIG
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
 
-  echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5
-echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+	else
+		echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+		PKG_CONFIG=""
+	fi
 
-  # Check whether --enable-schemas-install or --disable-schemas-install was given.
-if test "${enable_schemas_install+set}" = set; then
-  enableval="$enable_schemas_install"
-  case "${enableval}" in
-       yes) schemas_install=true ;;
-       no)  schemas_install=false ;;
-       *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-schemas-install" >&5
-echo "$as_me: error: bad value ${enableval} for --disable-schemas-install" >&2;}
-   { (exit 1); exit 1; }; } ;;
-     esac
-else
-  schemas_install=true
-fi;
+fi
 
+echo "$as_me:$LINENO: checking for the GNOME capplet directory" >&5
+echo $ECHO_N "checking for the GNOME capplet directory... $ECHO_C" >&6
 
-if test x$schemas_install = xtrue; then
-  GCONF_SCHEMAS_INSTALL_TRUE=
-  GCONF_SCHEMAS_INSTALL_FALSE='#'
-else
-  GCONF_SCHEMAS_INSTALL_TRUE='#'
-  GCONF_SCHEMAS_INSTALL_FALSE=
+# GNOME < 2.10
+gnome_cappletdir='${datadir}/control-center-2.0/capplets'
+
+if test -n "$PKG_CONFIG" && $PKG_CONFIG --exists 'libgnome-2.0 >= 2.10.0' >/dev/null 2>&1; then
+	# GNOME >= 2.10
+	gnome_cappletdir='${datadir}/applications'
 fi
 
+echo "$as_me:$LINENO: result: $gnome_cappletdir" >&5
+echo "${ECHO_T}$gnome_cappletdir" >&6
+
 
 
 # Extract the first word of "gconftool-2", so it can be a program name with args.
@@ -7285,101 +24353,67 @@ if test $enable_mbox = yes ||
    test $enable_imap = yes ||
    test $enable_sylpheed = yes; then
 
-  succeeded=no
-
-  if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+pkg_failed=no
+echo "$as_me:$LINENO: checking for GMIME_CFLAGS" >&5
+echo $ECHO_N "checking for GMIME_CFLAGS... $ECHO_C" >&6
+if test "${pkg_cv_GMIME_CFLAGS+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-  ;;
-esac
+  if test "x$ac_cv_env_GMIME_CFLAGS_set" = "xset"; then
+	pkg_cv_GMIME_CFLAGS=$ac_cv_env_GMIME_CFLAGS_value
+elif test -n "$PKG_CONFIG"; then
+	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gmime-2.0 >= 2.1.0\" >/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" >/dev/null 2>&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+		pkg_cv_GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= 2.1.0" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
+else
+	pkg_failed=untried
 fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-
-if test -n "$PKG_CONFIG"; then
-  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GMIME_CFLAGS" >&5
+echo "${ECHO_T}$pkg_cv_GMIME_CFLAGS" >&6
+echo "$as_me:$LINENO: checking for GMIME_LIBS" >&5
+echo $ECHO_N "checking for GMIME_LIBS... $ECHO_C" >&6
+if test "${pkg_cv_GMIME_LIBS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  if test "x$ac_cv_env_GMIME_LIBS_set" = "xset"; then
+	pkg_cv_GMIME_LIBS=$ac_cv_env_GMIME_LIBS_value
+elif test -n "$PKG_CONFIG"; then
+	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gmime-2.0 >= 2.1.0\" >/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" >/dev/null 2>&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+		pkg_cv_GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= 2.1.0" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
+else
+	pkg_failed=untried
 fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_GMIME_LIBS" >&5
+echo "${ECHO_T}$pkg_cv_GMIME_LIBS" >&6
 
-  fi
-
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        echo "$as_me:$LINENO: checking for gmime-2.0 >= 2.1.0" >&5
-echo $ECHO_N "checking for gmime-2.0 >= 2.1.0... $ECHO_C" >&6
-
-        if $PKG_CONFIG --exists "gmime-2.0 >= 2.1.0" ; then
-            echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-            succeeded=yes
-
-            echo "$as_me:$LINENO: checking GMIME_CFLAGS" >&5
-echo $ECHO_N "checking GMIME_CFLAGS... $ECHO_C" >&6
-            GMIME_CFLAGS=`$PKG_CONFIG --cflags "gmime-2.0 >= 2.1.0"`
-            echo "$as_me:$LINENO: result: $GMIME_CFLAGS" >&5
-echo "${ECHO_T}$GMIME_CFLAGS" >&6
-
-            echo "$as_me:$LINENO: checking GMIME_LIBS" >&5
-echo $ECHO_N "checking GMIME_LIBS... $ECHO_C" >&6
-            GMIME_LIBS=`$PKG_CONFIG --libs "gmime-2.0 >= 2.1.0"`
-            echo "$as_me:$LINENO: result: $GMIME_LIBS" >&5
-echo "${ECHO_T}$GMIME_LIBS" >&6
-        else
-            GMIME_CFLAGS=""
-            GMIME_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but
-            ## do set a variable so people can do so.
-            GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0 >= 2.1.0"`
-
-        fi
-
-
-
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
-     fi
-  fi
-
-  if test $succeeded = yes; then
-     enable_mime=yes
-  else
-     :
-  fi
+if test $pkg_failed = yes; then
+	GMIME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmime-2.0 >= 2.1.0"`
+	# Put the nasty error message in config.log where it belongs
+	echo "$GMIME_PKG_ERRORS" 1>&5
 
+	:
+elif test $pkg_failed = untried; then
+	:
+else
+	GMIME_CFLAGS=$pkg_cv_GMIME_CFLAGS
+	GMIME_LIBS=$pkg_cv_GMIME_LIBS
+	enable_mime=yes
+fi
 	if test $enable_mime = no; then
 		if test $enable_mbox = yes; then
 			{ echo "$as_me:$LINENO: GMime not found: forcing --disable-mbox" >&5
@@ -7603,245 +24637,233 @@ fi
 
 fi
 
-if test $enable_gmail = yes; then
-
-  succeeded=no
+if test $enable_evolution = yes; then
 
-  if test -z "$PKG_CONFIG"; then
-    # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+# Check whether --with-evolution-source-dir or --without-evolution-source-dir was given.
+if test "${with_evolution_source_dir+set}" = set; then
+  withval="$with_evolution_source_dir"
+  evolution_source_dir="$withval"
 else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
+  evolution_source_dir=""
+fi;
 
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+found=no
 
-if test -n "$PKG_CONFIG"; then
-  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6
+echo "$as_me:$LINENO: checking for the Evolution source tree directory" >&5
+echo $ECHO_N "checking for the Evolution source tree directory... $ECHO_C" >&6
+if test -z "$evolution_source_dir"; then
+	echo "$as_me:$LINENO: result: not given, use --with-evolution-source-dir=DIR" >&5
+echo "${ECHO_T}not given, use --with-evolution-source-dir=DIR" >&6
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        echo "$as_me:$LINENO: checking for libsoup-2.2" >&5
-echo $ECHO_N "checking for libsoup-2.2... $ECHO_C" >&6
-
-        if $PKG_CONFIG --exists "libsoup-2.2" ; then
-            echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-            succeeded=yes
-
-            echo "$as_me:$LINENO: checking SOUP_CFLAGS" >&5
-echo $ECHO_N "checking SOUP_CFLAGS... $ECHO_C" >&6
-            SOUP_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.2"`
-            echo "$as_me:$LINENO: result: $SOUP_CFLAGS" >&5
-echo "${ECHO_T}$SOUP_CFLAGS" >&6
-
-            echo "$as_me:$LINENO: checking SOUP_LIBS" >&5
-echo $ECHO_N "checking SOUP_LIBS... $ECHO_C" >&6
-            SOUP_LIBS=`$PKG_CONFIG --libs "libsoup-2.2"`
-            echo "$as_me:$LINENO: result: $SOUP_LIBS" >&5
-echo "${ECHO_T}$SOUP_LIBS" >&6
-        else
-            SOUP_CFLAGS=""
-            SOUP_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but
-            ## do set a variable so people can do so.
-            SOUP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libsoup-2.2"`
+	echo "$as_me:$LINENO: result: $evolution_source_dir" >&5
+echo "${ECHO_T}$evolution_source_dir" >&6
 
-        fi
-
-
-
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
-     fi
-  fi
-
-  if test $succeeded = yes; then
-     :
-  else
-     { echo "$as_me:$LINENO: libsoup not found: forcing --disable-gmail" >&5
-echo "$as_me: libsoup not found: forcing --disable-gmail" >&6;}
-enable_gmail=no
-disable_gmail_reason="(libsoup not found)"
-  fi
+	if test "x$evolution_source_dir" != "xno"; then
+		found=yes
 
-fi
-if test $enable_gmail_timestamps = yes; then
-	if test $enable_gmail = yes; then
-		# Extract the first word of "icu-config", so it can be a program name with args.
-set dummy icu-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ICU_CONFIG+set}" = set; then
+if test $found = yes; then
+	as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/em-event.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/em-event.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/em-event.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $ICU_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ICU_CONFIG="$ICU_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ICU_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  test -z "$ac_cv_path_ICU_CONFIG" && ac_cv_path_ICU_CONFIG="no"
-  ;;
-esac
+  test "$cross_compiling" = yes &&
+  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/em-event.h"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
 fi
-ICU_CONFIG=$ac_cv_path_ICU_CONFIG
-
-if test -n "$ICU_CONFIG"; then
-  echo "$as_me:$LINENO: result: $ICU_CONFIG" >&5
-echo "${ECHO_T}$ICU_CONFIG" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+  found=yes
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  found=no
 fi
 
+fi
 
-if test "x$ICU_CONFIG" = xno; then
-	ICU_CFLAGS=""
-	ICU_LIBS=""
-
-	{ echo "$as_me:$LINENO: ICU not found: forcing --disable-gmail-timestamps" >&5
-echo "$as_me: ICU not found: forcing --disable-gmail-timestamps" >&6;}
-enable_gmail_timestamps=no
-disable_gmail_timestamps_reason="(ICU not found)"
+if test $found = yes; then
+	as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/em-folder-tree.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/em-folder-tree.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/em-folder-tree.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-	ICU_CFLAGS=`$ICU_CONFIG --cppflags`
-	ICU_LIBS=`$ICU_CONFIG --ldflags`
-
-	# the version checking API we need has been introduced in 2.4
-	icu_min_version=2.6
-
-	ac_save_CFLAGS="$CFLAGS"
-	ac_save_LIBS="$LIBS"
-	CFLAGS="$CFLAGS $ICU_CFLAGS"
-	LIBS="$LIBS $ICU_LIBS"
+  test "$cross_compiling" = yes &&
+  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/em-folder-tree.h"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+  found=yes
+else
+  found=no
+fi
 
-	echo "$as_me:$LINENO: checking for ICU - version >= $icu_min_version" >&5
-echo $ECHO_N "checking for ICU - version >= $icu_min_version... $ECHO_C" >&6
+fi
 
-	if test "$cross_compiling" = yes; then
+if test $found = yes; then
+	as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/mail-component.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/mail-component.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/mail-component.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  test "$cross_compiling" = yes &&
+  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/mail-component.h"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
   found=yes
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  found=no
+fi
 
-#include <string.h>
-#include <unicode/uversion.h>
+fi
 
-int main() {
-  UVersionInfo min_version;
-  UVersionInfo version;
+if test $found = yes; then
+	as_ac_File=`echo "ac_cv_file_$evolution_source_dir/mail/mail-tools.h" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $evolution_source_dir/mail/mail-tools.h" >&5
+echo $ECHO_N "checking for $evolution_source_dir/mail/mail-tools.h... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  test "$cross_compiling" = yes &&
+  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
+if test -r "$evolution_source_dir/mail/mail-tools.h"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+  found=yes
+else
+  found=no
+fi
 
-  u_versionFromString(min_version, "$icu_min_version");
-  u_getVersion(version);
+fi
 
-  if (memcmp(min_version, version, U_MAX_VERSION_LENGTH) > 0)
-    exit(1); /* version too old */
+	fi
+fi
 
-  exit(0);
-}
+if test $found = yes; then
+	evolution_plugin_min_version=
 
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+pkg_failed=no
+echo "$as_me:$LINENO: checking for EVOLUTION_PLUGIN_CFLAGS" >&5
+echo $ECHO_N "checking for EVOLUTION_PLUGIN_CFLAGS... $ECHO_C" >&6
+if test "${pkg_cv_EVOLUTION_PLUGIN_CFLAGS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "x$ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_set" = "xset"; then
+	pkg_cv_EVOLUTION_PLUGIN_CFLAGS=$ac_cv_env_EVOLUTION_PLUGIN_CFLAGS_value
+elif test -n "$PKG_CONFIG"; then
+	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"evolution-plugin-2.2 \$evolution_plugin_min_version\" >/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "evolution-plugin-2.2 $evolution_plugin_min_version" >/dev/null 2>&1) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  (exit $ac_status); }; then
+		pkg_cv_EVOLUTION_PLUGIN_CFLAGS=`$PKG_CONFIG --cflags "evolution-plugin-2.2 $evolution_plugin_min_version" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
+else
+	pkg_failed=untried
+fi
+fi
+echo "$as_me:$LINENO: result: $pkg_cv_EVOLUTION_PLUGIN_CFLAGS" >&5
+echo "${ECHO_T}$pkg_cv_EVOLUTION_PLUGIN_CFLAGS" >&6
+echo "$as_me:$LINENO: checking for EVOLUTION_PLUGIN_LIBS" >&5
+echo $ECHO_N "checking for EVOLUTION_PLUGIN_LIBS... $ECHO_C" >&6
+if test "${pkg_cv_EVOLUTION_PLUGIN_LIBS+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "x$ac_cv_env_EVOLUTION_PLUGIN_LIBS_set" = "xset"; then
+	pkg_cv_EVOLUTION_PLUGIN_LIBS=$ac_cv_env_EVOLUTION_PLUGIN_LIBS_value
+elif test -n "$PKG_CONFIG"; then
+	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"evolution-plugin-2.2 \$evolution_plugin_min_version\" >/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "evolution-plugin-2.2 $evolution_plugin_min_version" >/dev/null 2>&1) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  found=yes
+  (exit $ac_status); }; then
+		pkg_cv_EVOLUTION_PLUGIN_LIBS=`$PKG_CONFIG --libs "evolution-plugin-2.2 $evolution_plugin_min_version" 2>/dev/null`
+	else
+		pkg_failed=yes
+	fi
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-found=no
+	pkg_failed=untried
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+echo "$as_me:$LINENO: result: $pkg_cv_EVOLUTION_PLUGIN_LIBS" >&5
+echo "${ECHO_T}$pkg_cv_EVOLUTION_PLUGIN_LIBS" >&6
 
-	echo "$as_me:$LINENO: result: $found" >&5
-echo "${ECHO_T}$found" >&6
+if test $pkg_failed = yes; then
+	EVOLUTION_PLUGIN_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evolution-plugin-2.2 $evolution_plugin_min_version"`
+	# Put the nasty error message in config.log where it belongs
+	echo "$EVOLUTION_PLUGIN_PKG_ERRORS" 1>&5
 
-	CFLAGS="$ac_save_CFLAGS"
-	LIBS="$ac_save_LIBS"
+	found=no
+elif test $pkg_failed = untried; then
+	found=no
+else
+	EVOLUTION_PLUGIN_CFLAGS=$pkg_cv_EVOLUTION_PLUGIN_CFLAGS
+	EVOLUTION_PLUGIN_LIBS=$pkg_cv_EVOLUTION_PLUGIN_LIBS
+	:
+fi
+fi
 
-	if test $found = yes; then
-		:
+if test $found = yes; then
+	echo "$as_me:$LINENO: checking for the Evolution plugin directory" >&5
+echo $ECHO_N "checking for the Evolution plugin directory... $ECHO_C" >&6
+	evolution_plugindir=`$PKG_CONFIG --variable=plugindir evolution-plugin-2.2 2>/dev/null`
+	if test -n "$evolution_plugindir"; then
+		echo "$as_me:$LINENO: result: $evolution_plugindir" >&5
+echo "${ECHO_T}$evolution_plugindir" >&6
 	else
-		ICU_CFLAGS=""
-		ICU_LIBS=""
-
-		{ echo "$as_me:$LINENO: ICU not found: forcing --disable-gmail-timestamps" >&5
-echo "$as_me: ICU not found: forcing --disable-gmail-timestamps" >&6;}
-enable_gmail_timestamps=no
-disable_gmail_timestamps_reason="(ICU not found)"
+		echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+		found=no
 	fi
 fi
 
+if test $found = yes; then
+	EVOLUTION_PLUGIN_CFLAGS="$EVOLUTION_PLUGIN_CFLAGS -I$evolution_source_dir"
+	:
+else
+	evolution_plugindir=""
+	{ echo "$as_me:$LINENO: Evolution not found: forcing --disable-evolution" >&5
+echo "$as_me: Evolution not found: forcing --disable-evolution" >&6;}
+enable_evolution=no
+disable_evolution_reason="(Evolution not found)"
+fi
 
 
-	else
-		{ echo "$as_me:$LINENO: Gmail support disabled: forcing --disable-gmail-timestamps" >&5
-echo "$as_me: Gmail support disabled: forcing --disable-gmail-timestamps" >&6;}
-enable_gmail_timestamps=no
-disable_gmail_timestamps_reason="(Gmail support disabled)"
-	fi
 fi
 
 ### Automake conditionals
@@ -7918,6 +24940,26 @@ fi
 
 
 
+if test $enable_mbox = yes || test $enable_mh = yes || test $enable_maildir = yes || test $enable_sylpheed = yes; then
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE=
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE='#'
+else
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE='#'
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE=
+fi
+
+
+
+if test $enable_mbox = yes || test $enable_mh = yes || test $enable_maildir = yes || test $enable_sylpheed = yes || test $enable_evolution = yes; then
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE=
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE='#'
+else
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE='#'
+  WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE=
+fi
+
+
+
 if test $enable_ssl = yes; then
   WITH_SSL_TRUE=
   WITH_SSL_FALSE='#'
@@ -7938,16 +24980,6 @@ fi
 
 
 
-if test $enable_sylpheed = yes; then
-  WITH_SYLPHEED_TRUE=
-  WITH_SYLPHEED_FALSE='#'
-else
-  WITH_SYLPHEED_TRUE='#'
-  WITH_SYLPHEED_FALSE=
-fi
-
-
-
 if test $enable_gmail = yes; then
   WITH_GMAIL_TRUE=
   WITH_GMAIL_FALSE='#'
@@ -7958,12 +24990,22 @@ fi
 
 
 
-if test $enable_gmail_timestamps = yes; then
-  WITH_GMAIL_TIMESTAMPS_TRUE=
-  WITH_GMAIL_TIMESTAMPS_FALSE='#'
+if test $enable_evolution = yes; then
+  WITH_EVOLUTION_TRUE=
+  WITH_EVOLUTION_FALSE='#'
 else
-  WITH_GMAIL_TIMESTAMPS_TRUE='#'
-  WITH_GMAIL_TIMESTAMPS_FALSE=
+  WITH_EVOLUTION_TRUE='#'
+  WITH_EVOLUTION_FALSE=
+fi
+
+
+
+if test $enable_sylpheed = yes; then
+  WITH_SYLPHEED_TRUE=
+  WITH_SYLPHEED_FALSE='#'
+else
+  WITH_SYLPHEED_TRUE='#'
+  WITH_SYLPHEED_FALSE=
 fi
 
 
@@ -8038,10 +25080,10 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 fi
-if test $enable_sylpheed = yes; then
+if test $enable_ipv6 = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define WITH_SYLPHEED 1
+#define WITH_IPV6 1
 _ACEOF
 
 fi
@@ -8052,17 +25094,17 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 fi
-if test $enable_gmail_timestamps = yes; then
+if test $enable_evolution = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define WITH_GMAIL_TIMESTAMPS 1
+#define WITH_EVOLUTION 1
 _ACEOF
 
 fi
-if test $enable_ipv6 = yes; then
+if test $enable_sylpheed = yes; then
 
 cat >>confdefs.h <<\_ACEOF
-#define WITH_IPV6 1
+#define WITH_SYLPHEED 1
 _ACEOF
 
 fi
@@ -8191,13 +25233,18 @@ echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
-
-        mv -f po/POTFILES po/POTFILES.tmp
-        sed -e '/\[encoding.*\]/d' -e 's/\[.*\] *//' < po/POTFILES.tmp > po/POTFILES
+       mv -f po/POTFILES po/POTFILES.tmp
+        sed -e '/[[]encoding.*]/d' -e 's/[[].*] *//' < po/POTFILES.tmp > po/POTFILES
         rm -f po/POTFILES.tmp
 
-
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -8261,6 +25308,20 @@ echo "$as_me: error: conditional \"WITH_POP3_OR_IMAP_OR_GMAIL\" was never define
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE}" && test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE}" && test -z "${WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${WITH_SSL_TRUE}" && test -z "${WITH_SSL_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"WITH_SSL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -8275,24 +25336,24 @@ echo "$as_me: error: conditional \"WITH_SASL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
-if test -z "${WITH_SYLPHEED_TRUE}" && test -z "${WITH_SYLPHEED_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"WITH_SYLPHEED\" was never defined.
+if test -z "${WITH_GMAIL_TRUE}" && test -z "${WITH_GMAIL_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_GMAIL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"WITH_SYLPHEED\" was never defined.
+echo "$as_me: error: conditional \"WITH_GMAIL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
-if test -z "${WITH_GMAIL_TRUE}" && test -z "${WITH_GMAIL_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"WITH_GMAIL\" was never defined.
+if test -z "${WITH_EVOLUTION_TRUE}" && test -z "${WITH_EVOLUTION_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_EVOLUTION\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"WITH_GMAIL\" was never defined.
+echo "$as_me: error: conditional \"WITH_EVOLUTION\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
-if test -z "${WITH_GMAIL_TIMESTAMPS_TRUE}" && test -z "${WITH_GMAIL_TIMESTAMPS_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"WITH_GMAIL_TIMESTAMPS\" was never defined.
+if test -z "${WITH_SYLPHEED_TRUE}" && test -z "${WITH_SYLPHEED_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"WITH_SYLPHEED\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"WITH_GMAIL_TIMESTAMPS\" was never defined.
+echo "$as_me: error: conditional \"WITH_SYLPHEED\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -8581,7 +25642,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by mail-notification $as_me 1.1, which was
+This file was extended by Mail Notification $as_me 2.0, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -8644,7 +25705,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-mail-notification config.status 1.1
+Mail Notification config.status 2.0
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -8746,8 +25807,9 @@ cat >>$CONFIG_STATUS <<_ACEOF
 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
-INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${ICONV}'
-MSGFMT='${MSGFMT}' MSGMERGE='${MSGMERGE}' XGETTEXT='${XGETTEXT}'
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${INTLTOOL_ICONV}'
+MSGFMT='${INTLTOOL_MSGFMT}' MSGMERGE='${INTLTOOL_MSGMERGE}'
+XGETTEXT='${INTLTOOL_XGETTEXT}'
 
 _ACEOF
 
@@ -8857,7 +25919,20 @@ s,@ECHO_C@,$ECHO_C,;t t
 s,@ECHO_N@,$ECHO_N,;t t
 s,@ECHO_T@,$ECHO_T,;t t
 s,@LIBS@,$LIBS,;t t
+s,@ac_prefix_program@,$ac_prefix_program,;t t
 s,@WARN_CFLAGS@,$WARN_CFLAGS,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@target@,$target,;t t
+s,@target_cpu@,$target_cpu,;t t
+s,@target_vendor@,$target_vendor,;t t
+s,@target_os@,$target_os,;t t
 s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
 s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
 s,@INSTALL_DATA@,$INSTALL_DATA,;t t
@@ -8883,7 +25958,6 @@ s,@am__untar@,$am__untar,;t t
 s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
 s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
 s,@MAINT@,$MAINT,;t t
-s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t
 s,@CC@,$CC,;t t
 s,@CFLAGS@,$CFLAGS,;t t
 s,@LDFLAGS@,$LDFLAGS,;t t
@@ -8900,8 +25974,26 @@ s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
 s,@CCDEPMODE@,$CCDEPMODE,;t t
 s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
 s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@CPP@,$CPP,;t t
 s,@EGREP@,$EGREP,;t t
+s,@LN_S@,$LN_S,;t t
+s,@ECHO@,$ECHO,;t t
+s,@AR@,$AR,;t t
+s,@ac_ct_AR@,$ac_ct_AR,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@CPP@,$CPP,;t t
+s,@CXX@,$CXX,;t t
+s,@CXXFLAGS@,$CXXFLAGS,;t t
+s,@ac_ct_CXX@,$ac_ct_CXX,;t t
+s,@CXXDEPMODE@,$CXXDEPMODE,;t t
+s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
+s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
+s,@CXXCPP@,$CXXCPP,;t t
+s,@F77@,$F77,;t t
+s,@FFLAGS@,$FFLAGS,;t t
+s,@ac_ct_F77@,$ac_ct_F77,;t t
+s,@LIBTOOL@,$LIBTOOL,;t t
+s,@GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t
 s,@USE_NLS@,$USE_NLS,;t t
 s,@MSGFMT@,$MSGFMT,;t t
 s,@GMSGFMT@,$GMSGFMT,;t t
@@ -8938,17 +26030,22 @@ s,@INTLTOOL_EXTRACT@,$INTLTOOL_EXTRACT,;t t
 s,@INTLTOOL_MERGE@,$INTLTOOL_MERGE,;t t
 s,@INTLTOOL_UPDATE@,$INTLTOOL_UPDATE,;t t
 s,@INTLTOOL_PERL@,$INTLTOOL_PERL,;t t
-s,@ICONV@,$ICONV,;t t
-s,@MSGMERGE@,$MSGMERGE,;t t
+s,@INTLTOOL_ICONV@,$INTLTOOL_ICONV,;t t
+s,@INTLTOOL_MSGFMT@,$INTLTOOL_MSGFMT,;t t
+s,@INTLTOOL_MSGMERGE@,$INTLTOOL_MSGMERGE,;t t
+s,@INTLTOOL_XGETTEXT@,$INTLTOOL_XGETTEXT,;t t
 s,@PKG_CONFIG@,$PKG_CONFIG,;t t
 s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
 s,@GTK_LIBS@,$GTK_LIBS,;t t
+s,@ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
 s,@GNOME_CFLAGS@,$GNOME_CFLAGS,;t t
 s,@GNOME_LIBS@,$GNOME_LIBS,;t t
 s,@GCONF_SCHEMA_CONFIG_SOURCE@,$GCONF_SCHEMA_CONFIG_SOURCE,;t t
 s,@GCONF_SCHEMA_FILE_DIR@,$GCONF_SCHEMA_FILE_DIR,;t t
 s,@GCONF_SCHEMAS_INSTALL_TRUE@,$GCONF_SCHEMAS_INSTALL_TRUE,;t t
 s,@GCONF_SCHEMAS_INSTALL_FALSE@,$GCONF_SCHEMAS_INSTALL_FALSE,;t t
+s,@gnome_prefix@,$gnome_prefix,;t t
+s,@gnome_cappletdir@,$gnome_cappletdir,;t t
 s,@GCONFTOOL@,$GCONFTOOL,;t t
 s,@ORBIT_IDL@,$ORBIT_IDL,;t t
 s,@LIBBONOBO_IDL@,$LIBBONOBO_IDL,;t t
@@ -8961,11 +26058,9 @@ s,@OPENSSL_CFLAGS@,$OPENSSL_CFLAGS,;t t
 s,@OPENSSL_LIBS@,$OPENSSL_LIBS,;t t
 s,@SASL_CFLAGS@,$SASL_CFLAGS,;t t
 s,@SASL_LIBS@,$SASL_LIBS,;t t
-s,@SOUP_CFLAGS@,$SOUP_CFLAGS,;t t
-s,@SOUP_LIBS@,$SOUP_LIBS,;t t
-s,@ICU_CONFIG@,$ICU_CONFIG,;t t
-s,@ICU_CFLAGS@,$ICU_CFLAGS,;t t
-s,@ICU_LIBS@,$ICU_LIBS,;t t
+s,@EVOLUTION_PLUGIN_CFLAGS@,$EVOLUTION_PLUGIN_CFLAGS,;t t
+s,@EVOLUTION_PLUGIN_LIBS@,$EVOLUTION_PLUGIN_LIBS,;t t
+s,@evolution_plugindir@,$evolution_plugindir,;t t
 s,@WITH_MBOX_TRUE@,$WITH_MBOX_TRUE,;t t
 s,@WITH_MBOX_FALSE@,$WITH_MBOX_FALSE,;t t
 s,@WITH_MH_TRUE@,$WITH_MH_TRUE,;t t
@@ -8980,16 +26075,20 @@ s,@WITH_POP3_OR_IMAP_TRUE@,$WITH_POP3_OR_IMAP_TRUE,;t t
 s,@WITH_POP3_OR_IMAP_FALSE@,$WITH_POP3_OR_IMAP_FALSE,;t t
 s,@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@,$WITH_POP3_OR_IMAP_OR_GMAIL_TRUE,;t t
 s,@WITH_POP3_OR_IMAP_OR_GMAIL_FALSE@,$WITH_POP3_OR_IMAP_OR_GMAIL_FALSE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE,;t t
+s,@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@,$WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE,;t t
 s,@WITH_SSL_TRUE@,$WITH_SSL_TRUE,;t t
 s,@WITH_SSL_FALSE@,$WITH_SSL_FALSE,;t t
 s,@WITH_SASL_TRUE@,$WITH_SASL_TRUE,;t t
 s,@WITH_SASL_FALSE@,$WITH_SASL_FALSE,;t t
-s,@WITH_SYLPHEED_TRUE@,$WITH_SYLPHEED_TRUE,;t t
-s,@WITH_SYLPHEED_FALSE@,$WITH_SYLPHEED_FALSE,;t t
 s,@WITH_GMAIL_TRUE@,$WITH_GMAIL_TRUE,;t t
 s,@WITH_GMAIL_FALSE@,$WITH_GMAIL_FALSE,;t t
-s,@WITH_GMAIL_TIMESTAMPS_TRUE@,$WITH_GMAIL_TIMESTAMPS_TRUE,;t t
-s,@WITH_GMAIL_TIMESTAMPS_FALSE@,$WITH_GMAIL_TIMESTAMPS_FALSE,;t t
+s,@WITH_EVOLUTION_TRUE@,$WITH_EVOLUTION_TRUE,;t t
+s,@WITH_EVOLUTION_FALSE@,$WITH_EVOLUTION_FALSE,;t t
+s,@WITH_SYLPHEED_TRUE@,$WITH_SYLPHEED_TRUE,;t t
+s,@WITH_SYLPHEED_FALSE@,$WITH_SYLPHEED_FALSE,;t t
 s,@WITH_MIME_TRUE@,$WITH_MIME_TRUE,;t t
 s,@WITH_MIME_FALSE@,$WITH_MIME_FALSE,;t t
 s,@WITH_REGRESSION_TESTS_TRUE@,$WITH_REGRESSION_TESTS_TRUE,;t t
@@ -9683,12 +26782,12 @@ done
       esac ;;
     intltool )
 
-intltool_edit="-e 's:@INTLTOOL_EXTRACT@:`pwd`/intltool-extract:g' \
-               -e 's:@INTLTOOL_ICONV@:${ICONV}:g' \
-               -e 's:@INTLTOOL_MSGFMT@:${MSGFMT}:g' \
-               -e 's:@INTLTOOL_MSGMERGE@:${MSGMERGE}:g' \
-               -e 's:@INTLTOOL_XGETTEXT@:${XGETTEXT}:g' \
-               -e 's:@INTLTOOL_PERL@:${INTLTOOL_PERL}:g'"
+intltool_edit="-e 's#@INTLTOOL_EXTRACT@#`pwd`/intltool-extract#g' \
+               -e 's#@INTLTOOL_ICONV@#${INTLTOOL_ICONV}#g' \
+               -e 's#@INTLTOOL_MSGFMT@#${INTLTOOL_MSGFMT}#g' \
+               -e 's#@INTLTOOL_MSGMERGE@#${INTLTOOL_MSGMERGE}#g' \
+               -e 's#@INTLTOOL_XGETTEXT@#${INTLTOOL_XGETTEXT}#g' \
+               -e 's#@INTLTOOL_PERL@#${INTLTOOL_PERL}#g'"
 
 eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
   > intltool-extract.out
@@ -9759,7 +26858,7 @@ fi
 
 cat <<EOF
 
-$PACKAGE $VERSION is ready to be built.
+$PACKAGE_NAME $VERSION is ready to be built.
 The following settings will be used:
 
 Installation prefixes
@@ -9772,18 +26871,35 @@ Installation directories
   --sysconfdir                 $sysconfdir
   --libdir                     $libdir
 
-Features
+Mailbox backends
   --enable-mbox                $enable_mbox $disable_mbox_reason
   --enable-mh                  $enable_mh $disable_mh_reason
   --enable-maildir             $enable_maildir $disable_maildir_reason
   --enable-pop3                $enable_pop3 $disable_pop3_reason
   --enable-imap                $enable_imap $disable_imap_reason
+  --enable-gmail               $enable_gmail $disable_gmail_reason
+  --enable-evolution           $enable_evolution $disable_evolution_reason
+  --enable-sylpheed            $enable_sylpheed $disable_sylpheed_reason
+
+POP3 and IMAP features
   --enable-ssl                 $enable_ssl $disable_ssl_reason
   --enable-sasl                $enable_sasl $disable_sasl_reason
-  --enable-sylpheed            $enable_sylpheed $disable_sylpheed_reason
-  --enable-gmail               $enable_gmail $disable_gmail_reason
-  --enable-gmail-timestamps    $enable_gmail_timestamps $disable_gmail_timestamps_reason
   --enable-ipv6                $enable_ipv6 $disable_ipv6_reason
 
-Type "make" to build $PACKAGE $VERSION.
+EOF
+
+if test -z "$gnome_prefix"; then
+	{ echo "$as_me:$LINENO: WARNING: $PACKAGE_NAME must be installed in the same prefix as GNOME, but the GNOME prefix could not be found. $PACKAGE_NAME might be inoperable." >&5
+echo "$as_me: WARNING: $PACKAGE_NAME must be installed in the same prefix as GNOME, but the GNOME prefix could not be found. $PACKAGE_NAME might be inoperable." >&2;}
+	echo "" >&2
+else
+	if test "x$prefix" != "x$gnome_prefix"; then
+		{ echo "$as_me:$LINENO: WARNING: the $PACKAGE_NAME prefix ($prefix) is different from the GNOME prefix ($gnome_prefix). $PACKAGE_NAME will be inoperable. Unless you know what you are doing, please run \"./configure --prefix=$gnome_prefix\"." >&5
+echo "$as_me: WARNING: the $PACKAGE_NAME prefix ($prefix) is different from the GNOME prefix ($gnome_prefix). $PACKAGE_NAME will be inoperable. Unless you know what you are doing, please run \"./configure --prefix=$gnome_prefix\"." >&2;}
+		echo "" >&2
+	fi
+fi
+
+cat <<EOF
+Type "make" to build $PACKAGE_NAME $VERSION.
 EOF
diff --git a/configure.ac b/configure.ac
@@ -1,8 +1,11 @@
-AC_INIT(mail-notification, 1.1, jylefort@brutele.be)
+AC_INIT([Mail Notification], 2.0, jylefort@brutele.be)
 AC_CONFIG_SRCDIR(src/mn-main.c)
 
 AC_PREREQ(2.59)
 
+# by default, install in the same prefix as GNOME
+AC_PREFIX_PROGRAM(gnome-open)
+
 ### command line arguments
 
 MN_ARG_ENABLE(mbox, [disable mbox support])
@@ -12,23 +15,27 @@ MN_ARG_ENABLE(pop3, [disable POP3 support])
 MN_ARG_ENABLE(imap, [disable IMAP support])
 MN_ARG_ENABLE(ssl, [disable SSL/TLS support])
 MN_ARG_ENABLE(sasl, [disable SASL authentication support])
-MN_ARG_ENABLE(sylpheed, [disable Sylpheed support])
-MN_ARG_ENABLE(gmail, [disable Gmail support])
-MN_ARG_ENABLE(gmail-timestamps, [disable Gmail timestamps support])
 MN_ARG_ENABLE(ipv6, [disable IPv6 support])
+MN_ARG_ENABLE(gmail, [disable Gmail support])
+MN_ARG_ENABLE(evolution, [disable Evolution support])
+MN_ARG_ENABLE(sylpheed, [disable Sylpheed support])
 
 MN_ARG_COMPILE_WARNINGS
 MN_ARG_ENABLE(regression-tests, [build and run regression tests], no)
 
 ### initialization
 
+# needed by AC_REENTRANT_RESOLVER
+AC_CANONICAL_TARGET
+
 AM_INIT_AUTOMAKE(foreign)
 AM_MAINTAINER_MODE
 AM_CONFIG_HEADER(config.h)
+AC_PROG_LIBTOOL
 
 ### i18n
 
-GETTEXT_PACKAGE=AC_PACKAGE_NAME
+GETTEXT_PACKAGE=AC_PACKAGE_TARNAME
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Define to the gettext package name])
 AC_SUBST(GETTEXT_PACKAGE)
 
@@ -48,13 +55,24 @@ if test $ac_cv_header_stdc != yes; then
 	AC_MSG_ERROR([ANSI C headers not present])
 fi
 
+AC_REENTRANT_RESOLVER
+
+# timegm() is non-standard, define HAVE_TIMEGM if it is present
+AC_CHECK_FUNCS(timegm)
+
+# see if "struct tm" is defined in sys/time.h
+AC_STRUCT_TM
+
 ### mandatory libraries and programs
 
-AM_PATH_GTK_2_0(2.4.0,, [AC_MSG_ERROR([unable to find the GTK+ library])])
+AM_PATH_GTK_2_0(2.6.0,, [AC_MSG_ERROR([unable to find the GTK+ library])])
 
-PKG_CHECK_MODULES(GNOME, [gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0],, [AC_MSG_ERROR([unable to find the GNOME libraries])])
+PKG_CHECK_MODULES(GNOME, [gthread-2.0 gconf-2.0 >= 2.4.0 libgnomeui-2.0 gnome-vfs-2.0 libglade-2.0 eel-2.0 >= 2.6.0 bonobo-activation-2.0 libxml-2.0],, [AC_MSG_ERROR([unable to find the GNOME libraries])])
 AM_GCONF_SOURCE_2
 
+AM_PATH_GNOME_PREFIX
+AM_PATH_GNOME_CAPPLETDIR
+
 AC_PATH_PROG(GCONFTOOL, gconftool-2)
 if test -z "$GCONFTOOL"; then
 	AC_MSG_ERROR([unable to find the gconftool-2 program])
@@ -124,15 +142,8 @@ if MN_FEATURE_ENABLED(sasl); then
 	AM_PATH_SASL2(,, [MN_FEATURE_DISABLE(sasl, [Cyrus SASL not found])])
 fi
 
-if MN_FEATURE_ENABLED(gmail); then
-	PKG_CHECK_MODULES(SOUP, libsoup-2.2,, [MN_FEATURE_DISABLE(gmail, [libsoup not found])])
-fi	
-if MN_FEATURE_ENABLED(gmail-timestamps); then
-	if MN_FEATURE_ENABLED(gmail); then
-		AM_PATH_ICU(2.6,, [MN_FEATURE_DISABLE(gmail-timestamps, [ICU not found])])
-	else
-		MN_FEATURE_DISABLE(gmail-timestamps, [Gmail support disabled])
-	fi
+if MN_FEATURE_ENABLED(evolution); then
+	AM_PATH_EVOLUTION_PLUGIN(, [mail/em-event.h, mail/em-folder-tree.h, mail/mail-component.h, mail/mail-tools.h],, [MN_FEATURE_DISABLE(evolution, [Evolution not found])])
 fi
 
 ### Automake conditionals
@@ -144,17 +155,19 @@ AM_CONDITIONAL(WITH_POP3, [MN_FEATURE_ENABLED(pop3)])
 AM_CONDITIONAL(WITH_IMAP, [MN_FEATURE_ENABLED(imap)])
 AM_CONDITIONAL(WITH_POP3_OR_IMAP, [MN_FEATURE_ENABLED(pop3) || MN_FEATURE_ENABLED(imap)])
 AM_CONDITIONAL(WITH_POP3_OR_IMAP_OR_GMAIL, [MN_FEATURE_ENABLED(pop3) || MN_FEATURE_ENABLED(imap) || MN_FEATURE_ENABLED(gmail)])
+AM_CONDITIONAL(WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED, [MN_FEATURE_ENABLED(mbox) || MN_FEATURE_ENABLED(mh) || MN_FEATURE_ENABLED(maildir) || MN_FEATURE_ENABLED(sylpheed)])
+AM_CONDITIONAL(WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION, [MN_FEATURE_ENABLED(mbox) || MN_FEATURE_ENABLED(mh) || MN_FEATURE_ENABLED(maildir) || MN_FEATURE_ENABLED(sylpheed) || MN_FEATURE_ENABLED(evolution)])
 AM_CONDITIONAL(WITH_SSL, [MN_FEATURE_ENABLED(ssl)])
 AM_CONDITIONAL(WITH_SASL, [MN_FEATURE_ENABLED(sasl)])
-AM_CONDITIONAL(WITH_SYLPHEED, [MN_FEATURE_ENABLED(sylpheed)])
 AM_CONDITIONAL(WITH_GMAIL, [MN_FEATURE_ENABLED(gmail)])
-AM_CONDITIONAL(WITH_GMAIL_TIMESTAMPS, [MN_FEATURE_ENABLED(gmail-timestamps)])
+AM_CONDITIONAL(WITH_EVOLUTION, [MN_FEATURE_ENABLED(evolution)])
+AM_CONDITIONAL(WITH_SYLPHEED, [MN_FEATURE_ENABLED(sylpheed)])
 AM_CONDITIONAL(WITH_MIME, [MN_FEATURE_ENABLED(mime)])
 AM_CONDITIONAL(WITH_REGRESSION_TESTS, [MN_FEATURE_ENABLED(regression-tests)])
 
 ### config.h definitions
 
-MN_FEATURES_DEFINE([mbox, mh, maildir, pop3, imap, ssl, sasl, sylpheed, gmail, gmail-timestamps, ipv6, mime])
+MN_FEATURES_DEFINE([mbox, mh, maildir, pop3, imap, ssl, sasl, ipv6, gmail, evolution, sylpheed, mime])
 
 ### output
 
@@ -174,14 +187,29 @@ AC_OUTPUT
 
 cat <<EOF
 
-$PACKAGE $VERSION is ready to be built.
+$PACKAGE_NAME $VERSION is ready to be built.
 The following settings will be used:
 
 Installation prefixes
 MN_REPORT_ARGS([prefix, exec-prefix])
 Installation directories
 MN_REPORT_ARGS([bindir, datadir, sysconfdir, libdir])
-Features
-MN_REPORT_FEATURES([mbox, mh, maildir, pop3, imap, ssl, sasl, sylpheed, gmail, gmail-timestamps, ipv6])
-Type "make" to build $PACKAGE $VERSION.
+Mailbox backends
+MN_REPORT_FEATURES([mbox, mh, maildir, pop3, imap, gmail, evolution, sylpheed])
+POP3 and IMAP features
+MN_REPORT_FEATURES([ssl, sasl, ipv6])
+EOF
+
+if test -z "$gnome_prefix"; then
+	AC_MSG_WARN([$PACKAGE_NAME must be installed in the same prefix as GNOME, but the GNOME prefix could not be found. $PACKAGE_NAME might be inoperable.])
+	echo "" >&2
+else
+	if test "x$prefix" != "x$gnome_prefix"; then
+		AC_MSG_WARN([the $PACKAGE_NAME prefix ($prefix) is different from the GNOME prefix ($gnome_prefix). $PACKAGE_NAME will be inoperable. Unless you know what you are doing, please run "./configure --prefix=$gnome_prefix".])
+		echo "" >&2
+	fi
+fi
+
+cat <<EOF
+Type "make" to build $PACKAGE_NAME $VERSION.
 EOF
diff --git a/data/GNOME_MailNotification.server.in.in b/data/GNOME_MailNotification.server.in.in
@@ -0,0 +1,18 @@
+<oaf_info>
+  <oaf_server iid="OAFIID:GNOME_MailNotification_Automation_Factory" type="exe" location="@bindir@/mail-notification">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/GenericFactory:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" _value="Mail Notification automation factory"/>
+    <oaf_attribute name="description" type="string" _value="Mail Notification automation factory"/>
+  </oaf_server>
+
+  <oaf_server iid="OAFIID:GNOME_MailNotification_Automation" type="factory" location="OAFIID:GNOME_MailNotification_Automation_Factory">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/Unknown:1.0"/>
+      <item value="IDL:GNOME/MailNotification/Automation:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" _value="Mail Notification automation"/>
+    <oaf_attribute name="description" type="string" _value="Mail Notification automation"/>
+  </oaf_server>
+</oaf_info>
diff --git a/data/GNOME_MailNotification_Automation.server.in.in b/data/GNOME_MailNotification_Automation.server.in.in
@@ -1,18 +0,0 @@
-<oaf_info>
-  <oaf_server iid="OAFIID:GNOME_MailNotification_Automation_Factory" type="exe" location="@bindir@/mail-notification">
-    <oaf_attribute name="repo_ids" type="stringv">
-      <item value="IDL:GNOME/ObjectFactory:1.0"/>
-    </oaf_attribute>
-    <oaf_attribute name="name" type="string" _value="Mail Notification automation"/>        
-    <oaf_attribute name="description" type="string" _value="Mail Notification automation factory"/>
-  </oaf_server>
-
-  <oaf_server iid="OAFIID:GNOME_MailNotification_Automation" type="factory" location="OAFIID:GNOME_MailNotification_Automation_Factory">
-    <oaf_attribute name="repo_ids" type="stringv">
-      <item value="IDL:Bonobo/Unknown:1.0"/>
-      <item value="IDL:GNOME/MailNotificationAutomation:1.0"/>
-    </oaf_attribute>
-    <oaf_attribute name="name" type="string" _value="Mail Notification automation"/>
-    <oaf_attribute name="description" type="string" _value="Mail Notification automation"/>
-  </oaf_server>
-</oaf_info>
diff --git a/data/GNOME_MailNotification_Evolution.server.in b/data/GNOME_MailNotification_Evolution.server.in
@@ -0,0 +1,36 @@
+<oaf_info>
+  <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_Glue_Factory" type="exe" location="">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/GenericFactory:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" _value="Mail Notification / Evolution glue factory"/>
+    <oaf_attribute name="description" type="string" _value="Mail Notification / Evolution glue factory"/>
+  </oaf_server>
+
+  <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_Glue" type="factory" location="OAFIID:GNOME_MailNotification_Evolution_Glue_Factory">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/Unknown:1.0"/>
+      <item value="IDL:Bonobo/EventSource:1.0"/>
+      <item value="IDL:GNOME/MailNotification/Evolution/Glue:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" _value="Mail Notification / Evolution glue"/>
+    <oaf_attribute name="description" type="string" _value="Mail Notification / Evolution glue"/>
+  </oaf_server>
+
+  <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control_Factory" type="exe" location="">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/GenericFactory:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" _value="Evolution folder tree control factory"/>
+    <oaf_attribute name="description" type="string" _value="Evolution folder tree control factory"/>
+  </oaf_server>
+
+  <oaf_server iid="OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control" type="factory" location="OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control_Factory">
+    <oaf_attribute name="repo_ids" type="stringv">
+      <item value="IDL:Bonobo/Unknown:1.0"/>
+      <item value="IDL:Bonobo/Control:1.0"/>
+    </oaf_attribute>
+    <oaf_attribute name="name" type="string" _value="Evolution folder tree control"/>
+    <oaf_attribute name="description" type="string" _value="Evolution folder tree control"/>
+  </oaf_server>
+</oaf_info>
diff --git a/data/Makefile.am b/data/Makefile.am
@@ -1,14 +1,19 @@
+if WITH_EVOLUTION
+evolution_server_in = GNOME_MailNotification_Evolution.server.in
+evolution_server = GNOME_MailNotification_Evolution.server
+endif
+
 applicationsdir = $(datadir)/applications
 applications_in_files = mail-notification.desktop.in
 applications_DATA = mail-notification.desktop
 
-settingsdir = $(datadir)/control-center-2.0/capplets
-settings_in_files = mail-notification-properties.desktop.in
-settings_DATA = mail-notification-properties.desktop
+# gnome_cappletdir is defined by configure
+gnome_capplet_in_files = mail-notification-properties.desktop.in
+gnome_capplet_DATA = mail-notification-properties.desktop
 
 serverdir = $(libdir)/bonobo/servers
-server_in_files = GNOME_MailNotification_Automation.server.in
-server_DATA = GNOME_MailNotification_Automation.server
+server_in_files = $(evolution_server_in) GNOME_MailNotification.server.in
+server_DATA = $(evolution_server) GNOME_MailNotification.server
 
 schemasdir = $(GCONF_SCHEMA_FILE_DIR)
 schemas_in_files = mail-notification.schemas.in
@@ -31,19 +36,21 @@ install-schemas:
 endif
 
 EXTRA_DIST = \
-	mail-notification.desktop.in			\
+	GNOME_MailNotification.server.in.in		\
+	GNOME_MailNotification_Evolution.server.in	\
 	mail-notification-properties.desktop.in		\
-	GNOME_MailNotification_Automation.server.in.in	\
+	mail-notification.desktop.in			\
 	mail-notification.schemas.in			\
 	mail-notification.soundlist.in
 
 CLEANFILES = \
-	mail-notification.desktop			\
-	mail-notification-properties.desktop		\
-	GNOME_MailNotification_Automation.server	\
-	GNOME_MailNotification_Automation.server.in	\
-	mail-notification.schemas			\
+	$(evolution_server)			\
+	GNOME_MailNotification.server		\
+	GNOME_MailNotification.server.in	\
+	mail-notification-properties.desktop	\
+	mail-notification.desktop		\
+	mail-notification.schemas		\
 	mail-notification.soundlist
 
-GNOME_MailNotification_Automation.server.in: GNOME_MailNotification_Automation.server.in.in
-	sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification_Automation.server.in.in > GNOME_MailNotification_Automation.server.in
+GNOME_MailNotification.server.in: GNOME_MailNotification.server.in.in
+	sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification.server.in.in > GNOME_MailNotification.server.in
diff --git a/data/Makefile.in b/data/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,12 +34,18 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 subdir = data
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -54,20 +60,21 @@ am__vpath_adj = case $$p in \
   esac;
 am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(applicationsdir)" \
-	"$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" \
-	"$(DESTDIR)$(settingsdir)" "$(DESTDIR)$(soundlistdir)"
+	"$(DESTDIR)$(gnome_cappletdir)" "$(DESTDIR)$(schemasdir)" \
+	"$(DESTDIR)$(serverdir)" "$(DESTDIR)$(soundlistdir)"
 applicationsDATA_INSTALL = $(INSTALL_DATA)
+gnome_cappletDATA_INSTALL = $(INSTALL_DATA)
 schemasDATA_INSTALL = $(INSTALL_DATA)
 serverDATA_INSTALL = $(INSTALL_DATA)
-settingsDATA_INSTALL = $(INSTALL_DATA)
 soundlistDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(applications_DATA) $(schemas_DATA) $(server_DATA) \
-	$(settings_DATA) $(soundlist_DATA)
+DATA = $(applications_DATA) $(gnome_capplet_DATA) $(schemas_DATA) \
+	$(server_DATA) $(soundlist_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -80,15 +87,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -105,10 +121,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -119,9 +131,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -134,12 +149,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -147,7 +165,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -164,25 +181,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -203,20 +223,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -231,16 +270,23 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+@WITH_EVOLUTION_TRUE@evolution_server_in = GNOME_MailNotification_Evolution.server.in
+@WITH_EVOLUTION_TRUE@evolution_server = GNOME_MailNotification_Evolution.server
 applicationsdir = $(datadir)/applications
 applications_in_files = mail-notification.desktop.in
 applications_DATA = mail-notification.desktop
-settingsdir = $(datadir)/control-center-2.0/capplets
-settings_in_files = mail-notification-properties.desktop.in
-settings_DATA = mail-notification-properties.desktop
+
+# gnome_cappletdir is defined by configure
+gnome_capplet_in_files = mail-notification-properties.desktop.in
+gnome_capplet_DATA = mail-notification-properties.desktop
 serverdir = $(libdir)/bonobo/servers
-server_in_files = GNOME_MailNotification_Automation.server.in
-server_DATA = GNOME_MailNotification_Automation.server
+server_in_files = $(evolution_server_in) GNOME_MailNotification.server.in
+server_DATA = $(evolution_server) GNOME_MailNotification.server
 schemasdir = $(GCONF_SCHEMA_FILE_DIR)
 schemas_in_files = mail-notification.schemas.in
 schemas_DATA = mail-notification.schemas
@@ -248,18 +294,20 @@ soundlistdir = $(sysconfdir)/sound/events
 soundlist_in_files = mail-notification.soundlist.in
 soundlist_DATA = mail-notification.soundlist
 EXTRA_DIST = \
-	mail-notification.desktop.in			\
+	GNOME_MailNotification.server.in.in		\
+	GNOME_MailNotification_Evolution.server.in	\
 	mail-notification-properties.desktop.in		\
-	GNOME_MailNotification_Automation.server.in.in	\
+	mail-notification.desktop.in			\
 	mail-notification.schemas.in			\
 	mail-notification.soundlist.in
 
 CLEANFILES = \
-	mail-notification.desktop			\
-	mail-notification-properties.desktop		\
-	GNOME_MailNotification_Automation.server	\
-	GNOME_MailNotification_Automation.server.in	\
-	mail-notification.schemas			\
+	$(evolution_server)			\
+	GNOME_MailNotification.server		\
+	GNOME_MailNotification.server.in	\
+	mail-notification-properties.desktop	\
+	mail-notification.desktop		\
+	mail-notification.schemas		\
 	mail-notification.soundlist
 
 all: all-am
@@ -294,6 +342,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 install-applicationsDATA: $(applications_DATA)
 	@$(NORMAL_INSTALL)
@@ -312,6 +369,23 @@ uninstall-applicationsDATA:
 	  echo " rm -f '$(DESTDIR)$(applicationsdir)/$$f'"; \
 	  rm -f "$(DESTDIR)$(applicationsdir)/$$f"; \
 	done
+install-gnome_cappletDATA: $(gnome_capplet_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(gnome_cappletdir)" || $(mkdir_p) "$(DESTDIR)$(gnome_cappletdir)"
+	@list='$(gnome_capplet_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(gnome_cappletDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(gnome_cappletdir)/$$f'"; \
+	  $(gnome_cappletDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(gnome_cappletdir)/$$f"; \
+	done
+
+uninstall-gnome_cappletDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(gnome_capplet_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(gnome_cappletdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(gnome_cappletdir)/$$f"; \
+	done
 install-schemasDATA: $(schemas_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(schemasdir)" || $(mkdir_p) "$(DESTDIR)$(schemasdir)"
@@ -346,23 +420,6 @@ uninstall-serverDATA:
 	  echo " rm -f '$(DESTDIR)$(serverdir)/$$f'"; \
 	  rm -f "$(DESTDIR)$(serverdir)/$$f"; \
 	done
-install-settingsDATA: $(settings_DATA)
-	@$(NORMAL_INSTALL)
-	test -z "$(settingsdir)" || $(mkdir_p) "$(DESTDIR)$(settingsdir)"
-	@list='$(settings_DATA)'; for p in $$list; do \
-	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(settingsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(settingsdir)/$$f'"; \
-	  $(settingsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(settingsdir)/$$f"; \
-	done
-
-uninstall-settingsDATA:
-	@$(NORMAL_UNINSTALL)
-	@list='$(settings_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(settingsdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(settingsdir)/$$f"; \
-	done
 install-soundlistDATA: $(soundlist_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(soundlistdir)" || $(mkdir_p) "$(DESTDIR)$(soundlistdir)"
@@ -418,7 +475,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" "$(DESTDIR)$(settingsdir)" "$(DESTDIR)$(soundlistdir)"; do \
+	for dir in "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(gnome_cappletdir)" "$(DESTDIR)$(schemasdir)" "$(DESTDIR)$(serverdir)" "$(DESTDIR)$(soundlistdir)"; do \
 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
 	done
 install: install-am
@@ -449,11 +506,11 @@ maintainer-clean-generic:
 @GCONF_SCHEMAS_INSTALL_FALSE@install-data-local:
 clean: clean-am
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
 
 dvi: dvi-am
 
@@ -466,8 +523,8 @@ info: info-am
 info-am:
 
 install-data-am: install-applicationsDATA install-data-local \
-	install-schemasDATA install-serverDATA install-settingsDATA \
-	install-soundlistDATA
+	install-gnome_cappletDATA install-schemasDATA \
+	install-serverDATA install-soundlistDATA
 
 install-exec-am:
 
@@ -483,7 +540,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -493,23 +550,24 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-applicationsDATA uninstall-info-am \
-	uninstall-schemasDATA uninstall-serverDATA \
-	uninstall-settingsDATA uninstall-soundlistDATA
-
-.PHONY: all all-am check check-am clean clean-generic distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-applicationsDATA install-data \
-	install-data-am install-data-local install-exec \
-	install-exec-am install-info install-info-am install-man \
-	install-schemasDATA install-serverDATA install-settingsDATA \
+uninstall-am: uninstall-applicationsDATA uninstall-gnome_cappletDATA \
+	uninstall-info-am uninstall-schemasDATA uninstall-serverDATA \
+	uninstall-soundlistDATA
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-applicationsDATA install-data install-data-am \
+	install-data-local install-exec install-exec-am \
+	install-gnome_cappletDATA install-info install-info-am \
+	install-man install-schemasDATA install-serverDATA \
 	install-soundlistDATA install-strip installcheck \
 	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am uninstall uninstall-am \
-	uninstall-applicationsDATA uninstall-info-am \
-	uninstall-schemasDATA uninstall-serverDATA \
-	uninstall-settingsDATA uninstall-soundlistDATA
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-applicationsDATA uninstall-gnome_cappletDATA \
+	uninstall-info-am uninstall-schemasDATA uninstall-serverDATA \
+	uninstall-soundlistDATA
 
 
 @INTLTOOL_DESKTOP_RULE@
@@ -522,8 +580,8 @@ uninstall-am: uninstall-applicationsDATA uninstall-info-am \
 @GCONF_SCHEMAS_INSTALL_TRUE@	GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) \
 @GCONF_SCHEMAS_INSTALL_TRUE@		$(GCONFTOOL) --makefile-install-rule mail-notification.schemas
 
-GNOME_MailNotification_Automation.server.in: GNOME_MailNotification_Automation.server.in.in
-	sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification_Automation.server.in.in > GNOME_MailNotification_Automation.server.in
+GNOME_MailNotification.server.in: GNOME_MailNotification.server.in.in
+	sed -e 's|\@bindir\@|$(bindir)|' GNOME_MailNotification.server.in.in > GNOME_MailNotification.server.in
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/data/mail-notification.schemas.in b/data/mail-notification.schemas.in
@@ -87,22 +87,11 @@
       </locale>
     </schema>
     <schema>
-      <key>/schemas/apps/mail-notification/mailboxes</key>
-      <applyto>/apps/mail-notification/mailboxes</applyto>
-      <owner>mail-notification</owner>
-      <type>list</type>
-      <list_type>string</list_type>
-      <locale name="C">
-        <short>Mailbox list</short>
-	<long>The list of mailboxes to monitor.</long>
-      </locale>
-    </schema>
-    <schema>
       <key>/schemas/apps/mail-notification/ui/properties-dialog/height</key>
       <applyto>/apps/mail-notification/ui/properties-dialog/height</applyto>
       <owner>mail-notification</owner>
       <type>int</type>
-      <default>366</default>
+      <default>-1</default>
       <locale name="C">
         <short>Height of properties dialog</short>
         <long>The height of the properties dialog in pixels.</long>
@@ -208,17 +197,6 @@
       </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> 
-    <schema>
       <key>/schemas/apps/mail-notification/blink-on-errors</key>
       <applyto>/apps/mail-notification/blink-on-errors</applyto>
       <owner>mail-notification</owner>
diff --git a/depcomp b/depcomp
@@ -1,7 +1,9 @@
 #! /bin/sh
-
 # depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+scriptversion=2005-07-09.11
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -15,8 +17,8 @@
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -25,13 +27,45 @@
 
 # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
 
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputing dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
 fi
-# `libtool' can also be set to `yes' or `no'.
 
-depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`}
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
 tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
@@ -163,19 +197,25 @@ sgi)
 
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
-  # in a .u file.  This file always lives in the current directory.
-  # Also, the AIX compiler puts `$object:' at the start of each line;
-  # $object doesn't have directory information.
-  stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
   tmpdepfile="$stripped.u"
-  outname="$stripped.o"
   if test "$libtool" = yes; then
     "$@" -Wc,-M
   else
     "$@" -M
   fi
-
   stat=$?
+
+  if test -f "$tmpdepfile"; then :
+  else
+    stripped=`echo "$stripped" | sed 's,^.*/,,'`
+    tmpdepfile="$stripped.u"
+  fi
+
   if test $stat -eq 0; then :
   else
     rm -f "$tmpdepfile"
@@ -183,6 +223,7 @@ aix)
   fi
 
   if test -f "$tmpdepfile"; then
+    outname="$stripped.o"
     # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
     # `$object: dependent.h' and one to simply `dependent.h:'.
@@ -197,37 +238,96 @@ aix)
   rm -f "$tmpdepfile"
   ;;
 
+icc)
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using \ :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
 tru64)
-   # The Tru64 AIX compiler uses -MD to generate dependencies as a side
+   # The Tru64 compiler uses -MD to generate dependencies as a side
    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
    # dependencies in `foo.d' instead, so we check for that too.
    # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
 
-   tmpdepfile1="$object.d"
-   tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` 
    if test "$libtool" = yes; then
+      # With Tru64 cc, shared objects can also be used to make a
+      # static library.  This mecanism is used in libtool 1.4 series to
+      # handle both shared and static libraries in a single compilation.
+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+      #
+      # With libtool 1.5 this exception was removed, and libtool now
+      # generates 2 separate objects for the 2 libraries.  These two
+      # compilations output dependencies in in $dir.libs/$base.o.d and
+      # in $dir$base.o.d.  We have to check for both files, because
+      # one of the two compilations can be disabled.  We should prefer
+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+      # automatically cleaned when .libs/ is deleted, while ignoring
+      # the former would cause a distcleancheck panic.
+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
       "$@" -Wc,-MD
    else
+      tmpdepfile1=$dir$base.o.d
+      tmpdepfile2=$dir$base.d
+      tmpdepfile3=$dir$base.d
+      tmpdepfile4=$dir$base.d
       "$@" -MD
    fi
 
    stat=$?
    if test $stat -eq 0; then :
    else
-      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
       exit $stat
    fi
 
-   if test -f "$tmpdepfile1"; then
-      tmpdepfile="$tmpdepfile1"
-   else
-      tmpdepfile="$tmpdepfile2"
-   fi
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+   do
+     test -f "$tmpdepfile" && break
+   done
    if test -f "$tmpdepfile"; then
       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a space and a tab in the [].
-      sed -e 's,^.*\.[a-z]*:[ 	]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
    else
       echo "#dummy" > "$depfile"
    fi
@@ -240,34 +340,42 @@ tru64)
 
 dashmstdout)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the proprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
-  test -z "$dashmflag" && dashmflag=-M
-  ( IFS=" "
-    case " $* " in
-    *" --mode=compile "*) # this is libtool, let us make it quiet
-      for arg
-      do # cycle over the arguments
-        case "$arg" in
-	"--mode=compile")
-	  # insert --quiet before "--mode=compile"
-	  set fnord "$@" --quiet
-	  shift # fnord
-	  ;;
-	esac
-	set fnord "$@" "$arg"
-	shift # fnord
-	shift # "$arg"
-      done
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
       ;;
     esac
-    "$@" $dashmflag | sed 's:^[^:]*\:[ 	]*:'"$object"'\: :' > "$tmpdepfile"
-  ) &
-  proc=$!
-  "$@"
-  stat=$?
-  wait "$proc"
-  if test "$stat" != 0; then exit $stat; fi
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
   tr ' ' '
@@ -285,36 +393,40 @@ dashXmstdout)
   ;;
 
 makedepend)
-  # X makedepend
-  (
-    shift
-    cleared=no
-    for arg in "$@"; do
-      case $cleared in no)
-        set ""; shift
-	cleared=yes
-      esac
-      case "$arg" in
-        -D*|-I*)
-	  set fnord "$@" "$arg"; shift;;
-	-*)
-	  ;;
-	*)
-	  set fnord "$@" "$arg"; shift;;
-      esac
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
     done
-    obj_suffix="`echo $object | sed 's/^.*\././'`"
-    touch "$tmpdepfile"
-    ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@"
-  ) &
-  proc=$!
-  "$@"
-  stat=$?
-  wait "$proc"
-  if test "$stat" != 0; then exit $stat; fi
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no
+  for arg in "$@"; do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tail +3 "$tmpdepfile" | tr ' ' '
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
 ' | \
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
@@ -324,35 +436,40 @@ makedepend)
 
 cpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the proprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
-  ( IFS=" "
-    case " $* " in
-    *" --mode=compile "*)
-      for arg
-      do # cycle over the arguments
-        case $arg in
-	"--mode=compile")
-	  # insert --quiet before "--mode=compile"
-	  set fnord "$@" --quiet
-	  shift # fnord
-	  ;;
-	esac
-	set fnord "$@" "$arg"
-	shift # fnord
-	shift # "$arg"
-      done
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
       ;;
     esac
-    "$@" -E |
-    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+  done
+
+  "$@" -E |
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
     sed '$ s: \\$::' > "$tmpdepfile"
-  ) &
-  proc=$!
-  "$@"
-  stat=$?
-  wait "$proc"
-  if test "$stat" != 0; then exit $stat; fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -362,34 +479,27 @@ cpp)
 
 msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the proprocessed file to stdout, regardless of -o,
+  # always write the preprocessed file to stdout, regardless of -o,
   # because we must use -o when running libtool.
-  ( IFS=" "
-    case " $* " in
-    *" --mode=compile "*)
-      for arg
-      do # cycle over the arguments
-        case $arg in
-	"--mode=compile")
-	  # insert --quiet before "--mode=compile"
-	  set fnord "$@" --quiet
-	  shift # fnord
-	  ;;
-	esac
+  "$@" || exit $?
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
 	set fnord "$@" "$arg"
-	shift # fnord
-	shift # "$arg"
-      done
-      ;;
+	shift
+	shift
+	;;
     esac
-    "$@" -E |
-    sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
-  ) &
-  proc=$!
-  "$@"
-  stat=$?
-  wait "$proc"
-  if test "$stat" != 0; then exit $stat; fi
+  done
+  "$@" -E |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
@@ -409,3 +519,12 @@ none)
 esac
 
 exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/help/C/Makefile.am b/help/C/Makefile.am
@@ -4,7 +4,13 @@ lang = C
 omffile = mail-notification-C.omf
 entities = documentation-license.xml software-license.xml
 
+dist_noinst_DATA = validate.stamp
+MAINTAINERCLEANFILES = validate.stamp
+
+validate.stamp: $(docname).xml $(entities)
+	xmllint --noout --valid $(docname).xml
+	@touch $@
+
 include $(top_srcdir)/help/xmldocs.make
 
 dist-hook: app-dist-hook
-	SGML_CATALOG_FILES=/usr/local/share/sgml/catalog xmllint --noout --valid --catalogs $(docname).xml
diff --git a/help/C/Makefile.in b/help/C/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -75,6 +75,7 @@
 #		http://scrollkeeper.sourceforge.net/	
 # 	Version: 0.1.2 (last updated: March 20, 2002)
 #
+
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -95,13 +96,20 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/help/omf.make $(top_srcdir)/help/xmldocs.make
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(top_srcdir)/help/omf.make \
+	$(top_srcdir)/help/xmldocs.make
 subdir = help/C
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -109,11 +117,13 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
+DATA = $(dist_noinst_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -126,15 +136,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -151,10 +170,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -165,9 +180,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -180,12 +198,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -193,7 +214,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -210,25 +230,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -249,20 +272,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -277,12 +319,18 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
 figdir = figures
 docname = mail-notification
 lang = C
 omffile = mail-notification-C.omf
 entities = documentation-license.xml software-license.xml
+dist_noinst_DATA = validate.stamp
+MAINTAINERCLEANFILES = validate.stamp
 
 # ************* Begin of section some packagers may need to modify  **************
 # This variable (docdir) specifies where the documents should be installed.
@@ -328,6 +376,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 tags: TAGS
 TAGS:
@@ -369,7 +426,7 @@ distdir: $(DISTFILES)
 	  dist-hook
 check-am: all-am
 check: check-am
-all-am: Makefile
+all-am: Makefile $(DATA)
 installdirs:
 install: install-am
 install-exec: install-exec-am
@@ -396,13 +453,14 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 clean: clean-am
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
 
 dvi: dvi-am
 
@@ -432,7 +490,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -444,17 +502,22 @@ ps-am:
 
 uninstall-am: uninstall-info-am uninstall-local
 
-.PHONY: all all-am check check-am clean clean-generic dist-hook \
-	distclean distclean-generic distdir dvi dvi-am html html-am \
-	info info-am install install-am install-data install-data-am \
-	install-data-hook install-data-local install-exec \
-	install-exec-am install-info install-info-am install-man \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	dist-hook distclean distclean-generic distclean-libtool \
+	distdir dvi dvi-am html html-am info info-am install \
+	install-am install-data install-data-am install-data-hook \
+	install-data-local install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
 	uninstall-info-am uninstall-local
 
 
+validate.stamp: $(docname).xml $(entities)
+	xmllint --noout --valid $(docname).xml
+	@touch $@
+
 omf: omf_timestamp
 
 omf_timestamp: $(omffile)
@@ -525,7 +588,6 @@ uninstall-local-doc:
 	-rmdir $(DESTDIR)$(docdir)
 
 dist-hook: app-dist-hook
-	SGML_CATALOG_FILES=/usr/local/share/sgml/catalog xmllint --noout --valid --catalogs $(docname).xml
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/help/C/figures/mailbox-emblem-error.png b/help/C/figures/mailbox-emblem-error.png
Binary files differ.
diff --git a/help/C/figures/mailbox-emblem-polled.png b/help/C/figures/mailbox-emblem-polled.png
Binary files differ.
diff --git a/help/C/figures/mailbox-emblem-unknown.png b/help/C/figures/mailbox-emblem-unknown.png
Binary files differ.
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>
-      2005-03-06
+      2005-08-09
     </date>
-    <version identifier="2.11" date="2005-03-06" description="Twelfth release"/>
+    <version identifier="2.12" date="2005-08-09" description="Thirteenth 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 "1.1">
-  <!ENTITY manrevision "2.11">
-  <!ENTITY date "Sunday, March 6, 2005">
+  <!ENTITY appversion "2.0">
+  <!ENTITY manrevision "2.12">
+  <!ENTITY date "Tuesday, August 9, 2005">
 
   <!ENTITY project "The Mail Notification Project">
 
@@ -26,7 +26,7 @@
   <!ENTITY gnomevfs "<link linkend=&#34;gnomevfs&#34;>GnomeVFS</link>">
 ]>
 
-<!-- $Id: mail-notification.xml,v 1.94 2005/03/06 21:37:27 jylefort Exp $ -->
+<!-- $Id: mail-notification.xml,v 1.113 2005/08/09 19:17:30 jylefort Exp $ -->
 <!-- Mail Notification Manual -->
 
 <!-- Copyright (C) 2004, 2005 Jean-Yves Lefort -->
@@ -135,6 +135,17 @@
 	</revdescription>
       </revision>
       <revision>
+	<revnumber>Mail Notification Manual V2.11</revnumber>
+	<date>Sunday, March 6, 2005</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.10</revnumber>
 	<date>Thursday, November 25, 2004</date>
 	<revdescription>
@@ -290,12 +301,12 @@
     </para>
     <itemizedlist>
       <listitem><para>multiple mailbox support</para></listitem>
-      <listitem><para>&mbox;, &mh;, &maildir;, &sylpheed;, &pop3;, &imap; and &gmail; support</para></listitem>
+      <listitem><para>&mbox;, &mh;, &maildir;, &pop3;, &imap;, &gmail;, Evolution and &sylpheed; support</para></listitem>
       <listitem><para>&sasl; authentication support</para></listitem>
       <listitem><para>APOP authentication support</para></listitem>
       <listitem><para>&ssl;/&tls; support</para></listitem>
       <listitem><para>automatic detection of mailbox format</para></listitem>
-      <listitem><para><link linkend="immediate-notification">immediate notification</link> (the status icon is updated within seconds after a mailbox changes)</para></listitem>
+      <listitem><para><link linkend="immediate-notification">immediate notification</link> (the status icon is updated immediately or within seconds after a mailbox changes)</para></listitem>
       <listitem><para>a mail summary</para></listitem>
       <listitem><para><ulink url="http://developer.gnome.org/projects/gup/hig" type="http">HIG</ulink> 2.0 compliance</para></listitem>
     </itemizedlist>
@@ -383,20 +394,6 @@
 	      </varlistentry>
 
 	      <varlistentry>
-		<term>--report</term>
-		<listitem>
-		  <para>Report the mail status</para>
-		  <warning>
-		    <title>Security</title>
-		    <para>
-		      The output of --report may contain mailbox
-		      passwords.
-		    </para>
-		  </warning>
-		</listitem>
-	      </varlistentry>
-
-	      <varlistentry>
 		<term>--unset-obsolete-configuration</term>
 		<listitem><para>Unset obsolete GConf configuration</para></listitem>
 	      </varlistentry>
@@ -575,16 +572,10 @@
     <title>Properties</title> 
     <para>To configure &app;, choose
       <menuchoice>
-	<guimenu>Applications</guimenu>
-	<guisubmenu>Desktop Preferences</guisubmenu>
-	<guimenuitem>Mail Notification</guimenuitem>
-      </menuchoice> (or on some systems
-      <menuchoice>
-	<guimenu>Applications</guimenu>
+	<guimenu>Desktop</guimenu>
 	<guisubmenu>Preferences</guisubmenu>
-	<guisubmenu>More Preferences</guisubmenu>
 	<guimenuitem>Mail Notification</guimenuitem>
-      </menuchoice>).
+      </menuchoice> (this location may vary across systems).
     </para>
     <para>
       The <guilabel>Properties</guilabel> dialog contains the
@@ -648,7 +639,7 @@
 	      You can specify a <guilabel>mail reader</guilabel>
 	      (which can be launched from various parts of &app;), as
 	      well as configure commands to be executed <guilabel>when new mail arrives</guilabel>
-	      and <guilabel>when all mail is read</guilabel>.
+	      and <guilabel>when all mail has been read</guilabel>.
 	    </para>
 	  </listitem>
 	</varlistentry>
@@ -712,6 +703,78 @@
 		</para>
 	      </tip>
 	    </para>
+	    <para>
+	      Small emblems may be displayed over mailbox icons. The
+	      following table summarizes them.
+	    </para>
+	    <table>
+	      <title>Mailbox Emblems</title>
+	      <tgroup cols="2">
+		<thead>
+		  <row>
+		    <entry>Icon</entry>
+		    <entry>Signification</entry>
+		  </row>
+		</thead>
+		<tbody>
+		  <row>
+		    <entry>
+		      <screenshot>
+			<mediaobject>
+			  <imageobject>
+			    <imagedata fileref="figures/mailbox-emblem-error.png" format="PNG"/>
+			  </imageobject>
+			  <textobject>
+			    <phrase>Shows the emblem which is displayed when a mailbox has errors.</phrase>
+			  </textobject>
+			</mediaobject>
+		      </screenshot>
+		    </entry>
+		    <entry>
+		      An error has occurred while trying to access the
+		      mailbox. The mailbox is unhandled.
+		    </entry>
+		  </row>
+		  <row>
+		    <entry>
+		      <screenshot>
+			<mediaobject>
+			  <imageobject>
+			    <imagedata fileref="figures/mailbox-emblem-polled.png" format="PNG"/>
+			  </imageobject>
+			  <textobject>
+			    <phrase>Shows the emblem which is displayed when a mailbox is checked periodically.</phrase>
+			  </textobject>
+			</mediaobject>
+		      </screenshot>
+		    </entry>
+		    <entry>
+		      The mailbox does not support <link linkend="immediate-notification">immediate notification</link>,
+		      and is checked periodically according to the
+		      <link linkend="delay-between-mail-checks">Delay between mail checks</link> setting.
+		    </entry>
+		  </row>
+		  <row>
+		    <entry>
+		      <screenshot>
+			<mediaobject>
+			  <imageobject>
+			    <imagedata fileref="figures/mailbox-emblem-unknown.png" format="PNG"/>
+			  </imageobject>
+			  <textobject>
+			    <phrase>Shows the emblem which is displayed when the format of a mailbox is unknown.</phrase>
+			  </textobject>
+			</mediaobject>
+		      </screenshot>
+		    </entry>
+		    <entry>
+		      The format of the mailbox is unknown. The
+		      mailbox is unhandled.
+		    </entry>
+		  </row>
+		</tbody>
+	      </tgroup>
+	    </table>
 	  </listitem>
 	</varlistentry>
       </variablelist>
@@ -821,6 +884,19 @@
 	    </note>
 	  </listitem>
 	</varlistentry>
+	<varlistentry>
+	  <term><guibutton>Display a Test Popup</guibutton></term>
+	  <listitem>
+	    <para>
+	      Clicking on this button will display an example popup,
+	      which can be used to ease configuration of the above
+	      options.
+	    </para>
+	    <para>
+	      Click on the example popup to close it.
+	    </para>
+	  </listitem>
+	</varlistentry>
       </variablelist>
     </sect2>
   </sect1>
@@ -830,7 +906,7 @@
     <para>
       The <guilabel>Mailbox Properties</guilabel> dialog is displayed
       when you add a new mailbox or when you edit an existing one.
-      It contains the following global setting:
+      It contains the following global settings:
     </para>
 
     <variablelist>
@@ -843,6 +919,26 @@
 	  </para>
 	</listitem>
       </varlistentry>
+      <varlistentry>
+	<term><guilabel>Mailbox name</guilabel></term>
+	<listitem>
+	  <para>
+	    You can choose to assign a custom name to the mailbox. The
+	    mailbox name has informative purposes only, and is
+	    displayed in various parts of &app;. To reset to the
+	    default name, click on the <guibutton>Use Default</guibutton>
+	    button.
+	  </para>
+	  <note>
+	    <para>
+	      The mailbox name will be modified automatically as you
+	      set some of the other options. To avoid losing your
+	      choice, only fill in the mailbox name after setting the
+	      other options.
+	    </para>
+	  </note>
+	</listitem>
+      </varlistentry>
     </variablelist>
 
     <para>
@@ -861,9 +957,10 @@
 		  This is the &uri; of the mailbox.
 		  <note>
 		    <para>
-		      &app; abstracts file operations by using &gnomevfs;.
-		      All the schemes (http, ftp, ...) supported by &gnomevfs;
-		      are therefore supported by &app;.
+		      &app; abstracts file operations by using
+		      &gnomevfs;.  All the schemes (http, ftp, sftp,
+		      ...) supported by &gnomevfs; are therefore
+		      supported by &app;.
 		    </para>
 		  </note>
 		</para>
@@ -896,7 +993,10 @@
 	      <term><guilabel>Username</guilabel></term>
 	      <listitem>
 		<para>
-		  This is your username on the &pop3; or &imap; server.
+		  This is your username on the &pop3; or &imap;
+		  server.  The username will be stored to disk unless
+		  it is left blank (in such case, a credentials prompt
+		  will appear when needed).
 		</para>
 	      </listitem>
 	    </varlistentry>
@@ -904,10 +1004,10 @@
 	      <term><guilabel>Password</guilabel></term>
 	      <listitem>
 		<para>
-		  This is your password on the &pop3; or &imap; server.
-		  The password will be stored to disk unless it is
-		  left blank (in such case, a password prompt will
-		  appear when needed).
+		  This is your password on the &pop3; or &imap;
+		  server.  The password will be stored to disk unless
+		  it is left blank (in such case, a credentials prompt
+		  will appear when needed).
 		</para>
 		<warning>
 		  <title>Security</title>
@@ -1000,25 +1100,41 @@
 	      </listitem>
 	    </varlistentry>
 	    <varlistentry>
-	      <term><guilabel>Use idle mode if possible</guilabel></term>
+	      <term><guilabel>Use the IDLE extension</guilabel></term>
 	      <listitem>
 		<para>
-		  If this option is enabled and the &imap; server supports
-		  the IDLE extension (as defined by <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>),
-		  &app; will stay connected to the server and provide <link linkend="immediate-notification">immediate notification</link> of changes.
+		  The IDLE extension (as defined by <ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>)
+		  allows &app; to stay connected to the server and provide
+		  <link linkend="immediate-notification">immediate notification</link> of changes.
+		</para>
+		<para>
+		  If <guilabel>never</guilabel> is selected, &app;
+		  will never use the IDLE extension, not even if the
+		  server supports it. Use this option if it appears
+		  that &app; does not detect changes to an &imap;
+		  mailbox while the IDLE extension is in use. If using
+		  this option fixes the issue, please also send the
+		  &imap; session transcript (obtained by running &app;
+		  using the --enable-info option) to Jean-Yves Lefort
+		  <email>jylefort@brutele.be</email>.
+		</para>
+		<para>
+		  If <guilabel>autodetect</guilabel> is selected,
+		  &app; will use the IDLE extension if the server
+		  supports it, unless the server software is known to
+		  have a broken IDLE implementation (currently, the
+		  only such software known to &app; is the University
+		  of Washington imapd). This is the recommended
+		  choice.
+		</para>
+		<para>
+		  If <guilabel>always</guilabel> is selected, &app;
+		  will use the IDLE extension if the server supports
+		  it, regardless of the server software. Use this
+		  option if you want to force &app; to use the IDLE
+		  extension, even if it has detected a bogus
+		  implementation.
 		</para>
-		<note>
-		  <para>
-		    Some &imap; server programs (most notably, Pine
-		    imapd) are known to have a broken implementation
-		    of the IDLE extension.
-		  </para>
-		  <para>
-		    If &app; does not detect changes to an &imap;
-		    mailbox, disabling this option might fix the
-		    problem.
-		  </para>
-		</note>
 	      </listitem>
 	    </varlistentry>
 	  </variablelist>
@@ -1033,7 +1149,9 @@
 	      <term><guilabel>Username</guilabel></term>
 	      <listitem>
 		<para>
-		  This is your username on &gmail;.
+		  This is your username on &gmail;. The username will
+		  be stored to disk unless it is left blank (in such
+		  case, a credentials prompt will appear when needed).
 		</para>
 	      </listitem>
 	    </varlistentry>
@@ -1041,11 +1159,34 @@
 	      <term><guilabel>Password</guilabel></term>
 	      <listitem>
 		<para>
-		  This is your password on &gmail;.
-		  The password will be stored to disk unless it is
-		  left blank (in such case, a password prompt will
-		  appear when needed).
+		  This is your password on &gmail;. The password will
+		  be stored to disk unless it is left blank (in such
+		  case, a credentials prompt will appear when needed).
+		</para>
+	      </listitem>
+	    </varlistentry>
+	  </variablelist>
+	</listitem>
+      </varlistentry>
+
+      <varlistentry>
+	<term>When <guilabel>Evolution</guilabel> is selected:</term>
+	<listitem>
+	  <variablelist>
+	    <varlistentry>
+	      <term><guilabel>Folder</guilabel></term>
+	      <listitem>
+		<para>
+		  This is the Evolution folder to monitor for changes.
 		</para>
+		<note>
+		  <para>
+		    For the folder selector to be available and for
+		    monitoring an Evolution mailbox, Evolution must be
+		    running and the Evolution Mail Notification plugin
+		    must be loaded.
+		  </para>
+		</note>
 	      </listitem>
 	    </varlistentry>
 	  </variablelist>
@@ -1081,9 +1222,9 @@
       <title>Immediate Notification</title>
       <para>
 	Immediate notification is the ability to detect changes to a
-	mailbox without needing to poll it periodically. It allows the
-	status icon to be updated within seconds after a mailbox
-	changes.
+	mailbox without needing to check it periodically. It allows
+	the status icon to be updated immediately (or within seconds)
+	after a mailbox changes.
       </para>
       <para>
 	Requirements for immediate notification to be enabled:
@@ -1114,6 +1255,15 @@
 	  </listitem>
 	</varlistentry>
 	<varlistentry>
+	  <term>Evolution mailboxes:</term>
+	  <listitem>
+	    <para>
+	      There is no requirement. Immediate notification is
+	      always enabled.
+	    </para>
+	  </listitem>
+	</varlistentry>
+	<varlistentry>
 	  <term>&pop3; and &gmail; mailboxes:</term>
 	  <listitem>
 	    <para>
@@ -1139,46 +1289,56 @@
 	The &app; &pop3; implementation strictly conforms to
 	<ulink url="http://www.ietf.org/rfc/rfc1939.txt" type="http">RFC 1939</ulink>,
 	<ulink url="http://www.ietf.org/rfc/rfc2449.txt" type="http">RFC 2449</ulink>,
-	<ulink url="http://www.ietf.org/rfc/rfc1734.txt" type="http">RFC 1734</ulink> and
-	<ulink url="http://www.ietf.org/rfc/rfc2595.txt" type="http">RFC 2595</ulink>.
+	<ulink url="http://www.ietf.org/rfc/rfc1734.txt" type="http">RFC 1734</ulink>,
+	<ulink url="http://www.ietf.org/rfc/rfc2595.txt" type="http">RFC 2595</ulink> and
+	<ulink url="http://www.ietf.org/rfc/rfc2384.txt" type="http">RFC 2384</ulink>.
       </para>
       <para>
 	The AUTH, APOP and USER/PASS authentication mechanisms are
-	supported, and the LOGIN-DELAY capability is honoured.
+	supported, and the LOGIN-DELAY capability is honoured. The TOP
+	optional command is supported.
       </para>
       <para>
 	The authentication logic can be represented with the following
 	pseudo-code:
       </para>
-      <programlisting>if has-user-selected-mechanism then
-  if server-supports-user-selected-mechanism then
-    attempt authentication using user-selected-mechanism
-  endif
-else
-  if has-sasl-support and server-supports-sasl then
-    if is-ssl-connection then
-      sasl-mechanism = any
-    else
-      sasl-mechanism = any-non-plaintext
-    endif
-    attempt authentication using sasl-mechanism
-  endif
-  if authentication-failed and server-supports-apop then
-    attempt authentication using apop
-  endif
-  if authentication-failed then
-    attempt authentication using user/pass
-  endif
-endif</programlisting>
+      <programlisting>success = false;
+
+if (mailbox.config.authmech != autodetect) {
+  if (mailbox.config.authmech in server.supported_authmechs) {
+    success = server.authenticate(mailbox.config.authmech);
+  }
+} else {
+  if (has_sasl_support &amp;&amp; server.supports_sasl) {
+    foreach authmech in server.supported_authmechs {
+      if (server.ssl_connection || ! authmech.plaintext) {
+        success = server.authenticate(authmech);
+        if (success)
+          break;
+      }
+    }
+    if (! success &amp;&amp; server.supports_apop) {
+      success = server.authenticate(apop);
+    }
+    if (! success) {
+      success = server.authenticate(userpass);
+    }
+  }
+}
+
+if (! success) {
+  mailbox.error = "authentication failed";
+}
+</programlisting>
     </sect2>
 
     <sect2>
       <title>IMAP Implementation</title>
       <para>
 	The &app; &imap; implementation strictly conforms to
-	<ulink url="http://www.ietf.org/rfc/rfc3501.txt" type="http">RFC 3501</ulink>
-	and
-	<ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink>.
+	<ulink url="http://www.ietf.org/rfc/rfc3501.txt" type="http">RFC 3501</ulink>,
+	<ulink url="http://www.ietf.org/rfc/rfc2177.txt" type="http">RFC 2177</ulink> and
+	<ulink url="http://www.ietf.org/rfc/rfc2192.txt" type="http">RFC 2192</ulink>.
       </para>
       <para>
 	The AUTHENTICATE and LOGIN authentication mechanisms are
@@ -1188,23 +1348,30 @@ endif</programlisting>
 	The authentication logic can be represented with the following
 	pseudo-code:
       </para>
-      <programlisting>if has-user-selected-mechanism then
-  if server-supports-user-selected-mechanism then
-    attempt authentication using user-selected-mechanism
-  endif
-else
-  if has-sasl-support and server-supports-sasl then
-    if is-ssl-connection then
-      sasl-mechanism = any
-    else
-      sasl-mechanism = any-non-plaintext
-    endif
-    attempt authentication using sasl-mechanism
-  endif
-  if authentication-failed and server-supports-login then
-    attempt authentication using login
-  endif
-endif</programlisting>
+      <programlisting>success = false;
+
+if (mailbox.config.authmech != autodetect) {
+  if (mailbox.config.authmech in server.supported_authmechs) {
+    success = server.authenticate(mailbox.config.authmech);
+  }
+} else {
+  if (has_sasl_support &amp;&amp; server.supports_sasl) {
+    foreach authmech in server.supported_authmechs {
+      if (server.ssl_connection || ! authmech.plaintext) {
+        success = server.authenticate(authmech);
+        if (success)
+          break;
+      }
+    }
+    if (! success &amp;&amp; server.supports_login) {
+      server.authenticate(login);
+    }
+  }
+}
+
+if (! success) {
+  mailbox.error = "authentication failed";
+}</programlisting>
     </sect2>
 
     <sect2 id="modifying-appearance">
@@ -1269,8 +1436,16 @@ endif</programlisting>
 	      <entry>mn-remote</entry>
 	    </row>
 	    <row>
-	      <entry>unsupported mailbox</entry>
-	      <entry>mn-unsupported</entry>
+	      <entry>polled mailbox</entry>
+	      <entry>mn-polled</entry>
+	    </row>
+	    <row>
+	      <entry>unknown mailbox format</entry>
+	      <entry>mn-unknown</entry>
+	    </row>
+	    <row>
+	      <entry>mailbox error</entry>
+	      <entry>mn-error</entry>
 	    </row>
 	    <row>
 	      <entry>Gmail mailbox</entry>
@@ -1281,6 +1456,10 @@ endif</programlisting>
 	      <entry>mn-system-mailbox</entry>
 	    </row>
 	    <row>
+	      <entry>Evolution mailbox</entry>
+	      <entry>mn-evolution-mailbox</entry>
+	    </row>
+	    <row>
 	      <entry>select all</entry>
 	      <entry>mn-select-all</entry>
 	    </row>
@@ -1300,6 +1479,10 @@ endif</programlisting>
 	      <entry>leave fullscreen</entry>
 	      <entry>mn-leave-fullscreen</entry>
 	    </row>
+	    <row>
+	      <entry>connect (in the SSL/TLS confirmation dialog)</entry>
+	      <entry>mn-connect</entry>
+	    </row>
 	  </tbody>
 	</tgroup>
       </table>
@@ -1369,9 +1552,10 @@ widget "*" style "mn-icons"</programlisting>
     
   <sect1 id="about">
     <title>About &app;</title>
-    <para> &app; was written by Jean-Yves Lefort
-      (<email>jylefort@brutele.be</email>). To find more information about
-      &app;, visit the
+    <para>
+      &app; was written by Jean-Yves Lefort
+      <email>jylefort@brutele.be</email>. To find more information
+      about &app;, visit the
       <ulink url="http://www.nongnu.org/mailnotify" type="http">Mail Notification web page</ulink>.
     </para>
     
@@ -1379,7 +1563,7 @@ widget "*" style "mn-icons"</programlisting>
       <title>Reporting Bugs and Other Feedback</title>
       <para>
 	Bug reports and feedback should be sent to Jean-Yves Lefort
-	(<email>jylefort@brutele.be</email>).
+	<email>jylefort@brutele.be</email>.
       </para>
     </sect2>
 
diff --git a/help/C/validate.stamp b/help/C/validate.stamp
diff --git a/help/Makefile.in b/help/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -33,12 +33,18 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 subdir = help
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -60,6 +66,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -72,15 +79,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -97,10 +113,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -111,9 +123,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -126,12 +141,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -139,7 +157,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -156,25 +173,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -195,20 +215,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -223,7 +262,11 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
 SUBDIRS = C
 all: all-recursive
 
@@ -257,6 +300,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 
 # This directory's subdirectories are mostly independent; you can cd
@@ -266,7 +318,13 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@set fnord $$MAKEFLAGS; amf=$$2; \
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -278,7 +336,7 @@ $(RECURSIVE_TARGETS):
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -286,7 +344,13 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@set fnord $$MAKEFLAGS; amf=$$2; \
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
 	dot_seen=no; \
 	case "$@" in \
 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -307,7 +371,7 @@ maintainer-clean-recursive:
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -452,11 +516,12 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-recursive
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-recursive
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
+distclean-am: clean-am distclean-generic distclean-libtool \
+	distclean-tags
 
 dvi: dvi-recursive
 
@@ -484,7 +549,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-recursive
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-recursive
 
@@ -499,14 +564,15 @@ uninstall-am: uninstall-info-am
 uninstall-info: uninstall-info-recursive
 
 .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
-	clean clean-generic clean-recursive ctags ctags-recursive \
-	distclean distclean-generic distclean-recursive distclean-tags \
-	distdir dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-exec \
-	install-exec-am install-info install-info-am install-man \
-	install-strip installcheck installcheck-am installdirs \
-	installdirs-am maintainer-clean maintainer-clean-generic \
-	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	clean clean-generic clean-libtool clean-recursive ctags \
+	ctags-recursive distclean distclean-generic distclean-libtool \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-generic mostlyclean-libtool \
 	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am uninstall-info-am
 
diff --git a/install-sh b/install-sh
@@ -1,19 +1,38 @@
 #!/bin/sh
-#
 # install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
+
+scriptversion=2005-05-14.22
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
 #
-# Copyright 1991 by the Massachusetts Institute of Technology
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
 # `make' implicit rules from creating a file called install from it
@@ -23,13 +42,11 @@
 # from scratch.  It can only install one file at a time, a restriction
 # shared with many OS's install programs.
 
-
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
 doit="${DOITPROG-}"
 
-
 # put in absolute paths if you don't have them in your path; or use env. vars.
 
 mvprog="${MVPROG-mv}"
@@ -41,211 +58,266 @@ stripprog="${STRIPPROG-strip}"
 rmprog="${RMPROG-rm}"
 mkdirprog="${MKDIRPROG-mkdir}"
 
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
 chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
+chowncmd=
+chgrpcmd=
+stripcmd=
 rmcmd="$rmprog -f"
 mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd="$cpprog"
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd="$stripprog"
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "install:	no input file specified"
-	exit 1
-else
-	true
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-	
-	if [ -d $dst ]; then
-		instcmd=:
-		chmodcmd=""
-	else
-		instcmd=mkdir
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f $src -o -d $src ]
-	then
-		true
-	else
-		echo "install:  $src does not exist"
-		exit 1
-	fi
-	
-	if [ x"$dst" = x ]
-	then
-		echo "install:	no destination specified"
-		exit 1
-	else
-		true
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d $dst ]
-	then
-		dst="$dst"/`basename $src`
-	else
-		true
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='	
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c         (ignored)
+-d         create directories instead of installing files.
+-g GROUP   $chgrpprog installed files to GROUP.
+-m MODE    $chmodprog installed files to MODE.
+-o USER    $chownprog installed files to USER.
+-s         $stripprog installed files.
+-t DIRECTORY  install into DIRECTORY.
+-T         report an error if DSTFILE is a directory.
+--help     display this help and exit.
+--version  display version info and exit.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+  case $1 in
+    -c) shift
+        continue;;
+
+    -d) dir_arg=true
+        shift
+        continue;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift
+        shift
+        continue;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) chmodcmd="$chmodprog $2"
+        shift
+        shift
+        continue;;
+
+    -o) chowncmd="$chownprog $2"
+        shift
+        shift
+        continue;;
+
+    -s) stripcmd=$stripprog
+        shift
+        continue;;
+
+    -t) dstarg=$2
 	shift
+	shift
+	continue;;
 
-	if [ ! -d "${pathcomp}" ] ;
-        then
-		$mkdirprog "${pathcomp}"
-	else
-		true
-	fi
-
-	pathcomp="${pathcomp}/"
+    -T) no_target_directory=true
+	shift
+	continue;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    *)  # When -d is used, all remaining arguments are directories to create.
+	# When -t is used, the destination is already specified.
+	test -n "$dir_arg$dstarg" && break
+        # Otherwise, the last argument is the destination.  Remove it from $@.
+	for arg
+	do
+          if test -n "$dstarg"; then
+	    # $@ is not empty: it contains at least $arg.
+	    set fnord "$@" "$dstarg"
+	    shift # fnord
+	  fi
+	  shift # arg
+	  dstarg=$arg
+	done
+	break;;
+  esac
 done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd $dst &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		dstfile=`basename $dst $transformbasename | 
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		true
-	fi
-
-# Make a temp file name in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
 
-# Move or copy the file name to the temp name
-
-	$doit $instcmd $src $dsttmp &&
-
-	trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
+if test -z "$1"; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call `install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
 
-fi &&
+for src
+do
+  # Protect names starting with `-'.
+  case $src in
+    -*) src=./$src ;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    src=
+
+    if test -d "$dst"; then
+      mkdircmd=:
+      chmodcmd=
+    else
+      mkdircmd=$mkdirprog
+    fi
+  else
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dstarg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+
+    dst=$dstarg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst ;;
+    esac
 
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+	echo "$0: $dstarg: Is a directory" >&2
+	exit 1
+      fi
+      dst=$dst/`basename "$src"`
+    fi
+  fi
+
+  # This sed command emulates the dirname command.
+  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+  # Make sure that the destination directory exists.
+
+  # Skip lots of stat calls in the usual case.
+  if test ! -d "$dstdir"; then
+    defaultIFS='
+	 '
+    IFS="${IFS-$defaultIFS}"
+
+    oIFS=$IFS
+    # Some sh's can't handle IFS=/ for some reason.
+    IFS='%'
+    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+    shift
+    IFS=$oIFS
+
+    pathcomp=
+
+    while test $# -ne 0 ; do
+      pathcomp=$pathcomp$1
+      shift
+      if test ! -d "$pathcomp"; then
+        $mkdirprog "$pathcomp"
+	# mkdir can fail with a `File exist' error in case several
+	# install-sh are creating the directory concurrently.  This
+	# is OK.
+	test -d "$pathcomp" || exit
+      fi
+      pathcomp=$pathcomp/
+    done
+  fi
+
+  if test -n "$dir_arg"; then
+    $doit $mkdircmd "$dst" \
+      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+  else
+    dstfile=`basename "$dst"`
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+    trap '(exit $?); exit' 1 2 13 15
+
+    # Copy the file name to the temp name.
+    $doit $cpprog "$src" "$dsttmp" &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+    # Now rename the file to the real destination.
+    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+      || {
+	   # The rename failed, perhaps because mv can't rename something else
+	   # to itself, or perhaps because mv is so ancient that it does not
+	   # support -f.
+
+	   # Now remove or move aside any old file at destination location.
+	   # We try this two ways since rm can't unlink itself on some
+	   # systems and the destination file might be busy for other
+	   # reasons.  In this case, the final cleanup might fail but the new
+	   # file should still install successfully.
+	   {
+	     if test -f "$dstdir/$dstfile"; then
+	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+	       || {
+		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+		 (exit 1); exit 1
+	       }
+	     else
+	       :
+	     fi
+	   } &&
+
+	   # Now rename the file to the real destination.
+	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+	 }
+    }
+  fi || { (exit 1); exit 1; }
+done
 
-exit 0
+# The final little trick to "correctly" pass the exit status to the exit trap.
+{
+  (exit 0); exit 0
+}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/intltool-extract.in b/intltool-extract.in
@@ -32,7 +32,7 @@
 ## Release information
 my $PROGRAM      = "intltool-extract";
 my $PACKAGE      = "intltool";
-my $VERSION      = "0.32.1";
+my $VERSION      = "0.34.1";
 
 ## Loaded modules
 use strict; 
@@ -59,6 +59,8 @@ my %count = ();
 my %comments = ();
 my $strcount = 0;
 
+my $XMLCOMMENT = "";
+
 ## Use this instead of \w for XML files to handle more possible characters.
 my $w = "[-A-Za-z0-9._:]";
 
@@ -115,6 +117,7 @@ sub place_normal {
 }   
 
 sub place_local {
+    $FILE	 = $ARGV[0];
     $OUTFILE     = fileparse($FILE, ());
     if (!-e "tmp/") { 
         system("mkdir tmp/"); 
@@ -185,6 +188,7 @@ sub extract {
     &convert;
 
     open OUT, ">$OUTFILE";
+    binmode (OUT) if $^O eq 'MSWin32';
     &msg_write;
     close OUT;
 
@@ -265,24 +269,344 @@ sub type_keys {
 
 sub type_xml {
     ### For generic translatable XML files ###
-        
-    while ($input =~ /(?:<!--([^>]*?)-->[^\n]*\n?[^\n]*)?\s_$w+\s*=\s*\"([^"]+)\"/sg) { # "
-        $messages{entity_decode_minimal($2)} = [];
-        $comments{entity_decode_minimal($2)} = $1 if (defined($1));
-    }
+    my $tree = readXml($input);
+    parseTree(0, $tree);
+}
 
-    while ($input =~ /(?:<!--([^>]*?)-->\s*)?<_($w+)(?: xml:space="($w+)")?[^>]*>(.+?)<\/_\2>/sg) {
-        $_ = $4;
-        if (!defined($3) || $3 ne "preserve") {
-            s/\s+/ /g;
-            s/^ //;
-            s/ $//;
+sub print_var {
+    my $var = shift;
+    my $vartype = ref $var;
+    
+    if ($vartype =~ /ARRAY/) {
+        my @arr = @{$var};
+        print "[ ";
+        foreach my $el (@arr) {
+            print_var($el);
+            print ", ";
+        }
+        print "] ";
+    } elsif ($vartype =~ /HASH/) {
+        my %hash = %{$var};
+        print "{ ";
+        foreach my $key (keys %hash) {
+            print "$key => ";
+            print_var($hash{$key});
+            print ", ";
         }
-        $messages{$_} = [];
-        $comments{$_} = $1 if (defined($1));
+        print "} ";
+    } else {
+        print $var;
+    }
+}
+
+# Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment)
+sub getAttributeString
+{
+    my $sub = shift;
+    my $do_translate = shift || 1;
+    my $language = shift || "";
+    my $translate = shift;
+    my $result = "";
+    foreach my $e (reverse(sort(keys %{ $sub }))) {
+	my $key    = $e;
+	my $string = $sub->{$e};
+	my $quote = '"';
+	
+	$string =~ s/^[\s]+//;
+	$string =~ s/[\s]+$//;
+	
+	if ($string =~ /^'.*'$/)
+	{
+	    $quote = "'";
+	}
+	$string =~ s/^['"]//g;
+	$string =~ s/['"]$//g;
+
+        ## differences from intltool-merge.in.in
+	if ($key =~ /^_/) {
+            $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT;
+            $messages{entity_decode($string)} = [];
+            $$translate = 2;
+	}
+        ## differences end here from intltool-merge.in.in
+	$result .= " $key=$quote$string$quote";
+    }
+    return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub getXMLstring
+{
+    my $ref = shift;
+    my $spacepreserve = shift || 0;
+    my @list = @{ $ref };
+    my $result = "";
+
+    my $count = scalar(@list);
+    my $attrs = $list[0];
+    my $index = 1;
+
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+    $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
+    while ($index < $count) {
+	my $type = $list[$index];
+	my $content = $list[$index+1];
+        if (! $type ) {
+	    # We've got CDATA
+	    if ($content) {
+		# lets strip the whitespace here, and *ONLY* here
+                $content =~ s/\s+/ /gs if (!$spacepreserve);
+		$result .= $content;
+	    }
+	} elsif ( "$type" ne "1" ) {
+	    # We've got another element
+	    $result .= "<$type";
+	    $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
+	    if ($content) {
+		my $subresult = getXMLstring($content, $spacepreserve);
+		if ($subresult) {
+		    $result .= ">".$subresult . "</$type>";
+		} else {
+		    $result .= "/>";
+		}
+	    } else {
+		$result .= "/>";
+	    }
+	}
+	$index += 2;
+    }
+    return $result;
+}
+
+# Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+    my $fh = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $singlelang = shift || 0;
+    my $spacepreserve = shift || 0;
+
+    my @nodes = @{ $content };
+
+    my $count = scalar(@nodes);
+    my $index = 0;
+    while ($index < $count) {
+        my $type = $nodes[$index];
+        my $rest = $nodes[$index+1];
+        traverse($fh, $type, $rest, $language, $spacepreserve);
+        $index += 2;
+    }
+}
+
+# Based on traverse() in intltool-merge.in.in
+sub traverse
+{
+    my $fh = shift; # unused, to allow us to sync code between -merge and -extract
+    my $nodename = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $spacepreserve = shift || 0;
+
+    if ($nodename && "$nodename" eq "1") {
+        $XMLCOMMENT = $content;
+    } elsif ($nodename) {
+	# element
+	my @all = @{ $content };
+	my $attrs = shift @all;
+	my $translate = 0;
+	my $outattr = getAttributeString($attrs, 1, $language, \$translate);
+
+	if ($nodename =~ /^_/) {
+	    $translate = 1;
+	    $nodename =~ s/^_//;
+	}
+	my $lookup = '';
+
+        $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+        $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+	if ($translate) {
+	    $lookup = getXMLstring($content, $spacepreserve);
+            if (!$spacepreserve) {
+                $lookup =~ s/^\s+//s;
+                $lookup =~ s/\s+$//s;
+            }
+
+	    if ($lookup && $translate != 2) {
+                $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT;
+                $messages{$lookup} = [];
+            } elsif ($translate == 2) {
+                translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+	    }
+	} else {
+            $XMLCOMMENT = "";
+	    my $count = scalar(@all);
+	    if ($count > 0) {
+                my $index = 0;
+                while ($index < $count) {
+                    my $type = $all[$index];
+                    my $rest = $all[$index+1];
+                    traverse($fh, $type, $rest, $language, $spacepreserve);
+                    $index += 2;
+                }
+	    }
+	}
+        $XMLCOMMENT = "";
     }
 }
 
+
+# Verbatim copy from intltool-merge.in.in, $fh for compatibility
+sub parseTree
+{
+    my $fh        = shift;
+    my $ref       = shift;
+    my $language  = shift || "";
+
+    my $name = shift @{ $ref };
+    my $cont = shift @{ $ref };
+
+    while (!$name || "$name" eq "1") {
+        $name = shift @{ $ref };
+        $cont = shift @{ $ref };
+    }
+
+    my $spacepreserve = 0;
+    my $attrs = @{$cont}[0];
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+    traverse($fh, $name, $cont, $language, $spacepreserve);
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_comment
+{
+    my $expat = shift;
+    my $data  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 1 => $data;
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdatastart
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 0 => $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_cdataend
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $clist->[$pos] .= $expat->original_string();
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_char
+{
+    my $expat = shift;
+    my $text  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    # Use original_string so that we retain escaped entities
+    # in CDATA sections.
+    #
+    if ($pos > 0 and $clist->[$pos - 1] eq '0') {
+        $clist->[$pos] .= $expat->original_string();
+    } else {
+        push @$clist, 0 => $expat->original_string();
+    }
+}
+
+# Verbatim copy from intltool-merge.in.in
+sub intltool_tree_start
+{
+    my $expat    = shift;
+    my $tag      = shift;
+    my @origlist = ();
+
+    # Use original_string so that we retain escaped entities
+    # in attribute values.  We must convert the string to an
+    # @origlist array to conform to the structure of the Tree
+    # Style.
+    #
+    my @original_array = split /\x/, $expat->original_string();
+    my $source         = $expat->original_string();
+
+    # Remove leading tag.
+    #
+    $source =~ s|^\s*<\s*(\S+)||s;
+
+    # Grab attribute key/value pairs and push onto @origlist array.
+    #
+    while ($source)
+    {
+       if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s;
+           push @origlist, $1;
+           push @origlist, '"' . $2 . '"';
+       }
+       elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/)
+       {
+           $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s;
+           push @origlist, $1;
+           push @origlist, "'" . $2 . "'";
+       }
+       else
+       {
+           last;
+       }
+    }
+
+    my $ol = [ { @origlist } ];
+
+    push @{ $expat->{Lists} }, $expat->{Curlist};
+    push @{ $expat->{Curlist} }, $tag => $ol;
+    $expat->{Curlist} = $ol;
+}
+
+# Copied from intltool-merge.in.in and added comment handler.
+sub readXml
+{
+    my $xmldoc = shift || return;
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    }
+    my $xp = new XML::Parser(Style => 'Tree');
+    $xp->setHandlers(Char => \&intltool_tree_char);
+    $xp->setHandlers(Start => \&intltool_tree_start);
+    $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+    $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
+
+    ## differences from intltool-merge.in.in
+    $xp->setHandlers(Comment => \&intltool_tree_comment);
+    ## differences end here from intltool-merge.in.in
+
+    my $tree = $xp->parse($xmldoc);
+    #print_var($tree);
+
+# <foo><!-- comment --><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
+# would be:
+# [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ",  em, [{}, 0, "there"]], bar, 
+# [{}, 0, "Howdy",  ref, [{}]], 0, "do" ] ]
+
+    return $tree;
+}
+
 sub type_schemas {
     ### For schemas XML files ###
          
diff --git a/intltool-merge.in b/intltool-merge.in
@@ -35,7 +35,7 @@
 ## Release information
 my $PROGRAM = "intltool-merge";
 my $PACKAGE = "intltool";
-my $VERSION = "0.32.1";
+my $VERSION = "0.34.1";
 
 ## Loaded modules
 use strict; 
@@ -91,7 +91,8 @@ my $OUTFILE;
 
 my %po_files_by_lang = ();
 my %translations = ();
-my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@";
+my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "/usr/local/bin/iconv";
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
 
 # Use this instead of \w for XML files to handle more possible characters.
 my $w = "[-A-Za-z0-9._:]";
@@ -299,7 +300,7 @@ sub get_po_encoding
         $encoding = "ISO-8859-1";
     }
 
-    system ("$iconv -f $encoding -t UTF-8 </dev/null 2>/dev/null");
+    system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull");
     if ($?) {
 	$encoding = get_local_charset($encoding);
     }
@@ -542,6 +543,8 @@ sub ba_merge_translations
     }
 
     open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!";
+    # Binmode so that selftest works ok if using a native Win32 Perl...
+    binmode (OUTPUT) if $^O eq 'MSWin32';
 
     while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) 
     {
@@ -610,18 +613,16 @@ sub getAttributeString
 	if ($do_translate && $key =~ /^_/) {
 	    $key =~ s|^_||g;
 	    if ($language) {
-		
 		# Handle translation
-		#
 		my $decode_string = entity_decode($string);
 		my $translation = $translations{$language, $decode_string};
 		if ($translation) {
 		    $translation = entity_encode($translation);
 		    $string = $translation;
-                    $$translate = 2;
-		}
+                }
+                $$translate = 2;
             } else {
-                 $$translate = 1 if ($translate && (!$$translate)); # watch not to "overwrite" if $translate == 2
+                 $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate
             }
 	}
 	
@@ -631,13 +632,10 @@ sub getAttributeString
 }
 
 # Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree
-#   doesn't support nesting of translatable tags (i.e. <_blah>this <_doh>doesn't</_doh> work</_blah> -- besides
-#   can you define the correct semantics for this?)
-#
-
 sub getXMLstring
 {
     my $ref = shift;
+    my $spacepreserve = shift || 0;
     my @list = @{ $ref };
     my $result = "";
 
@@ -645,6 +643,9 @@ sub getXMLstring
     my $attrs = $list[0];
     my $index = 1;
 
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+    $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+
     while ($index < $count) {
 	my $type = $list[$index];
 	my $content = $list[$index+1];
@@ -652,19 +653,15 @@ sub getXMLstring
 	    # We've got CDATA
 	    if ($content) {
 		# lets strip the whitespace here, and *ONLY* here
-                $content =~ s/\s+/ /gs if (!((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)));
-		$result .= ($content);
-	    } else {
-		#print "no cdata content when expected it\n"; # is this possible, is this ok?
-		# what to do if this happens?
-		# Did I mention that I hate XML::Parser tree style?
+                $content =~ s/\s+/ /gs if (!$spacepreserve);
+		$result .= $content;
 	    }
-	} else {
+	} elsif ( "$type" ne "1" ) {
 	    # We've got another element
 	    $result .= "<$type";
 	    $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements
 	    if ($content) {
-		my $subresult = getXMLstring($content);
+		my $subresult = getXMLstring($content, $spacepreserve);
 		if ($subresult) {
 		    $result .= ">".$subresult . "</$type>";
 		} else {
@@ -679,12 +676,58 @@ sub getXMLstring
     return $result;
 }
 
+# Translate list of nodes if necessary
+sub translate_subnodes
+{
+    my $fh = shift;
+    my $content = shift;
+    my $language = shift || "";
+    my $singlelang = shift || 0;
+    my $spacepreserve = shift || 0;
+
+    my @nodes = @{ $content };
+
+    my $count = scalar(@nodes);
+    my $index = 0;
+    while ($index < $count) {
+        my $type = $nodes[$index];
+        my $rest = $nodes[$index+1];
+        if ($singlelang) {
+            my $oldMO = $MULTIPLE_OUTPUT;
+            $MULTIPLE_OUTPUT = 1;
+            traverse($fh, $type, $rest, $language, $spacepreserve);
+            $MULTIPLE_OUTPUT = $oldMO;
+        } else {
+            traverse($fh, $type, $rest, $language, $spacepreserve);
+        }
+        $index += 2;
+    }
+}
+
+sub isWellFormedXmlFragment
+{
+    my $ret = eval 'require XML::Parser';
+    if(!$ret) {
+        die "You must have XML::Parser installed to run $0\n\n";
+    } 
+
+    my $fragment = shift;
+    return 0 if (!$fragment);
+
+    $fragment = "<root>$fragment</root>";
+    my $xp = new XML::Parser(Style => 'Tree');
+    my $tree = 0;
+    eval { $tree = $xp->parse($fragment); };
+    return $tree;
+}
+
 sub traverse
 {
     my $fh = shift; 
     my $nodename = shift;
     my $content = shift;
     my $language = shift || "";
+    my $spacepreserve = shift || 0;
 
     if (!$nodename) {
 	if ($content =~ /^[\s]*$/) {
@@ -703,24 +746,41 @@ sub traverse
 	    $nodename =~ s/^_//;
 	}
 	my $lookup = '';
+
+        $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/));
+        $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
 	print $fh "<$nodename", $outattr;
 	if ($translate) {
-	    $lookup = getXMLstring($content);
-            if (!((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/))) {
+	    $lookup = getXMLstring($content, $spacepreserve);
+            if (!$spacepreserve) {
                 $lookup =~ s/^\s+//s;
                 $lookup =~ s/\s+$//s;
             }
 
 	    if ($lookup || $translate == 2) {
-                my $translation = $translations{$language, $lookup};
+                my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup});
                 if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) {
                     $translation = $lookup if (!$translation);
-                    print $fh " xml:lang=\"", $language, "\"";
-                    print $fh ">", $translation, "</$nodename>";
+                    print $fh " xml:lang=\"", $language, "\"" if $language;
+                    print $fh ">";
+                    if ($translate == 2) {
+                        translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+                    } else {
+                        print $fh $translation;
+                    }
+                    print $fh "</$nodename>";
+
                     return; # this means there will be no same translation with xml:lang="$language"...
                             # if we want them both, just remove this "return"
                 } else {
-                    print $fh ">$lookup</$nodename>";
+                    print $fh ">";
+                    if ($translate == 2) {
+                        translate_subnodes($fh, \@all, $language, 1, $spacepreserve);
+                    } else {
+                        print $fh $lookup;
+                    }
+                    print $fh "</$nodename>";
                 }
 	    } else {
 		print $fh "/>";
@@ -735,18 +795,22 @@ sub traverse
                         #
                         my $translate = 0;
                         my $localattrs = getAttributeString($attrs, 1, $lang, \$translate);
-                        my $translation = $translations{$lang, $lookup};
+                        my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup});
                         if ($translate && !$translation) {
                             $translation = $lookup;
                         }
 
                         if ($translation || $translate) {
-                            $translation = ($translation);
 			    print $fh "\n";
 			    $leading_space =~ s/.*\n//g;
 			    print $fh $leading_space;
- 			    print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs;
-			    print $fh ">", $translation , "</$nodename>";
+ 			    print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">";
+                            if ($translate == 2) {
+                               translate_subnodes($fh, \@all, $lang, 1, $spacepreserve);
+                            } else {
+                                print $fh $translation;
+                            }
+                            print $fh "</$nodename>";
 			}
                     }
 	    }
@@ -755,23 +819,49 @@ sub traverse
 	    my $count = scalar(@all);
 	    if ($count > 0) {
 		print $fh ">";
+                my $index = 0;
+                while ($index < $count) {
+                    my $type = $all[$index];
+                    my $rest = $all[$index+1];
+                    traverse($fh, $type, $rest, $language, $spacepreserve);
+                    $index += 2;
+                }
+		print $fh "</$nodename>";
 	    } else {
 		print $fh "/>";
 	    }
-	    my $index = 0;
-	    while ($index < $count) {
-		my $type = $all[$index];
-		my $rest = $all[$index+1];
-		traverse($fh, $type, $rest, $language);
-		$index += 2;
-	    }
-	    if ($count > 0) {
-		print $fh "</$nodename>";
-	    }
 	}
     }
 }
 
+sub intltool_tree_comment
+{
+    my $expat = shift;
+    my $data  = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 1 => $data;
+}
+
+sub intltool_tree_cdatastart
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    push @$clist, 0 => $expat->original_string();
+}
+
+sub intltool_tree_cdataend
+{
+    my $expat    = shift;
+    my $clist = $expat->{Curlist};
+    my $pos   = $#$clist;
+
+    $clist->[$pos] .= $expat->original_string();
+}
+
 sub intltool_tree_char
 {
     my $expat = shift;
@@ -850,6 +940,8 @@ sub readXml
     my $xp = new XML::Parser(Style => 'Tree');
     $xp->setHandlers(Char => \&intltool_tree_char);
     $xp->setHandlers(Start => \&intltool_tree_start);
+    $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart);
+    $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend);
     my $tree = $xp->parsefile($filename);
 
 # <foo><head id="a">Hello <em>there</em></head><bar>Howdy<ref/></bar>do</foo>
@@ -895,7 +987,17 @@ sub parseTree
 
     my $name = shift @{ $ref };
     my $cont = shift @{ $ref };
-    traverse($fh, $name, $cont, $language);
+    
+    while (!$name || "$name" eq "1") {
+        $name = shift @{ $ref };
+        $cont = shift @{ $ref };
+    }
+
+    my $spacepreserve = 0;
+    my $attrs = @{$cont}[0];
+    $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/));
+
+    traverse($fh, $name, $cont, $language, $spacepreserve);
 }
 
 sub xml_merge_output
@@ -908,6 +1010,7 @@ sub xml_merge_output
 	        mkdir $lang, 0777 or die "Cannot create subdirectory $lang: $!\n";
             }
             open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n";
+            binmode (OUTPUT) if $^O eq 'MSWin32';
             my $tree = readXml($FILE);
             print_header($FILE, \*OUTPUT);
             parseTree(\*OUTPUT, $tree, $lang);
@@ -916,6 +1019,7 @@ sub xml_merge_output
         }
     } 
     open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n";
+    binmode (OUTPUT) if $^O eq 'MSWin32';
     my $tree = readXml($FILE);
     print_header($FILE, \*OUTPUT);
     parseTree(\*OUTPUT, $tree);
@@ -927,6 +1031,7 @@ sub keys_merge_translations
 {
     open INPUT, "<${FILE}" or die;
     open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
 
     while (<INPUT>) 
     {
@@ -962,6 +1067,7 @@ sub desktop_merge_translations
 {
     open INPUT, "<${FILE}" or die;
     open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
 
     while (<INPUT>) 
     {
@@ -1005,6 +1111,7 @@ sub schemas_merge_translations
     }
 
     open OUTPUT, ">$OUTFILE" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
 
     # FIXME: support attribute translations
 
@@ -1106,6 +1213,7 @@ sub rfc822deb_merge_translations
     }
 
     open OUTPUT, ">${OUTFILE}" or die;
+    binmode (OUTPUT) if $^O eq 'MSWin32';
 
     while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg)
     {
diff --git a/intltool-update.in b/intltool-update.in
@@ -30,7 +30,7 @@
 
 ## Release information
 my $PROGRAM = "intltool-update";
-my $VERSION = "0.32.1";
+my $VERSION = "0.34.1";
 my $PACKAGE = "intltool";
 
 ## Loaded modules
@@ -95,6 +95,8 @@ my $POTFILES_in;
 $SRCDIR = $ENV{"srcdir"} if $ENV{"srcdir"};
 $POTFILES_in = "<$SRCDIR/POTFILES.in";
 
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
 ## Handle options
 GetOptions 
 (
@@ -149,7 +151,8 @@ elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
 
     ## Report error if the language file supplied
     ## to the command line is non-existent
-    &Console_WriteError_NotExisting("$lang.po") if ! -s "$lang.po";
+    &Console_WriteError_NotExisting("$SRCDIR/$lang.po")
+        if ! -s "$SRCDIR/$lang.po";
 
     if (!$DIST_ARG)
     {
@@ -212,6 +215,16 @@ _EOF_
     exit;
 }
 
+sub echo_n
+{
+    my $str = shift;
+    my $ret = `echo "$str"`;
+
+    $ret =~ s/\n$//; # do we need the "s" flag?
+
+    return $ret;
+}
+
 sub POFile_DetermineType ($) 
 {
    my $type = $_;
@@ -431,7 +444,7 @@ sub FindLeftoutFiles
 	while (<FILE>) 
 	{
 	    # FIXME: share the pattern matching code with intltool-extract
-	    if (/\s_(.*)=\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
+	    if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
 	    {
                 if (defined isNotValidMissing (unpack("x3 A*", $file))) {
                     push @buf_allfiles, unpack("x3 A*", $file) . "\n";
@@ -597,7 +610,7 @@ sub GenerateHeaders
 #
 sub GeneratePOTemplate
 {
-    my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@";
+    my $XGETTEXT = $ENV{"XGETTEXT"} || "/usr/local/bin/xgettext";
     my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
     chomp $XGETTEXT;
 
@@ -617,7 +630,7 @@ sub GeneratePOTemplate
     my $gettext_support_nonascii = 0;
 
     # checks for GNU gettext >= 0.12
-    my $dummy = `$XGETTEXT --version --from-code=UTF-8 >/dev/null 2>/dev/null`;
+    my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`;
     if ($? == 0)
     {
 	$gettext_support_nonascii = 1;
@@ -651,14 +664,14 @@ sub GeneratePOTemplate
 	elsif (/\.($xml_support|$ini_support)$/ || /^\[/)
 	{
 	    s/^\[.*]\s*//;
-	    print OUTFILE "$_.h\n";
+            print OUTFILE "../$_.h\n";
 	    push @temp_headers, "../$_.h";
 	    $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
 	} 
 	else 
 	{
 	    if ($SRCDIR eq ".") {
-	        print OUTFILE "$_\n";
+	        print OUTFILE "../$_\n";
 	    } else {
 	        print OUTFILE "$SRCDIR/../$_\n";
 	    }
@@ -703,7 +716,7 @@ sub GeneratePOTemplate
     unlink "$MODULE.pot";
     my @xgettext_argument=("$XGETTEXT",
 			   "--add-comments",
-			   "--directory\=\.\.",
+			   "--directory\=\.",
 			   "--output\=$MODULE\.pot",
 			   "--files-from\=\.\/POTFILES\.in\.temp");
     my $XGETTEXT_KEYWORDS = &FindPOTKeywords;
@@ -768,13 +781,13 @@ sub POFile_Update
 {
     -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
 
-    my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@";
+    my $MSGMERGE = $ENV{"MSGMERGE"} || "/usr/local/bin/msgmerge";
     my ($lang, $outfile) = @_;
 
-    print "Merging $lang.po with $MODULE.pot..." if $VERBOSE;
+    print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
 
-    my $infile = "$lang.po";
-    $outfile = "$lang.po" if ($outfile eq "");
+    my $infile = "$SRCDIR/$lang.po";
+    $outfile = "$SRCDIR/$lang.po" if ($outfile eq "");
 
     # I think msgmerge won't overwrite old file if merge is not successful
     system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
@@ -811,16 +824,16 @@ sub POFile_GetLanguage ($)
 sub Console_Write_TranslationStatus
 {
     my ($lang, $output_file) = @_;
-    my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+    my $MSGFMT = $ENV{"MSGFMT"} || "/usr/local/bin/msgfmt";
 
-    $output_file = "$lang.po" if ($output_file eq "");
+    $output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
 
-    system ("$MSGFMT", "-o", "/dev/null", "--statistics", $output_file);
+    system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file);
 }
 
 sub Console_Write_CoverageReport
 {
-    my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+    my $MSGFMT = $ENV{"MSGFMT"} || "/usr/local/bin/msgfmt";
 
     &GatherPOFiles;
 
@@ -835,7 +848,7 @@ sub Console_Write_CoverageReport
     foreach my $lang (@languages)
     {
 	print "$lang: ";
-	system ("$MSGFMT", "-o", "/dev/null", "--statistics", "$lang.po");
+	system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po");
     }
 }
 
@@ -867,7 +880,7 @@ sub SubstituteVariable
     
     # We're using Perl backticks ` and "echo -n" here in order to 
     # expand any shell escapes (such as backticks themselves) in every variable
-    return `echo -n "$str"`;
+    return echo_n ($str);
 }
 
 sub CONF_Handle_Open
diff --git a/ltmain.sh b/ltmain.sh
@@ -0,0 +1,6500 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.18
+TIMESTAMP=" (1.1220.2.245 2005/05/16 08:55:27)"
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
+  setopt NO_GLOB_SUBST
+fi
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|tr A '\301'` in
+ A) # EBCDIC based system
+  SP2NL="tr '\100' '\n'"
+  NL2SP="tr '\r\n' '\100\100'"
+  ;;
+ *) # Assume ASCII based system
+  SP2NL="tr '\040' '\012'"
+  NL2SP="tr '\015\012' '\040\040'"
+  ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+  save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" 	$lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+  $echo "$modename: not configured to build any kind of library" 1>&2
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+quote_scanset='[[~#^*{};<>?'"'"' 	]'
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 | \
+	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
+      if test "X$win32_nmres" = "Ximport" ; then
+        win32_libid_type="x86 archive import"
+      else
+        win32_libid_type="x86 archive static"
+      fi
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+	case $arg in
+	  *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	CC_quoted="$CC_quoted $arg"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	    # Double-quote args containing other shell metacharacters.
+	    case $arg in
+	      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    CC_quoted="$CC_quoted $arg"
+	  done
+	    case "$@ " in
+	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit $EXIT_FAILURE
+#        else
+#          $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+
+    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+      exit $EXIT_FAILURE
+    fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+    my_status=""
+
+    $show "${rm}r $my_gentop"
+    $run ${rm}r "$my_gentop"
+    $show "$mkdir $my_gentop"
+    $run $mkdir "$my_gentop"
+    my_status=$?
+    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+      exit $my_status
+    fi
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+      my_xdir="$my_gentop/$my_xlib"
+
+      $show "${rm}r $my_xdir"
+      $run ${rm}r "$my_xdir"
+      $show "$mkdir $my_xdir"
+      $run $mkdir "$my_xdir"
+      status=$?
+      if test "$status" -ne 0 && test ! -d "$my_xdir"; then
+	exit $status
+      fi
+      case $host in
+      *-darwin*)
+	$show "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	if test -z "$run"; then
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+	  if test -n "$darwin_arches"; then 
+	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches ; do
+	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+	      cd "$darwin_curdir"
+	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+	    done # $darwin_arches
+      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+	      lipo -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    ${rm}r unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd "$darwin_orig_dir"
+ 	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	fi # $run
+      ;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+        ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+    func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+  arg="$1"
+  shift
+
+  case $arg in
+  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    case $prev in
+    execute_dlfiles)
+      execute_dlfiles="$execute_dlfiles $arg"
+      ;;
+    tag)
+      tagname="$arg"
+      preserve_args="${preserve_args}=$arg"
+
+      # Check whether tagname contains only valid characters
+      case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+	$echo "$progname: invalid tag name: $tagname" 1>&2
+	exit $EXIT_FAILURE
+	;;
+      esac
+
+      case $tagname in
+      CC)
+	# Don't test for the "default" C tag, as we know, it's there, but
+	# not specially marked.
+	;;
+      *)
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+	  taglist="$taglist $tagname"
+	  # Evaluate the configuration.
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+	else
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
+	fi
+	;;
+      esac
+      ;;
+    *)
+      eval "$prev=\$arg"
+      ;;
+    esac
+
+    prev=
+    prevopt=
+    continue
+  fi
+
+  # Have we seen a non-optional argument yet?
+  case $arg in
+  --help)
+    show_help=yes
+    ;;
+
+  --version)
+    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+    $echo
+    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
+    $echo "This is free software; see the source for copying conditions.  There is NO"
+    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    exit $?
+    ;;
+
+  --config)
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+    done
+    exit $?
+    ;;
+
+  --debug)
+    $echo "$progname: enabling shell trace mode"
+    set -x
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --dry-run | -n)
+    run=:
+    ;;
+
+  --features)
+    $echo "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $echo "enable shared libraries"
+    else
+      $echo "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $echo "enable static libraries"
+    else
+      $echo "disable static libraries"
+    fi
+    exit $?
+    ;;
+
+  --finish) mode="finish" ;;
+
+  --mode) prevopt="--mode" prev=mode ;;
+  --mode=*) mode="$optarg" ;;
+
+  --preserve-dup-deps) duplicate_deps="yes" ;;
+
+  --quiet | --silent)
+    show=:
+    preserve_args="$preserve_args $arg"
+    ;;
+
+  --tag) prevopt="--tag" prev=tag ;;
+  --tag=*)
+    set tag "$optarg" ${1+"$@"}
+    shift
+    prev=tag
+    preserve_args="$preserve_args --tag"
+    ;;
+
+  -dlopen)
+    prevopt="-dlopen"
+    prev=execute_dlfiles
+    ;;
+
+  -*)
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+
+  *)
+    nonopt="$arg"
+    break
+    ;;
+  esac
+done
+
+if test -n "$prevopt"; then
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+  # Infer the operation mode.
+  if test -z "$mode"; then
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+    case $nonopt in
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+      mode=link
+      for arg
+      do
+	case $arg in
+	-c)
+	   mode=compile
+	   break
+	   ;;
+	esac
+      done
+      ;;
+    *db | *dbx | *strace | *truss)
+      mode=execute
+      ;;
+    *install*|cp|mv)
+      mode=install
+      ;;
+    *rm)
+      mode=uninstall
+      ;;
+    *)
+      # If we have no mode, but dlfiles were specified, then do execute mode.
+      test -n "$execute_dlfiles" && mode=execute
+
+      # Just use the default operation mode.
+      if test -z "$mode"; then
+	if test -n "$nonopt"; then
+	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+	else
+	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+	fi
+      fi
+      ;;
+    esac
+  fi
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+    $echo "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$modename --help --mode=$mode' for more information."
+
+  # These modes are in order of execution frequency so that they run quickly.
+  case $mode in
+  # libtool compile mode
+  compile)
+    modename="$modename: compile"
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+
+    for arg
+    do
+      case "$arg_mode" in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  if test -n "$libobj" ; then
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-static | -prefer-pic | -prefer-non-pic)
+	  later="$later $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+ 	  for arg in $args; do
+	    IFS="$save_ifs"
+
+	    # Double-quote args containing other shell metacharacters.
+	    # Many Bourne shells cannot handle close brackets correctly
+	    # in scan sets, so we specify it separately.
+	    case $arg in
+	      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    lastarg="$lastarg $arg"
+	  done
+	  IFS="$save_ifs"
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	* )
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+      case $lastarg in
+      # Double-quote args containing other shell metacharacters.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, and some SunOS ksh mistreat backslash-escaping
+      # in scan sets (worked around with variable expansion),
+      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
+      # at all, so we specify them separately.
+      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	lastarg="\"$lastarg\""
+	;;
+      esac
+
+      base_compile="$base_compile $lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      $echo "$modename: you must specify an argument for -Xcompile"
+      exit $EXIT_FAILURE
+      ;;
+    target)
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *)
+      # Get the name of the library object.
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.f90) xform=f90 ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    esac
+
+    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+    case $libobj in
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+    *)
+      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -static)
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+    case $qlibobj in
+      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	qlibobj="\"$qlibobj\"" ;;
+    esac
+    if test "X$libobj" != "X$qlibobj"; then
+	$echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+	exit $EXIT_FAILURE
+    fi
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$xdir" = "X$obj"; then
+      xdir=
+    else
+      xdir=$xdir/
+    fi
+    lobj=${xdir}$objdir/$objname
+
+    if test -z "$base_compile"; then
+      $echo "$modename: you must specify a compilation command" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    $run $rm $removelist
+    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+	$show "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+      $echo "$srcfile" > "$lockfile"
+    fi
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+    case $qsrcfile in
+      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+      qsrcfile="\"$qsrcfile\"" ;;
+    esac
+
+    $run $rm "$libobj" "${libobj}T"
+
+    # Create a libtool object file (analogous to a ".la" file),
+    # but don't create it if we're doing a dry run.
+    test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      if test ! -d "${xdir}$objdir"; then
+	$show "$mkdir ${xdir}$objdir"
+	$run $mkdir ${xdir}$objdir
+	status=$?
+	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $status
+	fi
+      fi
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      $run $rm "$lobj" "$output_obj"
+
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	test -n "$output_obj" && $run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	$show "$mv $output_obj $lobj"
+	if $run $mv $output_obj $lobj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the PIC object to the libtool object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+        suppress_output=' >/dev/null 2>&1'
+      fi
+    else
+      # No PIC object so indicate it doesn't exist in the libtool
+      # object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $run $rm "$obj" "$output_obj"
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	$show "$mv $output_obj $obj"
+	if $run $mv $output_obj $obj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+    else
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+    fi
+
+    $run $mv "${libobj}T" "${libobj}"
+
+    # Unlock the critical section if it was locked
+    if test "$need_locks" != no; then
+      $run $rm "$lockfile"
+    fi
+
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool link mode
+  link | relink)
+    modename="$modename: link"
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args="$nonopt"
+    base_compile="$nonopt $@"
+    compile_command="$nonopt"
+    finalize_command="$nonopt"
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -all-static | -static)
+	if test "X$arg" = "X-all-static"; then
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	else
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	fi
+	build_libtool_libs=no
+	build_old_libs=yes
+	prefer_static_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      case $arg in
+      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+	;;
+      *) qarg=$arg ;;
+      esac
+      libtool_args="$libtool_args $qarg"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  compile_command="$compile_command @OUTPUT@"
+	  finalize_command="$finalize_command @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    compile_command="$compile_command @SYMFILE@"
+	    finalize_command="$finalize_command @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  if test ! -f "$arg"; then
+	    $echo "$modename: symbol file \`$arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat $save_arg`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		# If there is no directory component, then add one.
+		case $arg in
+		*/* | *\\*) . $arg ;;
+		*) . ./$arg ;;
+		esac
+
+		if test -z "$pic_object" || \
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none && \
+		   test "$non_pic_object" = none; then
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+
+		# Extract subdirectory from the argument.
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		if test "X$xdir" = "X$arg"; then
+		  xdir=
+		else
+		  xdir="$xdir/"
+		fi
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  libobjs="$libobjs $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if test -z "$run"; then
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+		  exit $EXIT_FAILURE
+		else
+		  # Dry-run case.
+
+		  # Extract subdirectory from the argument.
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		  if test "X$xdir" = "X$arg"; then
+		    xdir=
+		  else
+		    xdir="$xdir/"
+		  fi
+
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+		  libobjs="$libobjs $pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      fi
+	    done
+	  else
+	    $echo "$modename: link input file \`$save_arg' does not exist"
+	    exit $EXIT_FAILURE
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    $echo "$modename: only absolute run-paths are allowed" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  compile_command="$compile_command $wl$qarg"
+	  finalize_command="$finalize_command $wl$qarg"
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	shrext)
+  	  shrext_cmds="$arg"
+	  prev=
+	  continue
+	  ;;
+        darwin_framework)
+	  compiler_flags="$compiler_flags $arg"
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  prev=
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  compile_command="$compile_command $link_static_flag"
+	  finalize_command="$finalize_command $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+	continue
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  $echo "$modename: more than one -exported-symbols argument is not allowed"
+	  exit $EXIT_FAILURE
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+        prev=darwin_framework
+        compiler_flags="$compiler_flags $arg"
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+        continue
+        ;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  if test -z "$absdir"; then
+	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-mingw* | *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs -framework System"
+	    continue
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      -model)
+	compile_command="$compile_command $arg"
+	compiler_flags="$compiler_flags $arg"
+	finalize_command="$finalize_command $arg"
+	prev=xcompiler
+	continue
+	;;
+
+     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	compiler_flags="$compiler_flags $arg"
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m* pass through architecture-specific compiler args for GCC
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
+
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	  arg="\"$arg\""
+	  ;;
+	esac
+        compile_command="$compile_command $arg"
+        finalize_command="$finalize_command $arg"
+        if test "$with_gcc" = "yes" ; then
+          compiler_flags="$compiler_flags $arg"
+        fi
+        continue
+        ;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # in order for the loader to find any dlls it needs.
+	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  $echo "$modename: only absolute run-paths are allowed" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -static)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -Wc,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Wl,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $wl$flag"
+	  linker_flags="$linker_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  # If there is no directory component, then add one.
+	  case $arg in
+	  */* | *\\*) . $arg ;;
+	  *) . ./$arg ;;
+	  esac
+
+	  if test -z "$pic_object" || \
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none && \
+	     test "$non_pic_object" = none; then
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	  if test "X$xdir" = "X$arg"; then
+	    xdir=
+ 	  else
+	    xdir="$xdir/"
+	  fi
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    libobjs="$libobjs $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if test -z "$run"; then
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+	    exit $EXIT_FAILURE
+	  else
+	    # Dry-run case.
+
+	    # Extract subdirectory from the argument.
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	    if test "X$xdir" = "X$arg"; then
+	      xdir=
+	    else
+	      xdir="$xdir/"
+	    fi
+
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+	    libobjs="$libobjs $pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+      fi
+    done # argument parsing loop
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      compile_command="$compile_command $arg"
+      finalize_command="$finalize_command $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$output_objdir" = "X$output"; then
+      output_objdir="$objdir"
+    else
+      output_objdir="$output_objdir/$objdir"
+    fi
+    # Create the object directory.
+    if test ! -d "$output_objdir"; then
+      $show "$mkdir $output_objdir"
+      $run $mkdir $output_objdir
+      status=$?
+      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $status
+      fi
+    fi
+
+    # Determine the type of output
+    case $output in
+    "")
+      $echo "$modename: you must specify an output file" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplications in $postdeps and $predeps
+      duplicate_compiler_generated_deps=yes
+      ;;
+    *)
+      duplicate_compiler_generated_deps=$duplicate_deps
+      ;;
+    esac
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if test "X$duplicate_deps" = "Xyes" ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+    case $linkmode in
+    lib)
+	passes="conv link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+	    exit $EXIT_FAILURE
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+    for pass in $passes; do
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    compiler_flags="$compiler_flags $deplib"
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+	    continue
+	  fi
+	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if (${SED} -e '2q' $lib |
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		  library_names=
+		  old_library=
+		  case $lib in
+		  */* | *\\*) . $lib ;;
+		  *) . ./$lib ;;
+		  esac
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+		    test "X$ladir" = "X$lib" && ladir="."
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+	        ;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  *)
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    valid_a_lib=no
+	    case $deplibs_check_method in
+	      match_pattern*)
+		set dummy $deplibs_check_method
+	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+		if eval $echo \"$deplib\" 2>/dev/null \
+		    | $SED 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		  valid_a_lib=yes
+		fi
+		;;
+	      pass_all)
+		valid_a_lib=yes
+		;;
+            esac
+	    if test "$valid_a_lib" != yes; then
+	      $echo
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
+	      $echo "*** I have the capability to make that library automatically link in when"
+	      $echo "*** you link to this library.  But I can only do this if you have a"
+	      $echo "*** shared version of the library, which you do not appear to have"
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
+	      $echo "*** that it is just a static archive that I should not used here."
+	    else
+	      $echo
+	      $echo "*** Warning: Linking the shared library $output against the"
+	      $echo "*** static library $deplib is not portable!"
+	      deplibs="$deplib $deplibs"
+	    fi
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  $echo "$modename: cannot find the library \`$lib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$ladir" = "X$lib" && ladir="."
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	case $lib in
+	*/* | *\\*) . $lib ;;
+	*) . ./$lib ;;
+	esac
+
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	      exit $EXIT_FAILURE
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+              if test "X$duplicate_deps" = "Xyes" ; then
+	        case "$tmp_libs " in
+	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	        esac
+              fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  if test -z "$dlname" ||
+	     test "$dlopen_support" != yes ||
+	     test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  else
+	    dir="$ladir/$objdir"
+	    absdir="$abs_ladir/$objdir"
+	    # Remove this search path later
+	    notinst_path="$notinst_path $abs_ladir"
+	  fi
+	fi # $installed = yes
+	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath " in
+	      *" $dir "*) ;;
+	      *" $absdir "*) ;;
+	      *) temp_rpath="$temp_rpath $dir" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	if test -n "$library_names" &&
+	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	  if test "$installed" = no; then
+	    notinst_deplibs="$notinst_deplibs $lib"
+	    need_relink=yes
+	  fi
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on
+	  # some systems (darwin)
+	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
+	    $echo
+	    if test "$linkmode" = prog; then
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $echo "*** $linklib is not portable!"
+	  fi
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    realname="$2"
+	    shift; shift
+	    libname=`eval \\$echo \"$libname_spec\"`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw*)
+		major=`expr $current - $age`
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      $show "extracting exported symbol list from \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$extract_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      $show "generating import library for \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      cmds=$old_archive_from_expsyms_cmds
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a module then we can not link against
+		    # it, someone is ignoring the new warnings I added
+		    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
+		      if test -z "$old_library" ; then
+		        $echo
+		        $echo "** And there doesn't seem to be a static archive available"
+		        $echo "** The link will probably fail, sorry"
+		      else
+		        add="$dir/$old_library"
+		      fi
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case "$libdir" in
+		    [\\/]*)
+		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      $echo "$modename: configuration error: unsupported hardcode properties"
+	      exit $EXIT_FAILURE
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes && \
+		 test "$hardcode_minus_L" != yes && \
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
+	        add="$inst_prefix_dir$libdir/$linklib"
+	      else
+	        add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case "$libdir" in
+		  [\\/]*)
+		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $echo
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
+	    $echo "*** I have the capability to make that library automatically link in when"
+	    $echo "*** you link to this library.  But I can only do this if you have a"
+	    $echo "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $echo "*** But as you try to build a module library, libtool will still create "
+	      $echo "*** a static module, that should work as long as the dlopening application"
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$echo
+		$echo "*** However, this would only work if libtool was able to extract symbol"
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$echo "*** not find such a program.  So, this module is probably useless."
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    convenience="$convenience $dir/$old_library"
+	    old_convenience="$old_convenience $dir/$old_library"
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  if test -n "$dependency_libs" &&
+	     { test "$hardcode_into_libs" != yes ||
+	       test "$build_old_libs" = yes ||
+	       test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+		test "X$dir" = "X$deplib" && dir="."
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if grep "^installed=no" $deplib > /dev/null; then
+		  path="$absdir/$objdir"
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -z "$libdir"; then
+		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		    exit $EXIT_FAILURE
+		  fi
+		  if test "$absdir" != "$libdir"; then
+		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+		  fi
+		  path="$absdir"
+		fi
+		depdepl=
+		case $host in
+		*-*-darwin*)
+		  # we do not want to link against static libs,
+		  # but need to link against shared
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$path/$depdepl" ; then
+		      depdepl="$path/$depdepl"
+		    fi
+		    # do not add paths which are already there
+		    case " $newlib_search_path " in
+		    *" $path "*) ;;
+		    *) newlib_search_path="$newlib_search_path $path";;
+		    esac
+		  fi
+		  path=""
+		  ;;
+		*)
+		  path="-L$path"
+		  ;;
+		esac
+		;;
+	      -l*)
+		case $host in
+		*-*-darwin*)
+		  # Again, we only want to link against shared libraries
+		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+		  for tmp in $newlib_search_path ; do
+		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
+		      eval depdepl="$tmp/lib$tmp_libs.dylib"
+		      break
+		    fi
+		  done
+		  path=""
+		  ;;
+		*) continue ;;
+		esac
+		;;
+	      *) continue ;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	      case " $deplibs " in
+	      *" $depdepl "*) ;;
+	      *) deplibs="$depdepl $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+      fi
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	if test "$module" = no; then
+	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+	  exit $EXIT_FAILURE
+	else
+	  $echo
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
+	  $echo "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      if test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+      fi
+
+      set dummy $rpath
+      if test "$#" -gt 2; then
+	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+      fi
+      install_libdir="$2"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	if test -n "$vinfo"; then
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+	fi
+
+	if test -n "$release"; then
+	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+	fi
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	IFS="$save_ifs"
+
+	if test -n "$8"; then
+	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major="$2"
+	  number_minor="$3"
+	  number_revision="$4"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    current=`expr $number_major + $number_minor - 1`
+	    age="$number_minor"
+	    revision="$number_minor"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$2"
+	  revision="$3"
+	  age="$4"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  minor_current=`expr $current + 1`
+	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current";
+	  ;;
+
+	irix | nonstopux)
+	  major=`expr $current - $age + 1`
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    iface=`expr $revision - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  major=.`expr $current - $age`
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    iface=`expr $current - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  major=`expr $current - $age`
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+      fi
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$echo "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       if test "X$precious_files_regex" != "X"; then
+	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+	         then
+		   continue
+		 fi
+	       fi
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	if test -n "$removelist"; then
+	  $show "${rm}r $removelist"
+	  $run ${rm}r $removelist
+	fi
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      for path in $notinst_path; do
+	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+      done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs -framework System"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+ 	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $rm conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $rm conftest
+	  $LTCC -o conftest conftest.c $deplibs
+	  if test "$?" -eq 0 ; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      name="`expr $i : '-l\(.*\)'`"
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" -ne "0"; then
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+	        fi
+		if test -n "$i" ; then
+		  libname=`eval \\$echo \"$libname_spec\"`
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		  set dummy $deplib_matches
+		  deplib_match=$2
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $echo
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
+		    $echo "*** I have the capability to make that library automatically link in when"
+		    $echo "*** you link to this library.  But I can only do this if you have a"
+		    $echo "*** shared version of the library, which I believe you do not have"
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      name="`expr $i : '-l\(.*\)'`"
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		$rm conftest
+		$LTCC -o conftest conftest.c $i
+		# Did it work?
+		if test "$?" -eq 0 ; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval \\$echo \"$libname_spec\"`
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		    set dummy $deplib_matches
+		    deplib_match=$2
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $echo
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
+		      $echo "*** I have the capability to make that library automatically link in when"
+		      $echo "*** you link to this library.  But I can only do this if you have a"
+		      $echo "*** shared version of the library, which you do not appear to have"
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $echo
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $echo "***  make it link in!  You will probably need to install it or some"
+		  $echo "*** library that it depends on before this library will be fully"
+		  $echo "*** functional.  Installing it before continuing would be even better."
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method
+	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name="`expr $a_deplib : '-l\(.*\)'`"
+	    # If $name is empty we are operating on a -L argument.
+            if test "$name" != "" && test  "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null \
+			 | grep " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+			 | ${SED} 10q \
+			 | $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name="`expr $a_deplib : '-l\(.*\)'`"
+	    # If $name is empty we are operating on a -L argument.
+	    if test -n "$name" && test "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
+		        | ${SED} 10q \
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+	    -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+	    done
+	  fi
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
+	    | grep . >/dev/null; then
+	    $echo
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library is the System framework
+	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $echo
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $echo "*** a static module, that should work as long as the dlopening"
+	    $echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $echo
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $echo "*** not find such a program.  So, this module is probably useless."
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
+	    $echo "*** automatically added whenever a program is linked with this library"
+	    $echo "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $echo
+	      $echo "*** Since this library must not contain undefined symbols,"
+	      $echo "*** because either the platform does not support them or"
+	      $echo "*** it was explicitly requested with -no-undefined,"
+	      $echo "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	realname="$2"
+	shift; shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      eval cmd=\"$cmd\"
+	      if len=`expr "X$cmd" : ".*"` &&
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	        $show "$cmd"
+	        $run eval "$cmd" || exit $?
+	        skipped_export=false
+	      else
+	        # The command line is too long to execute in one step.
+	        $show "using reloadable object file for export list..."
+	        skipped_export=:
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex"; then
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+		case " $convenience " in
+		*" $test_deplib "*) ;;
+		*)
+			tmp_deplibs="$tmp_deplibs $test_deplib"
+			;;
+		esac
+	done
+	deplibs="$tmp_deplibs"
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    libobjs="$libobjs $func_extract_archives_result"
+	  fi
+	fi
+	
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	  eval test_cmds=\"$archive_expsym_cmds\"
+	  cmds=$archive_expsym_cmds
+	else
+	  eval test_cmds=\"$archive_cmds\"
+	  cmds=$archive_cmds
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise.
+	  $echo "creating reloadable object files..."
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  delfiles=
+	  last_robj=
+	  k=1
+	  output=$output_objdir/$output_la-${k}.$objext
+	  # Loop over the list of objects to be linked.
+	  for obj in $save_libobjs
+	  do
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+	    if test "X$objlist" = X ||
+	       { len=`expr "X$test_cmds" : ".*"` &&
+		 test "$len" -le "$max_cmd_len"; }; then
+	      objlist="$objlist $obj"
+	    else
+	      # The command $test_cmds is almost too long, add a
+	      # command to the queue.
+	      if test "$k" -eq 1 ; then
+		# The first file doesn't have a previous command to add.
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+	      else
+		# All subsequent reloadable object files will link in
+		# the last one created.
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+	      fi
+	      last_robj=$output_objdir/$output_la-${k}.$objext
+	      k=`expr $k + 1`
+	      output=$output_objdir/$output_la-${k}.$objext
+	      objlist=$obj
+	      len=1
+	    fi
+	  done
+	  # Handle the remaining objects by creating one last
+	  # reloadable object file.  All subsequent reloadable object
+	  # files will link in the last one created.
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+	  if ${skipped_export-false}; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    libobjs=$output
+	    # Append the command to create the export file.
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+          fi
+
+	  # Set up a command to remove the reloadable object files
+	  # after they are used.
+	  i=0
+	  while test "$i" -lt "$k"
+	  do
+	    i=`expr $i + 1`
+	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+	  done
+
+	  $echo "creating a temporary reloadable object file: $output"
+
+	  # Loop through the commands generated above and execute them.
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $concat_cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test "$module" = yes && test -n "$module_cmds" ; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    cmds=$archive_expsym_cmds
+	  else
+	    cmds=$archive_cmds
+	    fi
+	  fi
+
+	  # Append the command to remove the reloadable object files
+	  # to the just-reset $cmds.
+	  eval cmds=\"\$cmds~\$rm $delfiles\"
+	fi
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+      fi
+
+      case $output in
+      *.lo)
+	if test -n "$objs$old_deplibs"; then
+	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	libobj="$output"
+	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $run $rm $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+	else
+	  gentop="$output_objdir/${obj}x"
+	  generated="$generated $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      cmds=$reload_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $run eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	cmds=$reload_cmds
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  eval cmd=\"$cmd\"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+      fi
+
+      if test -n "$gentop"; then
+	$show "${rm}r $gentop"
+	$run ${rm}r $gentop
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+      esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+      fi
+
+      if test "$preload" = yes; then
+	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+	   test "$dlopen_self_static" = unknown; then
+	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+	fi
+      fi
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+	;;
+      esac
+
+      case $host in
+      *darwin*)
+        # Don't allow lazy linking, it breaks C++ global constructors
+        if test "$tagname" = CXX ; then
+        compile_command="$compile_command ${wl}-bind_at_load"
+        finalize_command="$finalize_command ${wl}-bind_at_load"
+        fi
+        ;;
+      esac
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      dlsyms=
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	  dlsyms="${outputname}S.c"
+	else
+	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+	fi
+      fi
+
+      if test -n "$dlsyms"; then
+	case $dlsyms in
+	"") ;;
+	*.c)
+	  # Discover the nlist of each of the dlfiles.
+	  nlist="$output_objdir/${outputname}.nm"
+
+	  $show "$rm $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Parse the name list into a source file.
+	  $show "creating $output_objdir/$dlsyms"
+
+	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+	  if test "$dlself" = yes; then
+	    $show "generating symbol list for \`$output'"
+
+	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+	    # Add our own program objects to the symbol list.
+	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	    for arg in $progfiles; do
+	      $show "extracting global C symbols from \`$arg'"
+	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	    done
+
+	    if test -n "$exclude_expsyms"; then
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    if test -n "$export_symbols_regex"; then
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    # Prepare the list of exported symbols
+	    if test -z "$export_symbols"; then
+	      export_symbols="$output_objdir/$outputname.exp"
+	      $run $rm $export_symbols
+	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	    else
+	      $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      $run eval 'mv "$nlist"T "$nlist"'
+	    fi
+	  fi
+
+	  for arg in $dlprefiles; do
+	    $show "extracting global C symbols from \`$arg'"
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+	    $run eval '$echo ": $name " >> "$nlist"'
+	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -z "$run"; then
+	    # Make sure we have at least an empty file.
+	    test -f "$nlist" || : > "$nlist"
+
+	    if test -n "$exclude_expsyms"; then
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	      $mv "$nlist"T "$nlist"
+	    fi
+
+	    # Try sorting and uniquifying the output.
+	    if grep -v "^: " < "$nlist" |
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
+		  sort -k 3
+		else
+		  sort +2
+		fi |
+		uniq > "$nlist"S; then
+	      :
+	    else
+	      grep -v "^: " < "$nlist" > "$nlist"S
+	    fi
+
+	    if test -f "$nlist"S; then
+	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+	    else
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+	    fi
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+	    case $host in
+	    *cygwin* | *mingw* )
+	  $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs */
+struct {
+"
+	      ;;
+	    * )
+	  $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+	      ;;
+	    esac
+
+
+	  $echo >> "$output_objdir/$dlsyms" "\
+  const char *name;
+  lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+  {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	  fi
+
+	  pic_flag_for_symtable=
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+	    esac;;
+	  *-*-hpux*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag";;
+	    esac
+	  esac
+
+	  # Now compile the dynamic symbol file.
+	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+	  # Clean up the generated files.
+	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Transform the symbol file into the correct name.
+	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+	  ;;
+	*)
+	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      else
+	# We keep going just in case the user didn't refer to
+	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+	# really was required.
+
+	# Nullify the symbol file.
+	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      fi
+
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+	# Replace the output file specification.
+	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	$show "$link_command"
+	$run eval "$link_command"
+	status=$?
+
+	# Delete the generated files.
+	if test -n "$dlsyms"; then
+	  $show "$rm $output_objdir/${outputname}S.${objext}"
+	  $run $rm "$output_objdir/${outputname}S.${objext}"
+	fi
+
+	exit $status
+      fi
+
+      if test -n "$shlibpath_var"; then
+	# We should set the shlibpath_var
+	rpath=
+	for dir in $temp_rpath; do
+	  case $dir in
+	  [\\/]* | [A-Za-z]:[\\/]*)
+	    # Absolute path.
+	    rpath="$rpath$dir:"
+	    ;;
+	  *)
+	    # Relative path: add a thisdir entry.
+	    rpath="$rpath\$thisdir/$dir:"
+	    ;;
+	  esac
+	done
+	temp_rpath="$rpath"
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$run $rm $output
+	# Link the executable and exit
+	$show "$link_command"
+	$run eval "$link_command" || exit $?
+	exit $EXIT_SUCCESS
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+	$echo "$modename: \`$output' will be relinked during installation" 1>&2
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      $show "$link_command"
+      $run eval "$link_command" || exit $?
+
+      # Now create the wrapper script.
+      $show "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $echo for shipping.
+      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+	case $progpath in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+	esac
+	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if our run command is non-null.
+      if test -z "$run"; then
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
+	    cwrapper=`$echo ${output}.exe`
+	    $rm $cwrappersource $cwrapper
+	    trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+#define DIR_SEPARATOR '/'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+#define HAVE_DOS_BASED_FILE_SYSTEM
+#ifndef DIR_SEPARATOR_2
+#define DIR_SEPARATOR_2 '\\'
+#endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+char * basename (const char *name);
+char * fnqualify(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
+
+  program_name = (char *) xstrdup ((char *) basename (argv[0]));
+  newargz = XMALLOC(char *, argc+2);
+EOF
+
+	    cat >> $cwrappersource <<EOF
+  newargz[0] = "$SHELL";
+EOF
+
+	    cat >> $cwrappersource <<"EOF"
+  newargz[1] = fnqualify(argv[0]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe");
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
+EOF
+
+	    cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+
+	    cat >> $cwrappersource <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+char *
+basename (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha (name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return (char *) base;
+}
+
+char *
+fnqualify(const char *path)
+{
+  size_t size;
+  char *p;
+  char tmp[LT_PATHMAX + 1];
+
+  assert(path != NULL);
+
+  /* Is it qualified already? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha (path[0]) && path[1] == ':')
+    return xstrdup (path);
+#endif
+  if (IS_DIR_SEPARATOR (path[0]))
+    return xstrdup (path);
+
+  /* prepend the current directory */
+  /* doesn't handle '~' */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
+  p = XMALLOC(char, size);
+  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
+  return p;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert(str != NULL);
+  assert(pat != NULL);
+
+  len = strlen(str);
+  patlen = strlen(pat);
+
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+          const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+	  # we should really use a build-platform specific compiler
+	  # here, but OTOH, the wrappers (shell script and this C one)
+	  # are only useful if you want to execute the "real" binary.
+	  # Since the "real" binary is built for $host, then this
+	  # wrapper might as well be built for $host, too.
+	  $run $LTCC -s -o $cwrapper $cwrappersource
+	  ;;
+	esac
+	$rm $output
+	trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+	$echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variable:
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$echo are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    echo=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$echo >> $output "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $echo >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" || \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $mkdir \"\$progdir\"
+    else
+      $rm \"\$progdir/\$file\"
+    fi"
+
+	  $echo >> $output "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$echo \"\$relink_command_output\" >&2
+	$rm \"\$progdir/\$file\"
+	exit $EXIT_FAILURE
+      fi
+    fi
+
+    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $rm \"\$progdir/\$program\";
+      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $rm \"\$progdir/\$file\"
+  fi"
+	else
+	  $echo >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$echo >> $output "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $echo >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $echo >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$echo >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2*)
+	  $echo >> $output "\
+      exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  $echo >> $output "\
+      exec \$progdir/\$program \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$echo >> $output "\
+      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+      exit $EXIT_FAILURE
+    fi
+  else
+    # The program doesn't exist.
+    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+    \$echo \"This script is just a wrapper for \$program.\" 1>&2
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi\
+"
+	chmod +x $output
+      fi
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	generated="$generated $gentop"
+
+	func_extract_archives $gentop $addlibs
+	oldobjs="$oldobjs $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+       cmds=$old_archive_from_new_cmds
+      else
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  $echo "copying selected object files to avoid basename conflicts..."
+
+	  if test -z "$gentop"; then
+	    gentop="$output_objdir/${outputname}x"
+	    generated="$generated $gentop"
+
+	    $show "${rm}r $gentop"
+	    $run ${rm}r "$gentop"
+	    $show "$mkdir $gentop"
+	    $run $mkdir "$gentop"
+	    status=$?
+	    if test "$status" -ne 0 && test ! -d "$gentop"; then
+	      exit $status
+	    fi
+	  fi
+
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		counter=`expr $counter + 1`
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      $run ln "$obj" "$gentop/$newobj" ||
+	      $run cp "$obj" "$gentop/$newobj"
+	      oldobjs="$oldobjs $gentop/$newobj"
+	      ;;
+	    *) oldobjs="$oldobjs $obj" ;;
+	    esac
+	  done
+	fi
+
+	eval cmds=\"$old_archive_cmds\"
+
+	if len=`expr "X$cmds" : ".*"` &&
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  $echo "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  for obj in $save_oldobjs
+	  do
+	    oldobjs="$objlist $obj"
+	    objlist="$objlist $obj"
+	    eval test_cmds=\"$old_archive_cmds\"
+	    if len=`expr "X$test_cmds" : ".*"` &&
+	       test "$len" -le "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+	        RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+        eval cmd=\"$cmd\"
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
+    fi
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      $show "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+	relink_command=
+      fi
+
+
+      # Only create the output if not a dry run.
+      if test -z "$run"; then
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		if test -z "$libdir"; then
+		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		  exit $EXIT_FAILURE
+		fi
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlfiles="$newdlfiles $libdir/$name"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit $EXIT_FAILURE
+	      fi
+	      newdlprefiles="$newdlprefiles $libdir/$name"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlfiles="$newdlfiles $abs"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      newdlprefiles="$newdlprefiles $abs"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $rm $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes; then
+	    $echo >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      fi
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool install mode
+  install)
+    modename="$modename: install"
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+      # Aesthetically quote it.
+      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$arg "
+      arg="$1"
+      shift
+    else
+      install_prog=
+      arg="$nonopt"
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+    case $arg in
+    *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+      arg="\"$arg\""
+      ;;
+    esac
+    install_prog="$install_prog$arg"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest="$arg"
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f) prev="-f" ;;
+      -g) prev="-g" ;;
+      -m) prev="-m" ;;
+      -o) prev="-o" ;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*) ;;
+
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest="$arg"
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$install_prog $arg"
+    done
+
+    if test -z "$install_prog"; then
+      $echo "$modename: you must specify an install program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	$echo "$modename: no file or destination specified" 1>&2
+      else
+	$echo "$modename: you must specify a destination" 1>&2
+      fi
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    # Strip any trailing slash from the destination.
+    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+      test "X$destdir" = "X$dest" && destdir=.
+      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files
+      if test "$#" -gt 2; then
+	$echo "$modename: \`$dest' is not a directory" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
+      fi
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	library_names=
+	old_library=
+	relink_command=
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+	test "X$dir" = "X$file/" && dir=
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  if test "$inst_prefix_dir" = "$destdir"; then
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  $echo "$modename: warning: relinking \`$file'" 1>&2
+	  $show "$relink_command"
+	  if $run eval "$relink_command"; then :
+	  else
+	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names
+	if test -n "$2"; then
+	  realname="$2"
+	  shift
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  $show "$install_prog $dir/$srcname $destdir/$realname"
+	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+	  if test -n "$stripme" && test -n "$striplib"; then
+	    $show "$striplib $destdir/$realname"
+	    $run eval "$striplib $destdir/$realname" || exit $?
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    for linkname
+	    do
+	      if test "$linkname" != "$realname"; then
+		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+	      fi
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  cmds=$postinstall_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+	fi
+
+	# Install the pseudo-library for information purposes.
+	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	instname="$dir/$name"i
+	$show "$install_prog $instname $destdir/$name"
+	$run eval "$install_prog $instname $destdir/$name" || exit $?
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	if test -n "$destfile"; then
+	  $show "$install_prog $file $destfile"
+	  $run eval "$install_prog $file $destfile" || exit $?
+	fi
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+	  $show "$install_prog $staticobj $staticdest"
+	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      file=`$echo $file|${SED} 's,.exe$,,'`
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin*|*mingw*)
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  # To insure that "foo" is sourced, and not "foo.exe",
+	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
+	  # which disallows the automatic-append-.exe behavior.
+	  case $build in
+	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+	  *) wrapperdot=${wrapper} ;;
+	  esac
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . ${wrapperdot} ;;
+	  *) . ./${wrapperdot} ;;
+	  esac
+
+	  # Check the variables that should have been set.
+	  if test -z "$notinst_deplibs"; then
+	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+	    exit $EXIT_FAILURE
+	  fi
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      # If there is no directory component, then add one.
+	      case $lib in
+	      */* | *\\*) . $lib ;;
+	      *) . ./$lib ;;
+	      esac
+	    fi
+	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  # To insure that "foo" is sourced, and not "foo.exe",
+	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
+	  # which disallows the automatic-append-.exe behavior.
+	  case $build in
+	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+	  *) wrapperdot=${wrapper} ;;
+	  esac
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . ${wrapperdot} ;;
+	  *) . ./${wrapperdot} ;;
+	  esac
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    if test "$finalize" = yes && test -z "$run"; then
+	      tmpdir="/tmp"
+	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
+	      tmpdir="$tmpdir/libtool-$$"
+	      save_umask=`umask`
+	      umask 0077
+	      if $mkdir "$tmpdir"; then
+	        umask $save_umask
+	      else
+	        umask $save_umask
+		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+		continue
+	      fi
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+	      outputname="$tmpdir/$file"
+	      # Replace the output file specification.
+	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	      $show "$relink_command"
+	      if $run eval "$relink_command"; then :
+	      else
+		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+		${rm}r "$tmpdir"
+		continue
+	      fi
+	      file="$outputname"
+	    else
+	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
+	    fi
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyways
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+	    ;;
+	  esac
+	  ;;
+	esac
+	$show "$install_prog$stripme $file $destfile"
+	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+	test -n "$outputname" && ${rm}r "$tmpdir"
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      $show "$install_prog $file $oldlib"
+      $run eval "$install_prog \$file \$oldlib" || exit $?
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	$show "$old_striplib $oldlib"
+	$run eval "$old_striplib $oldlib" || exit $?
+      fi
+
+      # Do each command in the postinstall commands.
+      cmds=$old_postinstall_cmds
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	eval cmd=\"$cmd\"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$future_libdirs"; then
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+    fi
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      test -n "$run" && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+    ;;
+
+  # libtool finish mode
+  finish)
+    modename="$modename: finish"
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  cmds=$finish_cmds
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    eval cmd=\"$cmd\"
+	    $show "$cmd"
+	    $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
+	  done
+	  IFS="$save_ifs"
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    test "$show" = : && exit $EXIT_SUCCESS
+
+    $echo "----------------------------------------------------------------------"
+    $echo "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $echo "   $libdir"
+    done
+    $echo
+    $echo "If you ever happen to want to link against installed libraries"
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $echo "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $echo "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $echo "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $echo "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $echo "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $echo
+    $echo "See any operating system documentation about shared libraries for"
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+    $echo "----------------------------------------------------------------------"
+    exit $EXIT_SUCCESS
+    ;;
+
+  # libtool execute mode
+  execute)
+    modename="$modename: execute"
+
+    # The first argument is the command name.
+    cmd="$nonopt"
+    if test -z "$cmd"; then
+      $echo "$modename: you must specify a COMMAND" 1>&2
+      $echo "$help"
+      exit $EXIT_FAILURE
+    fi
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      if test ! -f "$file"; then
+	$echo "$modename: \`$file' is not a file" 1>&2
+	$echo "$help" 1>&2
+	exit $EXIT_FAILURE
+      fi
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	  exit $EXIT_FAILURE
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+	;;
+
+      *)
+	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . $file ;;
+	  *) . ./$file ;;
+	  esac
+
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+      args="$args \"$file\""
+    done
+
+    if test -z "$run"; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      if test "${save_LC_ALL+set}" = set; then
+	LC_ALL="$save_LC_ALL"; export LC_ALL
+      fi
+      if test "${save_LANG+set}" = set; then
+	LANG="$save_LANG"; export LANG
+      fi
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+	$echo "export $shlibpath_var"
+      fi
+      $echo "$cmd$args"
+      exit $EXIT_SUCCESS
+    fi
+    ;;
+
+  # libtool clean and uninstall mode
+  clean | uninstall)
+    modename="$modename: $mode"
+    rm="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) rm="$rm $arg"; rmforce=yes ;;
+      -*) rm="$rm $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    if test -z "$rm"; then
+      $echo "$modename: you must specify an RM program" 1>&2
+      $echo "$help" 1>&2
+      exit $EXIT_FAILURE
+    fi
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+      if test "X$dir" = "X$file"; then
+	dir=.
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if (test -L "$file") >/dev/null 2>&1 \
+	|| (test -h "$file") >/dev/null 2>&1 \
+	|| test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  . $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+	  if test "$mode" = uninstall; then
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      cmds=$postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      cmds=$old_postuninstall_cmds
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		eval cmd=\"$cmd\"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+	  # Read the .lo file
+	  . $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" \
+	     && test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" \
+	     && test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    file=`$echo $file|${SED} 's,.exe$,,'`
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	    relink_command=
+	    . $dir/$noexename
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      $show "$rm $rmfiles"
+      $run $rm $rmfiles || exit_status=1
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	$show "rmdir $dir"
+	$run rmdir $dir >/dev/null 2>&1
+      fi
+    done
+
+    exit $exit_status
+    ;;
+
+  "")
+    $echo "$modename: you must specify a MODE" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+    ;;
+  esac
+
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+  eval exec $exec_cmd
+  exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
+-n, --dry-run         display commands without modifying any files
+    --features        display basic configuration information and exit
+    --finish          same as \`--mode=finish'
+    --help            display this help message and exit
+    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
+    --quiet           same as \`--silent'
+    --silent          don't print informational messages
+    --tag=TAG         use configuration variables from tag TAG
+    --version         print version information
+
+MODE must be one of the following:
+
+      clean           remove files from the build directory
+      compile         compile a source file into a libtool object
+      execute         automatically set library path, then run a program
+      finish          complete the installation of libtool libraries
+      install         install libraries or executables
+      link            create a library or an executable
+      uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool@gnu.org>."
+  exit $EXIT_SUCCESS
+  ;;
+
+clean)
+  $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+compile)
+  $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -static           always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+  ;;
+
+execute)
+  $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+  ;;
+
+finish)
+  $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+  ;;
+
+install)
+  $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+  ;;
+
+link)
+  $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+		    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+		    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -static           do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+		    specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+  ;;
+
+uninstall)
+  $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+*)
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+  $echo "$help" 1>&2
+  exit $EXIT_FAILURE
+  ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/m4/Makefile.am b/m4/Makefile.am
@@ -1 +1,6 @@
-EXTRA_DIST = openssl.m4 sasl2.m4
+EXTRA_DIST = \
+	evolution-plugin.m4	\
+	gnome.m4		\
+	openssl.m4		\
+	reentrant-resolver.m4	\
+	sasl2.m4
diff --git a/m4/Makefile.in b/m4/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -33,12 +33,18 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 subdir = m4
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -51,6 +57,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -63,15 +70,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -88,10 +104,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -102,9 +114,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -117,12 +132,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -130,7 +148,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -147,25 +164,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -186,20 +206,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -214,8 +253,18 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
-EXTRA_DIST = openssl.m4 sasl2.m4
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+EXTRA_DIST = \
+	evolution-plugin.m4	\
+	gnome.m4		\
+	openssl.m4		\
+	reentrant-resolver.m4	\
+	sasl2.m4
+
 all: all-am
 
 .SUFFIXES:
@@ -248,6 +297,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 tags: TAGS
 TAGS:
@@ -313,11 +371,11 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
 
 dvi: dvi-am
 
@@ -345,7 +403,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -357,13 +415,14 @@ ps-am:
 
 uninstall-am: uninstall-info-am
 
-.PHONY: all all-am check check-am clean clean-generic distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-exec \
-	install-exec-am install-info install-info-am install-man \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
 	uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/m4/evolution-plugin.m4 b/m4/evolution-plugin.m4
@@ -0,0 +1,59 @@
+# This file is part of Mail Notification.
+#
+# Copyright (C) 2005 Jean-Yves Lefort.
+#
+# As a special exception to the Mail Notification licensing terms,
+# Jean-Yves Lefort gives unlimited permission to copy, distribute and
+# modify this file.
+
+dnl AM_PATH_EVOLUTION_PLUGIN([MINIMUM-VERSION], [SOURCE-FILES], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl
+AC_DEFUN([AM_PATH_EVOLUTION_PLUGIN],
+[AC_ARG_WITH(evolution-source-dir,
+AC_HELP_STRING([--with-evolution-source-dir=DIR], [path to the Evolution source tree]),
+[evolution_source_dir="$withval"], [evolution_source_dir=""])
+
+found=no
+
+AC_MSG_CHECKING([for the Evolution source tree directory])
+if test -z "$evolution_source_dir"; then
+	AC_MSG_RESULT([not given, use --with-evolution-source-dir=DIR])
+else
+	AC_MSG_RESULT([$evolution_source_dir])
+
+	if test "x$evolution_source_dir" != "xno"; then
+		found=yes
+		m4_foreach(evofile, [ifelse([$2],, evolution-plugin.pc.in, [$2])],
+[
+if test $found = yes; then
+	AC_CHECK_FILE($evolution_source_dir/evofile, [found=yes], [found=no])
+fi
+])
+	fi
+fi
+
+if test $found = yes; then
+	evolution_plugin_min_version=ifelse([$1],,, [>= $1])
+	PKG_CHECK_MODULES(EVOLUTION_PLUGIN, [evolution-plugin-2.2 $evolution_plugin_min_version],, [found=no])
+fi
+
+if test $found = yes; then
+	AC_MSG_CHECKING([for the Evolution plugin directory])
+	evolution_plugindir=`$PKG_CONFIG --variable=plugindir evolution-plugin-2.2 2>/dev/null`
+	if test -n "$evolution_plugindir"; then
+		AC_MSG_RESULT([$evolution_plugindir])
+	else
+		AC_MSG_RESULT([not found])
+		found=no
+	fi
+fi
+
+if test $found = yes; then
+	EVOLUTION_PLUGIN_CFLAGS="$EVOLUTION_PLUGIN_CFLAGS -I$evolution_source_dir"
+	ifelse([$3],, :, [$3])
+else
+	evolution_plugindir=""
+	ifelse([$4],, :, [$4])
+fi
+
+AC_SUBST(evolution_plugindir)])
diff --git a/m4/gnome.m4 b/m4/gnome.m4
@@ -0,0 +1,48 @@
+# This file is part of Mail Notification.
+#
+# Copyright (C) 2005 Jean-Yves Lefort.
+#
+# As a special exception to the Mail Notification licensing terms,
+# Jean-Yves Lefort gives unlimited permission to copy, distribute and
+# modify this file.
+
+dnl AM_PATH_GNOME_PREFIX([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl
+AC_DEFUN([AM_PATH_GNOME_PREFIX],
+[PKG_PROG_PKG_CONFIG
+
+AC_MSG_CHECKING([for the GNOME installation prefix])
+
+gnome_prefix=""
+if test -n "$PKG_CONFIG"; then
+	gnome_prefix=`$PKG_CONFIG --variable prefix libgnome-2.0`
+fi
+
+if test -n "$gnome_prefix"; then
+	AC_MSG_RESULT([$gnome_prefix])
+	ifelse([$1],, :, [$1])
+else
+	AC_MSG_RESULT([not found])
+	ifelse([$2],, :, [$2])
+fi
+
+AC_SUBST(gnome_prefix)])
+
+dnl AM_PATH_GNOME_CAPPLETDIR
+dnl
+AC_DEFUN([AM_PATH_GNOME_CAPPLETDIR],
+[PKG_PROG_PKG_CONFIG
+
+AC_MSG_CHECKING([for the GNOME capplet directory])
+
+# GNOME < 2.10
+gnome_cappletdir='${datadir}/control-center-2.0/capplets'
+
+if test -n "$PKG_CONFIG" && $PKG_CONFIG --exists 'libgnome-2.0 >= 2.10.0' >/dev/null 2>&1; then
+	# GNOME >= 2.10
+	gnome_cappletdir='${datadir}/applications'
+fi
+
+AC_MSG_RESULT([$gnome_cappletdir])
+
+AC_SUBST(gnome_cappletdir)])
diff --git a/m4/icu.m4 b/m4/icu.m4
@@ -1,67 +0,0 @@
-# This file is part of Mail Notification.
-#
-# Copyright (C) 2005 Jean-Yves Lefort.
-#
-# As a special exception to the Mail Notification licensing terms,
-# Jean-Yves Lefort gives unlimited permission to copy, distribute and
-# modify this file.
-
-dnl AM_PATH_ICU([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-dnl
-AC_DEFUN([AM_PATH_ICU],
-[AC_PATH_PROG(ICU_CONFIG, icu-config, no)
-
-if test "x$ICU_CONFIG" = xno; then
-	ICU_CFLAGS=""
-	ICU_LIBS=""
-
-	ifelse([$3],, :, [$3])
-else
-	ICU_CFLAGS=`$ICU_CONFIG --cppflags`
-	ICU_LIBS=`$ICU_CONFIG --ldflags`
-
-	# the version checking API we need has been introduced in 2.4
-	icu_min_version=ifelse([$1],, 2.4, [$1])
-
-	ac_save_CFLAGS="$CFLAGS"
-	ac_save_LIBS="$LIBS"
-	CFLAGS="$CFLAGS $ICU_CFLAGS"
-	LIBS="$LIBS $ICU_LIBS"
-
-	AC_MSG_CHECKING([for ICU - version >= $icu_min_version])
-
-	AC_RUN_IFELSE([
-#include <string.h>
-#include <unicode/uversion.h>
-
-int main() {
-  UVersionInfo min_version;
-  UVersionInfo version;
-
-  u_versionFromString(min_version, "$icu_min_version");
-  u_getVersion(version);
-
-  if (memcmp(min_version, version, U_MAX_VERSION_LENGTH) > 0)
-    exit(1); /* version too old */
-
-  exit(0);
-}
-], [found=yes], [found=no], [found=yes])
-
-	AC_MSG_RESULT($found)
-
-	CFLAGS="$ac_save_CFLAGS"
-	LIBS="$ac_save_LIBS"
-
-	if test $found = yes; then
-		ifelse([$2],, :, [$2])
-	else
-		ICU_CFLAGS=""
-		ICU_LIBS=""
-
-		ifelse([$3],, :, [$3])
-	fi
-fi
-
-AC_SUBST(ICU_CFLAGS)
-AC_SUBST(ICU_LIBS)])
diff --git a/m4/intltool.m4 b/m4/intltool.m4
@@ -0,0 +1,184 @@
+## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
+## Copyright (C) 2001 Eazel, Inc.
+## Author: Maciej Stachowiak <mjs@noisehavoc.org>
+##         Kenneth Christiansen <kenneth@gnu.org>
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
+# serial 2 IT_PROG_INTLTOOL
+AC_DEFUN([IT_PROG_INTLTOOL],
+[
+
+if test -n "$1"; then
+    AC_MSG_CHECKING(for intltool >= $1)
+
+    INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ printf "%d", $[1] * 100 + $[2]; }'`
+    INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { printf $[2]; }'  < ${ac_aux_dir}/intltool-update.in`
+    changequote({{,}})
+    INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split(${{2}}, VERSION, "."); printf "%d\n", VERSION[1] * 100 + VERSION[2];}' < ${ac_aux_dir}/intltool-update.in`
+    changequote([,])
+
+    if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"; then
+	AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
+    else
+	AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found. Your intltool is too old.  You need intltool $1 or later.])
+	exit 1
+    fi
+fi
+
+  INTLTOOL_DESKTOP_RULE='%.desktop:   %.desktop.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+     INTLTOOL_KEYS_RULE='%.keys:      %.keys.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+     INTLTOOL_PROP_RULE='%.prop:      %.prop.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_OAF_RULE='%.oaf:       %.oaf.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@'
+     INTLTOOL_PONG_RULE='%.pong:      %.pong.in      $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+   INTLTOOL_SERVER_RULE='%.server:    %.server.in    $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_SHEET_RULE='%.sheet:     %.sheet.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+       INTLTOOL_UI_RULE='%.ui:        %.ui.in        $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_XML_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_XML_NOMERGE_RULE='%.xml:       %.xml.in       $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' 
+      INTLTOOL_XAM_RULE='%.xam:       %.xml.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+      INTLTOOL_KBD_RULE='%.kbd:       %.kbd.in       $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_CAVES_RULE='%.caves:     %.caves.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+  INTLTOOL_SCHEMAS_RULE='%.schemas:   %.schemas.in   $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+    INTLTOOL_THEME_RULE='%.theme:     %.theme.in     $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' 
+
+AC_SUBST(INTLTOOL_DESKTOP_RULE)
+AC_SUBST(INTLTOOL_DIRECTORY_RULE)
+AC_SUBST(INTLTOOL_KEYS_RULE)
+AC_SUBST(INTLTOOL_PROP_RULE)
+AC_SUBST(INTLTOOL_OAF_RULE)
+AC_SUBST(INTLTOOL_PONG_RULE)
+AC_SUBST(INTLTOOL_SERVER_RULE)
+AC_SUBST(INTLTOOL_SHEET_RULE)
+AC_SUBST(INTLTOOL_SOUNDLIST_RULE)
+AC_SUBST(INTLTOOL_UI_RULE)
+AC_SUBST(INTLTOOL_XAM_RULE)
+AC_SUBST(INTLTOOL_KBD_RULE)
+AC_SUBST(INTLTOOL_XML_RULE)
+AC_SUBST(INTLTOOL_XML_NOMERGE_RULE)
+AC_SUBST(INTLTOOL_CAVES_RULE)
+AC_SUBST(INTLTOOL_SCHEMAS_RULE)
+AC_SUBST(INTLTOOL_THEME_RULE)
+
+# Use the tools built into the package, not the ones that are installed.
+
+INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract'
+INTLTOOL_MERGE='$(top_builddir)/intltool-merge'
+INTLTOOL_UPDATE='$(top_builddir)/intltool-update'
+
+AC_SUBST(INTLTOOL_EXTRACT)
+AC_SUBST(INTLTOOL_MERGE)
+AC_SUBST(INTLTOOL_UPDATE)
+
+AC_PATH_PROG(INTLTOOL_PERL, perl)
+if test -z "$INTLTOOL_PERL"; then
+   AC_MSG_ERROR([perl not found; required for intltool])
+fi
+if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then
+   AC_MSG_ERROR([perl 5.x required for intltool])
+fi
+if test "x$2" != "xno-xml"; then
+   AC_MSG_CHECKING([for XML::Parser])
+   if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
+       AC_MSG_RESULT([ok])
+   else
+       AC_MSG_ERROR([XML::Parser perl module is required for intltool])
+   fi
+fi
+
+AC_PATH_PROG(INTLTOOL_ICONV, iconv, iconv)
+AC_PATH_PROG(INTLTOOL_MSGFMT, msgfmt, msgfmt)
+AC_PATH_PROG(INTLTOOL_MSGMERGE, msgmerge, msgmerge)
+AC_PATH_PROG(INTLTOOL_XGETTEXT, xgettext, xgettext)
+
+# Remove file type tags (using []) from po/POTFILES.
+
+ifdef([AC_DIVERSION_ICMDS],[
+  AC_DIVERT_PUSH(AC_DIVERSION_ICMDS)
+     [mv -f po/POTFILES po/POTFILES.tmp
+      sed -e '/[[]encoding.*]/d' -e 's/[[].*] *//' < po/POTFILES.tmp > po/POTFILES
+      rm -f po/POTFILES.tmp
+     ]dnl
+  AC_DIVERT_POP()
+],[
+  ifdef([AC_CONFIG_COMMANDS_PRE],[
+    AC_CONFIG_COMMANDS_PRE([
+       [mv -f po/POTFILES po/POTFILES.tmp
+        sed -e '/[[]encoding.*]/d' -e 's/[[].*] *//' < po/POTFILES.tmp > po/POTFILES
+        rm -f po/POTFILES.tmp
+       ]dnl
+    ])
+  ])
+])
+
+# Manually sed perl in so people don't have to put the intltool scripts in AC_OUTPUT.
+
+AC_CONFIG_COMMANDS([intltool], [
+
+intltool_edit="-e 's#@INTLTOOL_EXTRACT@#`pwd`/intltool-extract#g' \
+               -e 's#@INTLTOOL_ICONV@#${INTLTOOL_ICONV}#g' \
+               -e 's#@INTLTOOL_MSGFMT@#${INTLTOOL_MSGFMT}#g' \
+               -e 's#@INTLTOOL_MSGMERGE@#${INTLTOOL_MSGMERGE}#g' \
+               -e 's#@INTLTOOL_XGETTEXT@#${INTLTOOL_XGETTEXT}#g' \
+               -e 's#@INTLTOOL_PERL@#${INTLTOOL_PERL}#g'"
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-extract.in \
+  > intltool-extract.out
+if cmp -s intltool-extract intltool-extract.out 2>/dev/null; then
+  rm -f intltool-extract.out
+else
+  mv -f intltool-extract.out intltool-extract
+fi
+chmod ugo+x intltool-extract
+chmod u+w intltool-extract
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-merge.in \
+  > intltool-merge.out
+if cmp -s intltool-merge intltool-merge.out 2>/dev/null; then
+  rm -f intltool-merge.out
+else
+  mv -f intltool-merge.out intltool-merge
+fi
+chmod ugo+x intltool-merge
+chmod u+w intltool-merge
+
+eval sed ${intltool_edit} < ${ac_aux_dir}/intltool-update.in \
+  > intltool-update.out
+if cmp -s intltool-update intltool-update.out 2>/dev/null; then
+  rm -f intltool-update.out
+else
+  mv -f intltool-update.out intltool-update
+fi
+chmod ugo+x intltool-update
+chmod u+w intltool-update
+
+], INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir=${ac_aux_dir}
+INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' ICONV='${INTLTOOL_ICONV}'
+MSGFMT='${INTLTOOL_MSGFMT}' MSGMERGE='${INTLTOOL_MSGMERGE}'
+XGETTEXT='${INTLTOOL_XGETTEXT}')
+
+])
+
+# deprecated macros
+AC_DEFUN([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL($@)])
+
diff --git a/m4/reentrant-resolver.m4 b/m4/reentrant-resolver.m4
@@ -0,0 +1,49 @@
+# This file is part of Mail Notification.
+#
+# Copyright (C) 2005 Jean-Yves Lefort.
+#
+# As a special exception to the Mail Notification licensing terms,
+# Jean-Yves Lefort gives unlimited permission to copy, distribute and
+# modify this file.
+
+dnl AC_REENTRANT_RESOLVER
+dnl
+AC_DEFUN([AC_REENTRANT_RESOLVER],
+[AC_ARG_WITH(reentrant-resolver,
+AC_HELP_STRING([--with-reentrant-resolver], [specify that the system resolver is reentrant [[autodetect]]]),
+[case "$withval" in
+	yes|no|autodetect) reentrant_resolver=$withval ;;
+	*) AC_MSG_ERROR([bad value $withval for --with-reentrant-resolver]) ;;
+esac], [reentrant_resolver=autodetect])
+
+if test $reentrant_resolver = autodetect; then
+	AC_MSG_CHECKING([if the system resolver is reentrant])
+
+	case "$target_os" in
+		# FreeBSD >= 5.3
+		freebsd5.[[3-9]]*|freebsd5.[[1-9]][[0-9]]*|freebsd[[6-9]]*|freebsd[[1-9]][[0-9]]*)
+			reentrant_resolver=yes ;;
+
+		# FreeBSD < 5.3, NetBSD, OpenBSD
+		freebsd*|netbsd*|openbsd*)
+			reentrant_resolver=no ;;
+
+		# Linux
+		linux*)
+			reentrant_resolver=yes ;;
+
+		*)
+			reentrant_resolver=unknown ;;
+	esac
+
+	if test $reentrant_resolver = unknown; then
+		reentrant_resolver=no
+		AC_MSG_RESULT([unknown, assuming it is not (use --with-reentrant-resolver to override)])
+	else
+		AC_MSG_RESULT($reentrant_resolver)
+	fi
+fi
+
+if test $reentrant_resolver = yes; then
+	AC_DEFINE(HAVE_REENTRANT_RESOLVER, 1, [Define to 1 if the system resolver is reentrant])
+fi])
diff --git a/missing b/missing
@@ -1,6 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
-# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+
+scriptversion=2005-06-08.21
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+#   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -15,8 +19,8 @@
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -38,18 +42,24 @@ else
   configure_ac=configure.in
 fi
 
+msg="missing on your system"
+
 case "$1" in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
   shift
   "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
   ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
 
   -h|--h|--he|--hel|--help)
     echo "\
@@ -74,11 +84,15 @@ Supported PROGRAM values:
   lex          create \`lex.yy.c', if possible, from existing .c
   makeinfo     touch the output file
   tar          try tar, gnutar, gtar, then tar without non-portable flags
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]"
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing 0.3 - GNU automake"
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
     ;;
 
   -*)
@@ -87,9 +101,44 @@ Supported PROGRAM values:
     exit 1
     ;;
 
-  aclocal)
+esac
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+  lex|yacc)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  tar)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+  aclocal*)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
          to install the \`Automake' and \`Perl' packages.  Grab them from
          any GNU archive site."
@@ -98,7 +147,7 @@ WARNING: \`$1' is missing on your system.  You should only need it if
 
   autoconf)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
          you modified \`${configure_ac}'.  You might want to install the
          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
          archive site."
@@ -107,7 +156,7 @@ WARNING: \`$1' is missing on your system.  You should only need it if
 
   autoheader)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
          from any GNU archive site."
@@ -124,9 +173,9 @@ WARNING: \`$1' is missing on your system.  You should only need it if
     touch $touch_files
     ;;
 
-  automake)
+  automake*)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
          You might want to install the \`Automake' and \`Perl' packages.
          Grab them from any GNU archive site."
@@ -135,9 +184,32 @@ WARNING: \`$1' is missing on your system.  You should only need it if
 	   while read f; do touch "$f"; done
     ;;
 
+  autom4te)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
   bison|yacc)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' $msg.  You should only need it if
          you modified a \`.y' file.  You may need the \`Bison' package
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
@@ -167,7 +239,7 @@ WARNING: \`$1' is missing on your system.  You should only need it if
 
   lex|flex)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.l' file.  You may need the \`Flex' package
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
@@ -190,7 +262,7 @@ WARNING: \`$1' is missing on your system.  You should only need it if
 
   help2man)
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
 	 you modified a dependency of a manual page.  You may need the
 	 \`Help2man' package in order for those modifications to take
 	 effect.  You can get \`Help2man' from any GNU archive site."
@@ -209,54 +281,52 @@ WARNING: \`$1' is missing on your system.  You should only need it if
     ;;
 
   makeinfo)
-    if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
-       # We have makeinfo, but it failed.
-       exit 1
-    fi
-
     echo 1>&2 "\
-WARNING: \`$1' is missing on your system.  You should only need it if
+WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
          indirectly affecting the aspect of the manual.  The spurious
          call might also be the consequence of using a buggy \`make' (AIX,
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
+    # The file to touch is that specified with -o ...
     file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     if test -z "$file"; then
-      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
     touch $file
     ;;
 
   tar)
     shift
-    if test -n "$run"; then
-      echo 1>&2 "ERROR: \`tar' requires --run"
-      exit 1
-    fi
 
     # We have already tried tar in the generic part.
     # Look for gnutar/gtar before invocation to avoid ugly error
     # messages.
     if (gnutar --version > /dev/null 2>&1); then
-       gnutar ${1+"$@"} && exit 0
+       gnutar "$@" && exit 0
     fi
     if (gtar --version > /dev/null 2>&1); then
-       gtar ${1+"$@"} && exit 0
+       gtar "$@" && exit 0
     fi
     firstarg="$1"
     if shift; then
 	case "$firstarg" in
 	*o*)
 	    firstarg=`echo "$firstarg" | sed s/o//`
-	    tar "$firstarg" ${1+"$@"} && exit 0
+	    tar "$firstarg" "$@" && exit 0
 	    ;;
 	esac
 	case "$firstarg" in
 	*h*)
 	    firstarg=`echo "$firstarg" | sed s/h//`
-	    tar "$firstarg" ${1+"$@"} && exit 0
+	    tar "$firstarg" "$@" && exit 0
 	    ;;
 	esac
     fi
@@ -270,10 +340,10 @@ WARNING: I can't seem to be able to run \`tar' with the given arguments.
 
   *)
     echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
-         system.  You might have modified some files without having the
+WARNING: \`$1' is needed, and is $msg.
+         You might have modified some files without having the
          proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequirements for installing
+         it often tells you about the needed prerequisites for installing
          this package.  You may also peek at any GNU archive site, in case
          some other package would contain this missing \`$1' program."
     exit 1
@@ -281,3 +351,10 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your
 esac
 
 exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/mkinstalldirs b/mkinstalldirs
@@ -1,40 +1,158 @@
 #! /bin/sh
 # mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
 
-# $Id: mkinstalldirs,v 1.1.1.1 2003/07/20 16:12:35 jylefort Exp $
+scriptversion=2005-06-29.22
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
 
 errstatus=0
+dirmode=
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+  case $1 in
+    -h | --help | --h*)         # -h for help
+      echo "$usage"
+      exit $?
+      ;;
+    -m)                         # -m PERM arg
+      shift
+      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+      dirmode=$1
+      shift
+      ;;
+    --version)
+      echo "$0 $scriptversion"
+      exit $?
+      ;;
+    --)                         # stop option processing
+      shift
+      break
+      ;;
+    -*)                         # unknown option
+      echo "$usage" 1>&2
+      exit 1
+      ;;
+    *)                          # first non-opt arg
+      break
+      ;;
+  esac
+done
 
 for file
 do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+  0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error.  This is a problem when calling mkinstalldirs
+# from a parallel make.  We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+  '')
+    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+      echo "mkdir -p -- $*"
+      exec mkdir -p -- "$@"
+    else
+      # On NextStep and OpenStep, the `mkdir' command does not
+      # recognize any option.  It will interpret all options as
+      # directories to create, and then abort because `.' already
+      # exists.
+      test -d ./-p && rmdir ./-p
+      test -d ./--version && rmdir ./--version
+    fi
+    ;;
+  *)
+    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+       test ! -d ./--version; then
+      echo "mkdir -m $dirmode -p -- $*"
+      exec mkdir -m "$dirmode" -p -- "$@"
+    else
+      # Clean up after NextStep and OpenStep mkdir.
+      for d in ./-m ./-p ./--version "./$dirmode";
+      do
+        test -d $d && rmdir $d
+      done
+    fi
+    ;;
+esac
+
+for file
+do
+  case $file in
+    /*) pathcomp=/ ;;
+    *)  pathcomp= ;;
+  esac
+  oIFS=$IFS
+  IFS=/
+  set fnord $file
+  shift
+  IFS=$oIFS
+
+  for d
+  do
+    test "x$d" = x && continue
+
+    pathcomp=$pathcomp$d
+    case $pathcomp in
+      -*) pathcomp=./$pathcomp ;;
+    esac
 
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
+    if test ! -d "$pathcomp"; then
+      echo "mkdir $pathcomp"
 
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp"
+      mkdir "$pathcomp" || lasterr=$?
 
-        mkdir "$pathcomp" || lasterr=$?
+      if test ! -d "$pathcomp"; then
+	errstatus=$lasterr
+      else
+	if test ! -z "$dirmode"; then
+	  echo "chmod $dirmode $pathcomp"
+	  lasterr=
+	  chmod "$dirmode" "$pathcomp" || lasterr=$?
 
-        if test ! -d "$pathcomp"; then
-  	  errstatus=$lasterr
-        fi
-     fi
+	  if test ! -z "$lasterr"; then
+	    errstatus=$lasterr
+	  fi
+	fi
+      fi
+    fi
 
-     pathcomp="$pathcomp/"
-   done
+    pathcomp=$pathcomp/
+  done
 done
 
 exit $errstatus
 
-# mkinstalldirs ends here
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/po/ChangeLog b/po/ChangeLog
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
@@ -11,6 +11,11 @@
 #
 # - Modified by jacob berkman <jacob@ximian.com> to install
 #   Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
+#
+# - Modified by Rodney Dawes <dobey@novell.com> for use with intltool
+#
+# We have the following line for use by intltoolize:
+# INTLTOOL_MAKEFILE
 
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 PACKAGE = @PACKAGE@
@@ -27,15 +32,17 @@ VPATH = @srcdir@
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 datadir = @datadir@
+datarootdir = @datarootdir@
 libdir = @libdir@
 localedir = $(libdir)/locale
 gnulocaledir = $(datadir)/locale
 gettextsrcdir = $(datadir)/glib-2.0/gettext/po
 subdir = po
+install_sh = @install_sh@
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
 
 CC = @CC@
 GENCAT = @GENCAT@
@@ -44,8 +51,8 @@ MSGFMT = @MSGFMT@
 XGETTEXT = @XGETTEXT@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
-MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
-GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
+MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
+GENPOT   = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
 
 DEFS = @DEFS@
 CFLAGS = @CFLAGS@
@@ -58,8 +65,9 @@ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 SOURCES = 
 POFILES = @POFILES@
 GMOFILES = @GMOFILES@
-DISTFILES = Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot \
-$(POFILES) $(GMOFILES) $(SOURCES)
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in \
+$(POFILES) $(SOURCES)
+EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
 
 POTFILES = \
 
@@ -75,13 +83,13 @@ INSTOBJEXT = @INSTOBJEXT@
 
 .po.pox:
 	$(MAKE) $(GETTEXT_PACKAGE).pot
-	$(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*pox
+	$(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
 
 .po.mo:
 	$(MSGFMT) -o $@ $<
 
 .po.gmo:
-	file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+	file=`echo $* | sed 's,.*/,,'`.gmo \
 	  && rm -f $$file && $(GMSGFMT) -o $$file $<
 
 .po.cat:
@@ -94,7 +102,7 @@ all: all-@USE_NLS@
 all-yes: $(CATALOGS)
 all-no:
 
-$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
+$(GETTEXT_PACKAGE).pot: $(POTFILES)
 	$(GENPOT)
 
 install: install-exec install-data
@@ -102,7 +110,7 @@ install-exec:
 install-data: install-data-@USE_NLS@
 install-data-no: all
 install-data-yes: all
-	if test -r "$(MKINSTALLDIRS)"; then \
+	if test -n "$(MKINSTALLDIRS)"; then \
 	  $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
 	else \
 	  $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
@@ -116,7 +124,7 @@ install-data-yes: all
 	  esac; \
 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 	  dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \
-	  if test -r "$(MKINSTALLDIRS)"; then \
+	  if test -n "$(MKINSTALLDIRS)"; then \
 	    $(MKINSTALLDIRS) $$dir; \
 	  else \
 	    $(SHELL) $(top_srcdir)/mkinstalldirs $$dir; \
@@ -144,7 +152,7 @@ install-data-yes: all
 	  fi; \
 	done
 	if test "$(PACKAGE)" = "glib"; then \
-	  if test -r "$(MKINSTALLDIRS)"; then \
+	  if test -n "$(MKINSTALLDIRS)"; then \
 	    $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
 	  else \
 	    $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(gettextsrcdir); \
@@ -172,28 +180,33 @@ uninstall:
 	  rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
 	fi
 
-check: all
+check: all $(GETTEXT_PACKAGE).pot
 
 dvi info tags TAGS ID:
 
 mostlyclean:
-	rm -f core core.* *.pox $(GETTEXT_PACKAGE).po *.old.po cat-id-tbl.tmp
+	rm -f core core.* *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
 	rm -fr *.o
 	rm -f .intltool-merge-cache
 
 clean: mostlyclean
 
 distclean: clean
-	rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+	rm -f Makefile Makefile.in POTFILES
+	rm -f *.mo *.msg *.cat *.cat.m $(GMOFILES)
 
 maintainer-clean: distclean
 	@echo "This command is intended for maintainers to use;"
 	@echo "it deletes files that may require special tools to rebuild."
-	rm -f $(GMOFILES)
+	rm -f Makefile.in.in
 
 distdir = ../$(GETTEXT_PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: update-po $(DISTFILES)
+dist distdir: $(DISTFILES)
 	dists="$(DISTFILES)"; \
+	extra_dists="$(EXTRA_DISTFILES)"; \
+	for file in $$extra_dists; do \
+	  test -f $$file && dists="$$dists $$file"; \
+	done; \
 	for file in $$dists; do \
 	  ln $(srcdir)/$$file $(distdir) 2> /dev/null \
 	    || cp -p $(srcdir)/$$file $(distdir); \
@@ -202,14 +215,14 @@ dist distdir: update-po $(DISTFILES)
 update-po: Makefile
 	$(MAKE) $(GETTEXT_PACKAGE).pot
 	tmpdir=`pwd`; \
-	cd $(srcdir); \
 	catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
 	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 	  echo "$$lang:"; \
-	  if $$tmpdir/$(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist -o $$tmpdir/$$lang.new.po $$lang; then \
-	    if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+	  result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
+	  if $$result; then \
+	    if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
 	      rm -f $$tmpdir/$$lang.new.po; \
             else \
 	      if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
@@ -230,17 +243,13 @@ update-po: Makefile
 # and Intltool tags (enclosed in square brackets), and appending a full
 # relative path to them
 POTFILES: POTFILES.in
-	( if test 'x$(srcdir)' != 'x.'; then \
-	    posrcprefix='$(top_srcdir)/'; \
-	  else \
-	    posrcprefix="../"; \
-	  fi; \
+	( posrcprefix='$(top_srcdir)/'; \
 	  rm -f $@-t $@ \
-	    && (sed -e '/^#/d' 						\
-		    -e "s/^\[.*\] +//" 					\
-		    -e '/^[ 	]*$$/d' 				\
-		    -e "s@.*@	$$posrcprefix& \\\\@" < $(srcdir)/$@.in	\
-		| sed -e '$$s/\\$$//') > $@-t \
+	    && (sed -e '/^#/d' 					\
+		    -e 's/^[[].*] *//' 				\
+		    -e '/^[ 	]*$$/d' 			\
+		    -e "s@^@	$$posrcprefix@" $(srcdir)/$@.in	\
+		| sed -e '$$!s/$$/ \\/') > $@-t \
 	    && chmod a-w $@-t \
 	    && mv $@-t $@ )
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
@@ -1,10 +1,10 @@
 [encoding: UTF-8]
-data/GNOME_MailNotification_Automation.server.in.in
+data/GNOME_MailNotification.server.in.in
+data/GNOME_MailNotification_Evolution.server.in
 data/mail-notification-properties.desktop.in
 data/mail-notification.desktop.in
 data/mail-notification.schemas.in
 data/mail-notification.soundlist.in
-src/MNAutomation.idl
 src/egg-editable-toolbar.c
 src/egg-editable-toolbar.h
 src/egg-toolbar-editor.c
@@ -15,6 +15,7 @@ src/eggtrayicon.c
 src/eggtrayicon.h
 src/mn-about-dialog.gob
 src/mn-auth-combo-box.gob
+src/mn-authenticated-mailbox-properties.gob
 src/mn-authenticated-mailbox.gob
 src/mn-autodetect-mailbox-properties.gob
 src/mn-automation.gob
@@ -23,67 +24,55 @@ src/mn-client-session.c
 src/mn-client-session.h
 src/mn-conf.c
 src/mn-conf.h
+src/mn-custom-vfs-mailbox.gob
+src/mn-evolution-folder-tree-control.c
+src/mn-evolution-mailbox-properties.gob
+src/mn-evolution-mailbox.gob
+src/mn-evolution-plugin.c
 src/mn-gmail-mailbox-properties.gob
 src/mn-gmail-mailbox.gob
 src/mn-gmime-stream-vfs.gob
-src/mn-icu.c
-src/mn-icu.h
 src/mn-imap-mailbox-properties.gob
 src/mn-imap-mailbox.gob
 src/mn-mail-icon.gob
-src/mn-mailbox-properties-dialog.c
-src/mn-mailbox-properties-dialog.h
-src/mn-mailbox-properties-util.c
-src/mn-mailbox-properties-util.h
-src/mn-mailbox-properties.c
-src/mn-mailbox-properties.h
+src/mn-mailbox-properties-dialog.gob
 src/mn-mailbox-view.gob
 src/mn-mailbox.gob
 src/mn-mailboxes.gob
-src/mn-maildir-mailbox.gob
-src/mn-main-window.c
-src/mn-main-window.h
+src/mn-maildir-mailbox-backend.gob
+src/mn-main-window.gob
 src/mn-main.c
-src/mn-mbox-mailbox.gob
+src/mn-mbox-mailbox-backend.gob
 src/mn-md5.c
 src/mn-md5.h
 src/mn-message-mime.c
 src/mn-message-mime.h
 src/mn-message-view.gob
 src/mn-message.gob
-src/mn-mh-mailbox.gob
-src/mn-pending-mailbox.gob
+src/mn-mh-mailbox-backend.gob
 src/mn-pi-mailbox-properties.gob
+src/mn-pi-mailbox.gob
 src/mn-pop3-mailbox-properties.gob
 src/mn-pop3-mailbox.gob
-src/mn-properties-dialog.c
-src/mn-properties-dialog.h
+src/mn-properties-dialog.gob
 src/mn-sasl.c
 src/mn-sasl.h
-src/mn-sgml-ref.c
-src/mn-sgml-ref.h
 src/mn-shell.gob
-src/mn-soup.c
-src/mn-soup.h
 src/mn-ssl.c
 src/mn-ssl.h
 src/mn-stock.c
 src/mn-stock.h
-src/mn-summary-popup.c
-src/mn-summary-popup.h
-src/mn-sylpheed-mailbox.gob
-src/mn-system-mailbox-properties.gob
+src/mn-sylpheed-mailbox-backend.gob
+src/mn-system-vfs-mailbox-properties.gob
+src/mn-system-vfs-mailbox.gob
 src/mn-tooltips.gob
-src/mn-unsupported-mailbox.gob
-src/mn-uri.gob
 src/mn-util.c
 src/mn-util.h
+src/mn-vfs-mailbox-backend.gob
+src/mn-vfs-mailbox.gob
 src/mn-vfs.c
 src/mn-vfs.h
-ui/authentication.glade
-ui/edit-toolbars.glade
-ui/mailbox-properties.glade
-ui/main.glade
-ui/properties.glade
-ui/summary-popup.glade
-ui/welcome.glade
+ui/edit-toolbars-dialog.glade
+ui/mail-summary-popup.glade
+ui/mailbox-properties-dialog.glade
+ui/properties-dialog.glade
diff --git a/po/bg.gmo b/po/bg.gmo
Binary files differ.
diff --git a/po/bg.po b/po/bg.po
@@ -1,5 +1,5 @@
 # Bulgarian translations for mail-notification.
-# Copyright (C) 2003, 2004 Jean-Yves Lefort.
+# Copyright (C) 2003-2005 Jean-Yves Lefort.
 #
 # This file is distributed under the same license as the
 # mail-notification package.
@@ -10,14 +10,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnome in bulgarian 0.6.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2004-09-09 01:43+0200\n"
 "PO-Revision-Date: 2004-10-05 16:13+0200\n"
 "Last-Translator: Vladimir \"Kaladan\" Petkov <vpetkov@i-space.org>\n"
 "Language-Team: Bulgarian <bg@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
 
 #: data/GNOME_MailNotification_Automation.server.in.in.h:1
 msgid "Mail Notification automation"
@@ -27,14 +27,14 @@ msgstr "Автоматизиране на известяването за пощ
 msgid "Mail Notification automation factory"
 msgstr "Фабрика за автоматизирането на известяването за поща"
 
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: data/mail-notification-properties.desktop.in.h:1
 msgid "Configure Mail Notification"
 msgstr "Настройване на известяването за поща"
 
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:38
+#: src/mn-mail-icon.gob:160 src/mn-main.c:221
 msgid "Mail Notification"
 msgstr "Известяване за поща"
 
@@ -43,336 +43,110 @@ msgid "Get notified when new mail arrives"
 msgstr "Ще бъдете известяван за пристигането на нова поща"
 
 #: data/mail-notification.schemas.in.h:1
-msgid "Automatically close the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
 msgstr "Мигане при грешки"
 
-#: data/mail-notification.schemas.in.h:3
+#: data/mail-notification.schemas.in.h:2
 msgid "Delay between mail checks (minutes part)."
 msgstr "Период между проверката за поща (минути)."
 
-#: data/mail-notification.schemas.in.h:4
+#: data/mail-notification.schemas.in.h:3
 msgid "Delay between mail checks (seconds part)."
 msgstr "Период между проверките за поща (секунди)."
 
-#: data/mail-notification.schemas.in.h:5
-msgid "Display mail summary in tooltip"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:6
-msgid "Do not show the immediate notification error dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:7
-#, fuzzy
-msgid "Double-click action"
+#: data/mail-notification.schemas.in.h:4
+msgid "Double-clicked command"
 msgstr "Команда при двойна натискане"
 
-#: data/mail-notification.schemas.in.h:8
-msgid "Enable mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:9
+#: data/mail-notification.schemas.in.h:5
 msgid "Fingerprints of trusted X509 certificates"
 msgstr "Пръстови отпечатъци на проверени X509 сертификати"
 
-#: data/mail-notification.schemas.in.h:10
+#: data/mail-notification.schemas.in.h:6
 msgid "Has already been run"
 msgstr "Вече е стартиран"
 
-#: data/mail-notification.schemas.in.h:11
-#, fuzzy
-msgid "Height of edit toolbars dialog"
-msgstr "Височина на диалоговия прозорец за настройките"
-
-#: data/mail-notification.schemas.in.h:12
-msgid "Height of main window"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:13
+#: data/mail-notification.schemas.in.h:7
 msgid "Height of properties dialog"
 msgstr "Височина на диалоговия прозорец за настройките"
 
-#: data/mail-notification.schemas.in.h:14
-#, fuzzy
-msgid "Mail read command"
-msgstr "Нова команда за поща"
-
-#: data/mail-notification.schemas.in.h:15
-#, fuzzy
-msgid "Mail reader command"
-msgstr "Нова команда за поща"
-
-#: data/mail-notification.schemas.in.h:16
-msgid "Mail summary popup contents font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:17
-msgid "Mail summary popup fonts aspect source"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:18
-msgid "Mail summary popup horizontal offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:19
-msgid "Mail summary popup position"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:20
-msgid "Mail summary popup title font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:21
-msgid "Mail summary popup vertical offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:22
-#, fuzzy
-msgid "Mailbox list"
+#: data/mail-notification.schemas.in.h:8
+msgid "Mailboxes list"
 msgstr "Списък на пощенските кутии"
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:9
 msgid "Minutes between mail checks"
 msgstr "Минути между проверките"
 
-#: data/mail-notification.schemas.in.h:24
-msgid "Minutes to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:10
 msgid "New mail command"
 msgstr "Нова команда за поща"
 
-#: data/mail-notification.schemas.in.h:26
-msgid "Only display recent mail in mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:27
-#, fuzzy
-msgid "Run a command when all mail is read"
-msgstr "Стартиране на команда при пристигането на нова поща"
-
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:11
 msgid "Run a command when new mail arrives"
 msgstr "Стартиране на команда при пристигането на нова поща"
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:12
+msgid "Run a command when the icon is double-clicked"
+msgstr "Стартиране на команда при двойно натискане на иконата"
+
+#: data/mail-notification.schemas.in.h:13
 msgid "Seconds between mail checks"
 msgstr "Секунди между проверките за поща"
 
-#: data/mail-notification.schemas.in.h:30
-msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:31
-#, fuzzy
-msgid "Set a mail reader"
-msgstr "Избор на файл или папка"
-
-#: data/mail-notification.schemas.in.h:32
-msgid ""
-"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:33
-#, fuzzy
-msgid ""
-"The amount of time to wait before closing the mail summary popup (minutes "
-"part)."
-msgstr "Времевият интервал за изчакване между проверките за нова поща"
-
-#: data/mail-notification.schemas.in.h:34
-#, fuzzy
-msgid ""
-"The amount of time to wait before closing the mail summary popup (seconds "
-"part)."
-msgstr "Времевият интервал за изчакване между проверките за нова поща"
-
-#: data/mail-notification.schemas.in.h:35
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:36
-#, fuzzy
-msgid "The command to run to launch the mail reader."
-msgstr "Командата, която да се стартира при пристигането на нова поща."
-
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
-msgid "The command to run when all mail is read."
-msgstr "Командата, която да се стартира при пристигането на нова поща."
-
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:14
 msgid "The command to run when new mail arrives."
 msgstr "Командата, която да се стартира при пристигането на нова поща."
 
-#: data/mail-notification.schemas.in.h:39
-msgid "The custom font to use for the contents of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:40
-msgid "The custom font to use for the title of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
-msgid "The height of the edit toolbars dialog in pixels."
-msgstr "Височината в пиксели на диалоговия прозорец за настройките."
-
-#: data/mail-notification.schemas.in.h:42
-#, fuzzy
-msgid "The height of the main window in pixels."
-msgstr "Височината в пиксели на диалоговия прозорец за настройките."
+#: data/mail-notification.schemas.in.h:15
+msgid "The command to run when the icon is double-clicked."
+msgstr "Командата, която да се стартира при двойно натискане на иконата - писмо."
 
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:16
 msgid "The height of the properties dialog in pixels."
 msgstr "Височината в пиксели на диалоговия прозорец за настройките."
 
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:17
 msgid "The list of mailboxes to monitor."
 msgstr "Списъкът на пощенските кутии за следене."
 
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:18
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:19
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
-"Списъкът на проверените сертификати тип X509, представени от техните "
-"пръстови отпечатъци в MD5 формат."
-
-#: data/mail-notification.schemas.in.h:47
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:48
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:49
-msgid ""
-"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
-"\"bottom-left\" or \"bottom-right\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:50
-msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:51
-#, fuzzy
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
-
-#: data/mail-notification.schemas.in.h:52
-#, fuzzy
-msgid "The width of the main window in pixels."
-msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
+"Списъкът на проверените сертификати тип X509, представени от техните пръстови отпечатъци в MD5 формат."
 
-#: data/mail-notification.schemas.in.h:53
+#: data/mail-notification.schemas.in.h:20
 msgid "The width of the properties dialog in pixels."
 msgstr "Ширината на диалоговия прозорец за настройките в пиксели."
 
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
+#: data/mail-notification.schemas.in.h:21
 msgid "Trusted servers list"
 msgstr "Списък на проверените сървъри"
 
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:58
+#: data/mail-notification.schemas.in.h:22
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Дали известяването за поща вече е стартирано или не."
 
-#: data/mail-notification.schemas.in.h:59
+#: data/mail-notification.schemas.in.h:23
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Дали иконата за състоянието да мига при грешки или не"
 
-#: data/mail-notification.schemas.in.h:60
-#, fuzzy
-msgid "Whether the statusbar should be visible or not."
-msgstr "Дали иконата за състоянието да мига при грешки или не"
-
-#: data/mail-notification.schemas.in.h:61
-#, fuzzy
-msgid "Whether the toolbars should be visible or not."
-msgstr "Дали иконата за състоянието да мига при грешки или не"
-
-#: data/mail-notification.schemas.in.h:62
-#, fuzzy
-msgid "Whether to automatically close the mail summary popup or not."
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: data/mail-notification.schemas.in.h:63
-msgid "Whether to display the mail summary in the status icon tooltip or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:64
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: data/mail-notification.schemas.in.h:65
-msgid ""
-"Whether to hide previously displayed mail in the mail summary popup or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:66
-msgid ""
-"Whether to prevent the immediate notification error dialog from being "
-"displayed or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:67
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not."
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: data/mail-notification.schemas.in.h:68
+#: data/mail-notification.schemas.in.h:24
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: data/mail-notification.schemas.in.h:69
-#, fuzzy
-msgid "Whether to set a mail reader or not."
-msgstr "Дали известяването за поща вече е стартирано или не."
-
-#: data/mail-notification.schemas.in.h:70
-#, fuzzy
-msgid "Width of edit toolbars dialog"
-msgstr "Ширина на диалоговия прозорец за настройките"
-
-#: data/mail-notification.schemas.in.h:71
-msgid "Width of main window"
-msgstr ""
+#: data/mail-notification.schemas.in.h:25
+msgid "Whether to run a command when the icon is double-clicked or not."
+msgstr "Дали да се стартира команда при натискането на иконата-писмо или не"
 
-#: data/mail-notification.schemas.in.h:72
+#: data/mail-notification.schemas.in.h:26
 msgid "Width of properties dialog"
 msgstr "Ширина на диалоговия прозорец за настройките"
 
@@ -380,20 +154,6 @@ msgstr "Ширина на диалоговия прозорец за настр
 msgid "New Mail"
 msgstr "Нова поща"
 
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-
 #: src/eggtrayicon.c:109
 msgid "Orientation"
 msgstr "Ориентация"
@@ -402,141 +162,131 @@ msgstr "Ориентация"
 msgid "The orientation of the tray."
 msgstr ""
 
-#: src/mn-about-dialog.gob:42
+#: src/mn-about-dialog.gob:41
 msgid "A Mail Notification Icon"
 msgstr "Уведомяване за поща"
 
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
+#: src/mn-about-dialog.gob:44
 msgid "Jean-Yves Lefort <jylefort@brutele.be>"
 msgstr "Vladimir Petkov <vpetkov@i-space.org>"
 
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: src/mn-auth-combo-box.gob:99 src/mn-autodetect-mailbox-properties.gob:35
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">автоматично засичане</span>"
 
-#: src/mn-authenticated-mailbox.gob:85
-#, c-format
-msgid ""
-"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
-"\n"
-"Please re-enter your password."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:86
-#, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: src/mn-autodetect-mailbox-properties.gob:66
 msgid "_Location:"
 msgstr "_Местоположение:"
 
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: src/mn-autodetect-mailbox-properties.gob:72
 msgid "_Browse..."
 msgstr "_Разглеждане..."
 
-#: src/mn-autodetect-mailbox-properties.gob:81
+#: src/mn-autodetect-mailbox-properties.gob:79
 msgid "The URI of the mailbox"
 msgstr "Адресът на пощенската кутия"
 
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: src/mn-autodetect-mailbox-properties.gob:116
 msgid "Select a File or Folder"
 msgstr "Избор на файл или папка"
 
-#: src/mn-blinking-image.gob:32
+#: src/mn-blinking-image.gob:30
 msgid "Whether the image is blinking or not"
 msgstr "Дали изображението да мига или не"
 
-#: src/mn-client-session.c:220
+#: src/mn-client-session.c:196 src/mn-client-session.c:203
+#, c-format
+msgid "unable to read from server: %s"
+msgstr "неуспех при четенето от сървър: %s"
+
+#: src/mn-client-session.c:201
+msgid "unable to read from server: EOF"
+msgstr "неуспех при четенето от сървър: EOF"
+
+#: src/mn-client-session.c:213
+#, c-format
+msgid "unable to decode data using SASL: %s"
+msgstr ""
+
+#: src/mn-client-session.c:284
 #, c-format
 msgid "resolving %s"
 msgstr "търсене на %s"
 
-#: src/mn-client-session.c:230
+#: src/mn-client-session.c:294
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr "неуспех при намирането на %s: %s"
 
-#: src/mn-client-session.c:267
+#: src/mn-client-session.c:331
 #, c-format
 msgid "%s: unsupported address family"
 msgstr ""
 
-#: src/mn-client-session.c:274
+#: src/mn-client-session.c:338
 #, c-format
 msgid "%s: unable to create socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:278
+#: src/mn-client-session.c:342
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr "свързване с %s (%s) порт %i"
 
-#: src/mn-client-session.c:281
+#: src/mn-client-session.c:345
 #, c-format
 msgid "unable to connect: %s"
 msgstr "неуспех при свързването: %s"
 
-#: src/mn-client-session.c:286
+#: src/mn-client-session.c:350
 msgid "connected successfully"
 msgstr "успешно свързване"
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: src/mn-client-session.c:356
 #, c-format
 msgid "unable to connect to %s"
 msgstr "неуспех при свързването с %s"
 
-#: src/mn-client-session.c:308
+#: src/mn-client-session.c:372
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr ""
 
-#: src/mn-client-session.c:316
+#: src/mn-client-session.c:380
 #, c-format
 msgid "unable to create a SSL/TLS object: %s"
 msgstr ""
 
-#: src/mn-client-session.c:322
+#: src/mn-client-session.c:386
 #, c-format
 msgid "unable to set the SSL/TLS file descriptor: %s"
 msgstr ""
 
-#: src/mn-client-session.c:328
+#: src/mn-client-session.c:392
 #, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
 msgstr ""
 
-#: src/mn-client-session.c:334
+#: src/mn-client-session.c:398
 msgid "untrusted server"
 msgstr "непроверен сървър"
 
-#: src/mn-client-session.c:338
+#: src/mn-client-session.c:402
 #, c-format
 msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
 msgstr ""
 
-#: src/mn-client-session.c:385
+#: src/mn-client-session.c:449
 #, c-format
 msgid "%s, fingerprint: %s"
 msgstr "%s, пръстов отпечатък: %s"
 
-#: src/mn-client-session.c:414
+#: src/mn-client-session.c:478
 msgid "missing certificate"
 msgstr "липсващ сертификат"
 
-#: src/mn-client-session.c:440
+#: src/mn-client-session.c:504
 #, c-format
 msgid ""
 "Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -548,380 +298,281 @@ msgid ""
 "shown again."
 msgstr ""
 
-#: src/mn-client-session.c:457
+#: src/mn-client-session.c:521
 msgid "Connect to untrusted server?"
 msgstr "Свързване с непроверен сървър?"
 
-#: src/mn-client-session.c:462
+#: src/mn-client-session.c:526
 msgid "Co_nnect"
 msgstr "Свъ_рзване"
 
-#: src/mn-client-session.c:518
+#: src/mn-client-session.c:584
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr ""
 
-#: src/mn-client-session.c:544
+#: src/mn-client-session.c:610
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr "неуспех при преглед на отговор \"%s\""
 
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
-#, c-format
-msgid "unable to read from server: %s"
-msgstr "неуспех при четенето от сървър: %s"
-
-#: src/mn-client-session.c:597
-msgid "unable to read from server: EOF"
-msgstr "неуспех при четенето от сървър: EOF"
-
-#: src/mn-client-session.c:609
-#, c-format
-msgid "unable to decode data using SASL: %s"
-msgstr ""
-
-#: src/mn-client-session.c:743
+#: src/mn-client-session.c:657
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr ""
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: src/mn-client-session.c:688 src/mn-client-session.c:695
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "неуспех при записването на сървър: %s"
 
-#: src/mn-client-session.c:779
+#: src/mn-client-session.c:693
 msgid "unable to write to server: EOF"
 msgstr "неуспех при записването на сървър: EOF"
 
-#: src/mn-client-session.c:811
+#: src/mn-client-session.c:725
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr ""
 
-#: src/mn-client-session.c:922
+#: src/mn-client-session.c:828
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr ""
 
-#: src/mn-client-session.c:931
+#: src/mn-client-session.c:837
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:937
+#: src/mn-client-session.c:843
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr ""
 
-#: src/mn-client-session.c:971
-#, fuzzy, c-format
-msgid "unable to set SASL security properties: %s"
-msgstr "неуспех при записването на сървър: %s"
+#: src/mn-client-session.c:877
+#, c-format
+msgid "warning: unable to set SASL security properties: %s"
+msgstr ""
 
-#: src/mn-client-session.c:995
+#: src/mn-client-session.c:916
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
 
-#: src/mn-client-session.c:1014
+#: src/mn-client-session.c:920
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr ""
 
-#: src/mn-client-session.c:1018
+#: src/mn-client-session.c:924
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr ""
 
-#: src/mn-client-session.c:1055
+#: src/mn-client-session.c:974
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr ""
 
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:978
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr ""
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: src/mn-client-session.c:983
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr ""
 
-#: src/mn-client-session.c:1080
+#: src/mn-client-session.c:986
 msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
 msgstr ""
 
-#: src/mn-client-session.c:1094
+#: src/mn-client-session.c:1000
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
 msgstr ""
 
-#: src/mn-client-session.c:1119
+#: src/mn-client-session.c:1023
 #, 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:1124
+#: src/mn-client-session.c:1028
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr ""
 
-#: src/mn-client-session.c:1130
+#: src/mn-client-session.c:1034
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr ""
 
-#: src/mn-conf.c:238
-#, fuzzy
-msgid "A directory creation error has occurred"
-msgstr "Получи се грешка при наблюдението"
-
-#: src/mn-conf.c:239
-#, fuzzy, c-format
-msgid "Unable to create directory \"%s\": %s."
-msgstr "Неуспех при създаването на нишка: %s."
-
-#: src/mn-conf.c:313
+#: src/mn-conf.c:109
 #, c-format
 msgid "recursively unsetting %s"
 msgstr ""
 
-#: src/mn-conf.c:317
+#: src/mn-conf.c:113
 msgid "syncing the GConf database"
 msgstr "синхронизиране на базата данни на GConf"
 
-#: src/mn-conf.c:320
+#: src/mn-conf.c:116
 msgid "completed"
 msgstr "завършено"
 
-#: src/mn-gmail-mailbox-properties.gob:76
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr "Вашето Gmail потребителско име"
 
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:164
-#, fuzzy, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "неуспех при преглед на отговор \"%s\""
+#: src/mn-gmail-mailbox-properties.gob:78
+msgid "Your Gmail password"
+msgstr "Вашата парола в Gmail"
 
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr ""
+#: src/mn-gmail-mailbox.gob:220
+msgid "logging in"
+msgstr "влизане"
 
-#: src/mn-gmail-mailbox.gob:224
+#: src/mn-gmail-mailbox.gob:239 src/mn-gmail-mailbox.gob:279
+#: src/mn-gmail-mailbox.gob:313 src/mn-gmail-mailbox.gob:418
 #, c-format
 msgid "unable to transfer data: %s"
 msgstr "неуспех при пренасянето на данни: %s"
 
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "влизане"
-
-#: src/mn-gmail-mailbox.gob:423
+#: src/mn-gmail-mailbox.gob:265 src/mn-gmail-mailbox.gob:299
+#: src/mn-gmail-mailbox.gob:334
 msgid "login failed"
 msgstr "влизането е неуспешно"
 
-#: src/mn-gmail-mailbox.gob:496
+#: src/mn-gmail-mailbox.gob:328
+msgid "successfully logged in"
+msgstr "успешно влязъл в"
+
+#: src/mn-gmail-mailbox.gob:406
 msgid "searching for unread mail"
 msgstr "търсене за непрочетена поща"
 
-#: src/mn-gmail-mailbox.gob:527
-#, fuzzy
-msgid "unable to initialize the ICU library"
-msgstr "Неуспех при инициализирането на библиотеката GnomeVFS."
-
-#: src/mn-gmail-mailbox.gob:554
+#: src/mn-gmail-mailbox.gob:427
 msgid "unable to parse Gmail data"
 msgstr "неуспех при прегледа на данни от Gmail"
 
-#: src/mn-gmail-mailbox.gob:891
-#, fuzzy, c-format
-msgid "unable to open calendar: %s"
-msgstr "неуспех при отварянето на папката: %s"
-
-#: src/mn-gmail-mailbox.gob:899
-#, fuzzy, c-format
-msgid "unable to set calendar time: %s"
-msgstr "неуспех при затварянето на папката: %s"
-
-#: src/mn-gmail-mailbox.gob:968
-#, fuzzy, c-format
-msgid "unable to get calendar time: %s"
-msgstr "неуспех при пренасянето на данни: %s"
-
-#: src/mn-gmime-stream-vfs.gob:49
-#, fuzzy, c-format
-msgid "unable to read %s: %s"
-msgstr "неуспех при намирането на %s: %s"
-
-#: src/mn-gmime-stream-vfs.gob:51
-#, fuzzy, c-format
-msgid "unable to write to %s: %s"
-msgstr "неуспех при записването на сървър: %s"
-
-#: src/mn-gmime-stream-vfs.gob:53
-#, fuzzy, c-format
-msgid "unable to seek in %s: %s"
-msgstr "неуспех при намирането на %s: %s"
-
-#: src/mn-gmime-stream-vfs.gob:55
-#, fuzzy, c-format
-msgid "unable to tell position of %s: %s"
-msgstr "неуспех при следенето %s: %s"
-
-#: src/mn-gmime-stream-vfs.gob:57
-#, fuzzy, c-format
-msgid "unable to close %s: %s"
-msgstr "неуспех при затварянето на папката: %s"
-
-#: src/mn-imap-mailbox-properties.gob:95
+#: src/mn-imap-mailbox-properties.gob:92
 msgid "Mailbox:"
 msgstr "Пощенска кутия:"
 
-#: src/mn-imap-mailbox-properties.gob:99
+#: src/mn-imap-mailbox-properties.gob:96
 msgid "in_box"
 msgstr "ку_тия"
 
-#: src/mn-imap-mailbox-properties.gob:110
+#: src/mn-imap-mailbox-properties.gob:107
 msgid "oth_er:"
 msgstr "др_уги"
 
 #: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:129
 msgid "The hostname or IP address of the IMAP server"
 msgstr "Хостът или IP адресът на IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:130
+#: src/mn-imap-mailbox-properties.gob:123
 msgid "Your username on the IMAP server"
 msgstr "Потребителското ви име за IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
+#: src/mn-imap-mailbox-properties.gob:124
+msgid "Your password on the IMAP server"
+msgstr "Паролата ви за IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
+#: src/mn-imap-mailbox-properties.gob:125
+#: src/mn-imap-mailbox-properties.gob:126
 msgid "The port number of the IMAP server"
 msgstr "Номера на порта на IMAP сървъра"
 
-#: src/mn-imap-mailbox-properties.gob:134
+#: src/mn-imap-mailbox-properties.gob:127
 msgid "The mailbox name"
 msgstr "Име на пощенската кутия"
 
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
+#: src/mn-imap-mailbox.gob:112 src/mn-pop3-mailbox.gob:125
 msgid "SSL/TLS support has not been compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:236
+#: src/mn-imap-mailbox.gob:179
 msgid "server did not send capabilities"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:408
+#: src/mn-imap-mailbox.gob:292
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:409
+#: src/mn-imap-mailbox.gob:293
 msgid "unable to login"
 msgstr "неуспех при влизането"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:542
-#, fuzzy
-msgid "server did not send search results"
-msgstr "сървърът не изпраща състоянието"
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:617
-#, fuzzy
-msgid "server did not send all the messages we requested"
+#: src/mn-imap-mailbox.gob:361
+msgid "server did not send status"
 msgstr "сървърът не изпраща състоянието"
 
-#: src/mn-imap-mailbox.gob:671
-#, fuzzy
-msgid "unable to fetch message"
-msgstr "неуспех при свързването: %s"
-
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: src/mn-imap-mailbox.gob:583 src/mn-pop3-mailbox.gob:744
 msgid "unknown server error"
 msgstr "неизвестна грешка в сървъра"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: src/mn-imap-mailbox.gob:656 src/mn-pop3-mailbox.gob:210
 msgid "server does not support in-band SSL/TLS"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: src/mn-imap-mailbox.gob:675 src/mn-pop3-mailbox.gob:674
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: src/mn-imap-mailbox.gob:683 src/mn-pop3-mailbox.gob:686
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "неизвестен механизъм за идентификация \"%s\""
 
-#: src/mn-imap-mailbox.gob:1160
+#: src/mn-imap-mailbox.gob:701
 msgid "falling back to IMAP LOGIN authentication"
 msgstr ""
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: src/mn-imap-mailbox.gob:705 src/mn-pop3-mailbox.gob:720
 msgid "authentication failed"
 msgstr "неуспешна идентификация"
 
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
-
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-msgid "_Mail Reader"
-msgstr ""
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: src/mn-mail-icon.gob:81
 msgid "_Update"
 msgstr "_Актуализиране"
 
-#: src/mn-mail-icon.gob:99
+#: src/mn-mail-icon.gob:87
 msgid "R_emove From Notification Area"
 msgstr "Пре_махване от зоната за известяване"
 
-#: src/mn-mailbox-properties-dialog.c:156
+#: src/mn-mail-icon.gob:172
+#, c-format
+msgid "_Run %s"
+msgstr "_Стартиране %s"
+
+#: src/mn-mail-icon.gob:173
+msgid "_Run Default Action"
+msgstr "_Стартиране на стандартното действие"
+
+#: src/mn-mailbox-properties-dialog.c:109
 msgid "Add a Mailbox"
 msgstr "Добавяне на пощенска кутия"
 
-#: src/mn-mailbox-properties-dialog.c:325
+#: src/mn-mailbox-properties-dialog.c:331
 #, c-format
 msgid "%s Properties"
 msgstr "%s Настройки"
 
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
+#: src/mn-mailbox-properties-util.c:77
 msgid "_Username:"
 msgstr "_Име:"
 
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
+#: src/mn-mailbox-properties-util.c:87
 msgid "_Password:"
 msgstr "_Парола:"
 
@@ -961,600 +612,333 @@ msgstr "Завършено"
 msgid "Whether the properties are completely filled or not"
 msgstr ""
 
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: src/mn-mailbox-view.gob:254
 msgid "Mailbox"
 msgstr "Пощенска кутия"
 
-#. format column
-#: src/mn-mailbox-view.gob:287
+#: src/mn-mailbox-view.gob:268
 msgid "Format"
 msgstr "Формат"
 
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:543
 msgid "Unable to add mailbox"
 msgstr "Неуспех при добавянето на пощенската кутия"
 
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:543
 msgid "The mailbox is already in the list."
 msgstr "Пощенската кутия е вече в списъка."
 
-#: src/mn-mailbox.gob:131
+#: src/mn-mailbox.gob:122
 msgid "The mailbox URI"
 msgstr "Адресът на пощенската кутия"
 
-#: src/mn-mailbox.gob:142
+#: src/mn-mailbox.gob:133
 msgid "The mailbox human-readable name"
 msgstr "Името на пощенската кутия във формат разбираем от хора"
 
-#: src/mn-mailbox.gob:146
-#, fuzzy
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Дали изображението да мига или не"
+#: src/mn-mailbox.gob:137
+msgid "Whether the mailbox has to be manually checked or not"
+msgstr ""
 
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
+#: src/mn-mailbox.gob:142
+msgid "Whether the mailbox has new mail or not"
 msgstr ""
 
-#: src/mn-mailbox.gob:206
+#: src/mn-mailbox.gob:147
 msgid "The mailbox error, if any"
 msgstr "Грешката в пощенската кутия, ако има"
 
-#: src/mn-mailbox.gob:305
+#: src/mn-mailbox.gob:251
 msgid "does not exist"
 msgstr "не съществува"
 
-#: src/mn-mailbox.gob:337
+#: src/mn-mailbox.gob:287
 msgid "unknown format"
 msgstr "непознат формат"
 
-#: src/mn-mailbox.gob:403
-#, fuzzy, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr ""
-"Известяването за поща не можа да разреши моменталното известяване за една "
-"или повече пощенски кутии. %s"
+#: src/mn-mailbox.gob:355
+#, c-format
+msgid "unable to monitor %s: %s"
+msgstr "неуспех при следенето %s: %s"
 
-#: src/mn-mailbox.gob:421
+#: src/mn-mailbox.gob:369
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
 "configurable from the Properties Dialog)."
-msgid_plural ""
 "As a fallback, they will be checked every %i seconds (this delay is "
 "configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
 
-#: src/mn-mailbox.gob:432
+#: src/mn-mailbox.gob:380
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
 "configurable from the Properties Dialog)."
-msgid_plural ""
 "As a fallback, they will be checked every %i minutes (this delay is "
 "configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
 
-#: src/mn-mailbox.gob:443
+#: src/mn-mailbox.gob:391
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
 "delay is configurable from the Properties Dialog)."
-msgid_plural ""
 "As a fallback, they will be checked approximately every %i minutes (this "
 "delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
 
-#: src/mn-mailbox.gob:459
+#: src/mn-mailbox.gob:405
 msgid "A monitoring error has occurred"
 msgstr "Получи се грешка при наблюдението"
 
-#: src/mn-mailbox.gob:460
+#: src/mn-mailbox.gob:406
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
 "more mailboxes. %s"
 msgstr ""
-"Известяването за поща не можа да разреши моменталното известяване за една "
-"или повече пощенски кутии. %s"
-
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
+"Известяването за поща не можа да разреши моменталното известяване за една или повече пощенски кутии. %s"
 
-#: src/mn-mailboxes.gob:260
+#: src/mn-mailboxes.gob:143
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s е неподдържан: %s"
 
-#: src/mn-mailboxes.gob:290
-#, fuzzy, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] "%s има поща"
-msgstr[1] "%s има поща"
+#: src/mn-mailboxes.gob:170
+#, c-format
+msgid "%s has new mail"
+msgstr "%s има поща"
+
+#: src/mn-mailboxes.gob:170
+#, c-format
+msgid "%s has no new mail"
+msgstr "%s няма нова поща"
 
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:186
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s докладва за грешка: %s"
 
-#: src/mn-maildir-mailbox.gob:112
+#: src/mn-maildir-mailbox.gob:109
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "неуспех при отварянето на папка \"нови\": %s"
 
-#: src/mn-maildir-mailbox.gob:141
+#: src/mn-maildir-mailbox.gob:137
 #, c-format
 msgid "unable to close folder \"new\": %s"
 msgstr "неуспех при отварянето на папка \"нови\": %s"
 
-#: src/mn-maildir-mailbox.gob:144
+#: src/mn-maildir-mailbox.gob:140
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "грешка при четенето на папката \"нови\": %s"
 
-#. Toplevel
-#: src/mn-main-window.c:92
-#, fuzzy
-msgid "_Mail"
-msgstr "Пощенска кутия"
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-msgid "Launch the mail reader"
-msgstr ""
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr "Актуализиране състоянието на пощата"
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-#, fuzzy
-msgid "Quit Mail Notification"
-msgstr "Известяване за поща"
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-msgid "_Contents"
-msgstr ""
-
-#: src/mn-main-window.c:165
-#, fuzzy
-msgid "Display help"
-msgstr "Неуспех при показването на помощта"
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-msgid "Only display the toolbars icons"
-msgstr ""
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, fuzzy, c-format
-msgid "unable to load menus.xml: %s"
-msgstr "грешка при отварянето на пощенската кутия: %s"
-
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr ""
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-main-window.c:540
-#, fuzzy
-msgid "unable to load toolbars.xml"
-msgstr "неуспех при затварянето на папката: %s"
-
-#: src/mn-main.c:99
+#: src/mn-main.c:85
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr ""
 
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
-#: src/mn-main.c:116
+#: src/mn-main.c:103
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Компилирани възможности: %s\n"
 
-#: src/mn-main.c:176
+#: src/mn-main.c:133
 msgid "Enable informational output"
 msgstr "Разрешаване на информационния изход"
 
-#: src/mn-main.c:185
-#, fuzzy
-msgid "List the compiled-in features"
+#: src/mn-main.c:142
+msgid "List compiled-in features and exit"
 msgstr "Изписване на компилираните възможности и излизане"
 
-#: src/mn-main.c:194
-#, fuzzy
-msgid "Display the main window"
-msgstr "Изобразяване на диалоговия прозорец с информацията"
-
-#: src/mn-main.c:203
+#: src/mn-main.c:151
 msgid "Display the properties dialog"
 msgstr "Показване на диалоговия прозорец с настройките"
 
-#: src/mn-main.c:212
+#: src/mn-main.c:160
 msgid "Display the about dialog"
 msgstr "Изобразяване на диалоговия прозорец с информацията"
 
-#: src/mn-main.c:221
-msgid "Close the mail summary popup"
-msgstr ""
+#: src/mn-main.c:169
+msgid "Update the mail status"
+msgstr "Актуализиране състоянието на пощата"
 
-#: src/mn-main.c:239
+#: src/mn-main.c:178
 msgid "Report the mail status"
 msgstr "Докладване за състоянието на пощата"
 
-#: src/mn-main.c:248
-#, fuzzy
-msgid "Unset obsolete GConf configuration"
+#: src/mn-main.c:187
+msgid "Unset obsolete GConf configuration and exit"
 msgstr "Премахване на остарелите настройки в GConf и излизане"
 
 #.
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:284
+#: src/mn-main.c:213
 msgid "multi-threading is not available"
 msgstr "много-нишки не е налично"
 
-#: src/mn-main.c:338
+#: src/mn-main.c:258
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
 msgstr ""
 
-#: src/mn-main.c:344
-#, fuzzy
-msgid "quitting Mail Notification"
-msgstr "Известяване за поща"
-
-#: src/mn-main.c:348
-#, fuzzy
-msgid "Mail Notification is not running"
-msgstr "Известяването за поща вече е стартирано"
-
-#: src/mn-main.c:355
+#: src/mn-main.c:263
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Неуспех при инициализирането на библиотеката GnomeVFS."
 
-#: src/mn-main.c:391
+#: src/mn-main.c:285
 msgid "updating the mail status"
 msgstr "актуализиране състоянието на пощата"
 
-#: src/mn-main.c:409
+#: src/mn-main.c:301
 msgid "Mail Notification is already running"
 msgstr "Известяването за поща вече е стартирано"
 
-#: src/mn-main.c:417
+#: src/mn-main.c:308
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
 msgstr ""
 
-#: src/mn-main.c:421
+#: src/mn-main.c:312
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
 msgstr ""
-"Bonobo не успя да регистрира сървъра за автоматизация. Моля, проверете "
-"инсталацията на известяването за поща."
+"Bonobo не успя да регистрира сървъра за автоматизация. Моля, проверете инсталацията на известяването за поща."
 
-#: src/mn-mbox-mailbox.gob:184
+#: src/mn-mbox-mailbox.gob:171
 #, c-format
-msgid "unable to open mailbox: %s"
-msgstr "грешка при отварянето на пощенската кутия: %s"
+msgid "error while reading mailbox: %s"
+msgstr "грешка при четенето на пощенската кутия: %s"
 
-#: src/mn-message-mime.c:105
-#, fuzzy
-msgid "unable to parse MIME message"
-msgstr "неуспех при преглед на отговор \"%s\""
-
-#: src/mn-message-view.gob:81
-msgid "You have no new mail."
-msgstr "Нямата нова поща."
-
-#: src/mn-message-view.gob:321
-msgid "Unreadable message"
-msgstr ""
-
-#: src/mn-message-view.gob:329
-msgid "From"
-msgstr ""
-
-#: src/mn-message-view.gob:337
-msgid "Subject"
-msgstr ""
-
-#: src/mn-message-view.gob:348
-msgid "Sent"
-msgstr ""
-
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr ""
-
-#: src/mn-message.gob:126
+#: src/mn-mbox-mailbox.gob:179
 #, c-format
-msgid "%i second ago"
-msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:130
-#, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:135
-#, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:140
-#, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:145
-#, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
-msgstr[0] ""
-msgstr[1] ""
+msgid "unable to open mailbox: %s"
+msgstr "грешка при отварянето на пощенската кутия: %s"
 
-#: src/mn-mh-mailbox.gob:147
+#: src/mn-mh-mailbox.gob:122
 #, c-format
 msgid "error while reading .mh_sequences: %s"
 msgstr "грешка при четенето на .mh_sequences: %s"
 
-#: src/mn-mh-mailbox.gob:157
+#: src/mn-mh-mailbox.gob:130
 #, c-format
 msgid "unable to open .mh_sequences: %s"
 msgstr "неуспех при отварянето на .mh_sequences: %s"
 
-#: src/mn-pending-mailbox.gob:35
+#: src/mn-pending-mailbox.gob:33
 msgid "detecting"
 msgstr "засичане"
 
-#: src/mn-pi-mailbox-properties.gob:75
+#: src/mn-pi-mailbox-properties.gob:74
 msgid "_Hostname:"
 msgstr "_Хост:"
 
-#: src/mn-pi-mailbox-properties.gob:93
+#: src/mn-pi-mailbox-properties.gob:92
 msgid "_Details"
 msgstr "_Подробности"
 
-#: src/mn-pi-mailbox-properties.gob:105
+#: src/mn-pi-mailbox-properties.gob:104
 msgid "sta_ndard"
 msgstr "стан_дартно"
 
-#: src/mn-pi-mailbox-properties.gob:115
+#: src/mn-pi-mailbox-properties.gob:114
 msgid "_in-band SSL/TLS"
 msgstr "_in-band SSL/TLS"
 
-#: src/mn-pi-mailbox-properties.gob:125
+#: src/mn-pi-mailbox-properties.gob:124
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS на отделен по_рт"
 
-#: src/mn-pop3-mailbox-properties.gob:86
+#: src/mn-pop3-mailbox-properties.gob:84
 msgid "The hostname or IP address of the POP3 server"
 msgstr "Хостът или IP адресът на POP3 сървъра"
 
-#: src/mn-pop3-mailbox-properties.gob:87
+#: src/mn-pop3-mailbox-properties.gob:85
 msgid "Your username on the POP3 server"
 msgstr "Потребителското име в POP3 сървъра"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
+#: src/mn-pop3-mailbox-properties.gob:86
+msgid "Your password on the POP3 server"
+msgstr "Паролата ви в POP3 сървъра"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
+#: src/mn-pop3-mailbox-properties.gob:87 src/mn-pop3-mailbox-properties.gob:88
 msgid "The port number of the POP3 server"
 msgstr "Номера на порта на POP3 сървъра"
 
-#: src/mn-pop3-mailbox.gob:266
+#: src/mn-pop3-mailbox.gob:256
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:569
-#, fuzzy
-msgid "unknown error"
-msgstr "неизвестна грешка в сървъра"
-
-#: src/mn-pop3-mailbox.gob:656
+#: src/mn-pop3-mailbox.gob:523
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
-msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
-msgstr[0] ""
-msgstr[1] ""
+msgstr ""
 
-#: src/mn-pop3-mailbox.gob:849
+#: src/mn-pop3-mailbox.gob:682
 msgid "server does not support APOP authentication"
 msgstr "Сървърът не поддържа идентификация тип APOP"
 
-#: src/mn-pop3-mailbox.gob:884
+#: src/mn-pop3-mailbox.gob:710
 msgid "falling back to APOP authentication"
 msgstr ""
 
-#: src/mn-pop3-mailbox.gob:889
+#: src/mn-pop3-mailbox.gob:715
 msgid "falling back to USER/PASS authentication"
 msgstr ""
 
-#: src/mn-properties-dialog.c:218
-#, fuzzy
-msgid "top left"
-msgstr "Завършено"
-
-#: src/mn-properties-dialog.c:219
-msgid "top right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:220
-msgid "bottom left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:221
-msgid "bottom right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:323
+#: src/mn-properties.c:151
 msgid "No mailbox selected."
 msgstr "Няма избрана кутия."
 
-#: src/mn-properties-dialog.c:328
-#, fuzzy, c-format
+#: src/mn-properties.c:156
+#, c-format
 msgid "%i mailbox selected."
-msgid_plural "%i mailboxes selected."
-msgstr[0] "%i избрана кутия."
-msgstr[1] "%i избрана кутия."
+msgstr "%i избрана кутия."
 
-#: src/mn-shell.gob:96
-msgid "You have new mail."
-msgstr "Имате поща."
+#: src/mn-shell.gob:204
+msgid "A command error has occurred"
+msgstr "След изпълнението на командата се получи грешка"
 
-#: src/mn-shell.gob:361
-msgid "Mailboxes Having New Mail"
-msgstr ""
+#: src/mn-shell.gob:205
+#, c-format
+msgid "Unable to execute double-clicked command: %s."
+msgstr "Неуспех при стартирането на командата: %s."
 
-#: src/mn-shell.gob:382
-msgid "Errors"
-msgstr ""
+#: src/mn-shell.gob:292
+msgid "The following mailbox has new mail:\n"
+msgstr "Следната пощенска кутия има нова поща:\n"
 
-#: src/mn-shell.gob:403
-#, fuzzy
-msgid "Unsupported Mailboxes"
-msgstr "Системна кутия"
+#: src/mn-shell.gob:296
+msgid "You have no new mail."
+msgstr "Нямата нова поща."
 
-#: src/mn-shell.gob:418
-msgid "Mail Summary"
-msgstr ""
+#: src/mn-shell.gob:299
+msgid "The following mailbox reported an error:\n"
+msgstr "Следната пощенска кутия докладва за грешка:\n"
 
-#: src/mn-soup.c:140
-#, fuzzy, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "неуспех при преглед на отговор \"%s\""
+#: src/mn-shell.gob:304
+msgid "The following mailbox is unsupported:\n"
+msgstr "Следните пощенски кутии не се поддържат:\n"
+
+#: src/mn-shell.gob:320
+msgid "You have new mail."
+msgstr "Имате поща."
+
+#: src/mn-shell.gob:330
+msgid "A command error has occurred in Mail Notification"
+msgstr "Грешка с командите се получи в известяването за поща"
+
+#: src/mn-shell.gob:331
+#, c-format
+msgid "Unable to execute new mail command: %s."
+msgstr "Неуспех при стартирането на нова пощенска команда: %s."
 
 #: src/mn-ssl.c:79
 msgid "unknown SSL/TLS error"
@@ -1564,139 +948,90 @@ msgstr "неизвестна SSL/TLS грешка"
 msgid "Select _All"
 msgstr "Избор на _всички"
 
-#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:113
+#: src/mn-sylpheed-mailbox.gob:93
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "неуспех при отварянето на папката: %s"
 
-#: src/mn-sylpheed-mailbox.gob:147
+#: src/mn-sylpheed-mailbox.gob:127
 #, c-format
 msgid "unable to close folder: %s"
 msgstr "неуспех при затварянето на папката: %s"
 
-#: src/mn-sylpheed-mailbox.gob:150
+#: src/mn-sylpheed-mailbox.gob:130
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "грешка при четенето на папката: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
+#: src/mn-system-mailbox-properties.gob:32 src/mn-uri.gob:391
 msgid "System Mailbox"
 msgstr "Системна кутия"
 
-#: src/mn-system-mailbox-properties.gob:57
+#: src/mn-system-mailbox-properties.gob:55
 #, c-format
 msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-"Системната ви пощенска кутия (<span weight=\"bold\">%s</span>) ще бъде "
-"използвана."
+msgstr "Системната ви пощенска кутия (<span weight=\"bold\">%s</span>) ще бъде използвана."
 
-#: src/mn-system-mailbox-properties.gob:64
+#: src/mn-system-mailbox-properties.gob:62
 msgid ""
 "The location of your system mailbox could not be detected. Please set the "
 "MAIL environment variable."
 msgstr ""
-"Местоположението на Вашата системна пощенска кутия не може да бъде засечено. "
-"Моля, настройте променливата MAIL environment."
+"Местоположението на Вашата системна пощенска кутия не може да бъде засечено. Моля, настройте променливата MAIL environment."
 
-#: src/mn-unsupported-mailbox.gob:33
+#: src/mn-unsupported-mailbox.gob:31
 msgid "The reason why the mailbox is unsupported"
 msgstr "Причината защо пощенската кутия е неподдържана"
 
-#: src/mn-unsupported-mailbox.gob:40
+#: src/mn-unsupported-mailbox.gob:38
 msgid "unsupported"
 msgstr "не е поддържан"
 
-#: src/mn-util.c:245
+#: src/mn-util.c:199
 #, c-format
 msgid "error loading image: %s"
 msgstr "грешка при зареждането на изображение: %s"
 
-#: src/mn-util.c:276
-#, fuzzy, c-format
-msgid "widget \"%s\" not found in interface \"%s\""
+#: src/mn-util.c:237
+#, c-format
+msgid "widget %s not found in interface %s"
 msgstr "уиджета %s не е намерен в интерфейса %s"
 
-#: src/mn-util.c:390
+#: src/mn-util.c:355
 msgid "received an invalid URI list"
 msgstr "получен е некоректен списък с адреси"
 
-#: src/mn-util.c:426
+#: src/mn-util.c:391
 msgid "received an invalid Mozilla URL"
 msgstr "получен е некоректен Mozilla адрес"
 
-#: src/mn-util.c:519
+#: src/mn-util.c:484
 msgid "Unable to display help"
 msgstr "Неуспех при показването на помощта"
 
-#: src/mn-util.c:533
+#: src/mn-util.c:498
 #, c-format
 msgid "Unable to create a thread: %s."
 msgstr "Неуспех при създаването на нишка: %s."
 
-#: src/mn-util.c:626
-msgid "_Do not show this message again"
-msgstr ""
-
-#: src/mn-util.c:710
+#: src/mn-util.c:701
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Получи се сериозна грешка в известяването за поща"
 
-#: src/mn-util.c:725
-#, fuzzy, c-format
-msgid "unable to get current time: %s"
-msgstr "неуспех при свързването с %s"
-
-#: src/mn-util.c:787
-#, c-format
-msgid "invalid signal specification \"%s\""
-msgstr ""
-
-#: src/mn-util.c:826
-msgid "A command error has occurred in Mail Notification"
-msgstr "Грешка с командите се получи в известяването за поща"
-
-#: src/mn-util.c:827
-#, fuzzy, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr "неуспех при намирането на %s: %s"
-
-#: ui/authentication.glade.h:1
-#, fuzzy
-msgid "_Authenticate"
-msgstr "Механизъм за _идентификация:"
-
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
 msgstr "_Тип на пощенската кутия:"
 
 #: ui/properties.glade.h:1
-msgid "<span weight=\"bold\">Commands</span>"
-msgstr "<span weight=\"bold\">Команди</span>"
+msgid "    "
+msgstr "    "
 
 #: ui/properties.glade.h:2
-#, fuzzy
-msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr "<span weight=\"bold\">Основни</span>"
+msgid "*"
+msgstr "*"
 
 #: ui/properties.glade.h:3
-#, fuzzy
-msgid "<span weight=\"bold\">Fonts</span>"
+msgid "<span weight=\"bold\">Commands</span>"
 msgstr "<span weight=\"bold\">Команди</span>"
 
 #: ui/properties.glade.h:4
@@ -1704,220 +1039,79 @@ msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Основни</span>"
 
 #: ui/properties.glade.h:5
-#, fuzzy
-msgid "<span weight=\"bold\">Mailbox List</span>"
+msgid "<span weight=\"bold\">Mailboxes</span>"
 msgstr "<span weight=\"bold\">Пощенски кутии</span>"
 
 #: ui/properties.glade.h:6
-#, fuzzy
-msgid "<span weight=\"bold\">Position</span>"
-msgstr "<span weight=\"bold\">Команди</span>"
-
-#: ui/properties.glade.h:7
-#, fuzzy
-msgid "Co_ntents:"
-msgstr "Свъ_рзване"
-
-#: ui/properties.glade.h:8
-msgid "Dis_play mail summary in tooltip"
-msgstr ""
-
-#: ui/properties.glade.h:9
-msgid "General"
-msgstr ""
-
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr ""
-
-#: ui/properties.glade.h:11
 msgid "Mail Notification Properties"
 msgstr "Настройки на известяването за поща"
 
-#: ui/properties.glade.h:12
-msgid "Mail Summary Popup"
-msgstr ""
-
-#: ui/properties.glade.h:13
-#, fuzzy
-msgid "Mailboxes"
-msgstr "Пощенска кутия"
-
-#: ui/properties.glade.h:14
-msgid "Only display _recent mail"
-msgstr ""
-
-#: ui/properties.glade.h:15
-#, fuzzy
-msgid "P_osition:"
-msgstr "_Местоположение:"
-
-#: ui/properties.glade.h:16
-#, fuzzy
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Времевият интервал за изчакване между проверките за нова поща"
-
-#: ui/properties.glade.h:17
+#: ui/properties.glade.h:7
 msgid "The amount of time to wait between mail checks"
 msgstr "Времевият интервал за изчакване между проверките за нова поща"
 
-#: ui/properties.glade.h:18
-#, fuzzy
-msgid "The command to run to launch the mail reader"
-msgstr "Командата, която да се изпълни при пристигането на нова поща"
-
-#: ui/properties.glade.h:19
-#, fuzzy
-msgid "The command to run when all mail is read"
-msgstr "Командата, която да се изпълни при пристигането на нова поща"
-
-#: ui/properties.glade.h:20
+#: ui/properties.glade.h:8
 msgid "The command to run when new mail arrives"
 msgstr "Командата, която да се изпълни при пристигането на нова поща"
 
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
-#, fuzzy
-msgid "When _all mail is read:"
-msgstr "При пристигане на _нова поща:"
+#: ui/properties.glade.h:9
+msgid "The command to run when the icon is double-clicked"
+msgstr "Командата, която да се стартира когато иконата-писмо се натисне два пъти"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:10
 msgid "When _new mail arrives:"
 msgstr "При пристигане на _нова поща:"
 
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:11
+msgid "When double-click_ed:"
+msgstr "При _двойно натискане:"
+
+#: ui/properties.glade.h:12
 msgid "Whether the status icon should blink on errors or not"
 msgstr "Дали иконата за състоянието да започне да мига при грешки или не"
 
-#: ui/properties.glade.h:27
-#, fuzzy
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-
-#: ui/properties.glade.h:29
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr ""
-
-#: ui/properties.glade.h:31
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
-
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:13
 msgid "Whether to run a command when new mail arrives or not"
 msgstr "Дали да се стартира команда при пристигането на нова поща или не"
 
-#: ui/properties.glade.h:33
-#, fuzzy
-msgid "Whether to set a mail reader or not"
-msgstr "Дали да се стартира команда при пристигането на нова поща или не"
+#: ui/properties.glade.h:14
+msgid "Whether to run a command when the icon is double-clicked or not"
+msgstr "Дали да се стартира команда при двойно натискане на иконата или не"
 
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:15
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr ""
 "Дали да се стартира известяването за поща, когато влизате в GNOME или не"
 
-#: ui/properties.glade.h:35
-msgid "_Automatically close after:"
-msgstr ""
-
-#: ui/properties.glade.h:36
+#: ui/properties.glade.h:16
 msgid "_Blink on errors"
 msgstr "_Мигане при грешки"
 
-#: ui/properties.glade.h:37
+#: ui/properties.glade.h:17
 msgid "_Delay between mail checks:"
 msgstr "_Време между проверките за поща:"
 
-#: ui/properties.glade.h:38
-#, fuzzy
-msgid "_Display the main window"
-msgstr "Изобразяване на диалоговия прозорец с информацията"
-
-#: ui/properties.glade.h:39
-msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:40
-msgid "_Launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:41
-msgid "_Mail reader:"
-msgstr ""
-
-#: ui/properties.glade.h:42
+#: ui/properties.glade.h:18
 msgid "_Start Mail Notification on GNOME login"
 msgstr "_Стартиране на известяването за поща при влизане в GNOME"
 
-#: ui/properties.glade.h:43
-msgid "_Title:"
-msgstr ""
-
-#: ui/properties.glade.h:44
-#, fuzzy
-msgid "_Update the mail status"
-msgstr "Актуализиране състоянието на пощата"
-
-#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
-
-#: ui/properties.glade.h:46
-msgid "_Vertical offset:"
-msgstr ""
-
-#: ui/properties.glade.h:47
+#: ui/properties.glade.h:19
 msgid "minutes"
 msgstr "минути"
 
-#: ui/properties.glade.h:48
-msgid "pixels"
-msgstr ""
-
-#: ui/properties.glade.h:49
+#: ui/properties.glade.h:20
 msgid "seconds"
 msgstr "секунди"
 
-#: ui/summary-popup.glade.h:1
-#, fuzzy
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Пощенски кутии</span>"
-
 #: ui/welcome.glade.h:1
-#, fuzzy
 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 need to "
+"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 "
@@ -1930,15 +1124,11 @@ msgstr ""
 "\n"
 "Известяването за поща беше стартирано успешно.\n"
 "\n"
-"След като стартирате за първи път известяването за поща то сигурно желаете "
-"да го настроите.\n"
+"След като стартирате за първи път известяването за поща то "
+"сигурно желаете да го настроите.\n"
 "\n"
-"Бележка: няма да видите това съобщение отново. За да настроите известяването "
-"за поща отново, то изберете <span weight=\"bold\">Програми</span> → "
-"<span·weight=\"bold\">Настройки на средата</span> → <span weight=\"bold"
-"\">Известяване за поща</span> (или при някои системи <span weight=\"bold"
-"\">Програми → Настройки → Допълнителни настройки → Известяване за поща</"
-"span>)."
+"Бележка: няма да видите това съобщение отново. За да настроите "
+"известяването за поща отново, то изберете <span weight=\"bold\">Програми</span> → <span·weight=\"bold\">Настройки на средата</span> → <span weight=\"bold\">Известяване за поща</span> (или при някои системи <span weight=\"bold\">Програми → Настройки → Допълнителни настройки → Известяване за поща</span>)."
 
 #: ui/welcome.glade.h:8
 msgid "_Configure Mail Notification"
@@ -1948,70 +1138,4 @@ msgstr "_Настройки на известяването за поща"
 msgid "_Skip configuration"
 msgstr "_Пропускане на настройването"
 
-#~ msgid "Run a command when the icon is double-clicked"
-#~ msgstr "Стартиране на команда при двойно натискане на иконата"
-
-#~ msgid "The command to run when the icon is double-clicked."
-#~ msgstr ""
-#~ "Командата, която да се стартира при двойно натискане на иконата - писмо."
-
-#~ msgid "Whether to run a command when the icon is double-clicked or not."
-#~ msgstr "Дали да се стартира команда при натискането на иконата-писмо или не"
-
-#~ msgid "Your Gmail password"
-#~ msgstr "Вашата парола в Gmail"
-
-#~ msgid "successfully logged in"
-#~ msgstr "успешно влязъл в"
-
-#~ msgid "Your password on the IMAP server"
-#~ msgstr "Паролата ви за IMAP сървъра"
-
-#~ msgid "_Run %s"
-#~ msgstr "_Стартиране %s"
-
-#~ msgid "_Run Default Action"
-#~ msgstr "_Стартиране на стандартното действие"
-
-#~ msgid "%s has no new mail"
-#~ msgstr "%s няма нова поща"
-
-#~ msgid "error while reading mailbox: %s"
-#~ msgstr "грешка при четенето на пощенската кутия: %s"
-
-#~ msgid "Your password on the POP3 server"
-#~ msgstr "Паролата ви в POP3 сървъра"
-
-#~ msgid "A command error has occurred"
-#~ msgstr "След изпълнението на командата се получи грешка"
-
-#~ msgid "Unable to execute double-clicked command: %s."
-#~ msgstr "Неуспех при стартирането на командата: %s."
-
-#~ msgid "The following mailbox has new mail:\n"
-#~ msgstr "Следната пощенска кутия има нова поща:\n"
-
-#~ msgid "The following mailbox reported an error:\n"
-#~ msgstr "Следната пощенска кутия докладва за грешка:\n"
-
-#~ msgid "The following mailbox is unsupported:\n"
-#~ msgstr "Следните пощенски кутии не се поддържат:\n"
-
-#~ msgid "Unable to execute new mail command: %s."
-#~ msgstr "Неуспех при стартирането на нова пощенска команда: %s."
-
-#~ msgid "    "
-#~ msgstr "    "
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "The command to run when the icon is double-clicked"
-#~ msgstr ""
-#~ "Командата, която да се стартира когато иконата-писмо се натисне два пъти"
-
-#~ msgid "When double-click_ed:"
-#~ msgstr "При _двойно натискане:"
 
-#~ msgid "Whether to run a command when the icon is double-clicked or not"
-#~ msgstr "Дали да се стартира команда при двойно натискане на иконата или не"
diff --git a/po/de.gmo b/po/de.gmo
Binary files differ.
diff --git a/po/de.po b/po/de.po
@@ -5,168 +5,178 @@
 # mail-notification package.
 #
 # Hendrik Brandt <heb@gnome-de.org>, 2004-2005.
+# Jens Seidel <jensseidel@users.sf.net>, 2005.
 # 
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-02 21:38+0100\n"
+"POT-Creation-Date: 2005-07-31 04:17+0200\n"
+"PO-Revision-Date: 2005-08-06 07:00+0200\n"
 "Last-Translator: Hendrik Brandt <heb@gnome-de.org>\n"
 "Language-Team: German <gnome-de@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
+"Plural-Forms: nplurals=2; plural=n>1;"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
 msgid "Mail Notification automation"
 msgstr "Automatische E-Mail-Eingangsüberwachnung"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
 msgid "Mail Notification automation factory"
 msgstr "Automatische E-Mail-Eingangsüberwachnung"
 
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "Evolution-Ordnerbaum-Steuerung"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "Evolution-Ordnerbaum-Steuerungsfabrik"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "E-Mail-Eingangsüberwachnung / Evolution-Anbindung"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "E-Mail-Eingangsüberwachnung / Evolution-Anbindungsfarbik"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
 msgid "Configure Mail Notification"
 msgstr "Die E-Mail-Eingangsüberwachung einstellen"
 
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
 msgid "Mail Notification"
 msgstr "E-Mail-Eingangsüberwachung"
 
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
 msgid "Get notified when new mail arrives"
 msgstr "Informiert Sie wenn eine neue Nachricht eintrifft"
 
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
 msgstr "Nachrichtenübersicht automatisch schließen"
 
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
 msgstr "Bei Fehler blinken"
 
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
 msgid "Delay between mail checks (minutes part)."
 msgstr "Abstand zwischen Eingangsüberprüfung (Minutenteil)."
 
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
 msgid "Delay between mail checks (seconds part)."
 msgstr "Abstand zwischen Eingangsüberprüfung (Sekundenteil)."
 
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
 msgid "Display mail summary in tooltip"
 msgstr "Nachrichtenübersicht als Minihilfe anzeigen"
 
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
 msgid "Do not show the immediate notification error dialog"
 msgstr "Den Fehlerdialog der Sofortbenachrichtigung  nicht sofort anzeigen"
 
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
 msgid "Double-click action"
 msgstr "Aktion bei Doppelklick"
 
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
 msgid "Enable mail summary popup"
 msgstr "Nachrichtenübersicht aktivieren"
 
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
 msgid "Fingerprints of trusted X509 certificates"
 msgstr "Fingerabdrücke vertrauensvoller X509-Zertifikate"
 
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "Wurde schon einmal gestartet"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
 msgid "Height of edit toolbars dialog"
 msgstr "Höhe des Dialogs zum Bearbeiten der Werkzeugleisten"
 
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
 msgid "Height of main window"
 msgstr "Höhe des Hauptfensters"
 
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
 msgid "Height of properties dialog"
 msgstr "Höhe des Einstellungen-Dialogs"
 
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
 msgid "Mail read command"
 msgstr "Befehl zum Lesen einer Nachricht"
 
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
 msgid "Mail reader command"
 msgstr "Befehl zum Starten des E-Mail-Programms"
 
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
 msgid "Mail summary popup contents font"
 msgstr "Schrift für den Inhalt der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
 msgid "Mail summary popup fonts aspect source"
 msgstr "Quelle der Schrift für die Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
 msgid "Mail summary popup horizontal offset"
 msgstr "Horizontaler Abstand der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
 msgid "Mail summary popup position"
 msgstr "Position der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
 msgid "Mail summary popup title font"
 msgstr "Schrift für den Titel der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
 msgid "Mail summary popup vertical offset"
 msgstr "Vertikaler"
 
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Liste der Postfächer"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
 msgid "Minutes between mail checks"
 msgstr "Minuten zwischen den Aktualisierungen"
 
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr "Wartezeit bis zum Schließen der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
 msgid "New mail command"
 msgstr "Befehl bei neuer Nachricht"
 
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
 msgid "Only display recent mail in mail summary popup"
 msgstr "Nur aktuelle Nachrichten in der Nachrichtenübersicht anzeigen"
 
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
 msgid "Run a command when all mail is read"
 msgstr "Einen Befehl ausführen, wenn alle Nachrichten gelesen sind"
 
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
 msgid "Run a command when new mail arrives"
 msgstr "Einen Befehl ausführen, wenn eine neue Nachricht eintrifft"
 
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
 msgid "Seconds between mail checks"
 msgstr "Sekunden zwischen den Aktualisierungen"
 
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr "Wartezeit in Sekunden bis zum Schließen der Nachrichtenübersicht"
 
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
 msgid "Set a mail reader"
 msgstr "Ein E-Mail-Programm festlegen"
 
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
 msgid ""
 "The action to perform when the icon is double-clicked. Must be \"display-"
 "main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
@@ -175,21 +185,21 @@ msgstr ""
 "entweder den Wert »display-mail-window«, »launch-mail-reader« oder  »update-"
 "mail-status«."
 
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
 msgstr ""
 "Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Minutenteil)."
 
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
 msgstr ""
 "Die Zeitspanne bis zum Schließen der Nachrichtenübersicht (Sekundenteil)."
 
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
 msgid ""
 "The aspect source of the mail summary popup fonts. Must be \"theme\" or "
 "\"custom\"."
@@ -197,44 +207,40 @@ msgstr ""
 "Die Quelle aus der die Schrift für die Nachrichtenübersicht festgelegt wird. "
 "Der Wert muss entweder »theme« oder »custom« sein."
 
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
 msgid "The command to run to launch the mail reader."
 msgstr "Der Befehl um das E-Mail-Programm zu starten"
 
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
 msgid "The command to run when all mail is read."
 msgstr "Der Befehl der ausgeführt wird, wenn alle Nachrichten gelesen wurden"
 
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
 msgid "The command to run when new mail arrives."
 msgstr "Der Befehl der ausgeführt wird, wenn eine neue Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
 msgid "The custom font to use for the contents of the mail summary popup."
 msgstr ""
 "Die benutzerdefinierte Schrift für den Inhalt der Nachrichtenübersicht."
 
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
 msgid "The custom font to use for the title of the mail summary popup."
 msgstr "Die benutzerdefinierte Schrift für den Titel der Nachrichtenübersicht."
 
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
 msgid "The height of the edit toolbars dialog in pixels."
 msgstr "Die Höhe des Dialogs zum Bearbeiten der Werkzeugleisten in Pixel."
 
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
 msgid "The height of the main window in pixels."
 msgstr "Die Höhe des Hauptfensters in Pixel."
 
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
 msgid "The height of the properties dialog in pixels."
 msgstr "Die Höhe des Einstellungsdialogs in Pixel."
 
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "Die Liste der zu überwachenden Postfächer."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
@@ -242,14 +248,14 @@ msgstr ""
 "Die Liste vertrauensvoller SSL/TLS-Server (Host-Name:Port) ohne X509-"
 "Zertifikat."
 
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 "Die Liste vertrauensvoller X509-Zertifikate, repräsentiert durch ihre MD5-"
 "Fingerabdrücke."
 
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
@@ -257,7 +263,7 @@ msgstr ""
 "Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
 "der Nachrichtenübersicht."
 
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
@@ -265,7 +271,7 @@ msgstr ""
 "Die Anzahl an Pixeln die zwischen dem oberen oder runteren Bildschirmrand "
 "und der Nachrichtenübersicht."
 
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
@@ -273,7 +279,7 @@ msgstr ""
 "Die Position der Nachrichtenübersicht. Der Wert muss »oben-links«, »oben-"
 "rechts«, »unten-links« oder »unten-rechts« sein."
 
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
 msgid ""
 "The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
 "\"both\" or \"both-horiz\"."
@@ -281,285 +287,275 @@ msgstr ""
 "Der Werkzeugleistenmodus. Muss den Wert »desktop-default«, »icons«, »text«, "
 "»both« oder »both-horiz« haben."
 
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
 msgid "The width of the edit toolbars dialog in pixels."
 msgstr "Die Breite des Werkzeugleistenbearbeitungsdialogs in Pixel."
 
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
 msgid "The width of the main window in pixels."
 msgstr "Die Breite des Hauptfensters in Pixel."
 
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
 msgid "The width of the properties dialog in pixels."
 msgstr "Die Breite des Einstellungen-Dialogs in Pixel."
 
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
 msgid "Toolbars style"
 msgstr "Werkzeugleistenmodus"
 
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
 msgid "Trusted servers list"
 msgstr "Liste vertrauensvoller Server"
 
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
 msgid "View statusbar"
 msgstr "Statusleiste anzeigen"
 
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
 msgid "View toolbars"
 msgstr "Werkzeugleisten anzeigen"
 
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr ""
-"Legt fest, ob die E-Mail-Eingangsüberwachnung schon einmal gestartet wurde."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
 msgid "Whether the status icon should blink on errors or not."
 msgstr ""
 "Legt fest, ob das  Nachrichtensymbol bei Auftreten eines Fehlers blinkt."
 
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
 msgid "Whether the statusbar should be visible or not."
 msgstr "Legt fest, ob die Statusleiste angezeigt werden."
 
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
 msgid "Whether the toolbars should be visible or not."
 msgstr "Legt fest, ob die Werkzeugleisten angezeigt werden."
 
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
 msgid "Whether to display the mail summary in the status icon tooltip or not."
 msgstr ""
 "Legt fest, ob die Nachrichtenübersicht in der Minihilfe des Statussymbols "
 "angezeigt wird."
 
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr ""
 "Legt fest, ob die Nachrichtenübersicht angezeigt wird, wenn eine neue "
 "Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
 msgid ""
 "Whether to hide previously displayed mail in the mail summary popup or not."
 msgstr ""
 "Legt fest, ob zuvor angezeigte Nachrichten in der Nachrichtenübersicht "
 "erneut angezeigt werden."
 
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr ""
 "Legt fest, ob der Fehlerdialog der Sofortbenachrichtigung angezeigt wird."
 
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
 msgid "Whether to run a command when all mail is read or not."
 msgstr ""
 "Legt fest, ob ein Befehl ausgeführt wird, wenn alle Nachrichten gelesen "
 "wurden."
 
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 "Legt fest, ob ein Befehl ausgeführt wird, wenn eine neue Nachricht eintrifft."
 
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
 msgid "Whether to set a mail reader or not."
 msgstr "Legt fest, ob ein E-Mail-Programm ausgewählt ist."
 
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
 msgid "Width of edit toolbars dialog"
 msgstr "Breite des Werkzeugleistenbearbeitungsdialogs"
 
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
 msgid "Width of main window"
 msgstr "Breite des Hauptfensters"
 
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
 msgid "Width of properties dialog"
 msgstr "Breite des Einstellungen-Dialogs"
 
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
 msgid "New Mail"
 msgstr "Neue Nachricht"
 
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
 msgid "_Remove Toolbar"
 msgstr "Werkzeugleiste _entfernen"
 
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
 msgid "Separator"
 msgstr "Trennlinie"
 
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Ziehen Sie einen Eintrag auf die Werkzeugleiste, um diesen hinzu zufügen "
-"oder ziehen Sie einen Eintrag von der Werkzeugleiste in das Depot um diesen "
-"zu entfernen."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
 msgid "Orientation"
 msgstr "Ausrichtung"
 
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
 msgid "The orientation of the tray."
 msgstr "Die Ausrichtung des Benachrichtigungsfeldes"
 
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
 msgid "A Mail Notification Icon"
 msgstr ""
 "Ein Benachrichtigungssymbol das erscheint, wenn neue Nachrichten in Ihren "
 "Postfächern liegen."
 
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
-msgstr "Hendrik Brandt <eru@gmx.li>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
+msgstr "Hendrik Brandt <heb@gnome-de.org>"
+
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "Verweis konnte nicht geöffnet werden"
 
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">automatisch erkennen</span>"
 
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "Ben_utzername:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Passwort:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
 #, c-format
 msgid ""
 "Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
 "\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
 msgstr ""
-"Die E-Mail-Eingangsüberwachnung konnte sich nicht an dem %s-Postfach »%s« "
-"anmelden. Eine mögliche Ursache wäre, dass Sie das Passwort falsch "
+"Die E-Mail-Eingangsüberwachung konnte sich nicht an dem %s-Postfach »%s« "
+"anmelden. Eine mögliche Ursache ist, dass Sie die Zugangsdaten falsch "
 "eingegeben haben. \n"
 "\n"
-"Bitte geben Sie das Passwort für dieses Postfach ein."
+"Bitte geben Sie die Zugangsdaten erneut ein."
 
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
 #, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr "Bitte geben Sie das Passwort für %s-Postfach »%s«."
+msgid "Enter your credentials for %s mailbox %s."
+msgstr "Bitte geben Sie Ihre Zugangsdaten für %s-Postfach »%s« ein."
 
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Die E-Mail-Eingangsüberwachung "
-"benötigt ein Passwort</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Authentifizierung ist erforderlich"
 
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Ort"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:103
 msgid "_Location:"
 msgstr "_Ort:"
 
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
 msgid "_Browse..."
 msgstr "_Durchsuchen..."
 
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "Die Adresse des Postfachs"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
 msgid "Select a File or Folder"
 msgstr "Wählen Sie eine Datei oder ein Verzeichnis"
 
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Legt fest, ob das Bild blinkt oder nicht"
-
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
 #, c-format
 msgid "resolving %s"
 msgstr "%s wird kontaktiert"
 
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr "%s konnte nicht kontaktiert werden: %s"
 
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
 #, c-format
 msgid "%s: unsupported address family"
 msgstr "%s: Adressfamilie wird nicht unterstützt"
 
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
 #, c-format
 msgid "%s: unable to create socket: %s"
-msgstr "%s: Socket konnte nciht erstellt werden: %s"
+msgstr "%s: Socket konnte nicht erstellt werden: %s"
 
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr "Verbindung mit %s (%s) über Port %i wird hergestellt"
 
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
 #, c-format
 msgid "unable to connect: %s"
 msgstr "Es konnte nicht verbunden werden: %s"
 
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
 msgid "connected successfully"
 msgstr "Verbindung hergestellt"
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
 #, c-format
 msgid "unable to connect to %s"
 msgstr "Es konnte keine Verbindung mit %s hergestellt werden"
 
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr "Die OpenSSL-Bibliothek konnte nicht initializiert werden: %s"
 
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
 #, c-format
 msgid "unable to create a SSL/TLS object: %s"
 msgstr "Es konnte kein SSL/TLS-Objekt erzeugt werden: %s"
 
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
 #, c-format
 msgid "unable to set the SSL/TLS file descriptor: %s"
 msgstr "Es konnte kein SSL/TLS-Dateideskriptor gesetzt werden: %s"
 
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
 #, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
 msgstr "Es konnte kein SSL/TLS-Handshake durchgeführt werden: %s"
 
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
 msgid "untrusted server"
 msgstr "nicht vertrauensvolle Server"
 
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
 #, c-format
 msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
 msgstr "Eine SSL/TLS-Zwischenschicht ist jetzt aktiv (%s, %s %i-Bit)"
 
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
 #, c-format
 msgid "%s, fingerprint: %s"
 msgstr "%s, Fingerabdruck %s"
 
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
 msgid "missing certificate"
 msgstr "kein Zertifikat"
 
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
 #, c-format
 msgid ""
 "Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -570,352 +566,331 @@ msgid ""
 "to \"%s\". If you choose to connect to the server, this message will not be "
 "shown again."
 msgstr ""
-"Die E-Mail-Eingangsüberwachnung konnte »%s« nicht vertrauen (%s). Es ist "
-"möglich, dass ein Anderer Ihre Kommunikation abfängt um Zugriff auf "
-"Ihrepersönlichen Informationen zu bekommen.\n"
+"Die E-Mail-Eingangsüberwachnung konnte »%s« nicht vertrauen (%s). Es ist möglich, dass ein Anderer Ihre Kommunikation abfängt um Zugriff auf Ihrepersönlichen Informationen zu bekommen.\n"
 "\n"
-"Sie sollten sich nur zu diesem Server verbinden, wenn Sie sicher sind, dass "
-"sie auch tatsächlich mit »%s« verbunden sind. Falls Sie sich dennoch mit dem "
-"Server verbinden lassen, wird dieser Dialog in Zukunft nicht mehr angeziegt."
+"Sie sollten sich nur zu diesem Server verbinden, wenn Sie sicher sind, dass sie auch tatsächlich mit »%s« verbunden sind. Falls Sie sich dennoch mit dem Server verbinden lassen, wird dieser Dialog in Zukunft nicht mehr angezeigt."
 
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
 msgid "Connect to untrusted server?"
 msgstr "Möchten Sie sich mit einem nicht vertrauenswürdigen Server verbinden?"
 
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "_Verbinden"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr "Die Antwort »%s« ist in diesem Kontext nicht zugelassen"
 
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr "Die Antwort »%s« konnte nicht analysiert werden"
 
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
 #, c-format
 msgid "unable to read from server: %s"
 msgstr "Es konnte nicht vom Server gelesen werden: %s"
 
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
 msgid "unable to read from server: EOF"
 msgstr "Es konnte nicht vom Server gelesen werden: EOF"
 
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
 #, c-format
 msgid "unable to decode data using SASL: %s"
 msgstr "Die Daten konnten nicht per SASL dekodiert werden: %s"
 
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr "Die Daten konnten nicht per SASL kodiert werden: %s"
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "Es konnte nicht auf den Server geschrieben werden: %s"
 
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
 msgid "unable to write to server: EOF"
 msgstr "Es konnte nicht auf den Server geschrieben werden: EOF"
 
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "Es konnte nicht mit Base64 kodiert werden: %s"
 
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr "Die SASL-Bibliothek konnte nicht initializiert werden: %s"
 
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "Die lokale Adresse des Socket konnte nicht herausgefunden werden: %s"
 
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr ""
 "Die entfernte Adresse des Socket konnte nicht herausgefunden werden: %s"
 
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
 #, c-format
 msgid "unable to set SASL security properties: %s"
 msgstr "die SASL-Sicherheitseigenschaften konnten nicht gesetzt werden: %s"
 
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
 "Die SASL-Authentifizierung konnte nicht gestartet werden: es wurde eine "
 "unbekannte Anfrage von SASL gestellt"
 
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr "Die SASL-Authentifizierung konnte nicht gestartet werden: %s"
 
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr "Es konnte keine Verbindung mit SASL erzeugt werden: %s"
 
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr ""
 "Es wurde eine unbekannte Anfrage von SASL gestellt, SASL-Authentifizierung "
 "wird abgebrochen"
 
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, SASL-Authentifizierung wird abgebrochen"
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr "Die Server-seitige Base64-Eingabe konnte nicht dekodiert werden: %s"
 
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"Der Server hat während einer beginnenden SASL-Client-Antwort einen Fehler "
-"gesendet"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"Der Server hat kein SASL-Problem gesendet, während noch eine Client-seitige "
-"SASL-Reaktion begonnen wurde"
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr "Die SASL-Sicherheitsebene der Stärke %i ist jetzt aktiv"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr "Der Wert SASL_MAXOUTBUF wurde nicht gefunden: %s"
 
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr "Warnung: Der Wert SASL_SSF wurde nicht gefunden: %s"
 
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
 msgid "A directory creation error has occurred"
 msgstr "Beim Verzeichniserstellen ist ein Fehler aufgetreten"
 
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
 #, c-format
 msgid "Unable to create directory \"%s\": %s."
 msgstr "Das Verzeichnis»%s« konnte nicht angelegt werden: %s."
 
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
 #, c-format
 msgid "recursively unsetting %s"
 msgstr "%s rekursiv zurück setzen"
 
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
 msgid "syncing the GConf database"
 msgstr "Synchronisiere mit der GConf-Datenbank"
 
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
 msgid "completed"
 msgstr "Abgeschlossen"
 
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Ihr Gmail-Benutzername"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "Ungültiger Ort"
 
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-"Ihr Gmail-Passwort (falls Sie nichts eingeben, werden Sie jedesmal wenn es "
-"notwendig ist nach dem Passwort gefragt)"
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "Die aktuell ausgewählte Adresse"
 
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "»libsoup« wurde nicht mit SSL/TLS-Unterstützung erstellt"
-
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "Die Adresse »%s« konnte nicht analysiert werden"
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Ordner"
 
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "Vom Server wurden nicht-UTF-8-Daten übermittelt"
+#: ../src/mn-evolution-mailbox-properties.gob:169
+msgid ""
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
+msgstr "Die E-Mail-Eingangsüberwachung konnte Evolution nicht kontaktieren. "
+"Bitte stellen Sie sicher, dass Evolution läuft und dass das Evolution-Plugin zur E-Mail-Benachrichtigung "
+"geladen ist."
 
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "Daten konnten nicht übertragen werden: %s"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "Ordner nicht gefunden"
 
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "Anmelden bei"
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "Evolution konnte nicht kontaktiert werden"
 
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "Anmeldung fehlgeschlagen"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Das Evolution-Plugin zur E-Mail-Benachrichtigung konnte nicht aktiviert werden"
 
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "Es wird nach ungelesenen Nachrichten gesucht"
+#: ../src/mn-evolution-plugin.c:130
+#, c-format
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr ""
+"Bonobo konnte den %s-Server nicht finden. Bitte überprüfen Sie "
+"Ihre Installation der E-Mail-Eingangsüberwachung."
 
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "Die ICU-Bibliothek konnte nicht initializiert werden"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr ""
+"Bonobo konnte den %s-Server nicht registrieren. Bitte "
+"überprüfen Sie Ihre Installation der E-Mail-Eingangsüberwachung."
 
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "Die Gmail-Daten konnte nicht analysiert werden"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "ungültige Feed-Adresse"
 
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
 #, c-format
-msgid "unable to open calendar: %s"
-msgstr "Kalender konnte nicht geöffnet werden: %s"
+msgid "retrieving feed from %s"
+msgstr "Feed von %s wird empfangen"
 
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
 #, c-format
-msgid "unable to set calendar time: %s"
-msgstr "Die Kalenderzeit konnte nicht gesetzt werden: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "Feed konnte nicht geholt werden: %s"
 
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "Die aktuelle Kalenderzeit konnte nicht ermittelt werden: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "Feed konnte nicht analysiert werden"
 
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
 #, c-format
 msgid "unable to read %s: %s"
 msgstr "%s konnte nicht gelesen werden: %s"
 
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:51
 #, c-format
 msgid "unable to write to %s: %s"
 msgstr "Es konnte nicht nach %s geschrieben werden: %s"
 
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:53
 #, c-format
 msgid "unable to seek in %s: %s"
 msgstr "Es konnte nicht in %s gesucht werden: %s"
 
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:55
 #, c-format
 msgid "unable to tell position of %s: %s"
 msgstr "Die Position von %s konnte nicht ermittelt werden: %s"
 
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:57 ../src/mn-mh-mailbox-backend.gob:158
 #, c-format
 msgid "unable to close %s: %s"
 msgstr "%s konnte nicht geschlossen werden: %s"
 
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
 msgid "Mailbox:"
 msgstr "Postfach:"
 
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
 msgid "in_box"
 msgstr "In_box"
 
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
 msgid "oth_er:"
 msgstr "_Anderer:"
 
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "Wenn möglich Leerlauf_modus verwenden"
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Der Name oder die IP-Adresse des IMAP-Servers"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "n_ie"
 
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Ihr Benutzername auf dem IMAP-Server"
-
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ihr Passwort für diesen IMAP-Server (falls Sie nichts eingeben, werden Sie "
-"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "au_tomatisch erkennen"
 
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Die Port-Nummer auf dem IMAP-Server"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "i_mmer"
 
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Der Postfachname"
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Wenn möglich wird der Leerlauf_modus verwenden"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr ""
-"Die Unterstützung für SSL/TLS wurde beim Erstellen des Programms nicht "
-"eingebaut"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Die Erweiterung <span style=\"italic\">IDLE</span> verwenden:"
 
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
 msgid "server did not send capabilities"
 msgstr "Der Server hat seine Fähigkeiten nicht bekannt gegeben"
 
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 "Der Server gibt LOGINDISABLED zurück, LOGIN-Authentifizierung wird nicht "
 "verwendet"
 
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
 msgid "unable to login"
 msgstr "Anmeldung fehlgeschlagen"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
 msgid "server did not send search results"
 msgstr "Der Server hat keine Suchergebnisse gesendet"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
 msgid "server did not send all the messages we requested"
 msgstr "Der Server hat nicht alle angeforderten Nachrichten gesendet"
 
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
 msgid "unable to fetch message"
 msgstr "Nachrichten konnten nicht abgerufen werden"
 
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr "»IDLE-Erweiterung verwenden« wird auf »nie« in den Postfacheinstellungen gesetzt, "
+"abmelden"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "der entfernte Server verwendet %s, die IDLE-Erweiterung wird nicht verwendet"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr "der entfernte Server verwendet %s, die IDLE-Erweiterung funktioniert unter Umständen nicht richtig"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr "der entfernte Server unterstützt die IDLE-Erweiterung nicht, es wird abgemeldet"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
 msgid "unknown server error"
 msgstr "Unbekannter Server-Fehler"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
 msgid "server does not support in-band SSL/TLS"
-msgstr "Der Server unterstütz kein band-internes SSL/TLS"
+msgstr "Der Server unterstützt kein band-internes SSL/TLS"
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -923,441 +898,362 @@ msgstr ""
 "Sie haben eine Authentifizierung mit SASL ausgewählt, jedoch wurde die "
 "Unterstützung für SASL beim Erstellen des Programms nicht eingebaut"
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "Unbekannte Authentifizierungsmethode »%s«"
 
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr "Mechanismus %s wird deaktiviert und SASL-Authentifizierung wird erneut probiert"
+
+#: ../src/mn-imap-mailbox.gob:1435
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "Es wird auf die Authentifizierung per IMAP LOGIN zurückgegriffen"
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
 msgid "authentication failed"
 msgstr "Authentifizierung fehlgeschlagen"
 
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
 msgid "Main _Window"
 msgstr "_Hauptfenster"
 
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
 msgid "_Mail Reader"
 msgstr "_E-Mail-Programm"
 
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
 msgid "_Update"
 msgstr "_Aktualisieren"
 
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
 msgid "R_emove From Notification Area"
 msgstr "Aus dem Benachrichtigungsfeld entfernen"
 
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Ein Postfach hinzufügen"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
 #, c-format
 msgid "%s Properties"
 msgstr "%s Eigenschaften"
 
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "Ben_utzername:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Passwort:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Verbindungsart:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Port:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "_Authentifizierungsmethode:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Bezeichnung"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Der ausgezeichnete Text in einem Kombinationsfeld"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Size group"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "Eine GtkSizeGroup um Kontrollstrukturen auszurichten"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Vollständig"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Ein Postfach hinzufügen"
 
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Legt fest, ob die Einstellungen vollständig ausgefüllt sind"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Es ist ein Einfügefehler aufgetreten"
 
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
 msgid "Mailbox"
 msgstr "Postfach"
 
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Protokoll"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "unerledigtes %s-Postfach (%s)"
 
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Postfach konnte nicht hinzugefügt werden"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "%s-Postfach"
 
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "Dieses Postfach exisitiert bereits in Ihrer Liste."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "Postfachtyp wird ermittelt..."
 
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "Die Postfachadresse"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "Attribut »type« wurde nicht gefunden"
 
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Der lesbare Postfachname"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "unbekannter Postfachtyp »%s«"
 
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Legt fest, ob das Postfach abgefragt werden muss"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr "Eigenschaft »%s«: es war nicht möglich, die Zeichenkette »%s« in einen Wert vom "
+"Typ »%s« umzuwandeln"
 
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "Die Liste neuer und ungelesener MNMessage-Objekte"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "Eigenschaft »%s« hat keinen Wert"
 
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "Der Postfachfehler, falls vorhanden"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr "Beim Importieren älterer Postfächer ist ein Fehler aufgetreten"
 
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "existiert nicht"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Die Postfacheinstellungen konnten nicht gelden werden"
 
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "unbekanntes Format"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "Das XML-Dokument konnte nicht analysiert werden."
 
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "die Sofortbenachrichtigung konnte nicht aktiviert werden: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "Das Wurzelelement ist nicht vorhanden."
 
-#: src/mn-mailbox.gob:421
-#, fuzzy, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
-msgstr[1] ""
-"Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Sekunden überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
+#: ../src/mn-mailboxes.gob:307
+#, c-format
+msgid "The root element \"%s\" is invalid."
+msgstr "Das Wurzelelement »%s« ist nicht gültig."
 
-#: src/mn-mailbox.gob:432
-#, fuzzy, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
-msgstr[1] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
+#: ../src/mn-mailboxes.gob:330
+#, c-format
+msgid "On line %i: %s."
+msgstr "In Zeile %i: %s"
 
-#: src/mn-mailbox.gob:443
-#, fuzzy, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
-msgstr[1] ""
-"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-"über den Einstellungsdialog angepasst werden).Als Rücksicherung werden diese "
-"alle %i Minuten überprüft (Dieser Wert kann über den Einstellungsdialog "
-"angepasst werden)."
+#: ../src/mn-mailboxes.gob:335
+#, c-format
+msgid "On line %i: unknown element \"%s\"."
+msgstr "In Zeile %i: unbekanntes Element »%s«."
 
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Bei der Überwachung ist ein Fehler aufgetreten"
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
+msgstr[0] "Beim Laden der Postfacheinstellungen ist ein Fehler aufgetreten."
+msgstr[1] "Beim Laden der Postfacheinstellungen sind mehrere Fehler aufgetreten."
 
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"Die E-Mail-Eingangsüberwachung konnte die Sofortbenachrichtigung für ein "
-"oder mehrere Postfächer nicht aktivieren: %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Die Postfacheinstellungen konnte nicht gespeichert werden"
 
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr "Legt fest, ob ein oder mehrere Postfächer befragt werden sollen"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Das XML-Dokument konnte nicht geschrieben werden."
 
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
 #, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s wird nicht unterstützt: %s"
+msgid "unable to delete %s: %s"
+msgstr "%s konnte nicht gelöscht werden: %s"
 
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
 #, c-format
 msgid "%s has %i new message"
 msgid_plural "%s has %i new messages"
 msgstr[0] "%s hat %i neue Nachricht"
 msgstr[1] "%s hat %i neue Nachrichten"
 
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s hat einen Fehler erzeugt: %s"
 
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "Der Ordner »new« konnte nicht geöffnet werden: %s"
 
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
 #, c-format
 msgid "unable to close folder \"new\": %s"
 msgstr "Der Ordner »new« konnte nicht geschlossen werden: %s"
 
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "Fehler beim Lesen des Ordners »new«: %s"
 
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Hilfetexte"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Nachrichten zählen"
+
 #. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
 msgid "_Mail"
 msgstr "_Nachricht"
 
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
 msgid "_Edit"
 msgstr "_Bearbeiten"
 
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
 msgid "_View"
 msgstr "_Ansicht"
 
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
 msgid "_Help"
 msgstr "_Hilfe"
 
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
 msgid "Launch the mail reader"
 msgstr "Das E-Mail-Programm starten"
 
 #. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
 msgid "Update the mail status"
 msgstr "Nach neuen Nachrichten sehen"
 
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
 msgid "_Close"
 msgstr "_Schließen"
 
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
 msgid "Close this window"
 msgstr "Dieses Fenster schließen"
 
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
 msgid "_Quit"
 msgstr "_Beenden"
 
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
 msgid "Quit Mail Notification"
 msgstr "Die E-Mail-Eingangsüberwachung beenden"
 
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
 msgid "_Toolbars"
 msgstr "_Werkzeugleisten"
 
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
 msgid "Customize the toolbars"
 msgstr "Die Werkzeugleisten an die eigenen Bedürfnisse anpassen"
 
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
 msgid "_Preferences"
 msgstr "_Einstellungen"
 
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
 msgid "Toolbars Styl_e"
 msgstr "Werkzeugleistenmodus"
 
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
 msgid "Customize the toolbars style"
 msgstr "Den Modus der Werkzeugleisten anpassen"
 
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
 msgid "_Contents"
 msgstr "I_nhalt"
 
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
 msgid "Display help"
 msgstr "Die Hilfe anzeigen"
 
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
 msgid "_About"
 msgstr "_Info"
 
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
 msgid "Display credits"
 msgstr "Mitwirkende anzeigen"
 
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
 msgid "Show or hide the toolbars"
 msgstr "Die Werkzeugleisten anzeigen oder verstecken"
 
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
 msgid "_Statusbar"
 msgstr "_Statusleiste"
 
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
 msgid "Show or hide the statusbar"
 msgstr "Die Statusleiste anzeigen oder verstecken"
 
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
 msgid "_Desktop Default"
 msgstr "_Systemvorgabe"
 
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
 msgid "Set the toolbars style to the desktop default setting"
 msgstr "Den Werkzeugleistenmodus wie vom System vorgegeben benutzen"
 
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
 msgid "I_cons Only"
 msgstr "Nur _Symbole"
 
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
 msgid "Only display the toolbars icons"
 msgstr "Nur Werkzeugleistensymbole anzeigen"
 
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
 msgid "_Text Only"
 msgstr "Nur _Beschriftungen"
 
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
 msgid "Only display the toolbars text"
 msgstr "Nur Werkzeugleistentexte anzeigen"
 
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
 msgid "Text Belo_w Icons"
 msgstr "Beschriftungen _unter Symbolen"
 
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
 msgid "Display the toolbars text below the icons"
 msgstr "Die Werkzeugleistenbeschriftung unter den Symbolen anzeigen"
 
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
 msgid "Text Be_side Icons"
 msgstr "Beschriftung _neben Symbolen"
 
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
 msgid "Display the toolbars text beside the icons"
 msgstr "Die Werkzeugleistenbeschriftung neben den Symbolen anzeigen"
 
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
 #, c-format
 msgid "unable to load menus.xml: %s"
 msgstr "menus.xml konnte nicht geladen werden: %s"
 
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Hilfetexte"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Nachrichten zählen"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "toolbars.xml konnte nicht geladen werden"
 
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
 #, c-format
 msgid "%i new message"
 msgid_plural "%i new messages"
 msgstr[0] "%i neue Nachricht"
 msgstr[1] "%i neue Nachrichten"
 
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "toolbars.xml konnte nicht geladen werden"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Eingebaute Postfacharten: %s\n"
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "Gmail-Zeitstempel"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Eingebaute Postfacharten: "
 
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Eingebaute Programmfähigkeiten: %s\n"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Eingebaute POP3- und IMAP-Fähigkeiten: "
 
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
 msgid "Enable informational output"
 msgstr "Ausgabe von Informationen aktivieren"
 
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
 msgid "List the compiled-in features"
 msgstr "Eingebaute Programmfähigkeiten anzeigen"
 
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
 msgid "Display the main window"
 msgstr "Das Hauptfenster anzeigen"
 
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
 msgid "Display the properties dialog"
 msgstr "Den Dialog zum Einstellen der E-Mail-Eingangsüberwachung anzeigen"
 
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
 msgid "Display the about dialog"
 msgstr "Den Info-Dialog anzeigen"
 
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
 msgid "Close the mail summary popup"
 msgstr "Die Nachrichtenübersicht schließen"
 
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Den aktuellen Nachrichten anzeigen"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
 msgid "Unset obsolete GConf configuration"
 msgstr "Veraltete GConf-Konfiguration zurücksetzen"
 
@@ -1365,11 +1261,11 @@ msgstr "Veraltete GConf-Konfiguration zurücksetzen"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
 msgid "multi-threading is not available"
 msgstr "Multi-Threading steht nicht zur Verfügung"
 
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -1377,173 +1273,182 @@ msgstr ""
 "Bonobo konnte das Automatisierungsobjekt nicht finden. Bitte überprüfen Sie "
 "Ihre Installation der E-Mail-Eingangsüberwachung."
 
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
 msgid "quitting Mail Notification"
 msgstr "E-Mail-Eingangsüberwachung wir beendet"
 
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
 msgid "Mail Notification is not running"
 msgstr "Die E-Mail-Eingangsüberwachung ist nicht aktiv"
 
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Die GnomeVFS-Bibliothek konnte nicht initializiert werden."
 
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
 msgid "updating the mail status"
 msgstr "Nachrichtenstatus wird aktualisiert"
 
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
 msgid "Mail Notification is already running"
 msgstr "Die E-Mail-Eingangsüberwachung ist bereits aktiv"
 
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
 msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
 msgstr ""
-"Bonobo konnte die Datei GNOME_MailNotification_Automation.server nicht "
-"finden. Bitte überprüfen Sie Ihre Installation der E-Mail-"
-"Eingangsüberwachung."
+"Bonobo konnte die %s-Datei nicht finden. Bitte überprüfen Sie "
+"Ihre Installation der E-Mail-Eingangsüberwachung."
 
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Bonobo konnte den Automatisierungs-Server nicht registrieren.Bitte "
-"überprüfen Sie Ihre Installation der E-Mail-Eingangsüberwachung."
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "Datei konnte nicht geschlossen werden: %s"
 
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:222
 #, c-format
 msgid "unable to open mailbox: %s"
 msgstr "Postfach konnte nicht geöffnet werden: %s"
 
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
 msgid "unable to parse MIME message"
 msgstr "Die MIME-Nachricht konnte nicht analysiert werden"
 
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
 msgid "You have no new mail."
 msgstr "Sie haben keine neuen Nachrichten."
 
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
 msgid "Unreadable message"
 msgstr "Nichtlesbare Nachricht"
 
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
 msgid "From"
 msgstr "Von"
 
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
 msgid "Subject"
 msgstr "Betreff"
 
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
 msgid "Sent"
 msgstr "Gesendet"
 
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
 msgid "Unknown"
 msgstr "Inactive"
 
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
 msgstr[0] "Vor %i Sekunde"
 
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
 #, c-format
 msgid "about %i minute ago"
 msgid_plural "about %i minutes ago"
 msgstr[0] "vor etwa %i Minute"
 msgstr[1] "vor etwa %i Minuten"
 
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
 #, c-format
 msgid "about %i hour ago"
 msgid_plural "about %i hours ago"
 msgstr[0] "vor etwa %i Stunde"
 msgstr[1] "vor etwa %i Stunden"
 
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
 #, c-format
 msgid "about %i day ago"
 msgid_plural "about %i days ago"
 msgstr[0] "vor etwa %i Tag"
 msgstr[1] "vor etwa %i Tagen"
 
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
 #, c-format
 msgid "about %i week ago"
 msgid_plural "about %i weeks ago"
 msgstr[0] "vor etwa %i Woche"
 msgstr[1] "vor etwa %i Wochen"
 
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "Fehler beim lesen der .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "keine"
 
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
 #, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr ".mh_sequences konnten nicht geöffnet werden: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "ermitteln"
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "_Server:"
+msgid "error while reading %s: %s"
+msgstr "Fehler beim Lesen von %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Details"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "%s konnte nicht geöffnet werden: %s"
 
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
 msgid "sta_ndard"
 msgstr "Sta_ndard"
 
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
 msgid "_in-band SSL/TLS"
 msgstr "_band-internes SSL/TLS"
 
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS über e_xtra Port"
 
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Der Name oder die IP-Adresse des POP3-Servers"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "_Server:"
+
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Details"
 
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Ihr Benutzername für diesen POP3-Server"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Verbindungsart:"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ihr Passwort für diesen POP3-Server (falls Sie nichts eingeben, werden Sie "
-"jedesmal wenn es notwendig ist nach dem Passwort gefragt)"
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Port:"
+
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "_Authentifizierungsmethode:"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Die Port-Nummer des POP3-Servers"
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr ""
+"Die Unterstützung für SSL/TLS wurde beim Erstellen des Programms nicht "
+"eingebaut"
 
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pop3-mailbox.gob:359
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "Ungültige Argumente für die Anmeldeverzögerung"
 
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr "Die SASL-Authentifizierung mit anfänglicher Client-Antwort ist gescheitert, es "
+"wird nun ohne Client-Antwort erneut versucht"
+
+#: ../src/mn-pop3-mailbox.gob:733
 msgid "unknown error"
 msgstr "Unbekannter Fehler"
 
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1552,473 +1457,462 @@ msgstr[0] ""
 "gewartetAnmeldeverzögerung wird berücksichtigt, es wird für %i Sekunden "
 "gewartet"
 
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
 msgid "server does not support APOP authentication"
-msgstr "Der Server unterstütz eine Authentifizierung per APOP nicht."
+msgstr "Der Server unterstützt eine Authentifizierung per APOP nicht."
 
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
 msgid "falling back to APOP authentication"
 msgstr "Es wird auf Authentifizierung mit APOP zurück gegriffen."
 
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
 msgid "falling back to USER/PASS authentication"
 msgstr ""
 "Es wird auf Authentifizierung per Nutzername und Passwort zurück gegriffen."
 
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Einstellung der E-Mail-Eingangsüberwachung"
+
+#: ../src/mn-properties-dialog.gob:207
 msgid "top left"
 msgstr "oben links"
 
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
 msgid "top right"
 msgstr "oben rechts"
 
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
 msgid "bottom left"
 msgstr "unten links"
 
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
 msgid "bottom right"
 msgstr "unten rechts"
 
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
 msgid "No mailbox selected."
 msgstr "Kein Postfach ausgewählt."
 
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] "Ein Posfach ausgewählt."
 msgstr[1] "%i Postfächer ausgewählt."
 
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Testnachricht Nr. %i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr "Einstellungen der E-Mail-Eingangsüberwachung"
+
+#: ../src/mn-shell.gob:109
 msgid "You have new mail."
 msgstr "Sie haben neue Nachrichten."
 
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
 msgid "Mailboxes Having New Mail"
 msgstr "Folgende Postfächer haben neue Nachrichten"
 
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
 msgid "Errors"
 msgstr "Fehler"
 
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Nichtunterstützte Postfächer"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
 msgid "Mail Summary"
 msgstr "Nachrichtenübersicht"
 
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "Die Proxy-Adresse »%s« konnte nicht analysiert werden"
-
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
 msgid "unknown SSL/TLS error"
 msgstr "Unbekannter SSL/TLS-Fehler"
 
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
 msgid "Select _All"
 msgstr "_Alles auswählen"
 
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
 msgid "Leave Fullscreen"
 msgstr "Vollbild verlassen"
 
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "_Verbinden"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "Ordner konnte nicht geöffnet werden: %s"
 
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
 #, c-format
 msgid "unable to close folder: %s"
 msgstr "Ordner konnte nicht geschlossen werden: %s"
 
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "Fehler beim Lesen von Ordner: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
+#: ../src/mn-sylpheed-mailbox-backend.gob:255
+msgid "unexpected end of file"
+msgstr "unerwartetes Dateiende"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:269
+#, c-format
+msgid "incompatible file version \"%i\""
+msgstr "inkompatible Dateiversion »%i«"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:272
+msgid "file version missing"
+msgstr "Dateiversion nicht gefunden"
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
 msgstr "Systempostfach"
 
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
 #, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
 msgstr ""
-"Es wird Ihr Systempostfach (<span weight=\"bold\">%s</span>) verwendet."
+"Ihr Systempostfach ist <span weight=\"bold\">%s</span>."
 
-#: src/mn-system-mailbox-properties.gob:64
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
 msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
 msgstr ""
-"Der Ort Ihres Systempostfachs wurde nicht erkannt. Bitte setzen Sie die "
+"Der Ort Ihres Systempostfachs konnte nicht ermittelt werden. Bitte überprüfen Sie die "
 "Umgebungsvariable »MAIL«."
 
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "Der Grund weshalb dieses Postfach nicht unerstützt wird"
-
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "nicht unterstützt"
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "Die Umgebungsvariable »MAIL« ist nicht gesetzt"
 
-#: src/mn-util.c:245
+#: ../src/mn-util.c:281
 #, c-format
 msgid "error loading image: %s"
 msgstr "Bild konnte nicht geladen werden: %s"
 
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
 #, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
 msgstr "Widget »%s« konnte nicht in Interface »%s« gefunden werden"
 
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "Es wurde eine ungültige Adressliste erhalten"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "Anwendung konnte selbst nicht in einem Modul geöffnet werden: %s"
+
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "Signalverarbeiter »%s« wurde nicht gefunden"
 
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "Es wurde eine ungültige Mozilla-Adresse erhalten"
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Es ist ein Drag'n'Drop-Fehler aufgetreten"
 
-#: src/mn-util.c:519
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Eine ungültige Adressliste wurde empfangen."
+
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Eine ungültige Mozilla-Adresse wurde empfangen."
+
+#: ../src/mn-util.c:678
 msgid "Unable to display help"
 msgstr "Die Hilfe kann nicht angezeigt werden"
 
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
 #, c-format
 msgid "Unable to create a thread: %s."
 msgstr "Es konnte kein Thread erzeugt werden: %s."
 
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
 msgid "_Do not show this message again"
 msgstr "_Diese Meldung nicht erneut anzeigen"
 
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr ""
+"Der folgende Ort ist ungültig:\n"
+"\n"
+"%s"
+"Die folgenden Orte sind ungültig:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
 msgid "A fatal error has occurred in Mail Notification"
 msgstr ""
 "Ein schwerwiegender Fehler ist beim Ausführen der E-Mail-Eingangsüberwachung "
 "aufgetreten"
 
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
 #, c-format
 msgid "unable to get current time: %s"
 msgstr "Die aktuelle Zeit konnte nicht ermittelt werden: %s"
 
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
 #, c-format
 msgid "invalid signal specification \"%s\""
 msgstr "Ungültige Signalspezifikation »%s«"
 
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
 msgid "A command error has occurred in Mail Notification"
 msgstr ""
 "Es ist ein Fehler beim Ausführen eines Befehls in der E-Mail-"
 "Eingangsüberwachung aufgetreten."
 
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
 #, c-format
 msgid "Unable to execute \"%s\": %s."
 msgstr "»%s« konnte nicht ausgeführt werden: %s."
 
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "_Authentifizieren:"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "%s konnte nicht in %s umbenannt werden: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr "Postfachinhalt (%s) können nicht überwacht werden, Abfragemodus wurde aktiviert"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr "Postfachtyp (%s) kann nicht überwacht werden, Abfragemodus wurde aktiviert"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "unbekanntes Postfachformat"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "existiert nicht"
+
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr ""
+"Als Rücksicherung werden diese jede %i Sekunde überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+"Als Rücksicherung werden diese alle %i Sekunden überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
 
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr ""
+"Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+"Als Rücksicherung werden diese alle %i Minuten überprüft (Dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr ""
+"Als Rücksicherung werden diese durchschnittlich jede %i Minute überprüft (dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+"Als Rücksicherung werden diese  durchschnittlich alle %i Minuten überprüft (dieser Wert kann "
+"über den Einstellungsdialog angepasst werden)."
+
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Bei der Überwachung ist ein Fehler aufgetreten"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"Die E-Mail-Eingangsüberwachung konnte die Sofortbenachrichtigung für ein "
+"oder mehrere Postfächer nicht aktivieren: %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
 msgid "Edit Toolbars"
 msgstr "Werkzeugleisten bearbeiten"
 
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
 msgid "_Add a New Toolbar"
 msgstr "_Neue Werkzeugleiste hinzufügen"
 
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
 msgid "_Use Default"
 msgstr "_Vorgabe verwenden"
 
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span size=\"larger\" weight=\"bold\">Nachrichtenübersicht</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Allgemein</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "Postfach_name:"
+
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
 msgstr "_Art des Postfachs:"
 
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
 msgid "<span weight=\"bold\">Commands</span>"
 msgstr "<span weight=\"bold\">Befehle</span>"
 
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
 msgid "<span weight=\"bold\">Double-click Action</span>"
 msgstr "<span weight=\"bold\">Aktion bei Doppelklick</span>"
 
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
 msgid "<span weight=\"bold\">Fonts</span>"
 msgstr "<span weight=\"bold\">Schriften</span>"
 
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Allgemein</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Postfächer</span>"
 
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Position</span>"
 
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
 msgid "Co_ntents:"
 msgstr "_Inhalt:"
 
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
 msgid "Dis_play mail summary in tooltip"
 msgstr "_Nachrichtenübersicht anzeigen"
 
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
 msgid "General"
 msgstr "Allgemein"
 
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "_Horizontaler Abstand:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Einstellung der E-Mail-Eingangsüberwachung"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
 msgid "Mail Summary Popup"
 msgstr "Aufklappende Nachrichtenübersicht"
 
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
 msgid "Mailboxes"
 msgstr "Postfächer"
 
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
 msgid "Only display _recent mail"
 msgstr "Nur a_ktuelle Nachrichten anzeigen"
 
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "P_osition:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Die Wartedauer ehe die Nachrichtenübersicht geschlossen wurde"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "Die Zeit die zwischen zwei Überprüfungen auf neue Nachrichten vergeht"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "Der Befehl um das E-Mail-Programm zustarten"
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "Der auszuführende Befehl wenn alle Nachrichten gelesen wurden"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr ""
-"Geben Sie hier den Befehl ein, der ausgeführt wird sobald eine neue "
-"Nachricht eintrifft."
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Die Anzahl an Pixeln die zwischen dem linken oder rechten Bildschirmrand und "
-"der Nachrichtenübersicht."
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Die Anzahl an Pixel zwischen dem oberen oder unteren Bildschirmrand und der "
-"Nachrichtenübersicht."
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
 msgid "Use these _fonts:"
 msgstr "Folgende _Schriften verwenden:"
 
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Wenn alle Nachricht _gelesen wurden:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Wenn alle _Nachricht gelesen wurden:"
 
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
 msgid "When _new mail arrives:"
 msgstr "Wenn neue Nachricht _eintrifft:"
 
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr ""
-"Wenn diese Option gewählt ist, blinkt das  Nachrichtensymbol bei Auftreten "
-"eines Fehlers."
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Legt fest, ob die Nachrichtenübersicht automatisch geschlossen wird"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-"Legt fest, ob die Nachrichtenübersicht in der Minihilfe des Statussymbols "
-"angezeigt wird"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Legt fest, ob die Nachrichtenübersicht aufklappt wenn eine neue Nachricht "
-"eintrifft"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Legt fest, ob zuvor angezeigte Nachrichten erneut angezeigt werden"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-"Legt fest, ob ein Befehl ausgeführt wird wenn alle Nachrichten gelesen wurden"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-"Wenn diese Option ausgewählt ist, können Sie einen Befehl angeben der "
-"ausgeführt wird, sobald eine neue Nachricht eintrifft."
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Legt das E-Mail-Programm fest"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-"Wenn diese Option ausgewählt ist, wird die E-Mail-Eingangsüberwachnung beim "
-"Starten von GNOME ebenfalls gestartet."
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
 msgid "_Automatically close after:"
 msgstr "_Automatisch schließen nach:"
 
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
 msgid "_Blink on errors"
 msgstr "_Bei Fehler blinken"
 
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
 msgid "_Delay between mail checks:"
 msgstr "_Nach neuen Nachrichten sehen alle:"
 
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "_Test-Popup anzeigen"
+
+#: ../ui/properties-dialog.glade.h:21
 msgid "_Display the main window"
 msgstr "_Hauptfenster anzeigen"
 
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
 msgid "_Enable mail summary popup"
 msgstr "_Aufklappende Nachrichtenübersicht aktivieren"
 
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "_Horizontaler Abstand:"
+
+#: ../ui/properties-dialog.glade.h:24
 msgid "_Launch the mail reader"
 msgstr "E-Mail-Programm _starten"
 
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
 msgid "_Mail reader:"
 msgstr "_E-Mail-Programm:"
 
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Position:"
+
+#: ../ui/properties-dialog.glade.h:27
 msgid "_Start Mail Notification on GNOME login"
 msgstr "_Laden beim Starten von  GNOME"
 
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
 msgid "_Title:"
 msgstr "_Titel:"
 
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
 msgid "_Update the mail status"
 msgstr "_Nach neuen Nachrichten sehen"
 
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
 msgid "_Use fonts from theme"
 msgstr "Schriften des _Themas verwenden"
 
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
 msgid "_Vertical offset:"
 msgstr "_Vertikaler Abstand:"
 
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
 msgid "minutes"
 msgstr "Minuten"
 
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
 msgid "pixels"
 msgstr "Pixel"
 
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
 msgid "seconds"
 msgstr "Sekunden"
 
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span size=\"larger\" weight=\"bold\">Nachrichtenübersicht</span>"
-
-#: 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 need 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> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Erster Start</span>\n"
-"\n"
-"Die E-Mail-Eingangsüberwachung wurde erfolgreich geladen.\n"
-"\n"
-"Da dies das erste Mal ist, dass Sie die E-Mail-Eingangsüberwachnung starten, "
-"möchten Sie vielleicht einige Einstellungen vornehmen.\n"
-"\n"
-"Hinweis: Diese Meldung wird nicht erneut angezeigt. Um die E-Mail-"
-"Eingangsüberwachnung zu einem später Zeitpunkt einzustellen, starten Sie "
-"bitte  <span weight=\"bold\">Desktop</span> → <span weight=\"bold"
-"\">Einstellungen</span> → <span weight=\"bold\">E-Mail-Eingangsüberwachnung</"
-"span> (auf einigen Systemen auch <span weight=\"bold\">Anwendungen</span> → "
-"<span weight=\"bold\">Desktop-Einstellungen</span> → <span weight=\"bold\">E-"
-"Mail-Eingansüberwachung</span>)."
-
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "Die E-Mail-Eingangsüberwachung anpassen"
-
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "Konfiguration über_springen"
-
-#~ msgid "received non-ASCII data from server"
-#~ msgstr "Vom Server wurden nicht-ASCII-Daten übermittelt"
-
-#~ msgid ""
-#~ "As a fallback, they will be checked approximately every %i minute (this "
-#~ "delay is configurable from the Properties Dialog).As a fallback, they "
-#~ "will be checked approximately every %i minutes (this delay is "
-#~ "configurable from the Properties Dialog)."
-#~ msgstr ""
-#~ "Als Rücksicherung werden diese jede %i Minute überprüft (Dieser Wert kann "
-#~ "über den Einstellungsdialog angepasst werden).Als Rücksicherung werden "
-#~ "diese alle %i Minuten überprüft (Dieser Wert kann über den "
-#~ "Einstellungsdialog angepasst werden)."
diff --git a/po/fr.gmo b/po/fr.gmo
Binary files differ.
diff --git a/po/fr.po b/po/fr.po
@@ -8,10 +8,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-06 22:30+0100\n"
+"POT-Creation-Date: 2005-08-09 18:03+0200\n"
+"PO-Revision-Date: 2005-08-09 21:21+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"
@@ -19,158 +19,167 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
 msgid "Mail Notification automation"
 msgstr "automation Notification de Courrier"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
 msgid "Mail Notification automation factory"
 msgstr "usine d'automation Notification de Courrier"
 
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "contrôle Evolution \"hiérarchie de dossiers\""
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "usine de contrôle Evolution \"hiérarchie de dossiers\""
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "colle Notification de Courrier / Evolution"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "usine de colle Notification de Courrier / Evolution"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
 msgid "Configure Mail Notification"
 msgstr "Configurer la Notification de Courrier"
 
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
 msgid "Mail Notification"
 msgstr "Notification de Courrier"
 
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
 msgid "Get notified when new mail arrives"
 msgstr "Etre notifié lorsque du nouveau courrier arrive"
 
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
 msgstr "Fermer automatiquement le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
 msgstr "Clignoter lors d'erreurs"
 
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
 msgid "Delay between mail checks (minutes part)."
 msgstr "Délai entre les vérifications de courrier (partie minutes)."
 
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
 msgid "Delay between mail checks (seconds part)."
 msgstr "Délai entre les vérifications de courrier (partie secondes)."
 
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
 msgid "Display mail summary in tooltip"
 msgstr "Afficher l'aperçu du courrier dans le tooltip"
 
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
 msgid "Do not show the immediate notification error dialog"
 msgstr ""
 "Ne pas afficher la boîte de dialogue contenant l'erreur de notification "
 "immédiate"
 
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
 msgid "Double-click action"
 msgstr "Action du Double-click"
 
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
 msgid "Enable mail summary popup"
 msgstr "Activer le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
 msgid "Fingerprints of trusted X509 certificates"
 msgstr "Empreintes digitales des certificats X509 de confiance"
 
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "A déjà été exécuté"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
 msgid "Height of edit toolbars dialog"
 msgstr "Hauteur de la boîte de dialogue contenant l'éditeur de barres d'outils"
 
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
 msgid "Height of main window"
 msgstr "Hauteur de la fenêtre principale"
 
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
 msgid "Height of properties dialog"
 msgstr "Hauteur de la boîte de dialogue contenant les propriétés"
 
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
 msgid "Mail read command"
 msgstr "Commande de courrier lu"
 
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
 msgid "Mail reader command"
 msgstr "Commande de lecteur de courrier"
 
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
 msgid "Mail summary popup contents font"
 msgstr "Police du contenu du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
 msgid "Mail summary popup fonts aspect source"
 msgstr ""
 "Source d'aspect des polices de caractères du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
 msgid "Mail summary popup horizontal offset"
 msgstr "Décalage horizontal du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
 msgid "Mail summary popup position"
 msgstr "Position du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
 msgid "Mail summary popup title font"
 msgstr "Police du titre du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
 msgid "Mail summary popup vertical offset"
 msgstr "Décalage vertical du popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Liste des boîtes aux lettres"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
 msgid "Minutes between mail checks"
 msgstr "Minutes entre les vérifications de courrier"
 
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr "Minutes à attendre avant de fermer le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
 msgid "New mail command"
 msgstr "Commande de nouveau message"
 
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
 msgid "Only display recent mail in mail summary popup"
 msgstr ""
 "Afficher uniquement le courrier récent dans le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
 msgid "Run a command when all mail is read"
 msgstr "Exécuter une commande lorsque tout le courrier est lu"
 
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
 msgid "Run a command when new mail arrives"
 msgstr "Exécuter une commande lorsque du nouveau courrier arrive"
 
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
 msgid "Seconds between mail checks"
 msgstr "Secondes entre les vérifications de courrier"
 
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr "Secondes à attendre avant de fermer le popup d'aperçu du courrier"
 
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
 msgid "Set a mail reader"
 msgstr "Spécifier un lecteur de courrier"
 
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
 msgid ""
 "The action to perform when the icon is double-clicked. Must be \"display-"
 "main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
@@ -178,7 +187,7 @@ msgstr ""
 "L'action à effectuer lorsque l'icône est double-clickée. Doit être \"display-"
 "main-window\", \"launch-mail-reader\" ou \"update-mail-status\"."
 
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
@@ -186,7 +195,7 @@ msgstr ""
 "La quantité de temps à attendre avant de fermer le popup d'aperçu du "
 "courrier (partie minutes)."
 
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
@@ -194,7 +203,7 @@ msgstr ""
 "La quantité de temps à attendre avant de fermer le popup d'aperçu du "
 "courrier (partie secondes)."
 
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
 msgid ""
 "The aspect source of the mail summary popup fonts. Must be \"theme\" or "
 "\"custom\"."
@@ -202,49 +211,45 @@ msgstr ""
 "La source d'aspect des polices de caractères du popup d'aperçu du courrier. "
 "Doit être \"theme\" ou \"custom\"."
 
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
 msgid "The command to run to launch the mail reader."
 msgstr "La commande à exécuter pour démarrer le lecteur de courrier."
 
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
 msgid "The command to run when all mail is read."
 msgstr "La commande à exécuter lorsque tout le courrier est lu"
 
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
 msgid "The command to run when new mail arrives."
 msgstr "La commande à exécuter lorsque du nouveau courrier arrive."
 
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
 msgid "The custom font to use for the contents of the mail summary popup."
 msgstr ""
 "La police de caractères à utiliser pour le contenu du popup d'aperçu du "
 "courrier."
 
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
 msgid "The custom font to use for the title of the mail summary popup."
 msgstr ""
 "La police de caractères à utiliser pour le titre du popup d'aperçu du "
 "courrier."
 
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
 msgid "The height of the edit toolbars dialog in pixels."
 msgstr ""
 "La hauteur de la boîte de dialogue contenant l'éditeur de barres d'outils en "
 "pixels."
 
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
 msgid "The height of the main window in pixels."
 msgstr "La hauteur de la fenêtre principale en pixels."
 
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
 msgid "The height of the properties dialog in pixels."
 msgstr "La hauteur de la boîte de dialogue contenant les propriétés en pixels."
 
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "La liste des boîtes aux lettres à surveiller."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
@@ -252,14 +257,14 @@ msgstr ""
 "La liste des serveurs SSL/TLS (hôte:port) de confiance auxquels il manque un "
 "certificat X509."
 
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 "La liste des certificats X509 de confiance, représentés par leur empreinte "
 "digitale."
 
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
@@ -267,7 +272,7 @@ msgstr ""
 "Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
 "popup d'aperçu du courrier."
 
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
@@ -275,7 +280,7 @@ msgstr ""
 "Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
 "d'aperçu du courrier."
 
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
@@ -283,7 +288,7 @@ msgstr ""
 "La position du popup d'aperçu du courrier. Doit être \"top-left\", \"top-"
 "right\", \"bottom-left\" or \"bottom-right\"."
 
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
 msgid ""
 "The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
 "\"both\" or \"both-horiz\"."
@@ -291,77 +296,73 @@ msgstr ""
 "Le style des barres d'outils. Doit être \"desktop-default\", \"icons\", "
 "\"text\", \"both\" ou \"both-horiz\"."
 
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
 msgid "The width of the edit toolbars dialog in pixels."
 msgstr ""
 "La largeur de la boîte de dialogue contenant l'éditeur de barres d'outils en "
 "pixels."
 
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
 msgid "The width of the main window in pixels."
 msgstr "La largeur de la fenêtre principale en pixels."
 
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
 msgid "The width of the properties dialog in pixels."
 msgstr "La largeur de la boîte de dialogue contenant les propriétés en pixels."
 
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
 msgid "Toolbars style"
 msgstr "Style des barres d'outils"
 
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
 msgid "Trusted servers list"
 msgstr "Liste des serveurs de confiance"
 
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
 msgid "View statusbar"
 msgstr "Afficher la barre d'état"
 
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
 msgid "View toolbars"
 msgstr "Afficher les barres d'outils"
 
-#: data/mail-notification.schemas.in.h:58
-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:59
+#: ../data/mail-notification.schemas.in.h:55
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas."
 
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
 msgid "Whether the statusbar should be visible or not."
 msgstr "Si la barre d'état doit être visible ou pas."
 
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
 msgid "Whether the toolbars should be visible or not."
 msgstr "Si les barres d'outils doivent être visibles ou pas."
 
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas."
 
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
 msgid "Whether to display the mail summary in the status icon tooltip or not."
 msgstr ""
 "Si l'aperçu du courrier doit être affiché dans le tooltip de l'icône de "
 "statut ou pas."
 
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr ""
 "Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
 "courrier arrive ou pas."
 
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
 msgid ""
 "Whether to hide previously displayed mail in the mail summary popup or not."
 msgstr ""
 "Si le courrier précédemment affiché dans le popup d'aperçu du courrier doit "
 "être caché ou pas."
 
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
@@ -369,204 +370,200 @@ msgstr ""
 "Si il faut empêcher la boîte de dialogue contenant l'erreur de notification "
 "immédiate de s'afficher ou pas."
 
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
 msgid "Whether to run a command when all mail is read or not."
 msgstr ""
 "Si une commande doit être exécutée lorsque tout le courrier est lu ou pas."
 
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
 msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
 "Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas."
 
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
 msgid "Whether to set a mail reader or not."
 msgstr "Si un lecteur de courrier est spécifié ou pas."
 
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
 msgid "Width of edit toolbars dialog"
 msgstr "Largeur de la boîte de dialogue contenant l'éditeur de barres d'outils"
 
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
 msgid "Width of main window"
 msgstr "Largeur de la fenêtre principale"
 
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
 msgid "Width of properties dialog"
 msgstr "Largeur de la boîte de dialogue contenant les propriétés"
 
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
 msgid "New Mail"
-msgstr "Nouveau Courrier"
+msgstr "Nouveau courrier"
 
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
 msgid "_Remove Toolbar"
-msgstr "_Enlever la Barre d'Outils"
+msgstr "_Enlever la barre d'outils"
 
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
 msgid "Separator"
 msgstr "Séparateur"
 
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Glissez un élément sur la barre d'outils pour l'y ajouter, et de celle-ci "
-"vers le tableau d'icônes pour l'en enlever."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
 msgid "Orientation"
 msgstr "Orientation"
 
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
 msgid "The orientation of the tray."
 msgstr "L'orientation du plateau."
 
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
 msgid "A Mail Notification Icon"
-msgstr "Une Icône de Notification de Courrier"
+msgstr "Une icône de notification de courrier"
 
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
 msgstr "Jean-Yves Lefort <jylefort@brutele.be>"
 
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "Impossible d'ouvrir le lien"
+
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">autodétecter</span>"
 
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "_Nom d'utilisateur:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Mot de passe:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
 #, c-format
 msgid ""
 "Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
 "\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
 msgstr ""
 "La Notification de Courrier n'a pas été en mesure d'ouvrir une session dans "
-"la boîte aux lettres %s %s, peut-être parce que le mot de passe que vous "
-"avez saisi est invalide.\n"
+"la boîte aux lettres %s %s, peut-être parce que les données "
+"d'authentification que vous avez saisies sont invalides.\n"
 "\n"
-"Veuillez à nouveau saisir votre mot de passe."
+"Veuillez à nouveau saisir vos données d'authentification."
 
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
 #, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr "Entrez votre mot de passe pour la boîte aux lettres %s %s."
+msgid "Enter your credentials for %s mailbox %s."
+msgstr "Entrez vos données d'authentification pour la boîte aux lettres %s %s."
 
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">La Notification de Courrier nécessite "
-"un mot de passe</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Authentification requise"
 
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Emplacement"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:103
 msgid "_Location:"
 msgstr "_Emplacement:"
 
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
 msgid "_Browse..."
 msgstr "_Parcourir..."
 
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "L'URI de la boîte aux lettres"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
 msgid "Select a File or Folder"
-msgstr "Sélectionnez un Fichier ou Dossier"
-
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Si l'image clignote ou pas"
+msgstr "Sélectionnez un fichier ou dossier"
 
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
 #, c-format
 msgid "resolving %s"
 msgstr "résolution de %s en cours"
 
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr "impossible de résoudre %s: %s"
 
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
 #, c-format
 msgid "%s: unsupported address family"
 msgstr "%s: famille d'adresse non prise en charge"
 
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
 #, c-format
 msgid "%s: unable to create socket: %s"
 msgstr "%s: impossible de créer un socket: %s"
 
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr "connection à %s (%s) port %i en cours"
 
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
 #, c-format
 msgid "unable to connect: %s"
 msgstr "impossible de se connecter: %s"
 
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
 msgid "connected successfully"
 msgstr "connecté avec succès"
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
 #, c-format
 msgid "unable to connect to %s"
 msgstr "impossible de se connecter à %s"
 
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr "impossible d'initialiser la bibliothèque OpenSSL: %s"
 
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
 #, c-format
 msgid "unable to create a SSL/TLS object: %s"
 msgstr "impossible de créer un objet SSL/TLS: %s"
 
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
 #, c-format
 msgid "unable to set the SSL/TLS file descriptor: %s"
 msgstr "impossible de spécifier le descripteur de fichier SSL/TLS: %s"
 
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
 #, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
 msgstr "impossible d'accomplir la négociation SSL/TLS: %s"
 
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
 msgid "untrusted server"
 msgstr "serveur non fiable"
 
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
 #, c-format
 msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
 msgstr "une couche SSL/TLS est maintenant active (%s, %s %i-bit)"
 
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
 #, c-format
 msgid "%s, fingerprint: %s"
 msgstr "%s, empreinte digitale: %s"
 
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
 msgid "missing certificate"
 msgstr "certificat manquant"
 
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
 #, c-format
 msgid ""
 "Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -585,342 +582,332 @@ msgstr ""
 "vous êtes connecté à \"%s\". Si vous choisissez de vous connecter au "
 "serveur, ce message ne sera plus affiché."
 
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
 msgid "Connect to untrusted server?"
 msgstr "Se connecter au serveur non fiable?"
 
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "Se co_nnecter"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr "la réponse \"%s\" n'est pas valable dans le contexte actuel"
 
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr "impossible d'interpréter la réponse \"%s\""
 
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
 #, c-format
 msgid "unable to read from server: %s"
 msgstr "impossible de lire depuis le serveur: %s"
 
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
 msgid "unable to read from server: EOF"
 msgstr "impossible de lire depuis le serveur: EOF"
 
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
 #, c-format
 msgid "unable to decode data using SASL: %s"
 msgstr "impossible de décoder les données en utilisant SASL: %s"
 
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr "impossible d'encoder les données en utilisant SASL: %s"
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "impossible d'écrire vers le serveur: %s"
 
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
 msgid "unable to write to server: EOF"
 msgstr "impossible d'écrire vers le serveur: EOF"
 
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "impossible d'encoder en Base64: %s"
 
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr "impossible d'initialiser la bibliothèque SASL: %s"
 
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "impossible d'obtenir l'adresse locale du socket: %s"
 
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr "impossible d'obtenir l'adresse distante du socket: %s"
 
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
 #, c-format
 msgid "unable to set SASL security properties: %s"
 msgstr "impossible de spécifier les propriétés de sécurité SASL: %s"
 
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
 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 "
 "que nous ne connaissions pas"
 
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr "impossible de démarrer l'authentification SASL: %s"
 
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr "impossible de créer une connection SASL: %s"
 
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
 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 "
 "l'authentification SASL"
 
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, annulation de l'authentification SASL"
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr "impossible de décoder l'entrée Base64 du serveur: %s"
 
-#: src/mn-client-session.c:1080
-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 "
-"initiale en attente"
-
-#: src/mn-client-session.c:1094
-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 "
-"client SASL initiale en attente"
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
 #, 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"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr "impossible d'obtenir la propriété SASL_MAXOUTBUF: %s"
 
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr "avertissement: impossible d'obtenir la propriété SASL_SSF: %s"
 
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
 msgid "A directory creation error has occurred"
 msgstr "Une erreur de création de répertoire s'est produite"
 
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
 #, c-format
 msgid "Unable to create directory \"%s\": %s."
 msgstr "Impossible de créer le répertoire \"%s\": %s."
 
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
 #, c-format
 msgid "recursively unsetting %s"
 msgstr "en train de supprimer récursivement %s"
 
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
 msgid "syncing the GConf database"
 msgstr "en train de synchroniser la base de données GConf"
 
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
 msgid "completed"
 msgstr "terminé"
 
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Votre nom d'utilisateur Gmail"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "emplacement invalide"
 
-#: src/mn-gmail-mailbox-properties.gob:77
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "L'URI actuellement sélectionnée"
+
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Dossier"
+
+#: ../src/mn-evolution-mailbox-properties.gob:169
 msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
 msgstr ""
-"Votre mot de passe Gmail (si laissé vide, le mot de passe vous sera demandé "
-"en temps utile)"
+"La Notification de Courrier ne peut contacter Evolution. Assurez-vous "
+"qu'Evolution est en cours de fonctionnement et que l'extension Evolution "
+"Notification de Courrier est chargée."
 
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "libsoup n'a pas été compilé avec le support SSL/TLS"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "dossier non trouvé"
 
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "impossible d'interpréter l'URI \"%s\""
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "impossible de contacter Evolution"
 
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "des données non-UTF-8 ont été reçues du serveur"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Impossible d'activer l'extension Notification de Courrier"
 
-#: src/mn-gmail-mailbox.gob:224
+#: ../src/mn-evolution-plugin.c:130
 #, c-format
-msgid "unable to transfer data: %s"
-msgstr "impossible de transférer des données: %s"
-
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "ouverture de session en cours"
-
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "l'ouverture de session a échoué"
-
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "recherche du courrier non lu"
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr ""
+"Bonobo n'a pu localiser le serveur %s. Veuillez vérifier votre installation "
+"de la Notification de Courrier."
 
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "impossible d'initialiser la bibliothèque ICU"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr ""
+"Bonobo n'a pu inscrire le serveur %s. Veuillez vérifier votre installation "
+"de la Notification de Courrier."
 
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "impossible d'interpréter les données Gmail"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "emplacement d'alimentation non valide"
 
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
 #, c-format
-msgid "unable to open calendar: %s"
-msgstr "impossible d'ouvrir le calendrier: %s"
+msgid "retrieving feed from %s"
+msgstr "obtention de l'alimentation depuis %s en cours"
 
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
 #, c-format
-msgid "unable to set calendar time: %s"
-msgstr "impossible de spécifier l'heure du calendrier: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "impossible d'obtenir l'alimentation: %s"
 
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "impossible d'obtenir l'heure du calendrier: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "impossible d'interpréter l'alimentation"
 
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:50
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
 #, c-format
 msgid "unable to read %s: %s"
 msgstr "impossible de lire %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:52
 #, c-format
 msgid "unable to write to %s: %s"
 msgstr "impossible d'écrire vers %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:54
 #, c-format
 msgid "unable to seek in %s: %s"
 msgstr "impossible de chercher dans %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:56
 #, c-format
 msgid "unable to tell position of %s: %s"
 msgstr "impossible de dire la position de %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:58 ../src/mn-mh-mailbox-backend.gob:158
 #, c-format
 msgid "unable to close %s: %s"
 msgstr "impossible de fermer %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
 msgid "Mailbox:"
 msgstr "Boîte aux lettres:"
 
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
 msgid "in_box"
 msgstr "_boîte de réception"
 
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
 msgid "oth_er:"
 msgstr "autr_e:"
 
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "Utili_ser le mode idle si possible"
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Le nom d'hôte ou adresse IP du serveur IMAP"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "_jamais"
 
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Votre nom d'utilisateur sur le serveur IMAP"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "au_todétecter"
 
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Votre mot de passe sur le serveur IMAP (si laissé vide, le mot de passe vous "
-"sera demandé en temps utile)"
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Le numéro de port du serveur IMAP"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "t_oujours"
 
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Le nom de la boîte aux lettres"
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Si possible, si le mode idle doit être utilisé ou pas"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr "le support SSL/TLS n'a pas été inclus lors de la compilation"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Utiliser l'extension <span style=\"italic\">IDLE</span>:"
 
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
 msgid "server did not send capabilities"
 msgstr "le serveur n'a pas envoyé ses possibilités"
 
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 "le serveur a annoncé LOGINDISABLED, pas d'utilisation de l'authentification "
 "LOGIN"
 
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
 msgid "unable to login"
 msgstr "impossible d'ouvrir la session"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
 msgid "server did not send search results"
 msgstr "le serveur n'a pas envoyé les résultats de la recherche"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
 msgid "server did not send all the messages we requested"
 msgstr "le serveur n'a pas envoyé tous les messages que nous avons demandé"
 
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
 msgid "unable to fetch message"
 msgstr "impossible d'obtenir le message"
 
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr ""
+"la valeur de l'option \"Utiliser l'extension IDLE\" dans les propriétés de "
+"la boîte aux lettres est \"jamais\", fermeture de session"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "le serveur distant utilise %s, l'extension IDLE ne sera pas utilisée"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr ""
+"le serveur distant utilise %s, il se peut que l'extension IDLE ne fonctionne "
+"pas correctement"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr ""
+"le serveur distant ne supporte pas l'extension IDLE, fermeture de session"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
 msgid "unknown server error"
 msgstr "erreur serveur inconnue"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
 msgid "server does not support in-band SSL/TLS"
 msgstr "le serveur ne supporte pas le mode SSL/TLS interne"
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -928,431 +915,372 @@ msgstr ""
 "un mécanisme d'authentification SASL a été sélectionné mais le support SASL "
 "n'a pas été inclus lors de la compilation"
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "mécanisme d'authentification inconnu \"%s\""
 
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr ""
+"désactivation du mécanisme \"%s\" et nouvelle tentative d'authentification "
+"SASL"
+
+#: ../src/mn-imap-mailbox.gob:1435
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "rétrogradation vers l'authentification IMAP LOGIN"
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
 msgid "authentication failed"
 msgstr "l'authentification a échoué"
 
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
 msgid "Main _Window"
-msgstr "_Fenêtre Principale"
+msgstr "_Fenêtre principale"
 
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
 msgid "_Mail Reader"
-msgstr "_Lecteur de Courrier"
+msgstr "_Lecteur de courrier"
 
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
 msgid "_Update"
-msgstr "_Mettre à Jour"
+msgstr "_Mettre à jour"
 
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
 msgid "R_emove From Notification Area"
-msgstr "_Enlever de l'Aire de Notification"
+msgstr "_Enlever de l'aire de notification"
 
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Ajouter une Boîte aux Lettres"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
 #, c-format
 msgid "%s Properties"
 msgstr "Propriétés de %s"
 
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "_Nom d'utilisateur:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Mot de passe:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Type de connection:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Port:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "Mécanisme d'_authentification:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-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"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-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"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Complet"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Ajouter une boîte aux lettres"
 
-#: 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"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Une erreur de collage s'est produite"
 
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
 msgid "Mailbox"
 msgstr "Boîte aux lettres"
 
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Format"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "boîte aux lettres %s non prise en charge (%s)"
 
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Impossible d'ajouter la boîte aux lettres"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "boîte aux lettres %s"
 
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "La boîte aux lettres est déjà dans la liste."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "détection du type de boîte aux lettres en cours..."
 
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "L'URI de la boîte aux lettres"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "attribut \"type\" manquant"
 
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Le nom, lisible par un humain, de la boîte aux lettres"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "type de boîte aux lettres \"%s\" inconnu"
 
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Si la boîte aux lettres doit être vérifiée explicitement ou pas"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr ""
+"propriété \"%s\": impossible de transformer la chaîne de caractères \"%s\" "
+"en une valeur de type \"%s\""
 
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "La liste des objets MNMessage neufs et non lus"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "la propriété \"%s\" n'a pas de valeur"
 
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "L'erreur de la boîte aux lettres si il y en a une"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr ""
+"Une erreur s'est produite lors de l'importation des anciennes boîtes aux "
+"lettres"
 
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "n'existe pas"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Impossible de charger la configuration des boîtes aux lettres"
 
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "format inconnu"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "Impossible d'interpréter le document XML."
 
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "impossible d'activer la notification immédiate: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "L'élément racine est manquant."
 
-#: src/mn-mailbox.gob:421
+#: ../src/mn-mailboxes.gob:307
 #, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-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)."
-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)."
+msgid "The root element \"%s\" is invalid."
+msgstr "L'élément racine \"%s\" est invalide."
 
-#: src/mn-mailbox.gob:432
+#: ../src/mn-mailboxes.gob:330
 #, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-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)."
-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)."
+msgid "On line %i: %s."
+msgstr "A la ligne %i: %s."
 
-#: src/mn-mailbox.gob:443
+#: ../src/mn-mailboxes.gob:335
 #, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
+msgid "On line %i: unknown element \"%s\"."
+msgstr "A la ligne %i: élément \"%s\" inconnu."
+
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
 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)."
+"Une erreur s'est produite lors du chargement de la configuration des boîtes "
+"aux lettres"
 msgstr[1] ""
-"Comme solution de secours, elles seront vérifiées approximativement toutes "
-"les %i minutes (ce délai est configurable depuis les Propriétés)."
-
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Une erreur de surveillance s'est produite"
+"Des erreurs se sont produites lors du chargement de la configuration des "
+"boîtes aux lettres"
 
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"La Notification de Courrier n'a pas été en mesure d'activer la notification "
-"immédiate pour une ou plusieures boîtes aux lettres. %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Impossible de sauvegarder la configuration des boîtes aux lettres"
 
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-"Si une ou plusieurs boîtes aux lettres doivent être vérifiées explicitement"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Impossible d'écrire le document XML."
 
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
 #, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s n'est pas pris en charge: %s"
+msgid "unable to delete %s: %s"
+msgstr "impossible de supprimer %s: %s"
 
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
 #, c-format
 msgid "%s has %i new message"
 msgid_plural "%s has %i new messages"
 msgstr[0] "%s a %i nouveau message"
 msgstr[1] "%s a %i nouveaux messages"
 
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s a indiqué une erreur: %s"
 
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "impossible d'ouvrir le dossier \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
 #, c-format
 msgid "unable to close folder \"new\": %s"
 msgstr "impossible de fermer le dossier \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "erreur lors de la lecture du dossier \"new\": %s"
 
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Messages d'aide"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Messages de comptes"
+
 #. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
 msgid "_Mail"
 msgstr "_Courrier"
 
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
 msgid "_Edit"
 msgstr "_Edition"
 
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
 msgid "_View"
 msgstr "Afficha_ge"
 
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
 msgid "_Help"
 msgstr "_Aide"
 
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
 msgid "Launch the mail reader"
 msgstr "Exécuter le lecteur de courrier"
 
 #. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
 msgid "Update the mail status"
 msgstr "Mettre à jour le statut du courrier"
 
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
 msgid "_Close"
 msgstr "_Fermer"
 
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
 msgid "Close this window"
 msgstr "Fermer cette fenêtre"
 
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
 msgid "_Quit"
 msgstr "_Quitter"
 
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
 msgid "Quit Mail Notification"
 msgstr "Quitter la Notification de Courrier"
 
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
 msgid "_Toolbars"
-msgstr "_Barres d'Outils"
+msgstr "_Barres d'outils"
 
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
 msgid "Customize the toolbars"
 msgstr "Personnaliser les barres d'outils"
 
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
 msgid "_Preferences"
 msgstr "_Préférences"
 
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
 msgid "Toolbars Styl_e"
-msgstr "Styl_e des Barres d'Outils"
+msgstr "Styl_e des barres d'outils"
 
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
 msgid "Customize the toolbars style"
 msgstr "Personnaliser le style des barres d'outils"
 
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
 msgid "_Contents"
 msgstr "_Contenu"
 
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
 msgid "Display help"
 msgstr "Afficher l'aide"
 
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
 msgid "_About"
-msgstr "_A Propos"
+msgstr "_A propos"
 
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
 msgid "Display credits"
 msgstr "Afficher les crédits"
 
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
 msgid "Show or hide the toolbars"
 msgstr "Afficher ou cacher les barres d'outils"
 
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
 msgid "_Statusbar"
-msgstr "Barre d'_Etat"
+msgstr "Barre d'_état"
 
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
 msgid "Show or hide the statusbar"
 msgstr "Afficher ou cacher la barre d'état"
 
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
 msgid "_Desktop Default"
-msgstr "Valeur par Défaut du _Bureau"
+msgstr "Valeur par défaut du _bureau"
 
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
 msgid "Set the toolbars style to the desktop default setting"
 msgstr ""
 "Utiliser la valeur par défaut du bureau pour le style des barres d'outils"
 
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
 msgid "I_cons Only"
-msgstr "Seulement _Icônes"
+msgstr "Seulement _icônes"
 
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
 msgid "Only display the toolbars icons"
 msgstr "Afficher uniquement les icônes des barres d'outils"
 
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
 msgid "_Text Only"
-msgstr "Seulement _Texte"
+msgstr "Seulement _texte"
 
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
 msgid "Only display the toolbars text"
 msgstr "Afficher uniquement le texte des barres d'outils"
 
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
 msgid "Text Belo_w Icons"
-msgstr "Texte en _Dessous des Icônes"
+msgstr "Texte en _dessous des icônes"
 
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
 msgid "Display the toolbars text below the icons"
 msgstr "Afficher le texte des barres d'outils en dessous des icônes"
 
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
 msgid "Text Be_side Icons"
-msgstr "Texte à _Côté des Icônes"
+msgstr "Texte à _côté des icônes"
 
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
 msgid "Display the toolbars text beside the icons"
 msgstr "Afficher le texte des barres d'outils à côté des icônes"
 
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
 #, c-format
 msgid "unable to load menus.xml: %s"
 msgstr "impossible de charger menus.xml: %s"
 
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Messages d'aide"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Messages de comptes"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "impossible de charger toolbars.xml"
 
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
 #, c-format
 msgid "%i new message"
 msgid_plural "%i new messages"
 msgstr[0] "%i nouveau message"
 msgstr[1] "%i nouveaux messages"
 
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "impossible de charger toolbars.xml"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Prises en charge de boîtes aux lettres disponibles: %s\n"
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "timestamps Gmail"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Prises en charge de boîtes aux lettres disponibles: "
 
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Fonctionnalités disponibles: %s\n"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Fonctionnalités POP3 and IMAP disponibles: "
 
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
 msgid "Enable informational output"
 msgstr "Activer la sortie informationnelle"
 
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
 msgid "List the compiled-in features"
 msgstr "Afficher les fonctionnalités disponibles"
 
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
 msgid "Display the main window"
 msgstr "Afficher la fenêtre principale"
 
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
 msgid "Display the properties dialog"
 msgstr "Afficher la boîte de dialogue contenant les propriétés"
 
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
 msgid "Display the about dialog"
 msgstr "Afficher la boîte de dialogue \"à propos\""
 
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
 msgid "Close the mail summary popup"
 msgstr "Fermer le popup d'aperçu du courrier"
 
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Rapporter le statut du courrier"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
 msgid "Unset obsolete GConf configuration"
 msgstr "Supprimer la configuration GConf obsolète"
 
@@ -1360,638 +1288,663 @@ msgstr "Supprimer la configuration GConf obsolète"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
 msgid "multi-threading is not available"
 msgstr "le multi-threading n'est pas disponible"
 
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
 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 pu localiser l'objet automation. Veuillez vérifier votre "
 "installation de la Notification de Courrier."
 
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
 msgid "quitting Mail Notification"
 msgstr "en train de quitter la Notification de Courrier"
 
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
 msgid "Mail Notification is not running"
 msgstr "La Notification de Courrier n'est pas en cours d'exécution"
 
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Impossible d'initialiser la bibliothèque GnomeVFS."
 
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
 msgid "updating the mail status"
 msgstr "mise à jour du statut du courrier"
 
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
 msgid "Mail Notification is already running"
 msgstr "La Notification de Courrier est déjà en cours d'exécution"
 
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
 msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
+"Bonobo could not locate the %s 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."
+"Bonobo n'a pu localiser le fichier %s. Veuillez vérifier votre installation "
+"de la Notification de Courrier."
 
-#: src/mn-main.c:421
-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."
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "impossible de fermer le fichier: %s"
 
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:226
 #, c-format
 msgid "unable to open mailbox: %s"
 msgstr "impossible d'ouvrir la boîte aux lettres: %s"
 
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
 msgid "unable to parse MIME message"
 msgstr "impossible d'interpréter le message MIME"
 
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
 msgid "You have no new mail."
 msgstr "Vous n'avez pas de nouveau courrier."
 
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
 msgid "Unreadable message"
 msgstr "Message non lisible"
 
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
 msgid "From"
 msgstr "De"
 
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
 msgid "Subject"
 msgstr "Sujet"
 
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
 msgid "Sent"
 msgstr "Envoyé"
 
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
 msgstr[0] "il y a %i seconde"
 msgstr[1] "il y a %i secondes"
 
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
 #, c-format
 msgid "about %i minute ago"
 msgid_plural "about %i minutes ago"
 msgstr[0] "il y a approximativement %i minute"
 msgstr[1] "il y a approximativement %i minutes"
 
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
 #, c-format
 msgid "about %i hour ago"
 msgid_plural "about %i hours ago"
 msgstr[0] "il y a approximativement %i heure"
 msgstr[1] "il y a approximativement %i heures"
 
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
 #, c-format
 msgid "about %i day ago"
 msgid_plural "about %i days ago"
 msgstr[0] "il y a approximativement %i jour"
 msgstr[1] "il y a approximativement %i jours"
 
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
 #, c-format
 msgid "about %i week ago"
 msgid_plural "about %i weeks ago"
 msgstr[0] "il y a approximativement %i semaine"
 msgstr[1] "il y a approximativement %i semaines"
 
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "erreur lors de la lecture de .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "aucune"
 
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
 #, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr "impossible d'ouvrir .mh_sequences: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "en cours de détection"
+msgid "error while reading %s: %s"
+msgstr "erreur lors de la lecture de %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "Nom d'_hôte:"
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Détails"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "impossible d'ouvrir %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
 msgid "sta_ndard"
 msgstr "sta_ndard"
 
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
 msgid "_in-band SSL/TLS"
 msgstr "SSL/TLS _interne"
 
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS sur port sépa_ré"
 
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Le nom d'hôte ou adresse IP du serveur POP3"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "Nom d'_hôte:"
 
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Votre nom d'utilisateur sur le serveur POP3"
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Détails"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Votre mot de passe sur le serveur POP3 (si laissé vide, le mot de passe vous "
-"sera demandé en temps utile)"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Type de connection:"
+
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Port:"
+
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "Mécanisme d'_authentification:"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Le numéro de port du serveur POP3"
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr "le support SSL/TLS n'a pas été inclus lors de la compilation"
 
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pop3-mailbox.gob:359
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "arguments invalides pour la possibilité LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr ""
+"l'authentification SASL avec réponse client SASL initiale a échoué, nouvel "
+"essai sans réponse client SASL initiale"
+
+#: ../src/mn-pop3-mailbox.gob:733
 msgid "unknown error"
 msgstr "erreur inconnue"
 
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] "attente de %i seconde afin d'obéir à LOGIN-DELAY"
 msgstr[1] "attente de %i secondes afin d'obéir à LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
 msgid "server does not support APOP authentication"
 msgstr "le serveur ne supporte pas l'authentification APOP"
 
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
 msgid "falling back to APOP authentication"
 msgstr "rétrogradation vers l'authentification APOP"
 
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
 msgid "falling back to USER/PASS authentication"
 msgstr "rétrogradation vers l'authentification USER/PASS"
 
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Propriétés de la Notification de Courrier"
+
+#: ../src/mn-properties-dialog.gob:207
 msgid "top left"
 msgstr "en haut à gauche"
 
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
 msgid "top right"
 msgstr "en haut à droite"
 
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
 msgid "bottom left"
 msgstr "en bas à gauche"
 
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
 msgid "bottom right"
 msgstr "en bas à droite"
 
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
 msgid "No mailbox selected."
 msgstr "Pas de boîte aux lettres sélectionnée."
 
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
 msgstr[0] "%i boîte aux lettres sélectionnée"
 msgstr[1] "%i boîtes aux lettres sélectionnées"
 
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Message test %i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr ""
+"Boîte de dialogue contenant les propriétés de la Notification de Courrier"
+
+#: ../src/mn-shell.gob:109
 msgid "You have new mail."
 msgstr "Vous avez du nouveau courrier."
 
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
 msgid "Mailboxes Having New Mail"
-msgstr "Boîtes aux Lettres Ayant du Nouveau Courrier"
+msgstr "Boîtes aux lettres ayant du nouveau courrier"
 
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
 msgid "Errors"
 msgstr "Erreurs"
 
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Boîtes aux Lettres Non Supportées"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
 msgid "Mail Summary"
-msgstr "Aperçu du Courrier"
-
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "impossible d'interpréter l'URI de proxy \"%s\""
+msgstr "Aperçu du courrier"
 
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
 msgid "unknown SSL/TLS error"
 msgstr "erreur SSL/TLS inconnue"
 
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
 msgid "Select _All"
-msgstr "Sélectionner _Tout"
+msgstr "Sélectionner _tout"
 
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
 msgid "Leave Fullscreen"
-msgstr "Quitter le Mode Plein Ecran"
+msgstr "Quitter le mode plein écran"
+
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "Se co_nnecter"
 
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "impossible d'ouvrir le dossier: %s"
 
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
 #, c-format
 msgid "unable to close folder: %s"
 msgstr "impossible de fermer le dossier: %s"
 
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "erreur lors de la lecture du dossier: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr "Boîte aux Lettres Système"
+#: ../src/mn-sylpheed-mailbox-backend.gob:256
+msgid "unexpected end of file"
+msgstr "fin de fichier inattendue"
 
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-sylpheed-mailbox-backend.gob:270
 #, 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."
+msgid "incompatible file version \"%i\""
+msgstr "version de fichier \"%i\" incompatible"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:273
+msgid "file version missing"
+msgstr "version de fichier manquante"
 
-#: src/mn-system-mailbox-properties.gob:64
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
+msgstr "Boîte aux lettres système"
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
+#, c-format
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
+msgstr "Votre boîte aux lettres système est <span weight=\"bold\">%s</span>."
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
 msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
+"The location of your system mailbox could not be detected. Check 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."
+"Vérifiez la variable d'environnement MAIL."
 
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "La raison pour laquelle la boîte aux lettres n'est pas prise en charge"
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "variable d'environnement MAIL non définie"
 
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "non pris en charge"
-
-#: src/mn-util.c:245
+#: ../src/mn-util.c:281
 #, c-format
 msgid "error loading image: %s"
 msgstr "erreur de chargement d'image: %s"
 
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
 #, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
 msgstr "élément \"%s\" non trouvé dans interface \"%s\""
 
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "une liste d'URI invalide a été reçue"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "impossible de s'auto-ouvrir en tant que module: %s"
 
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "une URL Mozilla invalide a été reçue"
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "gestionnaire de signal \"%s\" non trouvé"
 
-#: src/mn-util.c:519
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Une erreur de glisser-déposer s'est produite"
+
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Une liste d'emplacements non valide a été reçue."
+
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Un emplacement Mozilla non valide a été reçu."
+
+#: ../src/mn-util.c:678
 msgid "Unable to display help"
 msgstr "Impossible d'afficher l'aide"
 
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
 #, c-format
 msgid "Unable to create a thread: %s."
 msgstr "Impossible de créer un thread: %s."
 
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
 msgid "_Do not show this message again"
 msgstr "_Ne plus afficher ce message"
 
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+msgid_plural ""
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr[0] ""
+"L'emplacement suivant est invalide:\n"
+"\n"
+"%s"
+msgstr[1] ""
+"Les emplacements suivants sont invalides:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Une erreur fatale s'est produite dans la Notification de Courrier"
 
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
 #, c-format
 msgid "unable to get current time: %s"
 msgstr "impossible d'obtenir l'heure courante: %s"
 
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
 #, c-format
 msgid "invalid signal specification \"%s\""
 msgstr "spécification de signal \"%s\" invalide"
 
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
 msgid "A command error has occurred in Mail Notification"
 msgstr "Une erreur de commande s'est produite dans la Notification de Courrier"
 
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
 #, c-format
 msgid "Unable to execute \"%s\": %s."
 msgstr "Impossible d'exécuter \"%s\": %s"
 
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "S'_Authentifier"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "impossible de renommer %s en %s: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr ""
+"impossible de surveiller le contenu de la boîte aux lettres (%s), "
+"vérification explicite activée"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr ""
+"impossible de surveiller le type de la boîte aux lettres (%s), vérification "
+"explicite activée"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "format de boîte aux lettres inconnu"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "n'existe pas"
 
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+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)."
+msgstr[1] ""
+"Comme solution de secours, elles seront vérifiées toutes les %i secondes (ce "
+"délai est configurable depuis les Propriétés)."
+
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+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)."
+msgstr[1] ""
+"Comme solution de secours, elles seront vérifiées toutes les %i minutes (ce "
+"délai est configurable depuis les Propriétés)."
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+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)."
+msgstr[1] ""
+"Comme solution de secours, elles seront vérifiées approximativement toutes "
+"les %i minutes (ce délai est configurable depuis les Propriétés)."
+
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Une erreur de surveillance s'est produite"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"La Notification de Courrier n'a pas été en mesure d'activer la notification "
+"immédiate pour une ou plusieures boîtes aux lettres. %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
 msgid "Edit Toolbars"
-msgstr "Editer les Barres d'Outils"
+msgstr "Editer les barres d'outils"
 
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
 msgid "_Add a New Toolbar"
-msgstr "_Ajouter une Nouvelle Barre d'Outils"
+msgstr "_Ajouter une nouvelle barre d'outils"
 
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
 msgid "_Use Default"
-msgstr "_Par Défaut"
+msgstr "_Par défaut"
+
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span size=\"larger\" weight=\"bold\">Aperçu du courrier</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Général</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "_Nom de la boîte aux lettres:"
 
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
 msgstr "_Type de boîte aux lettres:"
 
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
 msgid "<span weight=\"bold\">Commands</span>"
 msgstr "<span weight=\"bold\">Commandes</span>"
 
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
 msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr "<span weight=\"bold\">Action du Double-Click</span>"
+msgstr "<span weight=\"bold\">Action du double-click</span>"
 
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
 msgid "<span weight=\"bold\">Fonts</span>"
 msgstr "<span weight=\"bold\">Polices de Caractères</span>"
 
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Général</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr "<span weight=\"bold\">Liste des Boîtes aux Lettres</span>"
+msgstr "<span weight=\"bold\">Liste des boîtes aux lettres</span>"
 
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Position</span>"
 
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
 msgid "Co_ntents:"
 msgstr "Co_ntenu:"
 
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
 msgid "Dis_play mail summary in tooltip"
 msgstr "Afficher l'a_perçu du courrier dans le tooltip"
 
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
 msgid "General"
 msgstr "Général"
 
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "Décalage hori_zontal:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Propriétés de la Notification de Courrier"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
 msgid "Mail Summary Popup"
-msgstr "Popup d'Aperçu du Courrier"
+msgstr "Popup d'aperçu du courrier"
 
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
 msgid "Mailboxes"
-msgstr "Boîtes aux Lettres"
+msgstr "Boîtes aux lettres"
 
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
 msgid "Only display _recent mail"
 msgstr "Afficher uniquement le courrier _récent"
 
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "P_osition:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr ""
-"La quantité de temps à attendre avant de fermer le popup d'aperçu du courrier"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "La quantité de temps à attendre entre les vérifications de courrier"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "La commande à exécuter pour démarrer le lecteur de courrier."
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "La commande à exécuter lorsque tout le courrier est lu"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr "La commande à exécuter lorsque du nouveau courrier arrive"
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Le nombre de pixels à laisser entre la gauche ou la droite de l'écran et le "
-"popup d'aperçu du courrier"
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Le nombre de pixels à laisser entre le haut ou le bas de l'écran et le popup "
-"d'aperçu du courrier"
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
 msgid "Use these _fonts:"
 msgstr "Utiliser ces _polices de caractères:"
 
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Quand _tout le courrier est lu:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Quand _tout le courrier a été lu:"
 
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
 msgid "When _new mail arrives:"
 msgstr "Quand du _nouveau courrier arrive:"
 
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr "Si l'icône de statut doit clignoter lors d'erreurs ou pas"
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-"Si le popup d'aperçu du courrier doit être automatiquement fermé ou pas"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-"Si l'aperçu du courrier doit être affiché dans le tooltip de l'icône de "
-"statut ou pas"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Si le popup d'aperçu du courrier doit être affiché lorsque du nouveau "
-"courrier arrive ou pas"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Si le courrier précédemment affiché doit être caché ou pas"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-"Si une commande doit être exécutée lorsque tout le courrier est lu ou pas"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-"Si une commande doit être exécutée lorsque du nouveau courrier arrive ou pas"
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Si un lecteur de courrier est spécifié ou pas"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-"Si la Notification de Courrier doit être démarrée lorsque vous ouvrez votre "
-"session GNOME ou pas"
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
 msgid "_Automatically close after:"
 msgstr "_Fermer automatiquement après:"
 
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
 msgid "_Blink on errors"
 msgstr "_Clignoter lors d'erreurs"
 
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
 msgid "_Delay between mail checks:"
 msgstr "_Délai entre les vérifications de courrier:"
 
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "_Afficher un popup de test"
+
+#: ../ui/properties-dialog.glade.h:21
 msgid "_Display the main window"
 msgstr "_Afficher la fenêtre principale"
 
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
 msgid "_Enable mail summary popup"
 msgstr "_Activer le popup d'aperçu du courrier"
 
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "Décalage _horizontal:"
+
+#: ../ui/properties-dialog.glade.h:24
 msgid "_Launch the mail reader"
 msgstr "_Exécuter le lecteur de courrier"
 
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
 msgid "_Mail reader:"
 msgstr "_Lecteur de courrier:"
 
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Position:"
+
+#: ../ui/properties-dialog.glade.h:27
 msgid "_Start Mail Notification on GNOME login"
 msgstr ""
 "_Démarrer la Notification de Courrier lors de l'ouverture de session GNOME"
 
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
 msgid "_Title:"
 msgstr "_Titre:"
 
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
 msgid "_Update the mail status"
 msgstr "_Mettre à jour le statut du courrier"
 
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
 msgid "_Use fonts from theme"
 msgstr "_Utiliser les polices de caractères du thème"
 
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
 msgid "_Vertical offset:"
 msgstr "Décalage _vertical:"
 
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
 msgid "minutes"
 msgstr "minutes"
 
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
 msgid "pixels"
 msgstr "pixels"
 
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
 msgid "seconds"
 msgstr "secondes"
-
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span size=\"larger\" weight=\"bold\">Aperçu du Courrier</span>"
-
-#: 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 need 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> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → 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, il est nécessaire que vous la configuriez.\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> (ou pour certains "
-"systèmes <span weight=\"bold\">Applications</span> → <span weight=\"bold"
-"\">Préférences</span> → <span weight=\"bold\">Plus de préférences</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
@@ -1,1860 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\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=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
-msgid "Mail Notification automation"
-msgstr ""
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
-msgid "Mail Notification automation factory"
-msgstr ""
-
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
-msgid "Configure Mail Notification"
-msgstr ""
-
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
-msgid "Mail Notification"
-msgstr ""
-
-#: data/mail-notification.desktop.in.h:1
-msgid "Get notified when new mail arrives"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:1
-msgid "Automatically close the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:2
-msgid "Blink on errors"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:3
-msgid "Delay between mail checks (minutes part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:4
-msgid "Delay between mail checks (seconds part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:5
-msgid "Display mail summary in tooltip"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:6
-msgid "Do not show the immediate notification error dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:7
-msgid "Double-click action"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:8
-msgid "Enable mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:9
-msgid "Fingerprints of trusted X509 certificates"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:11
-msgid "Height of edit toolbars dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:12
-msgid "Height of main window"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:13
-msgid "Height of properties dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:14
-msgid "Mail read command"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:15
-msgid "Mail reader command"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:16
-msgid "Mail summary popup contents font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:17
-msgid "Mail summary popup fonts aspect source"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:18
-msgid "Mail summary popup horizontal offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:19
-msgid "Mail summary popup position"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:20
-msgid "Mail summary popup title font"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:21
-msgid "Mail summary popup vertical offset"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:23
-msgid "Minutes between mail checks"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:24
-msgid "Minutes to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:25
-msgid "New mail command"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:26
-msgid "Only display recent mail in mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:27
-msgid "Run a command when all mail is read"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:28
-msgid "Run a command when new mail arrives"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:29
-msgid "Seconds between mail checks"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:30
-msgid "Seconds to wait before closing the mail summary popup"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:31
-msgid "Set a mail reader"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:32
-msgid ""
-"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:33
-msgid ""
-"The amount of time to wait before closing the mail summary popup (minutes "
-"part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:34
-msgid ""
-"The amount of time to wait before closing the mail summary popup (seconds "
-"part)."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:35
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:36
-msgid "The command to run to launch the mail reader."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:37
-msgid "The command to run when all mail is read."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:38
-msgid "The command to run when new mail arrives."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:39
-msgid "The custom font to use for the contents of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:40
-msgid "The custom font to use for the title of the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:41
-msgid "The height of the edit toolbars dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:42
-msgid "The height of the main window in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:43
-msgid "The height of the properties dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:45
-msgid ""
-"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
-"certificate."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:46
-msgid ""
-"The list of trusted X509 certificates, represented by their MD5 fingerprint."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:47
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:48
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:49
-msgid ""
-"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
-"\"bottom-left\" or \"bottom-right\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:50
-msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:51
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:52
-msgid "The width of the main window in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:53
-msgid "The width of the properties dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
-msgid "Trusted servers list"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:59
-msgid "Whether the status icon should blink on errors or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:60
-msgid "Whether the statusbar should be visible or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:61
-msgid "Whether the toolbars should be visible or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:62
-msgid "Whether to automatically close the mail summary popup or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:63
-msgid "Whether to display the mail summary in the status icon tooltip or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:64
-msgid "Whether to display the mail summary popup when new mail arrives or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:65
-msgid ""
-"Whether to hide previously displayed mail in the mail summary popup or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:66
-msgid ""
-"Whether to prevent the immediate notification error dialog from being "
-"displayed or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:67
-msgid "Whether to run a command when all mail is read or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:68
-msgid "Whether to run a command when new mail arrives or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:69
-msgid "Whether to set a mail reader or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:70
-msgid "Width of edit toolbars dialog"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:71
-msgid "Width of main window"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:72
-msgid "Width of properties dialog"
-msgstr ""
-
-#: data/mail-notification.soundlist.in.h:2
-msgid "New Mail"
-msgstr ""
-
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-
-#: src/eggtrayicon.c:109
-msgid "Orientation"
-msgstr ""
-
-#: src/eggtrayicon.c:110
-msgid "The orientation of the tray."
-msgstr ""
-
-#: src/mn-about-dialog.gob:42
-msgid "A Mail Notification Icon"
-msgstr ""
-
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
-msgstr ""
-
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
-msgid "<span style=\"italic\">autodetect</span>"
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:85
-#, c-format
-msgid ""
-"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
-"\n"
-"Please re-enter your password."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:86
-#, c-format
-msgid "Enter your password for %s mailbox %s."
-msgstr ""
-
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:70
-msgid "_Location:"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:76
-msgid "_Browse..."
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr ""
-
-#: src/mn-autodetect-mailbox-properties.gob:123
-msgid "Select a File or Folder"
-msgstr ""
-
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr ""
-
-#: src/mn-client-session.c:220
-#, c-format
-msgid "resolving %s"
-msgstr ""
-
-#: src/mn-client-session.c:230
-#, c-format
-msgid "unable to resolve %s: %s"
-msgstr ""
-
-#: src/mn-client-session.c:267
-#, c-format
-msgid "%s: unsupported address family"
-msgstr ""
-
-#: src/mn-client-session.c:274
-#, c-format
-msgid "%s: unable to create socket: %s"
-msgstr ""
-
-#: src/mn-client-session.c:278
-#, c-format
-msgid "connecting to %s (%s) port %i"
-msgstr ""
-
-#: src/mn-client-session.c:281
-#, c-format
-msgid "unable to connect: %s"
-msgstr ""
-
-#: src/mn-client-session.c:286
-msgid "connected successfully"
-msgstr ""
-
-#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
-#, c-format
-msgid "unable to connect to %s"
-msgstr ""
-
-#: src/mn-client-session.c:308
-#, c-format
-msgid "unable to initialize the OpenSSL library: %s"
-msgstr ""
-
-#: src/mn-client-session.c:316
-#, c-format
-msgid "unable to create a SSL/TLS object: %s"
-msgstr ""
-
-#: src/mn-client-session.c:322
-#, c-format
-msgid "unable to set the SSL/TLS file descriptor: %s"
-msgstr ""
-
-#: src/mn-client-session.c:328
-#, c-format
-msgid "unable to perform the SSL/TLS handshake: %s"
-msgstr ""
-
-#: src/mn-client-session.c:334
-msgid "untrusted server"
-msgstr ""
-
-#: src/mn-client-session.c:338
-#, c-format
-msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
-msgstr ""
-
-#: src/mn-client-session.c:385
-#, c-format
-msgid "%s, fingerprint: %s"
-msgstr ""
-
-#: src/mn-client-session.c:414
-msgid "missing certificate"
-msgstr ""
-
-#: src/mn-client-session.c:440
-#, c-format
-msgid ""
-"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
-"someone is intercepting your communication to obtain your confidential "
-"information.\n"
-"\n"
-"You should only connect to the server if you are certain you are connected "
-"to \"%s\". If you choose to connect to the server, this message will not be "
-"shown again."
-msgstr ""
-
-#: src/mn-client-session.c:457
-msgid "Connect to untrusted server?"
-msgstr ""
-
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr ""
-
-#: src/mn-client-session.c:518
-#, c-format
-msgid "response \"%s\" is not valid in current context"
-msgstr ""
-
-#: src/mn-client-session.c:544
-#, c-format
-msgid "unable to parse response \"%s\""
-msgstr ""
-
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
-#, c-format
-msgid "unable to read from server: %s"
-msgstr ""
-
-#: src/mn-client-session.c:597
-msgid "unable to read from server: EOF"
-msgstr ""
-
-#: src/mn-client-session.c:609
-#, c-format
-msgid "unable to decode data using SASL: %s"
-msgstr ""
-
-#: src/mn-client-session.c:743
-#, c-format
-msgid "unable to encode data using SASL: %s"
-msgstr ""
-
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
-#, c-format
-msgid "unable to write to server: %s"
-msgstr ""
-
-#: src/mn-client-session.c:779
-msgid "unable to write to server: EOF"
-msgstr ""
-
-#: src/mn-client-session.c:811
-#, c-format
-msgid "unable to encode Base64: %s"
-msgstr ""
-
-#: src/mn-client-session.c:922
-#, c-format
-msgid "unable to initialize the SASL library: %s"
-msgstr ""
-
-#: src/mn-client-session.c:931
-#, c-format
-msgid "unable to retrieve local address of socket: %s"
-msgstr ""
-
-#: src/mn-client-session.c:937
-#, c-format
-msgid "unable to retrieve remote address of socket: %s"
-msgstr ""
-
-#: src/mn-client-session.c:971
-#, c-format
-msgid "unable to set SASL security properties: %s"
-msgstr ""
-
-#: src/mn-client-session.c:995
-msgid ""
-"unable to start SASL authentication: SASL asked for something we did not know"
-msgstr ""
-
-#: src/mn-client-session.c:1014
-#, c-format
-msgid "unable to start SASL authentication: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1018
-#, c-format
-msgid "unable to create a SASL connection: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1055
-msgid "SASL asked for something we did not know, aborting SASL authentication"
-msgstr ""
-
-#: src/mn-client-session.c:1072
-#, c-format
-msgid "%s, aborting SASL authentication"
-msgstr ""
-
-#. compliance error
-#: src/mn-client-session.c:1077
-#, c-format
-msgid "unable to decode Base64 input from server: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-
-#: src/mn-client-session.c:1119
-#, 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:1124
-#, c-format
-msgid "unable to get SASL_MAXOUTBUF property: %s"
-msgstr ""
-
-#: src/mn-client-session.c:1130
-#, c-format
-msgid "warning: unable to get SASL_SSF property: %s"
-msgstr ""
-
-#: src/mn-conf.c:238
-msgid "A directory creation error has occurred"
-msgstr ""
-
-#: src/mn-conf.c:239
-#, c-format
-msgid "Unable to create directory \"%s\": %s."
-msgstr ""
-
-#: src/mn-conf.c:313
-#, c-format
-msgid "recursively unsetting %s"
-msgstr ""
-
-#: src/mn-conf.c:317
-msgid "syncing the GConf database"
-msgstr ""
-
-#: src/mn-conf.c:320
-msgid "completed"
-msgstr ""
-
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr ""
-
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:891
-#, c-format
-msgid "unable to open calendar: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:899
-#, c-format
-msgid "unable to set calendar time: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:49
-#, c-format
-msgid "unable to read %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:51
-#, c-format
-msgid "unable to write to %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:53
-#, c-format
-msgid "unable to seek in %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:55
-#, c-format
-msgid "unable to tell position of %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:57
-#, c-format
-msgid "unable to close %s: %s"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:95
-msgid "Mailbox:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:99
-msgid "in_box"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:110
-msgid "oth_er:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:236
-msgid "server did not send capabilities"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:408
-msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:409
-msgid "unable to login"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:542
-msgid "server did not send search results"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:617
-msgid "server did not send all the messages we requested"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:671
-msgid "unable to fetch message"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
-msgid "unknown server error"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
-msgid "server does not support in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
-msgid ""
-"a SASL authentication mechanism was selected but SASL support has not been "
-"compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
-#, c-format
-msgid "unknown authentication mechanism \"%s\""
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1160
-msgid "falling back to IMAP LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
-msgid "authentication failed"
-msgstr ""
-
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
-
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-msgid "_Mail Reader"
-msgstr ""
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
-msgid "_Update"
-msgstr ""
-
-#: src/mn-mail-icon.gob:99
-msgid "R_emove From Notification Area"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:325
-#, c-format
-msgid "%s Properties"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
-msgid "Mailbox"
-msgstr ""
-
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr ""
-
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr ""
-
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr ""
-
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr ""
-
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr ""
-
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr ""
-
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr ""
-
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr ""
-
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr ""
-
-#: src/mn-mailbox.gob:421
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:432
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:443
-#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr ""
-
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-
-#: src/mn-mailboxes.gob:260
-#, c-format
-msgid "%s is unsupported: %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:290
-#, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailboxes.gob:307
-#, c-format
-msgid "%s reported an error: %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:112
-#, c-format
-msgid "unable to open folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:141
-#, c-format
-msgid "unable to close folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:144
-#, c-format
-msgid "error while reading folder \"new\": %s"
-msgstr ""
-
-#. Toplevel
-#: src/mn-main-window.c:92
-msgid "_Mail"
-msgstr ""
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-msgid "Launch the mail reader"
-msgstr ""
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr ""
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-msgid "Quit Mail Notification"
-msgstr ""
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-msgid "_Contents"
-msgstr ""
-
-#: src/mn-main-window.c:165
-msgid "Display help"
-msgstr ""
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-msgid "Only display the toolbars icons"
-msgstr ""
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, c-format
-msgid "unable to load menus.xml: %s"
-msgstr ""
-
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr ""
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr ""
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr ""
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr ""
-
-#: src/mn-main.c:176
-msgid "Enable informational output"
-msgstr ""
-
-#: src/mn-main.c:185
-msgid "List the compiled-in features"
-msgstr ""
-
-#: src/mn-main.c:194
-msgid "Display the main window"
-msgstr ""
-
-#: src/mn-main.c:203
-msgid "Display the properties dialog"
-msgstr ""
-
-#: src/mn-main.c:212
-msgid "Display the about dialog"
-msgstr ""
-
-#: src/mn-main.c:221
-msgid "Close the mail summary popup"
-msgstr ""
-
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr ""
-
-#: src/mn-main.c:248
-msgid "Unset obsolete GConf configuration"
-msgstr ""
-
-#.
-#. * We can't use mn_error_dialog() because gtk_init() has not been
-#. * called yet.
-#.
-#: src/mn-main.c:284
-msgid "multi-threading is not available"
-msgstr ""
-
-#: src/mn-main.c:338
-msgid ""
-"Bonobo could not locate the automation object. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-main.c:344
-msgid "quitting Mail Notification"
-msgstr ""
-
-#: src/mn-main.c:348
-msgid "Mail Notification is not running"
-msgstr ""
-
-#: src/mn-main.c:355
-msgid "Unable to initialize the GnomeVFS library."
-msgstr ""
-
-#: src/mn-main.c:391
-msgid "updating the mail status"
-msgstr ""
-
-#: src/mn-main.c:409
-msgid "Mail Notification is already running"
-msgstr ""
-
-#: src/mn-main.c:417
-msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-mbox-mailbox.gob:184
-#, c-format
-msgid "unable to open mailbox: %s"
-msgstr ""
-
-#: src/mn-message-mime.c:105
-msgid "unable to parse MIME message"
-msgstr ""
-
-#: src/mn-message-view.gob:81
-msgid "You have no new mail."
-msgstr ""
-
-#: src/mn-message-view.gob:321
-msgid "Unreadable message"
-msgstr ""
-
-#: src/mn-message-view.gob:329
-msgid "From"
-msgstr ""
-
-#: src/mn-message-view.gob:337
-msgid "Subject"
-msgstr ""
-
-#: src/mn-message-view.gob:348
-msgid "Sent"
-msgstr ""
-
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr ""
-
-#: src/mn-message.gob:126
-#, c-format
-msgid "%i second ago"
-msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:130
-#, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:135
-#, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:140
-#, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:145
-#, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-mh-mailbox.gob:157
-#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:105
-msgid "sta_ndard"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:115
-msgid "_in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:125
-msgid "SSL/TLS on sepa_rate port"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:266
-msgid "invalid arguments for the LOGIN-DELAY capability"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:569
-msgid "unknown error"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:656
-#, c-format
-msgid "honouring LOGIN-DELAY, sleeping for %i second"
-msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-pop3-mailbox.gob:849
-msgid "server does not support APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:884
-msgid "falling back to APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:889
-msgid "falling back to USER/PASS authentication"
-msgstr ""
-
-#: src/mn-properties-dialog.c:218
-msgid "top left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:219
-msgid "top right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:220
-msgid "bottom left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:221
-msgid "bottom right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:323
-msgid "No mailbox selected."
-msgstr ""
-
-#: src/mn-properties-dialog.c:328
-#, c-format
-msgid "%i mailbox selected."
-msgid_plural "%i mailboxes selected."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:96
-msgid "You have new mail."
-msgstr ""
-
-#: src/mn-shell.gob:361
-msgid "Mailboxes Having New Mail"
-msgstr ""
-
-#: src/mn-shell.gob:382
-msgid "Errors"
-msgstr ""
-
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr ""
-
-#: src/mn-shell.gob:418
-msgid "Mail Summary"
-msgstr ""
-
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr ""
-
-#: src/mn-ssl.c:79
-msgid "unknown SSL/TLS error"
-msgstr ""
-
-#: src/mn-stock.c:28
-msgid "Select _All"
-msgstr ""
-
-#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:113
-#, c-format
-msgid "unable to open folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:147
-#, c-format
-msgid "unable to close folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:150
-#, c-format
-msgid "error while reading folder: %s"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:57
-#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr ""
-
-#: src/mn-util.c:245
-#, c-format
-msgid "error loading image: %s"
-msgstr ""
-
-#: src/mn-util.c:276
-#, c-format
-msgid "widget \"%s\" not found in interface \"%s\""
-msgstr ""
-
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr ""
-
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr ""
-
-#: src/mn-util.c:519
-msgid "Unable to display help"
-msgstr ""
-
-#: src/mn-util.c:533
-#, c-format
-msgid "Unable to create a thread: %s."
-msgstr ""
-
-#: src/mn-util.c:626
-msgid "_Do not show this message again"
-msgstr ""
-
-#: src/mn-util.c:710
-msgid "A fatal error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:725
-#, c-format
-msgid "unable to get current time: %s"
-msgstr ""
-
-#: src/mn-util.c:787
-#, c-format
-msgid "invalid signal specification \"%s\""
-msgstr ""
-
-#: src/mn-util.c:826
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:827
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr ""
-
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
-msgstr ""
-
-#: ui/properties.glade.h:1
-msgid "<span weight=\"bold\">Commands</span>"
-msgstr ""
-
-#: ui/properties.glade.h:2
-msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr ""
-
-#: ui/properties.glade.h:3
-msgid "<span weight=\"bold\">Fonts</span>"
-msgstr ""
-
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr ""
-
-#: ui/properties.glade.h:5
-msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr ""
-
-#: ui/properties.glade.h:6
-msgid "<span weight=\"bold\">Position</span>"
-msgstr ""
-
-#: ui/properties.glade.h:7
-msgid "Co_ntents:"
-msgstr ""
-
-#: ui/properties.glade.h:8
-msgid "Dis_play mail summary in tooltip"
-msgstr ""
-
-#: ui/properties.glade.h:9
-msgid "General"
-msgstr ""
-
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr ""
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr ""
-
-#: ui/properties.glade.h:12
-msgid "Mail Summary Popup"
-msgstr ""
-
-#: ui/properties.glade.h:13
-msgid "Mailboxes"
-msgstr ""
-
-#: ui/properties.glade.h:14
-msgid "Only display _recent mail"
-msgstr ""
-
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr ""
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr ""
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr ""
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr ""
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr ""
-
-#: ui/properties.glade.h:25
-msgid "When _new mail arrives:"
-msgstr ""
-
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr ""
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr ""
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr ""
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-
-#: ui/properties.glade.h:35
-msgid "_Automatically close after:"
-msgstr ""
-
-#: ui/properties.glade.h:36
-msgid "_Blink on errors"
-msgstr ""
-
-#: ui/properties.glade.h:37
-msgid "_Delay between mail checks:"
-msgstr ""
-
-#: ui/properties.glade.h:38
-msgid "_Display the main window"
-msgstr ""
-
-#: ui/properties.glade.h:39
-msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:40
-msgid "_Launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:41
-msgid "_Mail reader:"
-msgstr ""
-
-#: ui/properties.glade.h:42
-msgid "_Start Mail Notification on GNOME login"
-msgstr ""
-
-#: ui/properties.glade.h:43
-msgid "_Title:"
-msgstr ""
-
-#: ui/properties.glade.h:44
-msgid "_Update the mail status"
-msgstr ""
-
-#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
-
-#: ui/properties.glade.h:46
-msgid "_Vertical offset:"
-msgstr ""
-
-#: ui/properties.glade.h:47
-msgid "minutes"
-msgstr ""
-
-#: ui/properties.glade.h:48
-msgid "pixels"
-msgstr ""
-
-#: ui/properties.glade.h:49
-msgid "seconds"
-msgstr ""
-
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-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 need 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> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → 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/pl.gmo b/po/pl.gmo
Binary files differ.
diff --git a/po/pl.po b/po/pl.po
@@ -1,5 +1,5 @@
 # Polish translations for mail-notification.
-# Copyright (c) 2003, 2004 Jean-Yves Lefort.
+# Copyright (C) 2003-2005 Jean-Yves Lefort.
 #
 # This file is distributed under the same license as the
 # mail-notification package.
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mail-notification 1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2004-11-25 01:43+0100\n"
 "PO-Revision-Date: 2004-11-23 18:06+0100\n"
 "Last-Translator: Maurycy Pawłowski-Wieroński <maurycy@abstrakcja.pl>\n"
 "Language-Team: Polish\n"
@@ -29,14 +29,14 @@ msgstr "Automatyzacja Zawiadomienia Pocztowego"
 msgid "Mail Notification automation factory"
 msgstr "Fabryka automatyzacji Zawiadomienia Pocztowego"
 
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: data/mail-notification-properties.desktop.in.h:1
 msgid "Configure Mail Notification"
 msgstr "Konfiguracja zawiadomienia pocztowego"
 
 #: data/mail-notification-properties.desktop.in.h:2
 #: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:40
+#: src/mn-mail-icon.gob:194 src/mn-main.c:281
 msgid "Mail Notification"
 msgstr "Zawiadomienie pocztowe"
 
@@ -85,106 +85,94 @@ msgid "Has already been run"
 msgstr "Polecenie już było wykonane"
 
 #: data/mail-notification.schemas.in.h:11
-#, fuzzy
-msgid "Height of edit toolbars dialog"
+msgid "Height of mail summary dialog"
 msgstr "Wysokość dialogu streszenia poczty"
 
 #: data/mail-notification.schemas.in.h:12
-#, fuzzy
-msgid "Height of main window"
-msgstr "Wysokość dialogu streszenia poczty"
-
-#: data/mail-notification.schemas.in.h:13
 msgid "Height of properties dialog"
 msgstr "Wysokość dialogu wlaściwości"
 
-#: data/mail-notification.schemas.in.h:14
+#: data/mail-notification.schemas.in.h:13
 msgid "Mail read command"
 msgstr "Rozkaz do przeczytania poczty"
 
-#: data/mail-notification.schemas.in.h:15
+#: data/mail-notification.schemas.in.h:14
 msgid "Mail reader command"
 msgstr "Rozkaz do uruchomienia czytnika poczty"
 
-#: data/mail-notification.schemas.in.h:16
+#: data/mail-notification.schemas.in.h:15
 msgid "Mail summary popup contents font"
 msgstr "Czcionka zawartości wyskakującego okienka streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:17
-#, fuzzy
-msgid "Mail summary popup fonts aspect source"
-msgstr "Czcionka zawartości wyskakującego okienka streszczenia poczty"
-
-#: data/mail-notification.schemas.in.h:18
+#: data/mail-notification.schemas.in.h:16
 msgid "Mail summary popup horizontal offset"
 msgstr "Poziomę przesunięcie wyskakującego okienka streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:19
+#: data/mail-notification.schemas.in.h:17
 msgid "Mail summary popup position"
 msgstr "Pozycja wyskakującego okienka streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:20
+#: data/mail-notification.schemas.in.h:18
 msgid "Mail summary popup title font"
 msgstr "Czcionka tytułu wyskakującego okienka streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:21
+#: data/mail-notification.schemas.in.h:19
 msgid "Mail summary popup vertical offset"
 msgstr "Pionowę przesunięcie wyskakującego okienka streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:22
+#: data/mail-notification.schemas.in.h:20
 msgid "Mailbox list"
 msgstr "Lista skrzynek pocztowych"
 
-#: data/mail-notification.schemas.in.h:23
+#: data/mail-notification.schemas.in.h:21
 msgid "Minutes between mail checks"
 msgstr "Ilość minut pomiędzy sprawdzaniem poczty"
 
-#: data/mail-notification.schemas.in.h:24
+#: data/mail-notification.schemas.in.h:22
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
 "Ile minut czekać przed zamknięciem wyskakującego okienka streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:25
+#: data/mail-notification.schemas.in.h:23
 msgid "New mail command"
 msgstr "Rozkaz do rozpoczęcia nowej poczty"
 
-#: data/mail-notification.schemas.in.h:26
+#: data/mail-notification.schemas.in.h:24
 msgid "Only display recent mail in mail summary popup"
 msgstr ""
 "Tylko wyświetlaj niedawną pocztę w wyskakującym okienku streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:27
+#: data/mail-notification.schemas.in.h:25
 msgid "Run a command when all mail is read"
 msgstr "Wykonaj rozkaz kiedy cała poczta jest przeczytana"
 
-#: data/mail-notification.schemas.in.h:28
+#: data/mail-notification.schemas.in.h:26
 msgid "Run a command when new mail arrives"
 msgstr "Wykonaj rozkaz po nadejściu nowej poczty"
 
-#: data/mail-notification.schemas.in.h:29
+#: data/mail-notification.schemas.in.h:27
 msgid "Seconds between mail checks"
 msgstr "Sekundy pomiędzy sprawdzaniem poczty"
 
-#: data/mail-notification.schemas.in.h:30
+#: data/mail-notification.schemas.in.h:28
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr ""
 "Ilość sekund do poczekania przed zamknięciem wyskakującego okienka "
 "streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:31
+#: data/mail-notification.schemas.in.h:29
 msgid "Set a mail reader"
 msgstr "Ustaw czytnika poczty"
 
-#: data/mail-notification.schemas.in.h:32
-#, fuzzy
+#: data/mail-notification.schemas.in.h:30
 msgid ""
 "The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
+"mail-summary\" or \"launch-mail-reader\"."
 msgstr ""
 "Akcja do wykonania kiedy ikon jest podwójnię kliknięty. Musi być \"display-"
 "mail-summary\" lub \"launch-mail-reader\"."
 
-#: data/mail-notification.schemas.in.h:33
+#: data/mail-notification.schemas.in.h:31
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
@@ -192,7 +180,7 @@ msgstr ""
 "Ilość czasu do czekania przed zamknięciem wyskakującego okienka streszczenia "
 "poczty (minuty)."
 
-#: data/mail-notification.schemas.in.h:34
+#: data/mail-notification.schemas.in.h:32
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
@@ -200,71 +188,56 @@ msgstr ""
 "Ilość czasu do czekania przed zamknięciem wyskakującego okienka streszczenia "
 "poczty (sekundy)."
 
-#: data/mail-notification.schemas.in.h:35
-#, fuzzy
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
-msgstr ""
-"Pozycja wyskakującego okienka streszczenia poczty. Musi być \"top-left\", "
-"\"top-right\", \"bottom-left\" lub \"bottom-right\"."
-
-#: data/mail-notification.schemas.in.h:36
+#: data/mail-notification.schemas.in.h:33
 msgid "The command to run to launch the mail reader."
 msgstr "Rozkaz do wykonania żeby uruchomić czytnika poczty."
 
-#: data/mail-notification.schemas.in.h:37
+#: data/mail-notification.schemas.in.h:34
 msgid "The command to run when all mail is read."
 msgstr "Rozkaz do wykonania kiedy cała poczta jest przeczytana."
 
-#: data/mail-notification.schemas.in.h:38
+#: data/mail-notification.schemas.in.h:35
 msgid "The command to run when new mail arrives."
 msgstr "Polecenie do wykonania po nadejściu owej poczty."
 
-#: data/mail-notification.schemas.in.h:39
+#: data/mail-notification.schemas.in.h:36
 msgid "The custom font to use for the contents of the mail summary popup."
 msgstr ""
 "Niestandardowa czcionka użyta dla zawartości wyskakującego okienka "
 "streszczenia poczty."
 
-#: data/mail-notification.schemas.in.h:40
+#: data/mail-notification.schemas.in.h:37
 msgid "The custom font to use for the title of the mail summary popup."
 msgstr ""
 "Niestandardowa czcionka użyta dla tytułu wyskakującego okienka streszczenia "
 "poczty."
 
-#: data/mail-notification.schemas.in.h:41
-#, fuzzy
-msgid "The height of the edit toolbars dialog in pixels."
-msgstr "Wysokość dialogu streszczenia poczty w pikselach."
-
-#: data/mail-notification.schemas.in.h:42
-#, fuzzy
-msgid "The height of the main window in pixels."
+#: data/mail-notification.schemas.in.h:38
+msgid "The height of the mail summary dialog in pixels."
 msgstr "Wysokość dialogu streszczenia poczty w pikselach."
 
-#: data/mail-notification.schemas.in.h:43
+#: data/mail-notification.schemas.in.h:39
 msgid "The height of the properties dialog in pixels."
 msgstr "Wysokość dialogu właściwości w pikselach."
 
-#: data/mail-notification.schemas.in.h:44
+#: data/mail-notification.schemas.in.h:40
 msgid "The list of mailboxes to monitor."
 msgstr "Lista monitorowanych skrzynek pocztowych."
 
-#: data/mail-notification.schemas.in.h:45
+#: data/mail-notification.schemas.in.h:41
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr "Lista zaufanych serwerów SSL/TSL (hostname:port) bez certyfikatu X509."
 
-#: data/mail-notification.schemas.in.h:46
+#: data/mail-notification.schemas.in.h:42
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr ""
 "Lista zaufanych certyfikatów X509, przedstawionych przez ich MD5 odciski "
 "palców."
 
-#: data/mail-notification.schemas.in.h:47
+#: data/mail-notification.schemas.in.h:43
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
@@ -272,7 +245,7 @@ msgstr ""
 "Ilość pikselów do pozostawienia pomiędzy lewą lub prawą stroną ekranu i "
 "wyskakującym okienkiem streszczenia poczty."
 
-#: data/mail-notification.schemas.in.h:48
+#: data/mail-notification.schemas.in.h:44
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
@@ -280,7 +253,7 @@ msgstr ""
 "Ilość pikselów do pozostawienia pomiędzy górną lub dolną stroną ekranu i "
 "wyskakującym okienkiem streszczenia poczty."
 
-#: data/mail-notification.schemas.in.h:49
+#: data/mail-notification.schemas.in.h:45
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
@@ -288,86 +261,60 @@ msgstr ""
 "Pozycja wyskakującego okienka streszczenia poczty. Musi być \"top-left\", "
 "\"top-right\", \"bottom-left\" lub \"bottom-right\"."
 
-#: data/mail-notification.schemas.in.h:50
-#, fuzzy
-msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-"Pozycja wyskakującego okienka streszczenia poczty. Musi być \"top-left\", "
-"\"top-right\", \"bottom-left\" lub \"bottom-right\"."
-
-#: data/mail-notification.schemas.in.h:51
-#, fuzzy
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr "Szerokość dialogu streszczenia poczty w pikselach."
-
-#: data/mail-notification.schemas.in.h:52
-#, fuzzy
-msgid "The width of the main window in pixels."
+#: data/mail-notification.schemas.in.h:46
+msgid "The width of the mail summary dialog in pixels."
 msgstr "Szerokość dialogu streszczenia poczty w pikselach."
 
-#: data/mail-notification.schemas.in.h:53
+#: data/mail-notification.schemas.in.h:47
 msgid "The width of the properties dialog in pixels."
 msgstr "Szerokość dialogu właściwości w pikselach."
 
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
+#: data/mail-notification.schemas.in.h:48
 msgid "Trusted servers list"
 msgstr "Lista zaufanych serwerów"
 
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
+#: data/mail-notification.schemas.in.h:49
+msgid "Use a custom font for the contents of the mail summary popup"
 msgstr ""
+"Użyj niestandardową czcionkę dla zawartości wyskakującego okienka "
+"streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
+#: data/mail-notification.schemas.in.h:50
+msgid "Use a custom font for the title of the mail summary popup"
 msgstr ""
+"Użyj niestandardową czcionkę dla tytułu wyskakującego okienka streszczenia "
+"poczty"
 
-#: data/mail-notification.schemas.in.h:58
+#: data/mail-notification.schemas.in.h:51
 msgid "Whether Mail Notification has already been run or not."
 msgstr "Czy Zawiadomienie pocztowe było już uruchomione czy nie."
 
-#: data/mail-notification.schemas.in.h:59
+#: data/mail-notification.schemas.in.h:52
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Czy ikona statusu ma migać przy błędach"
 
-#: data/mail-notification.schemas.in.h:60
-#, fuzzy
-msgid "Whether the statusbar should be visible or not."
-msgstr "Czy ikona statusu ma migać przy błędach"
-
-#: data/mail-notification.schemas.in.h:61
-#, fuzzy
-msgid "Whether the toolbars should be visible or not."
-msgstr "Czy skrzynka pocztowa była sprawdzona czy nie"
-
-#: data/mail-notification.schemas.in.h:62
+#: data/mail-notification.schemas.in.h:53
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
-"Automatycznie zamyka okienko ze streszczeniem poczty po upływie zadanego "
-"czasu"
+"Automatycznie zamyka okienko ze streszczeniem poczty po upływie zadanego czasu"
 
-#: data/mail-notification.schemas.in.h:63
+#: data/mail-notification.schemas.in.h:54
 msgid "Whether to display the mail summary in the status icon tooltip or not."
 msgstr ""
 "Czy wyświetlać streszczenie poczty w ikonie stanu etykiety narzędzi czy nie."
 
-#: data/mail-notification.schemas.in.h:64
+#: data/mail-notification.schemas.in.h:55
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr "Wyświetl streszczenie poczty po nadejściu nowych listów"
 
-#: data/mail-notification.schemas.in.h:65
+#: data/mail-notification.schemas.in.h:56
 msgid ""
 "Whether to hide previously displayed mail in the mail summary popup or not."
 msgstr ""
 "Czy schować poprzednio wyświetloną pocztę w wyskakującym okienku "
 "streszczenia poczty czy nie."
 
-#: data/mail-notification.schemas.in.h:66
+#: data/mail-notification.schemas.in.h:57
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
@@ -375,29 +322,38 @@ msgstr ""
 "Czy zapobiegać wyświetleniu dialogu błędowego natychmiastowego "
 "zawiadomieniaczy nie."
 
-#: data/mail-notification.schemas.in.h:67
+#: data/mail-notification.schemas.in.h:58
 msgid "Whether to run a command when all mail is read or not."
 msgstr "Czy wykonać rozkaz kiedy cała poczta jest przeczytanacza czy nie."
 
-#: data/mail-notification.schemas.in.h:68
+#: data/mail-notification.schemas.in.h:59
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Czy wykonać rozkaz kiedy przyjdzie nowa poczta czy nie."
 
-#: data/mail-notification.schemas.in.h:69
+#: data/mail-notification.schemas.in.h:60
 msgid "Whether to set a mail reader or not."
 msgstr "Czy ustawić czytnika poczty."
 
-#: data/mail-notification.schemas.in.h:70
-#, fuzzy
-msgid "Width of edit toolbars dialog"
-msgstr "Szerokość dialogu streszczenia poczty"
+#: data/mail-notification.schemas.in.h:61
+msgid ""
+"Whether to use a custom font for the contents of the mail summary popup or "
+"not."
+msgstr ""
+"Czy użyć niestandardową czcionkę dla zawartości wyskakującego okienka "
+"streszczenia poczty czy nie."
+
+#: data/mail-notification.schemas.in.h:62
+msgid ""
+"Whether to use a custom font for the title of the mail summary popup or not."
+msgstr ""
+"Czy użyć niestandardową czcionkę dla tytułu wyskakującego okienka "
+"streszczenia poczty czy nie."
 
-#: data/mail-notification.schemas.in.h:71
-#, fuzzy
-msgid "Width of main window"
+#: data/mail-notification.schemas.in.h:63
+msgid "Width of mail summary dialog"
 msgstr "Szerokość dialogu streszczenia poczty"
 
-#: data/mail-notification.schemas.in.h:72
+#: data/mail-notification.schemas.in.h:64
 msgid "Width of properties dialog"
 msgstr "Szerokość dialogu właściwości"
 
@@ -405,20 +361,6 @@ msgstr "Szerokość dialogu właściwości"
 msgid "New Mail"
 msgstr "Nowa Poczta"
 
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
-msgstr ""
-
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-
 #: src/eggtrayicon.c:109
 msgid "Orientation"
 msgstr "Orientacja"
@@ -427,20 +369,20 @@ msgstr "Orientacja"
 msgid "The orientation of the tray."
 msgstr "Orientacja tacy."
 
-#: src/mn-about-dialog.gob:42
+#: src/mn-about-dialog.gob:43
 msgid "A Mail Notification Icon"
 msgstr "Ikon Zawiadomienia Pocztowego"
 
 #. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
+#: src/mn-about-dialog.gob:47
 msgid "Jean-Yves Lefort <jylefort@brutele.be>"
 msgstr "Tomasz Sarota-Raczek <tomasz.sarota.raczek@gmail.com>"
 
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: src/mn-auth-combo-box.gob:101 src/mn-autodetect-mailbox-properties.gob:37
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">automatycznie</span>"
 
-#: src/mn-authenticated-mailbox.gob:85
+#: src/mn-authenticated-mailbox.gob:80
 #, c-format
 msgid ""
 "Mail Notification was unable to log into %s mailbox %s, possibly because the "
@@ -453,12 +395,12 @@ msgstr ""
 "\n"
 "Proszę jeszcze raz wpisać hasło."
 
-#: src/mn-authenticated-mailbox.gob:86
+#: src/mn-authenticated-mailbox.gob:81
 #, c-format
 msgid "Enter your password for %s mailbox %s."
 msgstr "Wpisz twoje hasło dla skrzynki %s %s."
 
-#: src/mn-authenticated-mailbox.gob:137
+#: src/mn-authenticated-mailbox.gob:132
 #, c-format
 msgid ""
 "<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
@@ -471,11 +413,11 @@ msgstr ""
 "\n"
 "%s"
 
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: src/mn-autodetect-mailbox-properties.gob:68
 msgid "_Location:"
 msgstr "_Lokacja:"
 
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: src/mn-autodetect-mailbox-properties.gob:74
 msgid "_Browse..."
 msgstr "_Przeglądaj..."
 
@@ -483,7 +425,7 @@ msgstr "_Przeglądaj..."
 msgid "The URI of the mailbox"
 msgstr "URI skrzynki pocztowej"
 
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: src/mn-autodetect-mailbox-properties.gob:118
 msgid "Select a File or Folder"
 msgstr "Wybierz Plik lub Teczkę"
 
@@ -619,80 +561,80 @@ msgstr "niezdolny do przeczytania z serwera: EOF"
 msgid "unable to decode data using SASL: %s"
 msgstr "niezdolny do rozszyfrowania danych używając SASL: %s"
 
-#: src/mn-client-session.c:743
+#: src/mn-client-session.c:746
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr "niezdolny do rozszyfrowania danych używając SASL: %s"
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: src/mn-client-session.c:777 src/mn-client-session.c:784
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "niezdolny do pisania do serwera: %s"
 
-#: src/mn-client-session.c:779
+#: src/mn-client-session.c:782
 msgid "unable to write to server: EOF"
 msgstr "niezdolny do pisania do serwera: EOF"
 
-#: src/mn-client-session.c:811
+#: src/mn-client-session.c:814
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "niezdolny do zakodowania Base64: %s"
 
-#: src/mn-client-session.c:922
+#: src/mn-client-session.c:925
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr "niezdolny do inicjalizacji biblioteki SASL: %s"
 
-#: src/mn-client-session.c:931
+#: src/mn-client-session.c:934
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "niezdolny odzyskać lokalnego adresu gniazda: %s"
 
-#: src/mn-client-session.c:937
+#: src/mn-client-session.c:940
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr "niezdolny odzyskać odległego adresu gniazda: %s"
 
-#: src/mn-client-session.c:971
-#, fuzzy, c-format
-msgid "unable to set SASL security properties: %s"
+#: src/mn-client-session.c:974
+#, c-format
+msgid "warning: unable to set SASL security properties: %s"
 msgstr "ostrzeżenie: niezdolny ustawić właściwości ochronnę SASL: %s"
 
-#: src/mn-client-session.c:995
+#: src/mn-client-session.c:998
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
 "niezdolny rozpocząć potwierdzenie tożsamości SASL: SASL zapytało się o coś "
 "czego nie wiemy"
 
-#: src/mn-client-session.c:1014
+#: src/mn-client-session.c:1017
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr "niezdolny rozpocząć potwierdzenie tożsamości SASL: %s"
 
-#: src/mn-client-session.c:1018
+#: src/mn-client-session.c:1021
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr "niezdolny do stworzenia połączenia SASL: %s"
 
-#: src/mn-client-session.c:1055
+#: src/mn-client-session.c:1058
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr ""
 "SASL zapytał się o coś czego nie wiemy, przerywam potwierdzenie tożsamości "
 "SASL"
 
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1075
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, przerywam potwierdzenie tożsamości SASL"
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: src/mn-client-session.c:1080
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr "niezdolny rozszyfrować wprowadzenie Base64 od serweru : %s"
 
-#: src/mn-client-session.c:1080
+#: src/mn-client-session.c:1083
 msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
@@ -700,7 +642,7 @@ msgstr ""
 "serwer wysłał wyzwanie SASL, ale już była początkowa odpowiedź SASL od "
 "klienta."
 
-#: src/mn-client-session.c:1094
+#: src/mn-client-session.c:1097
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
@@ -708,50 +650,40 @@ msgstr ""
 "serwer nie wysłał wyzwania SASL, ale nie było początkowej odpowiedź SASL od "
 "klienta."
 
-#: src/mn-client-session.c:1119
+#: src/mn-client-session.c:1122
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr "warstwa ochronna SASL czynnika mocy %i jest teraz aktywna"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: src/mn-client-session.c:1127
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr "niezdolny otrzymać właściwość SASL_MAXOUTBUF: %s"
 
-#: src/mn-client-session.c:1130
+#: src/mn-client-session.c:1133
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr "ostrzeżenie: niezdolny otrzymać właściwość SASL_SSF: %s"
 
-#: src/mn-conf.c:238
-#, fuzzy
-msgid "A directory creation error has occurred"
-msgstr "Wydarzył się błąd nasłuchowy"
-
-#: src/mn-conf.c:239
-#, fuzzy, c-format
-msgid "Unable to create directory \"%s\": %s."
-msgstr "Niezdolny do wykonania \"%s\": %s"
-
-#: src/mn-conf.c:313
+#: src/mn-conf.c:145
 #, c-format
 msgid "recursively unsetting %s"
 msgstr "rekursywnie usuwam %s"
 
-#: src/mn-conf.c:317
+#: src/mn-conf.c:149
 msgid "syncing the GConf database"
 msgstr "synchronizacja bazy danych GConf"
 
-#: src/mn-conf.c:320
+#: src/mn-conf.c:152
 msgid "completed"
 msgstr "skończonę"
 
-#: src/mn-gmail-mailbox-properties.gob:76
+#: src/mn-gmail-mailbox-properties.gob:77
 msgid "Your Gmail username"
 msgstr "Twoję Gmail imię użytkownika"
 
-#: src/mn-gmail-mailbox-properties.gob:77
+#: src/mn-gmail-mailbox-properties.gob:78
 msgid ""
 "Your Gmail password (if left blank, you will be prompted for the password "
 "when needed)"
@@ -759,60 +691,36 @@ msgstr ""
 "Twoję Gmail hasło (jeśli pozostawione pustę, to będziesz zapytany o hasło "
 "wtedy kiedy będzie potrzebnę)"
 
-#: src/mn-gmail-mailbox.gob:86
+#: src/mn-gmail-mailbox.gob:82
 msgid "libsoup has not been compiled with SSL/TLS support"
 msgstr "libsoup nie było kompilowanę z poparciem SSL/TLS"
 
-#: src/mn-gmail-mailbox.gob:164
+#: src/mn-gmail-mailbox.gob:160
 #, c-format
 msgid "unable to parse URI \"%s\""
 msgstr "niezdolny wykonać rozbiór URI \"%s\""
 
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:224
+#: src/mn-gmail-mailbox.gob:214
 #, c-format
 msgid "unable to transfer data: %s"
 msgstr "niezdolny do przesłania danych: %s"
 
-#: src/mn-gmail-mailbox.gob:345
+#: src/mn-gmail-mailbox.gob:335
 msgid "logging in"
 msgstr "logowanie"
 
-#: src/mn-gmail-mailbox.gob:423
+#: src/mn-gmail-mailbox.gob:413
 msgid "login failed"
 msgstr "nieudanę logowanie"
 
-#: src/mn-gmail-mailbox.gob:496
+#: src/mn-gmail-mailbox.gob:488
 msgid "searching for unread mail"
 msgstr "szukam nieprzeczytanej poczty"
 
 #: src/mn-gmail-mailbox.gob:527
-#, fuzzy
-msgid "unable to initialize the ICU library"
-msgstr "niezdolny do inicjalizacji biblioteki SASL: %s"
-
-#: src/mn-gmail-mailbox.gob:554
 msgid "unable to parse Gmail data"
 msgstr "niezdolny wykonać rozbioru danych Gmail"
 
-#: src/mn-gmail-mailbox.gob:891
-#, fuzzy, c-format
-msgid "unable to open calendar: %s"
-msgstr "niezdolny otworzyć teczkę: %s"
-
-#: src/mn-gmail-mailbox.gob:899
-#, fuzzy, c-format
-msgid "unable to set calendar time: %s"
-msgstr "niezdolny otrzymać aktualny czas: %s"
-
-#: src/mn-gmail-mailbox.gob:968
-#, fuzzy, c-format
-msgid "unable to get calendar time: %s"
-msgstr "niezdolny otrzymać aktualny czas: %s"
-
 #: src/mn-gmime-stream-vfs.gob:49
 #, c-format
 msgid "unable to read %s: %s"
@@ -838,19 +746,19 @@ msgstr "niezdolny opisać pozycję %s: %s"
 msgid "unable to close %s: %s"
 msgstr "niezdolny zamknąć %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:95
+#: src/mn-imap-mailbox-properties.gob:94
 msgid "Mailbox:"
 msgstr "Skrzynka pocztowa:"
 
-#: src/mn-imap-mailbox-properties.gob:99
+#: src/mn-imap-mailbox-properties.gob:98
 msgid "in_box"
 msgstr "_skrzynka odbiorcza"
 
-#: src/mn-imap-mailbox-properties.gob:110
+#: src/mn-imap-mailbox-properties.gob:109
 msgid "oth_er:"
 msgstr "innę:"
 
-#: src/mn-imap-mailbox-properties.gob:122
+#: src/mn-imap-mailbox-properties.gob:121
 msgid "U_se idle mode if possible"
 msgstr "Użyj bezczynny tryb jeśli to jest możliwę"
 
@@ -883,74 +791,75 @@ msgstr "Imię skrzynki pocztowej"
 msgid "If possible, whether to use idle mode or not"
 msgstr "Jeśli możliwę, czy użyć bezczynny tryb czy nie"
 
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
+#: src/mn-imap-mailbox.gob:166 src/mn-pop3-mailbox.gob:143
 msgid "SSL/TLS support has not been compiled in"
 msgstr "Protokół SSL/TLS nie jest obsługiwany"
 
-#: src/mn-imap-mailbox.gob:236
+#: src/mn-imap-mailbox.gob:246
 msgid "server did not send capabilities"
 msgstr "serwer nie wysłał możliwości"
 
-#: src/mn-imap-mailbox.gob:408
+#: src/mn-imap-mailbox.gob:418
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr ""
 "serwer reklamował LOGINDISABLED, bez używania potwierdzenia tożsamości LOGIN"
 
-#: src/mn-imap-mailbox.gob:409
+#: src/mn-imap-mailbox.gob:419
 msgid "unable to login"
 msgstr "niezdolny do logowania"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: src/mn-imap-mailbox.gob:571
 msgid "server did not send search results"
 msgstr "serwer nie wysłał wyników poszukiwania"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: src/mn-imap-mailbox.gob:651
 msgid "server did not send all the messages we requested"
 msgstr "serwer nie wysłał wszystkich wiadomości o które prosiliśmy"
 
-#: src/mn-imap-mailbox.gob:671
+#: src/mn-imap-mailbox.gob:700
 msgid "unable to fetch message"
 msgstr "niezdolny do sprowadzenia wiadomości"
 
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#. compliance error
+#: src/mn-imap-mailbox.gob:818
+msgid "server did not send status"
+msgstr "serwer nie wysłał stanu"
+
+#: src/mn-imap-mailbox.gob:1096 src/mn-pop3-mailbox.gob:972
 msgid "unknown server error"
 msgstr "nieznany błąd serweru"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: src/mn-imap-mailbox.gob:1198 src/mn-pop3-mailbox.gob:227
 msgid "server does not support in-band SSL/TLS"
 msgstr "serwer nie popiera wewnątrzpasmowego SSL/TSL"
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: src/mn-imap-mailbox.gob:1217 src/mn-pop3-mailbox.gob:885
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
-msgstr "wybrany został nieobsługiwany mechanizm potwierdzania tożsamości SASL"
+msgstr ""
+"wybrany został nieobsługiwany mechanizm potwierdzania tożsamości SASL"
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: src/mn-imap-mailbox.gob:1225 src/mn-pop3-mailbox.gob:897
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "nieznany mechanizm potwierdzenia tożsamości \"%s\""
 
-#: src/mn-imap-mailbox.gob:1160
+#: src/mn-imap-mailbox.gob:1246
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "powrót do potwierdzenia tożsamości IMAP LOGIN"
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: src/mn-imap-mailbox.gob:1257 src/mn-pop3-mailbox.gob:938
 msgid "authentication failed"
 msgstr "logowanie nie udało się"
 
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
+#: src/mn-mail-icon.gob:92 ui/summary-dialog.glade.h:2
+msgid "_Launch Mail Reader"
+msgstr "_Uruchom czytnik poczty"
 
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-#, fuzzy
-msgid "_Mail Reader"
-msgstr "C_zytnik poczty:"
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: src/mn-mail-icon.gob:93 ui/summary-dialog.glade.h:3
 msgid "_Update"
 msgstr "_Odśwież"
 
@@ -958,20 +867,20 @@ msgstr "_Odśwież"
 msgid "R_emove From Notification Area"
 msgstr "U_suń z obszaru powiadomienia"
 
-#: src/mn-mailbox-properties-dialog.c:156
+#: src/mn-mailbox-properties-dialog.c:109
 msgid "Add a Mailbox"
 msgstr "Dodaj skrzynkę pocztową"
 
-#: src/mn-mailbox-properties-dialog.c:325
+#: src/mn-mailbox-properties-dialog.c:328
 #, c-format
 msgid "%s Properties"
 msgstr "Właściwości %s"
 
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
+#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:4
 msgid "_Username:"
 msgstr "_Użytkownik:"
 
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
+#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:3
 msgid "_Password:"
 msgstr "_Hasło:"
 
@@ -1011,57 +920,61 @@ msgstr "Skończonę"
 msgid "Whether the properties are completely filled or not"
 msgstr "Czy właściwości są całkowicię wypełnione czy nie"
 
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: src/mn-mailbox-view.gob:263 src/mn-message-box.gob:61
 msgid "Mailbox"
 msgstr "Skrzynka pocztowa"
 
 #. format column
-#: src/mn-mailbox-view.gob:287
+#: src/mn-mailbox-view.gob:279
 msgid "Format"
 msgstr "Format"
 
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:569
 msgid "Unable to add mailbox"
 msgstr "Niezdolny dodać skrzynkę pocztową"
 
-#: src/mn-mailbox-view.gob:577
+#: src/mn-mailbox-view.gob:569
 msgid "The mailbox is already in the list."
 msgstr "Skrzynka pocztowa już jest w spisie."
 
-#: src/mn-mailbox.gob:131
+#: src/mn-mailbox.gob:130
 msgid "The mailbox URI"
 msgstr "URI skrzynki pocztowej"
 
-#: src/mn-mailbox.gob:142
+#: src/mn-mailbox.gob:141
 msgid "The mailbox human-readable name"
 msgstr "Ludzko-czytelne imię skrzynki pocztowej"
 
-#: src/mn-mailbox.gob:146
+#: src/mn-mailbox.gob:145
 msgid "Whether the mailbox has to be polled or not"
 msgstr "Czy skrzynka pocztowa była sprawdzona czy nie"
 
-#: src/mn-mailbox.gob:152
+#: src/mn-mailbox.gob:151
+msgid "Whether the mailbox has new mail or not"
+msgstr "Czy skrzynka pocztowa ma nową pocztę czy nie"
+
+#: src/mn-mailbox.gob:156
 msgid "The list of new and unread MNMessage objects"
 msgstr "Spis przeczytanych i nie przeczytanych obiektów MNMessage"
 
-#: src/mn-mailbox.gob:206
+#: src/mn-mailbox.gob:210
 msgid "The mailbox error, if any"
 msgstr "Błąd skrzynki pocztowej, jeżeli wszelki"
 
-#: src/mn-mailbox.gob:305
+#: src/mn-mailbox.gob:309
 msgid "does not exist"
 msgstr "nie istnieje"
 
-#: src/mn-mailbox.gob:337
+#: src/mn-mailbox.gob:341
 msgid "unknown format"
 msgstr "nieznany format"
 
-#: src/mn-mailbox.gob:403
-#, fuzzy, c-format
-msgid "unable to enable immediate notification: %s"
+#: src/mn-mailbox.gob:407
+#, c-format
+msgid "unable to enable immediate notification for %s: %s"
 msgstr "niezdolny umożliwić natychmiastowę zawiadomienie dla %s: %s"
 
-#: src/mn-mailbox.gob:421
+#: src/mn-mailbox.gob:425
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i second (this delay is "
@@ -1079,7 +992,7 @@ msgstr[2] ""
 "Pod reżimem awaryjnym, one będą sprawdzanę co każdę %i sekundy (ta zwłoka "
 "może być skonfigurowana w Dialogu Właściowści)."
 
-#: src/mn-mailbox.gob:432
+#: src/mn-mailbox.gob:436
 #, c-format
 msgid ""
 "As a fallback, they will be checked every %i minute (this delay is "
@@ -1097,7 +1010,7 @@ msgstr[2] ""
 "Pod reżimem awaryjnym, one będą sprawdzanę co każdę %i minuty (ta zwłoka "
 "może być skonfigurowana w Dialogu Właściowści)."
 
-#: src/mn-mailbox.gob:443
+#: src/mn-mailbox.gob:447
 #, c-format
 msgid ""
 "As a fallback, they will be checked approximately every %i minute (this "
@@ -1115,11 +1028,11 @@ msgstr[2] ""
 "Pod reżimem awaryjnym, one będą sprawdzanę co mniej więcej każdę %i minuty "
 "(ta zwłoka może być skonfigurowana w Dialogu Właściowści)."
 
-#: src/mn-mailbox.gob:459
+#: src/mn-mailbox.gob:463
 msgid "A monitoring error has occurred"
 msgstr "Wydarzył się błąd nasłuchowy"
 
-#: src/mn-mailbox.gob:460
+#: src/mn-mailbox.gob:464
 #, c-format
 msgid ""
 "Mail Notification was unable to enable immediate notification for one or "
@@ -1128,264 +1041,100 @@ msgstr ""
 "Zawiadomienie pocztowe było niezdolnę umożliwić natychmiastowę zawiadomienie "
 "jednej albo większej ilość skrzynek pocztowych. %s"
 
-#: src/mn-mailboxes.gob:130
+#: src/mn-mailboxes.gob:142
 msgid "Whether one or more of the mailboxes has to be polled"
 msgstr "Czy jedna lub więcej szkrzynek pocztowych była sprawdzona czy nie"
 
-#: src/mn-mailboxes.gob:260
+#: src/mn-mailboxes.gob:272
 #, c-format
 msgid "%s is unsupported: %s"
 msgstr "%s jest nieobsługiwane: %s"
 
-#: src/mn-mailboxes.gob:290
-#, fuzzy, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] "%s ma nową pocztę"
-msgstr[1] "%s ma nową pocztę"
-msgstr[2] "%s ma nową pocztę"
+#: src/mn-mailboxes.gob:304
+#, c-format
+msgid "%s has new mail"
+msgstr "%s ma nową pocztę"
+
+#: src/mn-mailboxes.gob:304
+#, c-format
+msgid "%s has no new mail"
+msgstr "%s nie ma nowej poczty"
 
-#: src/mn-mailboxes.gob:307
+#: src/mn-mailboxes.gob:330
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s zgłosiło błąd: %s"
 
-#: src/mn-maildir-mailbox.gob:112
+#: src/mn-maildir-mailbox.gob:119
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "niezdolny otworzyć teczkę \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:141
+#: src/mn-maildir-mailbox.gob:161
 #, c-format
 msgid "unable to close folder \"new\": %s"
 msgstr "niezdolny zamknąć teczkę \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:144
+#: src/mn-maildir-mailbox.gob:164
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "błąd podczas czytania teczki \"new\": %s"
 
-#. Toplevel
-#: src/mn-main-window.c:92
-#, fuzzy
-msgid "_Mail"
-msgstr "Skrzynka pocztowa"
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-#, fuzzy
-msgid "Launch the mail reader"
-msgstr "U_ruchom czytnik poczty"
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr "Odśwież stan poczty"
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-#, fuzzy
-msgid "Quit Mail Notification"
-msgstr "Zawiadomienie pocztowe"
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-#, fuzzy
-msgid "_Contents"
-msgstr "_Wybór czcionki treści:"
-
-#: src/mn-main-window.c:165
-#, fuzzy
-msgid "Display help"
-msgstr "Niezdolny do wyświetlenia pomocy"
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-#, fuzzy
-msgid "Only display the toolbars icons"
-msgstr "Wyświetlanie tylko nieprzeczytanych listów"
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, fuzzy, c-format
-msgid "unable to load menus.xml: %s"
-msgstr "niezdolny przeczytać %s: %s"
-
-#: src/mn-main-window.c:398
-#, fuzzy
-msgid "Help messages"
-msgstr "Nieczytalna wiadomość"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, fuzzy, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] "Nieczytalna wiadomość"
-msgstr[1] "Nieczytalna wiadomość"
-msgstr[2] "Nieczytalna wiadomość"
-
-#: src/mn-main-window.c:540
-#, fuzzy
-msgid "unable to load toolbars.xml"
-msgstr "niezdolny zamknąć teczkę: %s"
-
 #: src/mn-main.c:99
 #, c-format
 msgid "Compiled-in mailbox backends: %s\n"
 msgstr "Wkompilowanę wewnętrzne cechy skrzynki pocztowej: %s\n"
 
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
 #: src/mn-main.c:116
 #, c-format
 msgid "Compiled-in features: %s\n"
 msgstr "Wkompilowanę cechy: %s\n"
 
-#: src/mn-main.c:176
+#: src/mn-main.c:175
 msgid "Enable informational output"
 msgstr "Umożliw informacyjny wydruk"
 
-#: src/mn-main.c:185
-#, fuzzy
-msgid "List the compiled-in features"
+#: src/mn-main.c:184
+msgid "List compiled-in features and exit"
 msgstr "Wydrukuj spis wkompilowanych cech i zakończ"
 
-#: src/mn-main.c:194
-#, fuzzy
-msgid "Display the main window"
-msgstr "Wyświetlij dialog \"O\""
+#: src/mn-main.c:193
+msgid "Display the mail summary dialog"
+msgstr "Wyświetlij dialog streszczenia poczty"
 
-#: src/mn-main.c:203
+#: src/mn-main.c:202
 msgid "Display the properties dialog"
 msgstr "Wyświetlij dialog właściwości"
 
-#: src/mn-main.c:212
+#: src/mn-main.c:211
 msgid "Display the about dialog"
 msgstr "Wyświetlij dialog \"O\""
 
-#: src/mn-main.c:221
+#: src/mn-main.c:220
 msgid "Close the mail summary popup"
 msgstr "Zamknij wyskakujące okienko streszczenia poczty"
 
-#: src/mn-main.c:239
+#: src/mn-main.c:229
+msgid "Update the mail status"
+msgstr "Odśwież stan poczty"
+
+#: src/mn-main.c:238
 msgid "Report the mail status"
 msgstr "Zgłoś stan poczty"
 
-#: src/mn-main.c:248
-#, fuzzy
-msgid "Unset obsolete GConf configuration"
+#: src/mn-main.c:247
+msgid "Unset obsolete GConf configuration and exit"
 msgstr "Usuń przestarzałą konfigurację GConf i zakończ"
 
 #.
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:284
+#: src/mn-main.c:273
 msgid "multi-threading is not available"
 msgstr "wielowątkowość nie jest dostępna "
 
-#: src/mn-main.c:338
+#: src/mn-main.c:320
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -1393,29 +1142,19 @@ msgstr ""
 "Bonobo nie potrafiło znaleźć obiektu automatyzacyjnego. Proszę sprawdzić "
 "instalację Zawiadomienie pocztowego"
 
-#: src/mn-main.c:344
-#, fuzzy
-msgid "quitting Mail Notification"
-msgstr "Zawiadomienie pocztowe"
-
-#: src/mn-main.c:348
-#, fuzzy
-msgid "Mail Notification is not running"
-msgstr "Zawiadomienie pocztowe jest już uruchomione."
-
-#: src/mn-main.c:355
+#: src/mn-main.c:325
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Niezdolny do inicjalizacji biblioteki GnomeVFS."
 
-#: src/mn-main.c:391
+#: src/mn-main.c:361
 msgid "updating the mail status"
 msgstr "odświeżanie stanu poczty"
 
-#: src/mn-main.c:409
+#: src/mn-main.c:379
 msgid "Mail Notification is already running"
 msgstr "Zawiadomienie pocztowe jest już uruchomione."
 
-#: src/mn-main.c:417
+#: src/mn-main.c:386
 msgid ""
 "Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
 "Please check your Mail Notification installation."
@@ -1423,7 +1162,7 @@ msgstr ""
 "Bonobo nie mogło znaleźć pliku GNOME_MailNotification_Automation.server."
 "Proszę sprawdzić swoją instalację Zawiadomienia Pocztowego."
 
-#: src/mn-main.c:421
+#: src/mn-main.c:390
 msgid ""
 "Bonobo was unable to register the automation server. Please check your Mail "
 "Notification installation."
@@ -1431,41 +1170,33 @@ msgstr ""
 "Bonobo nie potrafiło zarejestrować serwera automatyzacyjnego. Proszę "
 "sprawdzić instalację Zawiadomienia Pocztowego"
 
-#: src/mn-mbox-mailbox.gob:184
+#: src/mn-mbox-mailbox.gob:221
+#, c-format
+msgid "error while reading mailbox: %s"
+msgstr "błąd podczas odczytywania skrzynki pocztowej: %s"
+
+#: src/mn-mbox-mailbox.gob:230
 #, c-format
 msgid "unable to open mailbox: %s"
 msgstr "niezdolny otworzyć skrzynkę pocztową: %s"
 
-#: src/mn-message-mime.c:105
-msgid "unable to parse MIME message"
-msgstr "niezdolny do zrobienia rozbioru wiadomości MIME"
-
-#: src/mn-message-view.gob:81
-#, fuzzy
-msgid "You have no new mail."
-msgstr "Masz wiadomość!"
-
-#: src/mn-message-view.gob:321
+#: src/mn-message-box.gob:64
 msgid "Unreadable message"
 msgstr "Nieczytalna wiadomość"
 
-#: src/mn-message-view.gob:329
+#: src/mn-message-box.gob:69
 msgid "From"
 msgstr "Od"
 
-#: src/mn-message-view.gob:337
+#: src/mn-message-box.gob:70
 msgid "Subject"
 msgstr "Temat"
 
-#: src/mn-message-view.gob:348
+#: src/mn-message-box.gob:75
 msgid "Sent"
 msgstr "Posłanę"
 
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr "Nieznany"
-
-#: src/mn-message.gob:126
+#: src/mn-message-box.gob:192
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
@@ -1473,44 +1204,52 @@ msgstr[0] "%i sekundę temu"
 msgstr[1] "%i sekund temu"
 msgstr[2] "%i sekundy temu"
 
-#: src/mn-message.gob:130
-#, fuzzy, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
+#: src/mn-message-box.gob:196
+#, c-format
+msgid "%i minute ago"
+msgid_plural "%i minutes ago"
 msgstr[0] "%i minutę temu"
 msgstr[1] "%i minut temu"
 msgstr[2] "%i minuty temu"
 
-#: src/mn-message.gob:135
-#, fuzzy, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
+#: src/mn-message-box.gob:201
+#, c-format
+msgid "%i hour ago"
+msgid_plural "%i hours ago"
 msgstr[0] "%i godzinę temu"
 msgstr[1] "%i godzin temu"
 msgstr[2] "%i godziny temu"
 
-#: src/mn-message.gob:140
-#, fuzzy, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
+#: src/mn-message-box.gob:206
+#, c-format
+msgid "%i day ago"
+msgid_plural "%i days ago"
 msgstr[0] "%i dzień temu"
 msgstr[1] "%i dni temu"
 msgstr[2] "%i dni temu"
 
-#: src/mn-message.gob:145
-#, fuzzy, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
+#: src/mn-message-box.gob:211
+#, c-format
+msgid "%i week ago"
+msgid_plural "%i weeks ago"
 msgstr[0] "%i tydzień temu"
 msgstr[1] "%i tygodni temu"
 msgstr[2] "%i tygodnie temu"
 
-#: src/mn-mh-mailbox.gob:147
+#: src/mn-message-mime.c:105
+msgid "unable to parse MIME message"
+msgstr "niezdolny do zrobienia rozbioru wiadomości MIME"
+
+#: src/mn-message.gob:101
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: src/mn-mh-mailbox.gob:184
 #, c-format
 msgid "error while reading .mh_sequences: %s"
 msgstr "błąd podczas czytania .mh_sequences: %s"
 
-#: src/mn-mh-mailbox.gob:157
+#: src/mn-mh-mailbox.gob:196
 #, c-format
 msgid "unable to open .mh_sequences: %s"
 msgstr "niezdolny do otwarcia .mh_sequences: %s"
@@ -1519,23 +1258,23 @@ msgstr "niezdolny do otwarcia .mh_sequences: %s"
 msgid "detecting"
 msgstr "odkrywanie"
 
-#: src/mn-pi-mailbox-properties.gob:75
+#: src/mn-pi-mailbox-properties.gob:76
 msgid "_Hostname:"
 msgstr "Nazwa serwera:"
 
-#: src/mn-pi-mailbox-properties.gob:93
+#: src/mn-pi-mailbox-properties.gob:94
 msgid "_Details"
 msgstr "_Szczegóły"
 
-#: src/mn-pi-mailbox-properties.gob:105
+#: src/mn-pi-mailbox-properties.gob:106
 msgid "sta_ndard"
 msgstr "bez szyfrowania"
 
-#: src/mn-pi-mailbox-properties.gob:115
+#: src/mn-pi-mailbox-properties.gob:116
 msgid "_in-band SSL/TLS"
 msgstr "wewnątrzpasmowy TLS"
 
-#: src/mn-pi-mailbox-properties.gob:125
+#: src/mn-pi-mailbox-properties.gob:126
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS na oddzielnym porcie"
 
@@ -1559,15 +1298,15 @@ msgstr ""
 msgid "The port number of the POP3 server"
 msgstr "Numer portu serweru POP3"
 
-#: src/mn-pop3-mailbox.gob:266
+#: src/mn-pop3-mailbox.gob:273
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "nieważne argumenty do zdolności LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:569
+#: src/mn-pop3-mailbox.gob:590
 msgid "unknown error"
 msgstr "nieznany błąd"
 
-#: src/mn-pop3-mailbox.gob:656
+#: src/mn-pop3-mailbox.gob:729
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1575,39 +1314,39 @@ msgstr[0] "honorujemy LOGIN-DELAY, śpimy przez %i sekundę"
 msgstr[1] "honorujemy LOGIN-DELAY, śpimy przez %i sekund"
 msgstr[2] "honorujemy LOGIN-DELAY, śpimy przez %i sekundy"
 
-#: src/mn-pop3-mailbox.gob:849
+#: src/mn-pop3-mailbox.gob:893
 msgid "server does not support APOP authentication"
 msgstr "serwer nie popiera potwierdzenia tożsamości APOP"
 
-#: src/mn-pop3-mailbox.gob:884
+#: src/mn-pop3-mailbox.gob:922
 msgid "falling back to APOP authentication"
 msgstr "wycofanię do potwierdzenia tożsamości APOP"
 
-#: src/mn-pop3-mailbox.gob:889
+#: src/mn-pop3-mailbox.gob:927
 msgid "falling back to USER/PASS authentication"
 msgstr "wycofanię do potwierdzenia tożsamości USER/PASS"
 
-#: src/mn-properties-dialog.c:218
+#: src/mn-properties.c:193
 msgid "top left"
 msgstr "lewy górny róg ekranu"
 
-#: src/mn-properties-dialog.c:219
+#: src/mn-properties.c:194
 msgid "top right"
 msgstr "prawy górny róg ekranu"
 
-#: src/mn-properties-dialog.c:220
+#: src/mn-properties.c:195
 msgid "bottom left"
 msgstr "lewy dolny róg ekranu"
 
-#: src/mn-properties-dialog.c:221
+#: src/mn-properties.c:196
 msgid "bottom right"
 msgstr "prawy dolny róg ekranu"
 
-#: src/mn-properties-dialog.c:323
+#: src/mn-properties.c:287
 msgid "No mailbox selected."
 msgstr "Żadna skrzynka pocztowa nie została wybrana."
 
-#: src/mn-properties-dialog.c:328
+#: src/mn-properties.c:292
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
@@ -1615,23 +1354,23 @@ msgstr[0] "%i skrzynka pocztowa wybrana"
 msgstr[1] "%i skrzynek pocztowych wybranych"
 msgstr[2] "%i skrzynki pocztowe wybranę"
 
-#: src/mn-shell.gob:96
+#: src/mn-shell.gob:93
 msgid "You have new mail."
 msgstr "Masz wiadomość!"
 
-#: src/mn-shell.gob:361
+#: src/mn-shell.gob:360
 msgid "Mailboxes Having New Mail"
 msgstr "Skrzynki pocztowe z nową pocztą"
 
-#: src/mn-shell.gob:382
+#: src/mn-shell.gob:362
 msgid "Errors"
 msgstr "Błędy"
 
-#: src/mn-shell.gob:403
+#: src/mn-shell.gob:364
 msgid "Unsupported Mailboxes"
 msgstr "Nieskonfigurowane skrzynki pocztowe"
 
-#: src/mn-shell.gob:418
+#: src/mn-shell.gob:381 ui/summary-dialog.glade.h:1
 msgid "Mail Summary"
 msgstr "Streszczenie poczty"
 
@@ -1649,20 +1388,20 @@ msgid "Select _All"
 msgstr "Wybierz _Wszystkie"
 
 #: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
+msgid "_Mail Summary"
+msgstr "_Streszczenie poczty"
 
-#: src/mn-sylpheed-mailbox.gob:113
+#: src/mn-sylpheed-mailbox.gob:119
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "niezdolny otworzyć teczkę: %s"
 
-#: src/mn-sylpheed-mailbox.gob:147
+#: src/mn-sylpheed-mailbox.gob:165
 #, c-format
 msgid "unable to close folder: %s"
 msgstr "niezdolny zamknąć teczkę: %s"
 
-#: src/mn-sylpheed-mailbox.gob:150
+#: src/mn-sylpheed-mailbox.gob:168
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "błąd podczas czytania teczki: %s"
@@ -1694,109 +1433,100 @@ msgstr "Powód z powodu którego skrzynka pocztowa nie jest popierana"
 msgid "unsupported"
 msgstr "nieobsługiwany"
 
-#: src/mn-util.c:245
+#: src/mn-util.c:233
 #, c-format
 msgid "error loading image: %s"
 msgstr "błąd w ładowaniu obrazka: %s"
 
-#: src/mn-util.c:276
+#: src/mn-util.c:271
 #, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
 msgstr "element \"%s\" nie mógł byc znaleziony w interfejsie \"%s\""
 
-#: src/mn-util.c:390
+#: src/mn-util.c:385
 msgid "received an invalid URI list"
 msgstr "otrzymano nieważną listę URIów"
 
-#: src/mn-util.c:426
+#: src/mn-util.c:421
 msgid "received an invalid Mozilla URL"
 msgstr "otrzymano nieważny Mozillowy URL"
 
-#: src/mn-util.c:519
+#: src/mn-util.c:514
 msgid "Unable to display help"
 msgstr "Niezdolny do wyświetlenia pomocy"
 
-#: src/mn-util.c:533
+#: src/mn-util.c:528
 #, c-format
 msgid "Unable to create a thread: %s."
 msgstr "Niezdolny do stworzenia wątku: %s."
 
-#: src/mn-util.c:626
+#: src/mn-util.c:705
 msgid "_Do not show this message again"
 msgstr "_Nie pokazuj tej wiadomości ponownie"
 
-#: src/mn-util.c:710
+#: src/mn-util.c:789
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Fatalny błąd zdarzył się w Zawiadomieniu Pocztowym"
 
-#: src/mn-util.c:725
+#: src/mn-util.c:804
 #, c-format
 msgid "unable to get current time: %s"
 msgstr "niezdolny otrzymać aktualny czas: %s"
 
-#: src/mn-util.c:787
+#: src/mn-util.c:906
 #, c-format
 msgid "invalid signal specification \"%s\""
 msgstr "nieważna specyfikacja sygnału  \"%s\""
 
-#: src/mn-util.c:826
+#: src/mn-util.c:945
 msgid "A command error has occurred in Mail Notification"
 msgstr "Błąd rozkazowy występił w Zawiadomieniu Pocztowym"
 
-#: src/mn-util.c:827
+#: src/mn-util.c:946
 #, c-format
 msgid "Unable to execute \"%s\": %s."
 msgstr "Niezdolny do wykonania \"%s\": %s"
 
 #: ui/authentication.glade.h:1
+msgid "*"
+msgstr "*"
+
+#: ui/authentication.glade.h:2
 msgid "_Authenticate"
 msgstr "_Potwierdź tożsamości"
 
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
 #: ui/mailbox-properties.glade.h:1
 msgid "_Mailbox type:"
 msgstr "_Typ połączenia:"
 
 #: ui/properties.glade.h:1
+msgid "    "
+msgstr "    "
+
+#: ui/properties.glade.h:2
 msgid "<span weight=\"bold\">Commands</span>"
 msgstr "<span weight=\"bold\">Polecenia</span>"
 
-#: ui/properties.glade.h:2
+#: ui/properties.glade.h:3
 msgid "<span weight=\"bold\">Double-click Action</span>"
 msgstr "<span weight=\"bold\">Podwójne kliknięcie</span>"
 
-#: ui/properties.glade.h:3
+#: ui/properties.glade.h:4
 msgid "<span weight=\"bold\">Fonts</span>"
 msgstr "<span weight=\"bold\">Czcionki</span>"
 
-#: ui/properties.glade.h:4
+#: ui/properties.glade.h:5
 msgid "<span weight=\"bold\">General</span>"
 msgstr "<span weight=\"bold\">Ogólne</span>"
 
-#: ui/properties.glade.h:5
+#: ui/properties.glade.h:6
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Skrzynki pocztowe</span>"
-
-#: ui/properties.glade.h:6
+ 
+#: ui/properties.glade.h:7
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Pozycja</span>"
 
-#: ui/properties.glade.h:7
-#, fuzzy
-msgid "Co_ntents:"
-msgstr "_Wybór czcionki treści:"
-
 #: ui/properties.glade.h:8
 msgid "Dis_play mail summary in tooltip"
 msgstr "_Wyświetlanie streszczenia poczty na obszarze powiadamiania"
@@ -1868,101 +1598,106 @@ msgstr ""
 "wyskakującym okienkiem streszczenia poczty."
 
 #: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
 msgid "When _all mail is read:"
 msgstr "Po przeczytaniu całej poczty:"
 
-#: ui/properties.glade.h:25
+#: ui/properties.glade.h:24
 msgid "When _new mail arrives:"
 msgstr "Po nadejściu nowej poczty:"
 
-#: ui/properties.glade.h:26
+#: ui/properties.glade.h:25
 msgid "Whether the status icon should blink on errors or not"
 msgstr "Migaj przy wystąpieniu błędów"
 
-#: ui/properties.glade.h:27
+#: ui/properties.glade.h:26
 msgid "Whether to automatically close the mail summary popup or not"
-msgstr "Zamknij automatycznie streszczenie poczty po upływie zadanego czasu"
+msgstr ""
+"Zamknij automatycznie streszczenie poczty po upływie zadanego czasu"
 
-#: ui/properties.glade.h:28
+#: ui/properties.glade.h:27
 msgid "Whether to display the mail summary in the status icon tooltip or not"
 msgstr "Wyświetl streszczenie poczty w obszarze powiadamiania"
 
-#: ui/properties.glade.h:29
+#: ui/properties.glade.h:28
 msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr "Wyświetl streszczenie poczty po nadejściu nowych wiadomości"
+msgstr ""
+"Wyświetl streszczenie poczty po nadejściu nowych wiadomości"
 
-#: ui/properties.glade.h:30
+#: ui/properties.glade.h:29
 msgid "Whether to hide previously displayed mail or not"
 msgstr "Ukrywaj przeczytane listy"
 
-#: ui/properties.glade.h:31
+#: ui/properties.glade.h:30
 msgid "Whether to run a command when all mail is read or not"
 msgstr "Uruchom polecenie, gdy cała poczta zostanie przeczytana"
 
-#: ui/properties.glade.h:32
+#: ui/properties.glade.h:31
 msgid "Whether to run a command when new mail arrives or not"
 msgstr "Uruchom polecenie, gdy nadejdzie nowa poczta"
 
-#: ui/properties.glade.h:33
+#: ui/properties.glade.h:32
 msgid "Whether to set a mail reader or not"
 msgstr "Ustaw czytnik poczty"
 
-#: ui/properties.glade.h:34
+#: ui/properties.glade.h:33
 msgid ""
 "Whether to start Mail Notification when you log into your GNOME session or "
 "not"
 msgstr "Uruchom zawiadomienie pocztowe w trakcie startu środowiska graficznego"
 
+#: ui/properties.glade.h:34
+msgid ""
+"Whether to use a custom font for the contents of the mail summary popup or "
+"not"
+msgstr ""
+"Ustaw czcionkę dla tytułu streszczenia poczty"
+
 #: ui/properties.glade.h:35
+msgid ""
+"Whether to use a custom font for the title of the mail summary popup or not"
+msgstr ""
+"Czy użyć niestandardową czcionkę do tytułu wyskakującego okienka "
+"streszczenia poczty czy nie"
+
+#: ui/properties.glade.h:36
 msgid "_Automatically close after:"
 msgstr "_Automatyczne zamknięcie okienka po:"
 
-#: ui/properties.glade.h:36
+#: ui/properties.glade.h:37
 msgid "_Blink on errors"
 msgstr "_Miganie przy błędach"
 
-#: ui/properties.glade.h:37
+#: ui/properties.glade.h:38
+msgid "_Contents font:"
+msgstr "_Wybór czcionki treści:"
+
+#: ui/properties.glade.h:39
 msgid "_Delay between mail checks:"
 msgstr "_Sprawdzanie poczty co:"
 
-#: ui/properties.glade.h:38
-#, fuzzy
-msgid "_Display the main window"
+#: ui/properties.glade.h:40
+msgid "_Display the mail summary dialog"
 msgstr "_Wyświetl streszczenie poczty"
 
-#: ui/properties.glade.h:39
+#: ui/properties.glade.h:41
 msgid "_Enable mail summary popup"
 msgstr "_Streszczenie poczty"
 
-#: ui/properties.glade.h:40
+#: ui/properties.glade.h:42
 msgid "_Launch the mail reader"
 msgstr "U_ruchom czytnik poczty"
 
-#: ui/properties.glade.h:41
+#: ui/properties.glade.h:43
 msgid "_Mail reader:"
 msgstr "C_zytnik poczty:"
 
-#: ui/properties.glade.h:42
+#: ui/properties.glade.h:44
 msgid "_Start Mail Notification on GNOME login"
 msgstr "_Uruchomienie zawiadomienia pocztowego podczas logowania"
 
-#: ui/properties.glade.h:43
-#, fuzzy
-msgid "_Title:"
-msgstr "_Wybór czcionki tytułu:"
-
-#: ui/properties.glade.h:44
-#, fuzzy
-msgid "_Update the mail status"
-msgstr "Odśwież stan poczty"
-
 #: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
+msgid "_Title font:"
+msgstr "_Wybór czcionki tytułu:"
 
 #: ui/properties.glade.h:46
 msgid "_Vertical offset:"
@@ -1985,13 +1720,12 @@ msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
 msgstr "<span size=\"larger\" weight=\"bold\">Zawiadomienie pocztowe</span>"
 
 #: ui/welcome.glade.h:1
-#, fuzzy
 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 need to "
+"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 "
@@ -2022,66 +1756,3 @@ msgstr "_Konfiguracja Zawiadomienia pocztowego"
 #: ui/welcome.glade.h:9
 msgid "_Skip configuration"
 msgstr "_Pomiń konfigurację"
-
-#~ msgid "Use a custom font for the contents of the mail summary popup"
-#~ msgstr ""
-#~ "Użyj niestandardową czcionkę dla zawartości wyskakującego okienka "
-#~ "streszczenia poczty"
-
-#~ msgid "Use a custom font for the title of the mail summary popup"
-#~ msgstr ""
-#~ "Użyj niestandardową czcionkę dla tytułu wyskakującego okienka "
-#~ "streszczenia poczty"
-
-#~ msgid ""
-#~ "Whether to use a custom font for the contents of the mail summary popup "
-#~ "or not."
-#~ msgstr ""
-#~ "Czy użyć niestandardową czcionkę dla zawartości wyskakującego okienka "
-#~ "streszczenia poczty czy nie."
-
-#~ msgid ""
-#~ "Whether to use a custom font for the title of the mail summary popup or "
-#~ "not."
-#~ msgstr ""
-#~ "Czy użyć niestandardową czcionkę dla tytułu wyskakującego okienka "
-#~ "streszczenia poczty czy nie."
-
-#~ msgid "server did not send status"
-#~ msgstr "serwer nie wysłał stanu"
-
-#~ msgid "_Launch Mail Reader"
-#~ msgstr "_Uruchom czytnik poczty"
-
-#~ msgid "Whether the mailbox has new mail or not"
-#~ msgstr "Czy skrzynka pocztowa ma nową pocztę czy nie"
-
-#~ msgid "%s has no new mail"
-#~ msgstr "%s nie ma nowej poczty"
-
-#~ msgid "Display the mail summary dialog"
-#~ msgstr "Wyświetlij dialog streszczenia poczty"
-
-#~ msgid "error while reading mailbox: %s"
-#~ msgstr "błąd podczas odczytywania skrzynki pocztowej: %s"
-
-#~ msgid "_Mail Summary"
-#~ msgstr "_Streszczenie poczty"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "    "
-#~ msgstr "    "
-
-#~ msgid ""
-#~ "Whether to use a custom font for the contents of the mail summary popup "
-#~ "or not"
-#~ msgstr "Ustaw czcionkę dla tytułu streszczenia poczty"
-
-#~ msgid ""
-#~ "Whether to use a custom font for the title of the mail summary popup or "
-#~ "not"
-#~ msgstr ""
-#~ "Czy użyć niestandardową czcionkę do tytułu wyskakującego okienka "
-#~ "streszczenia poczty czy nie"
diff --git a/po/pt.gmo b/po/pt.gmo
Binary files differ.
diff --git a/po/pt.po b/po/pt.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mail-notification 1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2005-02-27 15:47+0100\n"
 "PO-Revision-Date: 2005-03-01 02:19+0100\n"
 "Last-Translator: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
 "Language-Team: Duarte Henriques <duarte_henriques@myrealbox.com>\n"
@@ -171,8 +171,8 @@ msgid ""
 "The action to perform when the icon is double-clicked. Must be \"display-"
 "main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
 msgstr ""
-"A acção a efectuar quando se faz duplo-clique no ícone. Tem de ser \"display-"
-"main-window\", \"launch-mail-reader\" ou \"update-mail-status\"."
+"A acção a efectuar quando se faz duplo-clique no ícone. Tem de ser "
+"\"display-main-window\", \"launch-mail-reader\" ou \"update-mail-status\"."
 
 #: data/mail-notification.schemas.in.h:33
 msgid ""
@@ -397,8 +397,8 @@ msgid ""
 "Drag an item onto the toolbars above to add it, from the toolbars in the "
 "items table to remove it."
 msgstr ""
-"Arraste um item para as barras para o adicionar, das barras para a tabela de "
-"items para o remover"
+"Arraste um item para as barras para o adicionar, das barras para a tabela "
+"de items para o remover"
 
 #: src/eggtrayicon.c:109
 msgid "Orientation"
@@ -600,77 +600,81 @@ msgstr "incapaz de ler do servidor: EOF"
 msgid "unable to decode data using SASL: %s"
 msgstr "incapaz de descodificar dados usando SASL: %s"
 
-#: src/mn-client-session.c:743
+#: src/mn-client-session.c:709
+msgid "received non-ASCII data from server"
+msgstr "dados não-ASCII recebidos do servidor"
+
+#: src/mn-client-session.c:756
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr "incapaz de encodificar dados usando SASL: %s"
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: src/mn-client-session.c:787 src/mn-client-session.c:794
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "incapaz de escrever para o servidor: %s"
 
-#: src/mn-client-session.c:779
+#: src/mn-client-session.c:792
 msgid "unable to write to server: EOF"
 msgstr "incapaz de escrever para o servidor: EOF"
 
-#: src/mn-client-session.c:811
+#: src/mn-client-session.c:824
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "incapaz de encodificar em Base64: %s"
 
-#: src/mn-client-session.c:922
+#: src/mn-client-session.c:935
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr "incapaz de inicializar a biblioteca SASL: %s"
 
-#: src/mn-client-session.c:931
+#: src/mn-client-session.c:944
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "incapaz de obter o endereço local do socket: %s"
 
-#: src/mn-client-session.c:937
+#: src/mn-client-session.c:950
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr "incapaz de obter endereço remoto do socket: %s"
 
-#: src/mn-client-session.c:971
+#: src/mn-client-session.c:984
 #, c-format
 msgid "unable to set SASL security properties: %s"
 msgstr "incapaz de definir as propriedades de segurança SASL: %s"
 
-#: src/mn-client-session.c:995
+#: src/mn-client-session.c:1008
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr ""
 "incapaz de iniciar a autenticação SASL: SASL perguntou algo que não sabíamos"
 
-#: src/mn-client-session.c:1014
+#: src/mn-client-session.c:1027
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr "incapaz de iniciar autenticação SASL: %s"
 
-#: src/mn-client-session.c:1018
+#: src/mn-client-session.c:1031
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr "incapaz de criar uma ligação SASL: %s"
 
-#: src/mn-client-session.c:1055
+#: src/mn-client-session.c:1068
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr "SASL perguntou algo que não sabíamos, abortando a autenticação SASL"
 
-#: src/mn-client-session.c:1072
+#: src/mn-client-session.c:1085
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, abortando a autenticação SASL"
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: src/mn-client-session.c:1090
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr "incapaz de descodificar o input em Base64 do servidor: %s"
 
-#: src/mn-client-session.c:1080
+#: src/mn-client-session.c:1093
 msgid ""
 "the server sent a SASL challenge, but there was a pending initial SASL "
 "client response"
@@ -678,7 +682,7 @@ msgstr ""
 "o servidor enviou um desafio SASL, mas havia uma resposta SASL inicial "
 "pendente do cliente"
 
-#: src/mn-client-session.c:1094
+#: src/mn-client-session.c:1107
 msgid ""
 "the server did not send a SASL challenge, but there was no pending initial "
 "SASL client response"
@@ -686,18 +690,18 @@ msgstr ""
 "o servidor não enviou um desafio SASL, mas não havia uma resposta SASL "
 "inicial pendente do cliente"
 
-#: src/mn-client-session.c:1119
+#: src/mn-client-session.c:1132
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr "está agora activa uma camada de segurança SASL com factor de força %i"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: src/mn-client-session.c:1137
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr "incapaz de obter a propriedade SASL_MAXOUTBUF: %s"
 
-#: src/mn-client-session.c:1130
+#: src/mn-client-session.c:1143
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr "aviso: incapaz de obter a propriedade SASL_SSF: %s"
@@ -859,7 +863,7 @@ msgstr "O nome da caixa de correio"
 msgid "If possible, whether to use idle mode or not"
 msgstr "Se possível, usar modo inactivo ou não"
 
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
+#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:135
 msgid "SSL/TLS support has not been compiled in"
 msgstr "suporte SSL/TLS não foi compilado"
 
@@ -889,15 +893,15 @@ msgstr "servidor não enviou todas as mensagens pedidas"
 msgid "unable to fetch message"
 msgstr "incapaz de obter mensagem"
 
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: src/mn-imap-mailbox.gob:999 src/mn-pop3-mailbox.gob:907
 msgid "unknown server error"
 msgstr "erro de servidor desconhecido"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: src/mn-imap-mailbox.gob:1101 src/mn-pop3-mailbox.gob:219
 msgid "server does not support in-band SSL/TLS"
 msgstr "servidor não suporta SSL/TLS in-band"
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: src/mn-imap-mailbox.gob:1120 src/mn-pop3-mailbox.gob:817
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -905,16 +909,16 @@ msgstr ""
 "foi escolhido um mecanismo de autenticação SASL, mas o suporte SASL não foi "
 "compilado"
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: src/mn-imap-mailbox.gob:1130 src/mn-pop3-mailbox.gob:837
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "mecanismo de autenticação desconhecido \"%s\""
 
-#: src/mn-imap-mailbox.gob:1160
+#: src/mn-imap-mailbox.gob:1153
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "recorrendo à autenticação IMAP LOGIN"
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: src/mn-imap-mailbox.gob:1165 src/mn-pop3-mailbox.gob:881
 msgid "authentication failed"
 msgstr "autenticação falhou"
 
@@ -1227,9 +1231,7 @@ msgstr "_Omissão do Ambiente"
 
 #: src/mn-main-window.c:207
 msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-"Definir o estilo de barras de ferramentas para a definição por omissão do "
-"ambiente de trabalho"
+msgstr "Definir o estilo de barras de ferramentas para a definição por omissão do ambiente de trabalho"
 
 #: src/mn-main-window.c:213
 msgid "I_cons Only"
@@ -1268,22 +1270,22 @@ msgstr "Mostrar o texto das barras de ferramentas ao lado dos ícones"
 msgid "unable to load menus.xml: %s"
 msgstr "incapaz de varregar menus.xml: %s"
 
-#: src/mn-main-window.c:398
+#: src/mn-main-window.c:397
 msgid "Help messages"
 msgstr "Mensagens de Ajuda"
 
-#: src/mn-main-window.c:399
+#: src/mn-main-window.c:398
 msgid "Count messages"
 msgstr "Mensagens de contagem"
 
-#: src/mn-main-window.c:503
+#: src/mn-main-window.c:502
 #, c-format
 msgid "%i new message"
 msgid_plural "%i new messages"
 msgstr[0] "%i mensagem nova"
 msgstr[1] "%i mensagens novas"
 
-#: src/mn-main-window.c:540
+#: src/mn-main-window.c:539
 msgid "unable to load toolbars.xml"
 msgstr "incapaz de carregar barras de ferramentas.xml"
 
@@ -1507,30 +1509,30 @@ msgstr ""
 msgid "The port number of the POP3 server"
 msgstr "O número do porto do servidor POP3"
 
-#: src/mn-pop3-mailbox.gob:266
+#: src/mn-pop3-mailbox.gob:265
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "argumentos inválidos para a habilidade LOGIN-DELAY"
 
-#: src/mn-pop3-mailbox.gob:569
+#: src/mn-pop3-mailbox.gob:568
 msgid "unknown error"
 msgstr "erro desconhecido"
 
-#: src/mn-pop3-mailbox.gob:656
+#: src/mn-pop3-mailbox.gob:655
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
 msgstr[0] "honrando LOGIN-DELAY, dormindo por %i segundo"
 msgstr[1] "honrando LOGIN-DELAY, dormindo por %i segundos"
 
-#: src/mn-pop3-mailbox.gob:849
+#: src/mn-pop3-mailbox.gob:829
 msgid "server does not support APOP authentication"
 msgstr "servidor não suporta autenticação APOP"
 
-#: src/mn-pop3-mailbox.gob:884
+#: src/mn-pop3-mailbox.gob:864
 msgid "falling back to APOP authentication"
 msgstr "recorrendo a autenticação APOP"
 
-#: src/mn-pop3-mailbox.gob:889
+#: src/mn-pop3-mailbox.gob:869
 msgid "falling back to USER/PASS authentication"
 msgstr "recorrendo a autenticação USER/PASS"
 
@@ -1949,8 +1951,8 @@ msgstr ""
 "\n"
 "A Notificação de Correio foi carregada com sucesso.\n"
 "\n"
-"Como esta é a primeira vez que executa a Notificação de Correio, precisa de "
-"a configurar.\n"
+"Como esta é a primeira vez que executa a Notificação de Correio, precisa "
+"de a configurar.\n"
 "\n"
 "Nota: esta mensagem não será mostrada de novo. Para configurar a Notificação "
 "de Correio outra vez, escolha <span weight=\"bold\">Aplicações</span> → "
@@ -1967,9 +1969,6 @@ msgstr "_Configurar Notificação de Correio"
 msgid "_Skip configuration"
 msgstr "_Saltar configuração"
 
-#~ msgid "received non-ASCII data from server"
-#~ msgstr "dados não-ASCII recebidos do servidor"
-
 #~ msgid "Use a custom font for the contents of the mail summary popup"
 #~ msgstr ""
 #~ "Usar uma fonte personalizada para o conteúdo do popup de resumo de correio"
diff --git a/po/ru.gmo b/po/ru.gmo
Binary files differ.
diff --git a/po/ru.po b/po/ru.po
@@ -1,5 +1,5 @@
 # Russian translations for mail-notification.
-# Copyright (C) 2003, 2004 Jean-Yves Lefort.
+# Copyright (C) 2003-2005 Jean-Yves Lefort.
 #
 # This file is distributed under the same license as the
 # mail-notification package.
@@ -10,1895 +10,630 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mail-notification 0.5.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
+"POT-Creation-Date: 2004-07-18 01:21+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"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
-#, fuzzy
-msgid "Mail Notification automation"
-msgstr "Иконка входящих сообщений"
-
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
-#, fuzzy
-msgid "Mail Notification automation factory"
-msgstr "Иконка входящих сообщений"
-
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
-#, fuzzy
-msgid "Configure Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
-msgid "Mail Notification"
-msgstr "Иконка входящих сообщений"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
 #: data/mail-notification.desktop.in.h:1
 msgid "Get notified when new mail arrives"
 msgstr ""
 "Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
+#: data/mail-notification.desktop.in.h:2 src/mn-main.c:112 src/mn-ui.c:250
+msgid "Mail Notification"
+msgstr "Иконка входящих сообщений"
+
 #: data/mail-notification.schemas.in.h:1
-msgid "Automatically close the mail summary popup"
+msgid "Clicked command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:2
-msgid "Blink on errors"
+msgid "Delay between mail checks (minutes part)."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:3
-msgid "Delay between mail checks (minutes part)."
+msgid "Delay between mail checks (seconds part)."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:4
-msgid "Delay between mail checks (seconds part)."
+msgid "Height of preferences dialog"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:5
-msgid "Display mail summary in tooltip"
+msgid "Mailboxes list"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:6
-msgid "Do not show the immediate notification error dialog"
+msgid "Minutes between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:7
-msgid "Double-click action"
+msgid "New mail command"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:8
-msgid "Enable mail summary popup"
+#, fuzzy
+msgid "Run a command when new mail arrives"
 msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
 #: data/mail-notification.schemas.in.h:9
-msgid "Fingerprints of trusted X509 certificates"
+msgid "Run a command when the icon is clicked"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
+msgid "Seconds between mail checks"
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:11
-msgid "Height of edit toolbars dialog"
+#, fuzzy
+msgid "The command to run when new mail arrives."
 msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
 #: data/mail-notification.schemas.in.h:12
-msgid "Height of main window"
+msgid "The command to run when the icon is clicked."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:13
-msgid "Height of properties dialog"
+msgid "The height of the preferences dialog in pixels."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:14
-msgid "Mail read command"
+msgid "The list of mailboxes to monitor."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:15
-msgid "Mail reader command"
+msgid "The width of the preferences dialog in pixels."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:16
-msgid "Mail summary popup contents font"
+#, fuzzy
+msgid "Whether to run a command when new mail arrives or not."
 msgstr ""
+"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
 #: data/mail-notification.schemas.in.h:17
-msgid "Mail summary popup fonts aspect source"
+msgid "Whether to run a command when the icon is clicked or not."
 msgstr ""
 
 #: data/mail-notification.schemas.in.h:18
-msgid "Mail summary popup horizontal offset"
+msgid "Width of preferences dialog"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:19
-msgid "Mail summary popup position"
+#: src/eggtrayicon.c:109
+msgid "Orientation"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:20
-msgid "Mail summary popup title font"
+#: src/eggtrayicon.c:110
+msgid "The orientation of the tray."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:21
-msgid "Mail summary popup vertical offset"
+#: src/mn-gmail-mailbox.c:165 src/mn-pop3-mailbox.c:177
+msgid "unable to parse URI"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
+#: src/mn-gmail-mailbox.c:261
+#, c-format
+msgid "logging into Gmail as user %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:23
-msgid "Minutes between mail checks"
+#: src/mn-gmail-mailbox.c:277 src/mn-gmail-mailbox.c:356
+#, c-format
+msgid "unable to transfer data: %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:24
-msgid "Minutes to wait before closing the mail summary popup"
+#: src/mn-gmail-mailbox.c:283
+#, c-format
+msgid "successfully logged into Gmail as user %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:25
-msgid "New mail command"
+#: src/mn-gmail-mailbox.c:288
+msgid "login failed"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:26
-msgid "Only display recent mail in mail summary popup"
+#: src/mn-gmail-mailbox.c:341
+#, c-format
+msgid "searching for unread mail in %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:27
-#, fuzzy
-msgid "Run a command when all mail is read"
+#: src/mn-gmail-mailbox.c:363
+msgid "unable to parse Gmail data"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:28
-#, fuzzy
-msgid "Run a command when new mail arrives"
+#: src/mn-mail-icon.c:130
+msgid "You have no new mail"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:29
-msgid "Seconds between mail checks"
+#: src/mn-mailbox-properties-dialog.c:131
+msgid "Add a Mailbox"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:30
-msgid "Seconds to wait before closing the mail summary popup"
+#: src/mn-mailbox-properties-dialog.c:285
+#, c-format
+msgid "%s Properties"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:31
-msgid "Set a mail reader"
+#: src/mn-mailbox-properties-dialog.c:450
+msgid "Select a File or Folder"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:32
-msgid ""
-"The action to perform when the icon is double-clicked. Must be \"display-"
-"main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
+#: src/mn-mailbox.c:199
+msgid "URI"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:33
-msgid ""
-"The amount of time to wait before closing the mail summary popup (minutes "
-"part)."
+#: src/mn-mailbox.c:200
+msgid "The mailbox URI"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:34
-msgid ""
-"The amount of time to wait before closing the mail summary popup (seconds "
-"part)."
+#: src/mn-mailbox.c:206
+msgid "Name"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:35
-msgid ""
-"The aspect source of the mail summary popup fonts. Must be \"theme\" or "
-"\"custom\"."
+#: src/mn-mailbox.c:207
+msgid "The mailbox human-readable name"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:36
-#, fuzzy
-msgid "The command to run to launch the mail reader."
+#: src/mn-mailbox.c:213
+msgid "Automatic"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:37
-#, fuzzy
-msgid "The command to run when all mail is read."
+#: src/mn-mailbox.c:214
+msgid "Whether the mailbox has to be manually checked or not"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:38
-#, fuzzy
-msgid "The command to run when new mail arrives."
+#: src/mn-mailbox.c:220
+msgid "Has new"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:39
-msgid "The custom font to use for the contents of the mail summary popup."
+#: src/mn-mailbox.c:221
+msgid "Whether the mailbox has new mail or not"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:40
-msgid "The custom font to use for the title of the mail summary popup."
+#: src/mn-mailbox.c:227
+msgid "Error"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:41
-msgid "The height of the edit toolbars dialog in pixels."
+#: src/mn-mailbox.c:228
+msgid "The mailbox error if any"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:42
-msgid "The height of the main window in pixels."
+#: src/mn-mailbox.c:254
+#, c-format
+msgid "unable to cancel monitoring of %s: %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:43
-msgid "The height of the properties dialog in pixels."
+#: src/mn-mailbox.c:443
+msgid "does not exist"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
+#: src/mn-mailbox.c:460
+msgid "unknown format"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:45
-msgid ""
-"The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
-"certificate."
+#: src/mn-mailbox.c:553
+#, c-format
+msgid "unable to monitor %s: %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:46
+#: src/mn-mailbox.c:567
+#, c-format
 msgid ""
-"The list of trusted X509 certificates, represented by their MD5 fingerprint."
-msgstr ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Preferences Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Preferences Dialog)."
+msgstr[0] ""
+msgstr[1] ""
 
-#: data/mail-notification.schemas.in.h:47
+#: src/mn-mailbox.c:578
+#, c-format
 msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup."
-msgstr ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Preferences Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Preferences Dialog)."
+msgstr[0] ""
+msgstr[1] ""
 
-#: data/mail-notification.schemas.in.h:48
+#: src/mn-mailbox.c:589
+#, c-format
 msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup."
-msgstr ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Preferences Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Preferences Dialog)."
+msgstr[0] ""
+msgstr[1] ""
 
-#: data/mail-notification.schemas.in.h:49
-msgid ""
-"The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
-"\"bottom-left\" or \"bottom-right\"."
+#: src/mn-mailbox.c:603
+msgid "A monitoring error has occurred."
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:50
+#: src/mn-mailbox.c:604
+#, c-format
 msgid ""
-"The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
-"\"both\" or \"both-horiz\"."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:51
-msgid "The width of the edit toolbars dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:52
-msgid "The width of the main window in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:53
-msgid "The width of the properties dialog in pixels."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:54
-msgid "Toolbars style"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:55
-msgid "Trusted servers list"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:56
-msgid "View statusbar"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:57
-msgid "View toolbars"
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr ""
-
-#: data/mail-notification.schemas.in.h:59
-msgid "Whether the status icon should blink on errors or not."
+"Mail Notification was unable to enable automatic notification for one or "
+"more mailboxes. %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:60
-msgid "Whether the statusbar should be visible or not."
+#: src/mn-mailboxes.c:133
+#, c-format
+msgid "%s has new mail"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:61
-msgid "Whether the toolbars should be visible or not."
+#: src/mn-mailboxes.c:133
+#, c-format
+msgid "%s has no new mail"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:62
-#, fuzzy
-msgid "Whether to automatically close the mail summary popup or not."
+#: src/mn-mailboxes.c:143
+#, c-format
+msgid "%s reported an error: %s"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:63
-msgid "Whether to display the mail summary in the status icon tooltip or not."
+#: src/mn-maildir-mailbox.c:226 src/mn-sylpheed-mailbox.c:209
+#, c-format
+msgid "error while reading folder: %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:64
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not."
+#: src/mn-main.c:49
+msgid "Compiled in handlers:\n"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:65
-msgid ""
-"Whether to hide previously displayed mail in the mail summary popup or not."
+#: src/mn-main.c:83
+msgid "Enable informational output"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:66
-msgid ""
-"Whether to prevent the immediate notification error dialog from being "
-"displayed or not."
+#: src/mn-main.c:92
+msgid "List compiled-in handlers and exit"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:67
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not."
+#: src/mn-main.c:124
+msgid "unable to initialize GnomeVFS"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:68
-#, fuzzy
-msgid "Whether to run a command when new mail arrives or not."
+#: src/mn-mbox-mailbox.c:339
+#, c-format
+msgid "unable to get mailbox information: %s"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:69
-#, fuzzy
-msgid "Whether to set a mail reader or not."
+#: src/mn-mbox-mailbox.c:364
+#, c-format
+msgid "unable to open mailbox: %s"
 msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
 
-#: data/mail-notification.schemas.in.h:70
-msgid "Width of edit toolbars dialog"
+#: src/mn-mbox-mailbox.c:401
+#, c-format
+msgid "error while reading mailbox: %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:71
-msgid "Width of main window"
+#: src/mn-mbox-mailbox.c:417
+#, c-format
+msgid "unable to close mailbox: %s"
 msgstr ""
 
-#: data/mail-notification.schemas.in.h:72
-msgid "Width of properties dialog"
+#: src/mn-mh-mailbox.c:185
+#, c-format
+msgid "unable to open .mh_sequences: %s"
 msgstr ""
 
-#: data/mail-notification.soundlist.in.h:2
-msgid "New Mail"
+#: src/mn-mh-mailbox.c:215
+#, c-format
+msgid "error while reading .mh_sequences: %s"
 msgstr ""
 
-#: src/egg-editable-toolbar.c:536
-msgid "_Remove Toolbar"
+#: src/mn-mh-mailbox.c:231
+#, c-format
+msgid "unable to close .mh_sequences: %s"
 msgstr ""
 
-#: src/egg-toolbar-editor.c:558
-msgid "Separator"
+#: src/mn-pending-mailbox.c:64
+msgid "detecting..."
 msgstr ""
 
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
+#: src/mn-pop3-mailbox.c:202
+#, c-format
+msgid "connecting to POP3 server %s:%i"
 msgstr ""
 
-#: src/eggtrayicon.c:109
-msgid "Orientation"
+#: src/mn-pop3-mailbox.c:222
+#, c-format
+msgid "successfully connected to %s:%i"
 msgstr ""
 
-#: src/eggtrayicon.c:110
-msgid "The orientation of the tray."
+#: src/mn-pop3-mailbox.c:231
+msgid "unable to resolve hostname"
 msgstr ""
 
-#: src/mn-about-dialog.gob:42
-msgid "A Mail Notification Icon"
+#: src/mn-pop3-mailbox.c:235
+msgid "unable to connect to server"
 msgstr ""
 
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
-msgstr "Dan Korostelev <dan@ats.energo.ru>"
-
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
-msgid "<span style=\"italic\">autodetect</span>"
+#: src/mn-pop3-mailbox.c:239
+msgid "unknown error"
 msgstr ""
 
-#: src/mn-authenticated-mailbox.gob:85
+#: src/mn-pop3-mailbox.c:270
 #, c-format
-msgid ""
-"Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
-"\n"
-"Please re-enter your password."
+msgid "unable to write to server: %s"
 msgstr ""
 
-#: src/mn-authenticated-mailbox.gob:86
+#: src/mn-pop3-mailbox.c:329
 #, c-format
-msgid "Enter your password for %s mailbox %s."
+msgid "invalid STAT reply \"%s\""
 msgstr ""
 
-#: src/mn-authenticated-mailbox.gob:137
+#: src/mn-pop3-mailbox.c:367 src/mn-pop3-mailbox.c:378
 #, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
+msgid "invalid POP3 reply \"%s\""
 msgstr ""
 
-#: src/mn-autodetect-mailbox-properties.gob:70
-msgid "_Location:"
+#: src/mn-pop3-mailbox.c:387
+msgid "connection unexpectedly closed"
 msgstr ""
 
-#: src/mn-autodetect-mailbox-properties.gob:76
-msgid "_Browse..."
+#: src/mn-pop3-mailbox.c:393
+#, c-format
+msgid "unable to read from server: %s"
 msgstr ""
 
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
+#: src/mn-preferences.c:195
+msgid "Mailbox"
 msgstr ""
 
-#: src/mn-autodetect-mailbox-properties.gob:123
-msgid "Select a File or Folder"
+#: src/mn-preferences.c:209
+msgid "Format"
 msgstr ""
 
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
+#: src/mn-preferences.c:361
+msgid "No mailbox selected."
 msgstr ""
 
-#: src/mn-client-session.c:220
+#: src/mn-preferences.c:366
 #, c-format
-msgid "resolving %s"
-msgstr ""
+msgid "%i mailbox selected."
+msgid_plural "%i mailboxes selected."
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/mn-client-session.c:230
-#, c-format
-msgid "unable to resolve %s: %s"
+#: src/mn-preferences.c:423
+msgid "Unable to add mailbox."
 msgstr ""
 
-#: src/mn-client-session.c:267
-#, c-format
-msgid "%s: unsupported address family"
+#: src/mn-preferences.c:423
+msgid "The mailbox is already in the list."
 msgstr ""
 
-#: src/mn-client-session.c:274
-#, c-format
-msgid "%s: unable to create socket: %s"
+#: src/mn-ui.c:87
+msgid "A command error has occurred."
 msgstr ""
 
-#: src/mn-client-session.c:278
+#: src/mn-ui.c:88
 #, c-format
-msgid "connecting to %s (%s) port %i"
+msgid "Unable to execute clicked command: %s."
 msgstr ""
 
-#: src/mn-client-session.c:281
-#, c-format
-msgid "unable to connect: %s"
-msgstr ""
+#: src/mn-ui.c:179
+msgid "The following mailbox has new mail:\n"
+msgid_plural "The following mailboxes have new mail:\n"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/mn-client-session.c:286
-msgid "connected successfully"
+#: src/mn-ui.c:186
+msgid "You have no new mail."
 msgstr ""
 
-#. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
-#, c-format
-msgid "unable to connect to %s"
-msgstr ""
+#: src/mn-ui.c:190
+msgid "The following mailbox reported an error:\n"
+msgid_plural "The following mailboxes reported an error:\n"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/mn-client-session.c:308
-#, c-format
-msgid "unable to initialize the OpenSSL library: %s"
-msgstr ""
+#: src/mn-ui.c:195
+msgid "The following mailbox is unsupported:\n"
+msgid_plural "The following mailboxes are unsupported:\n"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/mn-client-session.c:316
-#, c-format
-msgid "unable to create a SSL/TLS object: %s"
+#: src/mn-ui.c:253
+msgid "A Mail Notification Icon"
 msgstr ""
 
-#: src/mn-client-session.c:322
-#, c-format
-msgid "unable to set the SSL/TLS file descriptor: %s"
-msgstr ""
+#: src/mn-ui.c:256
+msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+msgstr "Dan Korostelev <dan@ats.energo.ru>"
 
-#: src/mn-client-session.c:328
-#, c-format
-msgid "unable to perform the SSL/TLS handshake: %s"
+#: src/mn-unsupported-mailbox.c:98
+msgid "unsupported"
 msgstr ""
 
-#: src/mn-client-session.c:334
-msgid "untrusted server"
+#: src/mn-unsupported-mailbox.c:103
+msgid "Reason"
 msgstr ""
 
-#: src/mn-client-session.c:338
-#, c-format
-msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
+#: src/mn-unsupported-mailbox.c:104
+msgid "The reason why the mailbox is unsupported"
 msgstr ""
 
-#: src/mn-client-session.c:385
+#: src/mn-util.c:110
 #, c-format
-msgid "%s, fingerprint: %s"
-msgstr ""
-
-#: src/mn-client-session.c:414
-msgid "missing certificate"
+msgid "error loading image: %s"
 msgstr ""
 
-#: src/mn-client-session.c:440
+#: src/mn-util.c:148
 #, c-format
-msgid ""
-"Mail Notification was unable to trust \"%s\" (%s). It is possible that "
-"someone is intercepting your communication to obtain your confidential "
-"information.\n"
-"\n"
-"You should only connect to the server if you are certain you are connected "
-"to \"%s\". If you choose to connect to the server, this message will not be "
-"shown again."
+msgid "widget %s not found in interface %s"
 msgstr ""
 
-#: src/mn-client-session.c:457
-msgid "Connect to untrusted server?"
+#: src/mn-util.c:255
+msgid "received an invalid URI list"
 msgstr ""
 
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
+#: src/mn-util.c:291
+msgid "received an invalid Mozilla URL"
 msgstr ""
 
-#: src/mn-client-session.c:518
-#, c-format
-msgid "response \"%s\" is not valid in current context"
+#: src/mn-util.c:383
+msgid "Unable to display help."
 msgstr ""
 
-#: src/mn-client-session.c:544
-#, c-format
-msgid "unable to parse response \"%s\""
+#: ui/mailbox-properties.glade.h:1 ui/preferences.glade.h:1
+msgid "    "
 msgstr ""
 
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
-#, c-format
-msgid "unable to read from server: %s"
+#: ui/mailbox-properties.glade.h:2 ui/preferences.glade.h:2
+msgid "*"
 msgstr ""
 
-#: src/mn-client-session.c:597
-msgid "unable to read from server: EOF"
+#: ui/mailbox-properties.glade.h:3
+msgid "P_assword:"
 msgstr ""
 
-#: src/mn-client-session.c:609
-#, c-format
-msgid "unable to decode data using SASL: %s"
+#: ui/mailbox-properties.glade.h:4
+msgid "P_ort:"
 msgstr ""
 
-#: src/mn-client-session.c:743
-#, c-format
-msgid "unable to encode data using SASL: %s"
+#: ui/mailbox-properties.glade.h:5
+msgid "The URI of the file or folder"
 msgstr ""
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
-#, c-format
-msgid "unable to write to server: %s"
+#: ui/mailbox-properties.glade.h:6
+msgid "The hostname or IP address of the POP3 server"
 msgstr ""
 
-#: src/mn-client-session.c:779
-msgid "unable to write to server: EOF"
+#: ui/mailbox-properties.glade.h:7
+msgid "The port number of the POP3 server"
 msgstr ""
 
-#: src/mn-client-session.c:811
-#, c-format
-msgid "unable to encode Base64: %s"
+#: ui/mailbox-properties.glade.h:8
+msgid "Us_ername:"
 msgstr ""
 
-#: src/mn-client-session.c:922
-#, c-format
-msgid "unable to initialize the SASL library: %s"
+#: ui/mailbox-properties.glade.h:9
+msgid "Your Gmail password"
 msgstr ""
 
-#: src/mn-client-session.c:931
-#, c-format
-msgid "unable to retrieve local address of socket: %s"
+#: ui/mailbox-properties.glade.h:10
+msgid "Your Gmail username"
 msgstr ""
 
-#: src/mn-client-session.c:937
-#, c-format
-msgid "unable to retrieve remote address of socket: %s"
+#: ui/mailbox-properties.glade.h:11
+msgid "Your password on the POP3 server"
 msgstr ""
 
-#: src/mn-client-session.c:971
-#, c-format
-msgid "unable to set SASL security properties: %s"
+#: ui/mailbox-properties.glade.h:12
+msgid "Your username on the POP3 server"
 msgstr ""
 
-#: src/mn-client-session.c:995
-msgid ""
-"unable to start SASL authentication: SASL asked for something we did not know"
+#: ui/mailbox-properties.glade.h:13
+msgid "_Browse..."
 msgstr ""
 
-#: src/mn-client-session.c:1014
-#, c-format
-msgid "unable to start SASL authentication: %s"
+#: ui/mailbox-properties.glade.h:14
+msgid "_File or folder"
 msgstr ""
 
-#: src/mn-client-session.c:1018
-#, c-format
-msgid "unable to create a SASL connection: %s"
+#: ui/mailbox-properties.glade.h:15
+msgid "_Gmail mailbox"
 msgstr ""
 
-#: src/mn-client-session.c:1055
-msgid "SASL asked for something we did not know, aborting SASL authentication"
+#: ui/mailbox-properties.glade.h:16
+msgid "_Hostname:"
 msgstr ""
 
-#: src/mn-client-session.c:1072
-#, c-format
-msgid "%s, aborting SASL authentication"
+#: ui/mailbox-properties.glade.h:17
+msgid "_Location:"
 msgstr ""
 
-#. compliance error
-#: src/mn-client-session.c:1077
-#, c-format
-msgid "unable to decode Base64 input from server: %s"
+#: ui/mailbox-properties.glade.h:18
+msgid "_POP3 mailbox"
 msgstr ""
 
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
+#: ui/menu.glade.h:1
+msgid "Show help"
 msgstr ""
 
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
+#: ui/menu.glade.h:2
+msgid "Update the icon"
 msgstr ""
 
-#: src/mn-client-session.c:1119
-#, c-format
-msgid "a SASL security layer of strength factor %i is now active"
+#: ui/menu.glade.h:3
+msgid "_Help"
 msgstr ""
 
-#. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
-#, c-format
-msgid "unable to get SASL_MAXOUTBUF property: %s"
+#: ui/menu.glade.h:4
+msgid "_Update"
 msgstr ""
 
-#: src/mn-client-session.c:1130
-#, c-format
-msgid "warning: unable to get SASL_SSF property: %s"
+#: ui/preferences.glade.h:3
+msgid "<span weight=\"bold\">Commands</span>"
 msgstr ""
 
-#: src/mn-conf.c:238
-msgid "A directory creation error has occurred"
+#: ui/preferences.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
 msgstr ""
 
-#: src/mn-conf.c:239
-#, c-format
-msgid "Unable to create directory \"%s\": %s."
+#: ui/preferences.glade.h:5
+msgid "<span weight=\"bold\">Mailboxes</span>"
 msgstr ""
 
-#: src/mn-conf.c:313
-#, c-format
-msgid "recursively unsetting %s"
+#: ui/preferences.glade.h:6
+msgid "Mail Notification Preferences"
 msgstr ""
 
-#: src/mn-conf.c:317
-msgid "syncing the GConf database"
+#: ui/preferences.glade.h:7
+msgid "The amount of time to wait between mail checks"
 msgstr ""
 
-#: src/mn-conf.c:320
-msgid "completed"
+#: ui/preferences.glade.h:8
+msgid "The command to run when new mail arrives"
 msgstr ""
 
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
+#: ui/preferences.glade.h:9
+msgid "The command to run when the icon is clicked"
 msgstr ""
 
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
+#: ui/preferences.glade.h:10
+msgid "When _new mail arrives:"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
+#: ui/preferences.glade.h:11
+msgid "When click_ed:"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
+#: ui/preferences.glade.h:12
+msgid "Whether to run a command when new mail arrives or not"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
+#: ui/preferences.glade.h:13
+msgid "Whether to run a command when the icon is clicked or not"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
+#: ui/preferences.glade.h:14
+msgid "_Add"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
+#: ui/preferences.glade.h:15
+msgid "_Delay between mail checks:"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
+#: ui/preferences.glade.h:16
+msgid "_Remove"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
+#: ui/preferences.glade.h:17
+msgid "minutes"
 msgstr ""
 
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:891
-#, c-format
-msgid "unable to open calendar: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:899
-#, c-format
-msgid "unable to set calendar time: %s"
-msgstr ""
-
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:49
-#, c-format
-msgid "unable to read %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:51
-#, c-format
-msgid "unable to write to %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:53
-#, c-format
-msgid "unable to seek in %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:55
-#, c-format
-msgid "unable to tell position of %s: %s"
-msgstr ""
-
-#: src/mn-gmime-stream-vfs.gob:57
-#, c-format
-msgid "unable to close %s: %s"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:95
-msgid "Mailbox:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:99
-msgid "in_box"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:110
-msgid "oth_er:"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr ""
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:236
-msgid "server did not send capabilities"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:408
-msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:409
-msgid "unable to login"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:542
-msgid "server did not send search results"
-msgstr ""
-
-#. compliance error
-#: src/mn-imap-mailbox.gob:617
-msgid "server did not send all the messages we requested"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:671
-msgid "unable to fetch message"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
-msgid "unknown server error"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
-msgid "server does not support in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
-msgid ""
-"a SASL authentication mechanism was selected but SASL support has not been "
-"compiled in"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
-#, c-format
-msgid "unknown authentication mechanism \"%s\""
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1160
-msgid "falling back to IMAP LOGIN authentication"
-msgstr ""
-
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
-msgid "authentication failed"
-msgstr ""
-
-#: src/mn-mail-icon.gob:91
-msgid "Main _Window"
-msgstr ""
-
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
-msgid "_Mail Reader"
-msgstr ""
-
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
-msgid "_Update"
-msgstr ""
-
-#: src/mn-mail-icon.gob:99
-msgid "R_emove From Notification Area"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr ""
-
-#: src/mn-mailbox-properties-dialog.c:325
-#, c-format
-msgid "%s Properties"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr ""
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr ""
-
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
-msgid "Mailbox"
-msgstr ""
-
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr ""
-
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr ""
-
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr ""
-
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr ""
-
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr ""
-
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr ""
-
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr ""
-
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr ""
-
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr ""
-
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr ""
-
-#: src/mn-mailbox.gob:421
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:432
-#, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:443
-#, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr ""
-
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-
-#: src/mn-mailboxes.gob:260
-#, c-format
-msgid "%s is unsupported: %s"
-msgstr ""
-
-#: src/mn-mailboxes.gob:290
-#, c-format
-msgid "%s has %i new message"
-msgid_plural "%s has %i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mailboxes.gob:307
-#, c-format
-msgid "%s reported an error: %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:112
-#, c-format
-msgid "unable to open folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:141
-#, c-format
-msgid "unable to close folder \"new\": %s"
-msgstr ""
-
-#: src/mn-maildir-mailbox.gob:144
-#, c-format
-msgid "error while reading folder \"new\": %s"
-msgstr ""
-
-#. Toplevel
-#: src/mn-main-window.c:92
-msgid "_Mail"
-msgstr ""
-
-#: src/mn-main-window.c:93
-msgid "_Edit"
-msgstr ""
-
-#: src/mn-main-window.c:94
-msgid "_View"
-msgstr ""
-
-#: src/mn-main-window.c:95
-msgid "_Help"
-msgstr ""
-
-#: src/mn-main-window.c:103
-msgid "Launch the mail reader"
-msgstr ""
-
-#. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
-msgid "Update the mail status"
-msgstr ""
-
-#: src/mn-main-window.c:117
-msgid "_Close"
-msgstr ""
-
-#: src/mn-main-window.c:119
-msgid "Close this window"
-msgstr ""
-
-#: src/mn-main-window.c:125
-msgid "_Quit"
-msgstr ""
-
-#: src/mn-main-window.c:127 src/mn-main.c:257
-#, fuzzy
-msgid "Quit Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
-msgid "_Toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:137
-msgid "Customize the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:143
-msgid "_Preferences"
-msgstr ""
-
-#: src/mn-main-window.c:153
-msgid "Toolbars Styl_e"
-msgstr ""
-
-#: src/mn-main-window.c:155
-msgid "Customize the toolbars style"
-msgstr ""
-
-#: src/mn-main-window.c:163
-msgid "_Contents"
-msgstr ""
-
-#: src/mn-main-window.c:165
-msgid "Display help"
-msgstr ""
-
-#: src/mn-main-window.c:171
-msgid "_About"
-msgstr ""
-
-#: src/mn-main-window.c:173
-msgid "Display credits"
-msgstr ""
-
-#: src/mn-main-window.c:185
-msgid "Show or hide the toolbars"
-msgstr ""
-
-#: src/mn-main-window.c:192
-msgid "_Statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:194
-msgid "Show or hide the statusbar"
-msgstr ""
-
-#: src/mn-main-window.c:205
-msgid "_Desktop Default"
-msgstr ""
-
-#: src/mn-main-window.c:207
-msgid "Set the toolbars style to the desktop default setting"
-msgstr ""
-
-#: src/mn-main-window.c:213
-msgid "I_cons Only"
-msgstr ""
-
-#: src/mn-main-window.c:215
-msgid "Only display the toolbars icons"
-msgstr ""
-
-#: src/mn-main-window.c:221
-msgid "_Text Only"
-msgstr ""
-
-#: src/mn-main-window.c:223
-msgid "Only display the toolbars text"
-msgstr ""
-
-#: src/mn-main-window.c:229
-msgid "Text Belo_w Icons"
-msgstr ""
-
-#: src/mn-main-window.c:231
-msgid "Display the toolbars text below the icons"
-msgstr ""
-
-#: src/mn-main-window.c:237
-msgid "Text Be_side Icons"
-msgstr ""
-
-#: src/mn-main-window.c:239
-msgid "Display the toolbars text beside the icons"
-msgstr ""
-
-#: src/mn-main-window.c:363
-#, c-format
-msgid "unable to load menus.xml: %s"
-msgstr ""
-
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr ""
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr ""
-
-#: src/mn-main-window.c:503
-#, c-format
-msgid "%i new message"
-msgid_plural "%i new messages"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr ""
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr ""
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr ""
-
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr ""
-
-#: src/mn-main.c:176
-msgid "Enable informational output"
-msgstr ""
-
-#: src/mn-main.c:185
-msgid "List the compiled-in features"
-msgstr ""
-
-#: src/mn-main.c:194
-msgid "Display the main window"
-msgstr ""
-
-#: src/mn-main.c:203
-msgid "Display the properties dialog"
-msgstr ""
-
-#: src/mn-main.c:212
-msgid "Display the about dialog"
-msgstr ""
-
-#: src/mn-main.c:221
-msgid "Close the mail summary popup"
-msgstr ""
-
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr ""
-
-#: src/mn-main.c:248
-msgid "Unset obsolete GConf configuration"
-msgstr ""
-
-#.
-#. * We can't use mn_error_dialog() because gtk_init() has not been
-#. * called yet.
-#.
-#: src/mn-main.c:284
-msgid "multi-threading is not available"
-msgstr ""
-
-#: src/mn-main.c:338
-msgid ""
-"Bonobo could not locate the automation object. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-main.c:344
-#, fuzzy
-msgid "quitting Mail Notification"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main.c:348
-#, fuzzy
-msgid "Mail Notification is not running"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main.c:355
-msgid "Unable to initialize the GnomeVFS library."
-msgstr ""
-
-#: src/mn-main.c:391
-msgid "updating the mail status"
-msgstr ""
-
-#: src/mn-main.c:409
-#, fuzzy
-msgid "Mail Notification is already running"
-msgstr "Иконка входящих сообщений"
-
-#: src/mn-main.c:417
-msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-
-#: src/mn-mbox-mailbox.gob:184
-#, c-format
-msgid "unable to open mailbox: %s"
-msgstr ""
-
-#: src/mn-message-mime.c:105
-msgid "unable to parse MIME message"
-msgstr ""
-
-#: src/mn-message-view.gob:81
-msgid "You have no new mail."
-msgstr ""
-
-#: src/mn-message-view.gob:321
-msgid "Unreadable message"
-msgstr ""
-
-#: src/mn-message-view.gob:329
-msgid "From"
-msgstr ""
-
-#: src/mn-message-view.gob:337
-msgid "Subject"
-msgstr ""
-
-#: src/mn-message-view.gob:348
-msgid "Sent"
-msgstr ""
-
-#: src/mn-message.gob:101
-msgid "Unknown"
-msgstr ""
-
-#: src/mn-message.gob:126
-#, c-format
-msgid "%i second ago"
-msgid_plural "%i seconds ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:130
-#, c-format
-msgid "about %i minute ago"
-msgid_plural "about %i minutes ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:135
-#, c-format
-msgid "about %i hour ago"
-msgid_plural "about %i hours ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:140
-#, c-format
-msgid "about %i day ago"
-msgid_plural "about %i days ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-message.gob:145
-#, c-format
-msgid "about %i week ago"
-msgid_plural "about %i weeks ago"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-mh-mailbox.gob:157
-#, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr ""
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:105
-msgid "sta_ndard"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:115
-msgid "_in-band SSL/TLS"
-msgstr ""
-
-#: src/mn-pi-mailbox-properties.gob:125
-msgid "SSL/TLS on sepa_rate port"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:266
-msgid "invalid arguments for the LOGIN-DELAY capability"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:569
-msgid "unknown error"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:656
-#, c-format
-msgid "honouring LOGIN-DELAY, sleeping for %i second"
-msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-pop3-mailbox.gob:849
-msgid "server does not support APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:884
-msgid "falling back to APOP authentication"
-msgstr ""
-
-#: src/mn-pop3-mailbox.gob:889
-msgid "falling back to USER/PASS authentication"
-msgstr ""
-
-#: src/mn-properties-dialog.c:218
-msgid "top left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:219
-msgid "top right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:220
-msgid "bottom left"
-msgstr ""
-
-#: src/mn-properties-dialog.c:221
-msgid "bottom right"
-msgstr ""
-
-#: src/mn-properties-dialog.c:323
-msgid "No mailbox selected."
-msgstr ""
-
-#: src/mn-properties-dialog.c:328
-#, c-format
-msgid "%i mailbox selected."
-msgid_plural "%i mailboxes selected."
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/mn-shell.gob:96
-msgid "You have new mail."
-msgstr ""
-
-#: src/mn-shell.gob:361
-msgid "Mailboxes Having New Mail"
-msgstr ""
-
-#: src/mn-shell.gob:382
-msgid "Errors"
-msgstr ""
-
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr ""
-
-#: src/mn-shell.gob:418
-msgid "Mail Summary"
-msgstr ""
-
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr ""
-
-#: src/mn-ssl.c:79
-msgid "unknown SSL/TLS error"
-msgstr ""
-
-#: src/mn-stock.c:28
-msgid "Select _All"
-msgstr ""
-
-#: src/mn-stock.c:29
-msgid "Leave Fullscreen"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:113
-#, c-format
-msgid "unable to open folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:147
-#, c-format
-msgid "unable to close folder: %s"
-msgstr ""
-
-#: src/mn-sylpheed-mailbox.gob:150
-#, c-format
-msgid "error while reading folder: %s"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:57
-#, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr ""
-
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr ""
-
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr ""
-
-#: src/mn-util.c:245
-#, c-format
-msgid "error loading image: %s"
-msgstr ""
-
-#: src/mn-util.c:276
-#, c-format
-msgid "widget \"%s\" not found in interface \"%s\""
-msgstr ""
-
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr ""
-
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr ""
-
-#: src/mn-util.c:519
-msgid "Unable to display help"
-msgstr ""
-
-#: src/mn-util.c:533
-#, c-format
-msgid "Unable to create a thread: %s."
-msgstr ""
-
-#: src/mn-util.c:626
-msgid "_Do not show this message again"
-msgstr ""
-
-#: src/mn-util.c:710
-msgid "A fatal error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:725
-#, c-format
-msgid "unable to get current time: %s"
-msgstr ""
-
-#: src/mn-util.c:787
-#, c-format
-msgid "invalid signal specification \"%s\""
-msgstr ""
-
-#: src/mn-util.c:826
-msgid "A command error has occurred in Mail Notification"
-msgstr ""
-
-#: src/mn-util.c:827
-#, c-format
-msgid "Unable to execute \"%s\": %s."
-msgstr ""
-
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:1
-msgid "Edit Toolbars"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:2
-msgid "_Add a New Toolbar"
-msgstr ""
-
-#: ui/edit-toolbars.glade.h:3
-msgid "_Use Default"
-msgstr ""
-
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
-msgstr ""
-
-#: ui/properties.glade.h:1
-msgid "<span weight=\"bold\">Commands</span>"
-msgstr ""
-
-#: ui/properties.glade.h:2
-msgid "<span weight=\"bold\">Double-click Action</span>"
-msgstr ""
-
-#: ui/properties.glade.h:3
-msgid "<span weight=\"bold\">Fonts</span>"
-msgstr ""
-
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr ""
-
-#: ui/properties.glade.h:5
-msgid "<span weight=\"bold\">Mailbox List</span>"
-msgstr ""
-
-#: ui/properties.glade.h:6
-msgid "<span weight=\"bold\">Position</span>"
-msgstr ""
-
-#: ui/properties.glade.h:7
-msgid "Co_ntents:"
-msgstr ""
-
-#: ui/properties.glade.h:8
-msgid "Dis_play mail summary in tooltip"
-msgstr ""
-
-#: ui/properties.glade.h:9
-msgid "General"
-msgstr ""
-
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr ""
-
-#: ui/properties.glade.h:11
-#, fuzzy
-msgid "Mail Notification Properties"
-msgstr "Иконка входящих сообщений"
-
-#: ui/properties.glade.h:12
-msgid "Mail Summary Popup"
-msgstr ""
-
-#: ui/properties.glade.h:13
-msgid "Mailboxes"
-msgstr ""
-
-#: ui/properties.glade.h:14
-msgid "Only display _recent mail"
-msgstr ""
-
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr ""
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr ""
-
-#: ui/properties.glade.h:18
-#, fuzzy
-msgid "The command to run to launch the mail reader"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:19
-#, fuzzy
-msgid "The command to run when all mail is read"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr ""
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:23
-msgid "Use these _fonts:"
-msgstr ""
-
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr ""
-
-#: ui/properties.glade.h:25
-msgid "When _new mail arrives:"
-msgstr ""
-
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr ""
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr ""
-
-#: ui/properties.glade.h:29
-#, fuzzy
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr ""
-
-#: ui/properties.glade.h:31
-#, fuzzy
-msgid "Whether to run a command when all mail is read or not"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr ""
-
-#: ui/properties.glade.h:33
-#, fuzzy
-msgid "Whether to set a mail reader or not"
-msgstr ""
-"Иконка в области уведомления панели, уведомляющая о приходе новой почты."
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr ""
-
-#: ui/properties.glade.h:35
-msgid "_Automatically close after:"
-msgstr ""
-
-#: ui/properties.glade.h:36
-msgid "_Blink on errors"
-msgstr ""
-
-#: ui/properties.glade.h:37
-msgid "_Delay between mail checks:"
-msgstr ""
-
-#: ui/properties.glade.h:38
-msgid "_Display the main window"
-msgstr ""
-
-#: ui/properties.glade.h:39
-msgid "_Enable mail summary popup"
-msgstr ""
-
-#: ui/properties.glade.h:40
-msgid "_Launch the mail reader"
-msgstr ""
-
-#: ui/properties.glade.h:41
-msgid "_Mail reader:"
-msgstr ""
-
-#: ui/properties.glade.h:42
-#, fuzzy
-msgid "_Start Mail Notification on GNOME login"
-msgstr "Иконка входящих сообщений"
-
-#: ui/properties.glade.h:43
-msgid "_Title:"
-msgstr ""
-
-#: ui/properties.glade.h:44
-msgid "_Update the mail status"
-msgstr ""
-
-#: ui/properties.glade.h:45
-msgid "_Use fonts from theme"
-msgstr ""
-
-#: ui/properties.glade.h:46
-msgid "_Vertical offset:"
-msgstr ""
-
-#: ui/properties.glade.h:47
-msgid "minutes"
-msgstr ""
-
-#: ui/properties.glade.h:48
-msgid "pixels"
-msgstr ""
-
-#: ui/properties.glade.h:49
+#: ui/preferences.glade.h:18
 msgid "seconds"
 msgstr ""
-
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-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 need 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> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → 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/po/sr.gmo b/po/sr.gmo
Binary files differ.
diff --git a/po/sr.po b/po/sr.po
@@ -11,167 +11,175 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-01 02:17+0100\n"
+"POT-Creation-Date: 2005-07-31 04:17+0200\n"
+"PO-Revision-Date: 2005-07-31 11:13+0100\n"
 "Last-Translator: Филип Милетић <filmil@gmail.com>\n"
 "Language-Team: Serbian (sr) <gnu@prevod.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3;    plural=n%10==1 && n%100!=11 ? 0 :    n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3;    plural=n%10==1 && n%100!=11 ? 0 :    n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
 msgid "Mail Notification automation"
 msgstr "Дојава приспећа поште"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
 msgid "Mail Notification automation factory"
-msgstr "Фабрика ѕа дојаву приспећа поште"
+msgstr "Фабрика за дојаву приспећа поште"
 
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "Управљање Еволуцијиним дрветом директоријума"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "Фабрика за управљач Еволуцијиним дрветом директоријума"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "Сучеље за Дојаву поште и Еволуцију"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "Фабрика за Дојаву поште и Еволуцију"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
 msgid "Configure Mail Notification"
 msgstr "Подеси дојаву приспећа поште"
 
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
 msgid "Mail Notification"
 msgstr "Дојава поште"
 
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
 msgid "Get notified when new mail arrives"
 msgstr "Обавести када стигне нова пошта"
 
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
 msgstr "Аутоматски затвори прозор са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
 msgstr "Трепери ако дође до грешке"
 
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
 msgid "Delay between mail checks (minutes part)."
 msgstr "Размак између две провере (минути)"
 
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
 msgid "Delay between mail checks (seconds part)."
 msgstr "Размак између две провере (секунде)."
 
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
 msgid "Display mail summary in tooltip"
 msgstr "Прикажи сажетат порука у облачићу"
 
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
 msgid "Do not show the immediate notification error dialog"
 msgstr "Не показуј прозор са обавештењем о грешкама"
 
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
 msgid "Double-click action"
 msgstr "Изврши на двоструки клик"
 
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
 msgid "Enable mail summary popup"
 msgstr "Дозволи приказ сажетка порука"
 
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
 msgid "Fingerprints of trusted X509 certificates"
 msgstr "Отисци проверених X509 сертификата"
 
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "Већ је покренут"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
 msgid "Height of edit toolbars dialog"
 msgstr "Висина прозора за уређивање алатних трака"
 
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
 msgid "Height of main window"
 msgstr "Висина главног прозора"
 
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
 msgid "Height of properties dialog"
 msgstr "Висина прозора са поставкама"
 
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
 msgid "Mail read command"
 msgstr "Команда за читање поште"
 
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
 msgid "Mail reader command"
 msgstr "Команда за читање поште"
 
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
 msgid "Mail summary popup contents font"
 msgstr "Писмо које се користи за садржај прозора са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
 msgid "Mail summary popup fonts aspect source"
 msgstr "Извор за аспект за писмо у прозору за сажетак (???)"
 
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
 msgid "Mail summary popup horizontal offset"
 msgstr "Померај хоризонталних тачака за прозор са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
 msgid "Mail summary popup position"
 msgstr "Број хоризонталних тачака за прозор са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
 msgid "Mail summary popup title font"
 msgstr "Писмо које се користи за наслов прозора са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
 msgid "Mail summary popup vertical offset"
 msgstr "Померај вертикалних тачака ѕа прозор са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Списак сандучића"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
 msgid "Minutes between mail checks"
 msgstr "Минута између две провере"
 
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
 "Број минута који треба да протекне пре затварања прозора са сажетком порука"
 
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
 msgid "New mail command"
 msgstr "Изврши када пошта стигне"
 
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
 msgid "Only display recent mail in mail summary popup"
 msgstr "Прикажи само скоро приспеле поруке у сажетку"
 
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
 msgid "Run a command when all mail is read"
 msgstr "Покрени команду када је сва пошта прочитана"
 
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
 msgid "Run a command when new mail arrives"
 msgstr "Покрени команду када стигне нова пошта"
 
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
 msgid "Seconds between mail checks"
 msgstr "Секунди између две провере"
 
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr "Број секунди који треба да протекне пре затварања сажетка порука"
 
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
 msgid "Set a mail reader"
 msgstr "Изаберите читач поште"
 
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
 msgid ""
 "The action to perform when the icon is double-clicked. Must be \"display-"
 "main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
@@ -180,75 +188,71 @@ msgstr ""
 "избори су: ?главни-прозор?, ?покрени-читач-поште? или ?ажурирај-статус-"
 "поште?."
 
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
 msgstr "Пауза пре затварања прозора са сажетком порука (минути)."
 
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
 msgstr "Пауза пре затварања прозора са сажетком порука (секунде)."
 
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
 msgid ""
 "The aspect source of the mail summary popup fonts. Must be \"theme\" or "
 "\"custom\"."
 msgstr "Извор за подешавања писма. Може бити: ?тема? или ?посебан?."
 
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
 msgid "The command to run to launch the mail reader."
 msgstr "Команда којом се покреће читач поште"
 
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
 msgid "The command to run when all mail is read."
 msgstr "Команда коју треба покренути када је сва пошта прочитана."
 
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
 msgid "The command to run when new mail arrives."
 msgstr "Покрени ову команду када стигне нова пошта."
 
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
 msgid "The custom font to use for the contents of the mail summary popup."
 msgstr ""
 "Посебно писмо које се користи за испис садржаја прозора са сажетком порука."
 
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
 msgid "The custom font to use for the title of the mail summary popup."
 msgstr ""
 "Посебно писмо које се користи за испис наслова прозора са сажетком порука."
 
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
 msgid "The height of the edit toolbars dialog in pixels."
 msgstr "Висина прозора за уређивање статусних трака, изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
 msgid "The height of the main window in pixels."
 msgstr "Висина главног прозора изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
 msgid "The height of the properties dialog in pixels."
 msgstr "Висина прозора са поставкама изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "Списак сандучића који се прате."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 "Списак проверених SSL/TLS сервера (рачунар:порт) који немају X509 сертификат."
 
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr "Списак проверених X509 сертификата, представљених MD5 отиском."
 
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
@@ -256,7 +260,7 @@ msgstr ""
 "Број тачака које треба оставити између леве, одн. десне стране екрана и "
 "прозора са сажетком порука."
 
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
@@ -264,7 +268,7 @@ msgstr ""
 "Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
 "сажетком порука."
 
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
@@ -272,7 +276,7 @@ msgstr ""
 "Положај прозора са сажетком порука. Може бити: ?горе-лево?, ?горе-десно?, ?"
 "доле-лево? или ?доле-десно?."
 
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
 msgid ""
 "The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
 "\"both\" or \"both-horiz\"."
@@ -280,273 +284,264 @@ msgstr ""
 "Стил алатних трака. Може бити: ?подразумеван?, ?слике?, ?текст?, ?оба?, ?оба-"
 "водоравно?."
 
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
 msgid "The width of the edit toolbars dialog in pixels."
 msgstr "Ширина прозора за уређивање статусних трака, изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
 msgid "The width of the main window in pixels."
 msgstr "Ширина прозора главног прозора изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
 msgid "The width of the properties dialog in pixels."
 msgstr "Ширина прозора са поставкама изражена у тачкама."
 
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
 msgid "Toolbars style"
 msgstr "Стил алатне траке"
 
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
 msgid "Trusted servers list"
 msgstr "Списак проверених сервера"
 
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
 msgid "View statusbar"
 msgstr "Прикажи статусну траку"
 
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
 msgid "View toolbars"
 msgstr "Прикажи алатну траку"
 
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr "Да ли је програм покретан пре или није."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Да ли сличица треба да трепери ако дође до грешке или не."
 
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
 msgid "Whether the statusbar should be visible or not."
 msgstr "Да ли статусна линија треба да се види или не."
 
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
 msgid "Whether the toolbars should be visible or not."
 msgstr "Да ли алатне траке треба да се виде или не"
 
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Да ли треба или не треба аутоматски затворити прозор са сажетком поште."
 
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
 msgid "Whether to display the mail summary in the status icon tooltip or not."
 msgstr ""
 "Да ли треба приказати сажетак порука у облачићу статусне сличице или не."
 
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr "Да ли треба приказати сажетак порука када стигне нова пошта."
 
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
 msgid ""
 "Whether to hide previously displayed mail in the mail summary popup or not."
 msgstr ""
 "Да ли из сажетка треба уклонити поруке које су се у њему већ пре појавиле."
 
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr "Да ли треба или не треба спречити појаву прозора са описом грешака."
 
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
 msgid "Whether to run a command when all mail is read or not."
 msgstr ""
 "Да ли треба или не треба покренути неку команду када је сва пошта прочитана."
 
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Да ли треба покренути неку команду када стигне нова пошта."
 
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
 msgid "Whether to set a mail reader or not."
 msgstr "Да ли треба поставити читач поште или не."
 
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
 msgid "Width of edit toolbars dialog"
 msgstr "Ширина прозора за уређивање статусних трака"
 
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
 msgid "Width of main window"
 msgstr "Ширина главног прозора"
 
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
 msgid "Width of properties dialog"
 msgstr "Ширина прозора са поставкама"
 
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
 msgid "New Mail"
 msgstr "Нова пошта"
 
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
 msgid "_Remove Toolbar"
 msgstr "_Уклони алатну траку"
 
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
 msgid "Separator"
 msgstr "Граничник"
 
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Превуците ставку на алатну траку како бисте је додали, или са алатне траке у "
-"табелу, како бисте је уклонили."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
 msgid "Orientation"
 msgstr "Оријентација"
 
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
 msgid "The orientation of the tray."
 msgstr "Оријентација обавештајне зоне."
 
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
 msgid "A Mail Notification Icon"
 msgstr "Сличица за дојаву приспећа поште"
 
-# The email of the translator goes here
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
 msgstr "Филип Милетић <filmil@gmail.com>"
 
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "није могуће отворити везу"
+
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">сам пронађи</span>"
 
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "_Кор.име:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Лозинка:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
 #, c-format
 msgid ""
 "Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
 "\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
 msgstr ""
 "Није могуће пријавити се за читање %s сандучета %s, највероватније зато што "
 "унета лозинка није исправна.\n"
 "\n"
 "Молим унесите поново лозинку."
 
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
 #, c-format
-msgid "Enter your password for %s mailbox %s."
+msgid "Enter your credentials for %s mailbox %s."
 msgstr "Унесите лозинку за %s сандуче %s."
 
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Дојава поште захтева да упишете "
-"лозинку</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Потребна је пријава"
 
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Место"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:103
 msgid "_Location:"
 msgstr "_Место:"
 
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
 msgid "_Browse..."
 msgstr "_Прегледај..."
 
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "URI ознака поштанског сандучега"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
 msgid "Select a File or Folder"
 msgstr "Изаберите датотеку или директоријум"
 
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Да ли слика трепери или не"
-
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
 #, c-format
 msgid "resolving %s"
 msgstr "проналазим %s"
 
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr "Није могуће пронаћи %s: %s"
 
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
 #, c-format
 msgid "%s: unsupported address family"
 msgstr "%s: ова врста адресе није подржана"
 
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
 #, c-format
 msgid "%s: unable to create socket: %s"
 msgstr "%s: није могуће направити утичницу: %s"
 
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr "повезујем се са %s (%s) порт %i"
 
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
 #, c-format
 msgid "unable to connect: %s"
 msgstr "није могуће повезати се са: %s"
 
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
 msgid "connected successfully"
 msgstr "повезивање је успело"
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
 #, c-format
 msgid "unable to connect to %s"
 msgstr "није могуће повезати се са %s"
 
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr "није могуће покренути OpenSSL библиотеку: %s"
 
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
 #, c-format
 msgid "unable to create a SSL/TLS object: %s"
 msgstr "није могуће направити SSL/TLS објекат: %s"
 
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
 #, c-format
 msgid "unable to set the SSL/TLS file descriptor: %s"
 msgstr "није могуће поставити SSL/TLS опис за датотеку: %s"
 
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
 #, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
 msgstr "није могуће обавити SSL/TLS контакт: %s"
 
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
 msgid "untrusted server"
 msgstr "непроверен сервер"
 
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
 #, c-format
 msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
 msgstr "SSL/TLS слој је покренут (%s, %s %i-бит)"
 
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
 #, c-format
 msgid "%s, fingerprint: %s"
 msgstr "%s, отисак: %s"
 
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
 msgid "missing certificate"
 msgstr "недостаје сертификат"
 
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
 #, c-format
 msgid ""
 "Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -565,333 +560,313 @@ msgstr ""
 "са \"%s\". Ако одлучите да се повежете на сервер, ова порука неће поново "
 "бити приказана."
 
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
 msgid "Connect to untrusted server?"
 msgstr "Да ли да се повежем на непроверени сервер?"
 
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "_Повежи се"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr "одговор \"%s\" није исправан у тренутно важећем контексту"
 
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr "није могуће обрадити одговор \"%s\""
 
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
 #, c-format
 msgid "unable to read from server: %s"
 msgstr "Није могуће читање са сервера: %s"
 
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
 msgid "unable to read from server: EOF"
 msgstr "Није могуће читање са сервера: EOF"
 
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
 #, c-format
 msgid "unable to decode data using SASL: %s"
 msgstr "Не могу се декодовати подаци путем SASL: %s"
 
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr "није могуће кодирати податке уз помоћ SASL: %s"
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "није могућ упис на сервер: %s"
 
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
 msgid "unable to write to server: EOF"
 msgstr "није могућ упис на сервер: EOF"
 
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "није могуће кодирати Base64: %s"
 
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr "не може се покренути SASL библиотека: %s"
 
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "не може да се добави локална адреса утичнице: %s"
 
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr "не може да се добави удаљена адреса утичнице: %s"
 
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
 #, c-format
 msgid "unable to set SASL security properties: %s"
 msgstr "није могуће поставити SASL сигурносне поставке: %s"
 
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr "не може се покренути SASL пријава: SASL тражи податке које немамо"
 
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr "не може се покренути SASL пријава: %s"
 
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr "није могуће успоставити SASL везу: %s"
 
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr "SASL је тражио нама непознате податке, обустављам SASL пријаву"
 
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, обустављам SASL пријаву"
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr "није могуће декодовати Base64 улаз са сервера: %s"
 
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"сервер је започео SASL разговор, али одговор од клијента стигао пре тога"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"сервер није послао SASL разговор, али није било ни одговора од клијента."
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr "SASL сигурносни слој нивоа снаге %i је успостављен"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr "не могу да прочитам поставку SASL_MAXOUTBUF: %s"
 
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr "упозорење: не могу да прочитам поставку SASL_SSF: %s"
 
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
 msgid "A directory creation error has occurred"
 msgstr "Дошло је до грешке при прављењу директоријума"
 
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
 #, c-format
 msgid "Unable to create directory \"%s\": %s."
 msgstr "Није могуће направити директоријум ?%s?: %s."
 
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
 #, c-format
 msgid "recursively unsetting %s"
 msgstr "рекурзивно поништавам %s"
 
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
 msgid "syncing the GConf database"
 msgstr "усклађујем GConf базу података"
 
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
 msgid "completed"
 msgstr "урађено"
 
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Ваш налог на сервису Gmail"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "неважеће место"
 
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-"Ваша лозинка на сервису Gmail (ако не упишете лозинку, програм ће Вас "
-"замолити да је унесете када то буде потребно)"
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "Тренутно изабран URI"
 
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "libsoup није изграђен са подршком за SSL/TLS"
-
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "није могуће обрадити URI \"%s\""
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Директоријум"
 
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "сервер је послао знаке који не спадају у скуп УТФ-8"
+#: ../src/mn-evolution-mailbox-properties.gob:169
+msgid ""
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
+msgstr "Дојава поште не може да се повеже са Еволуцијом. Покрените Еволуцију и укључите додатак за повезивање са Дојавом поште."
 
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "не могу да преузмем податке: %s"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "директоријум није нађен"
 
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "пријава у току"
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "није могуће повезати се са Еволуцијом"
 
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "пријава није успела"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Није могуће укључити прикључак за Дојаву поште"
 
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "тражим нову пошту"
+#: ../src/mn-evolution-plugin.c:130
+#, c-format
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr "Бонобо није успео да пронађе %s сервер. Молим проверите инсталацију Дојаве поште."
 
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "не може се покренути ICU библиотека"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr "Бонобо није успео да забележи %s сервер. Молим проверите инсталацију Дојаве поште."
 
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "не могу да обрадим податке са сервиса Gmail"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "место довода није исправно наведено"
 
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
 #, c-format
-msgid "unable to open calendar: %s"
-msgstr "није могуће отворити календар: %s"
+msgid "retrieving feed from %s"
+msgstr "преузимање извора са %s"
 
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
 #, c-format
-msgid "unable to set calendar time: %s"
-msgstr "није могуће поставити време из календара: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "није могуће пронаћи довод: %s"
 
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "није могуће добавити време из календара: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "није могуће обрадити довод"
 
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
 #, c-format
 msgid "unable to read %s: %s"
 msgstr "Није могуће прочитати %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:51
 #, c-format
 msgid "unable to write to %s: %s"
 msgstr "није могућ упис на %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:53
 #, c-format
 msgid "unable to seek in %s: %s"
 msgstr "Није могуће пронаћи у %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:55
 #, c-format
 msgid "unable to tell position of %s: %s"
 msgstr "није могуће сазнати положај за %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:57 ../src/mn-mh-mailbox-backend.gob:158
 #, c-format
 msgid "unable to close %s: %s"
 msgstr "није могуће затворити %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
 msgid "Mailbox:"
 msgstr "Сандуче:"
 
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
 msgid "in_box"
 msgstr "in_box"
 
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
 msgid "oth_er:"
 msgstr "_друго:"
 
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "К_ористи време доколице, ако је могуће"
-
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Име или IP број IMAP сервера"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "ни_кад"
 
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Ваше име на IMAP серверу"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "а_утодетекција"
 
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ваша лозинка на IMAP серверу (ако не упишете лозинку, програм ће Вас "
-"замолити да је унесете када то буде потребно)"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "_увек"
 
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Број порта на IMAP серверу"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Користи <span style=\"italic\">IDLE</span> продужетак:"
 
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Име сандучета"
-
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Да ли треба користити време доколице или не"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr "Подршка за SSL/TLS није уграђена"
-
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
 msgid "server did not send capabilities"
 msgstr "сервер није обавестио о својим могућностима"
 
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr "сервер је дојавио LOGINDISABLED, LOGIN пријавa неће бити коришћена"
 
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
 msgid "unable to login"
 msgstr "пријава није могућа"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
 msgid "server did not send search results"
 msgstr "сервер није послао резултате претраге"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
 msgid "server did not send all the messages we requested"
 msgstr "сервер није послао све тражене поруке"
 
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
 msgid "unable to fetch message"
 msgstr "није могуће добавити поруку"
 
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr "„Користи IDLE проширење“ је постављено на „никад“ у поставкама сандучића, одјављујем се"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "удаљени сервер користи %s, не користим IDLE продужетак"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr "удаљени сервер користи %s, IDLE проширење можда неће исправно радити"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr "удаљени сервер не подржава IDLE проширење, одјављујем се"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
 msgid "unknown server error"
 msgstr "непозната грешка на серверу"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
 msgid "server does not support in-band SSL/TLS"
 msgstr "сервер не подржава заштиту путем SSL/TLS"
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -899,216 +874,145 @@ msgstr ""
 "изабран је механизам за пријаву који користи SASL али подршка за SASL није "
 "уграђена у програм"
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "непознат механизам за пријаву \"%s\""
 
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr "искључујем механизам „%s“ и покушавам SASL пријаву"
+
+#: ../src/mn-imap-mailbox.gob:1435
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "повратак на  IMAP LOGIN пријаву"
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
 msgid "authentication failed"
 msgstr "пријава није успела"
 
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
 msgid "Main _Window"
 msgstr "Главни _прозор"
 
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
 msgid "_Mail Reader"
 msgstr "_Читач поште"
 
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
 msgid "_Update"
 msgstr "_Освежи"
 
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
 msgid "R_emove From Notification Area"
 msgstr "_Уклони са обавештајне зоне"
 
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Додај сандуче"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
 #, c-format
 msgid "%s Properties"
 msgstr "Поставке за %s"
 
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "_Кор.име:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Лозинка:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Врста везе:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Порт:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "_Начин пријаве:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Ознака"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Означени текст који се појављује у ознаци типа"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Величина групе"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "GtkSizeGroup за уравнање контролних ознака"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Готово"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Додај сандуче"
 
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Да ли су поставке сасвим попуњене или не"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Дошло је до грешке приликом налепљивања"
 
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
 msgid "Mailbox"
 msgstr "Сандуче"
 
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Формат"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "необрађено %s сандуче (%s)"
 
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Није могуће додати сандуче"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "%s сандуче"
 
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "Сандуче је већ у списку."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "препознајем врсту сандучета..."
 
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "URI ознака за сандуче"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "недостаје атрибут „врста“"
 
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Име сандучета"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "непозната врста сандучета „%s“"
 
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Да ли се ово сандуче ручно проверава или не"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr "особина „%s“: није могуће пребацити ниску „%s“ у вредност врсте „%s“"
 
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "Списак нових и непрочитаних MNMessage објеката"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "особина „%s“ нема постављену вредност"
 
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "Грешка у приступу сандучету, ако постоји"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr "Дошло је до грешке приликом увожења старих сандучића"
 
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "не постоји"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Није могуће увести подешавања сандучића"
 
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "непознат формат"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "није могуће обрадити XML документ."
 
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "Није могуће наместити непосредну дојаву нове поште: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "Недостаје корени елемент."
 
-#: src/mn-mailbox.gob:421
+#: ../src/mn-mailboxes.gob:307
 #, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Пошто нема друге могућности, биће проверавани сваку %i секунду  (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[1] ""
-"Пошто нема друге могућности, биће проверавани сваке %i секунде (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[2] ""
-"Пошто нема друге могућности, биће проверавани сваких %i секунди (ово кашњење "
-"се може променити из прозора са поставкама)"
+msgid "The root element \"%s\" is invalid."
+msgstr "Корени елемент „%s“ је неважећи."
 
-#: src/mn-mailbox.gob:432
+#: ../src/mn-mailboxes.gob:330
 #, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Пошто нема друге могућности, биће проверавани сваки %i минут (ово кашњење се "
-"може променити из прозора са поставкама)"
-msgstr[1] ""
-"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[2] ""
-"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
+msgid "On line %i: %s."
+msgstr "У линији %i: %s."
 
-#: src/mn-mailbox.gob:443
+#: ../src/mn-mailboxes.gob:335
 #, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-"Пошто нема друге могућности, биће проверавани на око %i минут (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[1] ""
-"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
-msgstr[2] ""
-"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
-"се може променити из прозора са поставкама)"
+msgid "On line %i: unknown element \"%s\"."
+msgstr "У линији %i: непознати елемент „%s“."
 
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Дошло је до грешке при мотрењу"
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
+msgstr[0] "Дошло је до грешке приликом учитавања подешавања сандучића"
+msgstr[1] "Дошло је до грешака приликом учитавања подешавања сандучића"
+msgstr[2] "Дошло је до грешака приликом учитавања подешавања сандучића"
 
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"Није могуће наместити непосредну дојаву нове поште за један или више "
-"сандучића. %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Није могуће сачувати подешавања сандучића"
 
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-"Показује да ли постоји бар једно сандуче које мора да се учестало проверава"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Нијем могуће записати XML документ."
 
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
 #, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s није подржан: %s"
+msgid "unable to delete %s: %s"
+msgstr "није могуће обрисати %s: %s"
 
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
 #, c-format
 msgid "%s has %i new message"
 msgid_plural "%s has %i new messages"
@@ -1116,170 +1020,174 @@ msgstr[0] "Сандуче %s има %i нову поруку"
 msgstr[1] "Сандуче %s има %i нове поруке"
 msgstr[2] "Сандуче %s има %i нових порука"
 
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s је дојавио грешку: %s"
 
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "није могуће отворити директоријум \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
 #, c-format
 msgid "unable to close folder \"new\": %s"
 msgstr "није могуће затворити директоријум \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "грешка при читању директоријума \"new\": %s"
 
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Поруке за помоћ"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Преброј поруке"
+
 #. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
 msgid "_Mail"
 msgstr "_Пошта"
 
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
 msgid "_Edit"
 msgstr "_Уреди"
 
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
 msgid "_View"
 msgstr "_Преглед"
 
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
 msgid "_Help"
 msgstr "П_омоћ"
 
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
 msgid "Launch the mail reader"
 msgstr "П_окрени читач поште"
 
 #. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
 msgid "Update the mail status"
 msgstr "Освежи податке о пошти"
 
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
 msgid "_Close"
 msgstr "_Затвори"
 
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
 msgid "Close this window"
 msgstr "Затвори овај прозор"
 
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
 msgid "_Quit"
 msgstr "_Крај"
 
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
 msgid "Quit Mail Notification"
 msgstr "Угаси дојаву поште"
 
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
 msgid "_Toolbars"
 msgstr "_Алатне траке"
 
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
 msgid "Customize the toolbars"
 msgstr "Уреди алатне траке"
 
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
 msgid "_Preferences"
 msgstr "_Поставке"
 
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
 msgid "Toolbars Styl_e"
 msgstr "Стил алатних _трака"
 
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
 msgid "Customize the toolbars style"
 msgstr "Прилагоди стил алатних трака"
 
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
 msgid "_Contents"
 msgstr "_Садржај"
 
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
 msgid "Display help"
 msgstr "Прикажи помоћ"
 
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
 msgid "_About"
 msgstr "_О програму"
 
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
 msgid "Display credits"
 msgstr "Прикажи заслуге"
 
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
 msgid "Show or hide the toolbars"
 msgstr "Прикажи или уклони алатну траку"
 
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
 msgid "_Statusbar"
 msgstr "_Статусна трака"
 
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
 msgid "Show or hide the statusbar"
 msgstr "Прикажи или уклони статусну траку"
 
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
 msgid "_Desktop Default"
 msgstr "_Подразумевано у окружењу"
 
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
 msgid "Set the toolbars style to the desktop default setting"
 msgstr "Постави стилове трака на стил који важи у целом радном окружењу"
 
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
 msgid "I_cons Only"
 msgstr "Само _слике"
 
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
 msgid "Only display the toolbars icons"
 msgstr "Прикажи само слике у статусној траци"
 
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
 msgid "_Text Only"
 msgstr "Само _текст"
 
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
 msgid "Only display the toolbars text"
 msgstr "Прикажи само текст у алатној траци"
 
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
 msgid "Text Belo_w Icons"
 msgstr "Текст _испод слика"
 
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
 msgid "Display the toolbars text below the icons"
 msgstr "Прикажи текст испод одговарајуће слике у алатној траци"
 
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
 msgid "Text Be_side Icons"
 msgstr "Текст _поред слика"
 
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
 msgid "Display the toolbars text beside the icons"
 msgstr "Прикажи текст поред одговарајуће слике у алатној траци"
 
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
 #, c-format
 msgid "unable to load menus.xml: %s"
 msgstr "Није могуће прочитати menus.xml: %s"
 
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Поруке за помоћ"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Преброј поруке"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "није могуће учитати toolbars.xml: %s"
 
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
 #, c-format
 msgid "%i new message"
 msgid_plural "%i new messages"
@@ -1287,53 +1195,43 @@ msgstr[0] "%i нова порука"
 msgstr[1] "%i нове поруке"
 msgstr[2] "%i нових порука"
 
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "није могуће учитати toolbars.xml: %s"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Програм уме да чита сандучиће у форматима: %s\n"
-
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "ГМАИЛ временски печат"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Уграђене могућности за сандучиће:"
 
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Уграђене могућности: %s\n"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Уграђене могућности за POP3 и IMAP: "
 
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
 msgid "Enable informational output"
 msgstr "Дозволи речитији излаз"
 
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
 msgid "List the compiled-in features"
 msgstr "Испиши уграђене могућности"
 
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
 msgid "Display the main window"
 msgstr "Прикажи главни прозор"
 
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
 msgid "Display the properties dialog"
 msgstr "Прикажи прозор са поставкама"
 
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
 msgid "Display the about dialog"
 msgstr "Прикажи податке о програму"
 
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
 msgid "Close the mail summary popup"
 msgstr "Затвори прозор са сажетком порука"
 
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Провери пошту"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
 msgid "Unset obsolete GConf configuration"
 msgstr "Поништи застарела GConf подешавања"
 
@@ -1341,11 +1239,11 @@ msgstr "Поништи застарела GConf подешавања"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
 msgid "multi-threading is not available"
 msgstr "вишенитни рад није подржан"
 
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -1355,80 +1253,72 @@ msgstr ""
 "Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
 "одјавите и поново пријавите на систем да би све почело да ради)"
 
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
 msgid "quitting Mail Notification"
 msgstr "Гасим дојаву поште"
 
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
 msgid "Mail Notification is not running"
 msgstr "Програм за дојаву поште није покренут."
 
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Није могуће покренути библиотеку GnomeVFS."
 
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
 msgid "updating the mail status"
 msgstr "Проверавам пошту"
 
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
 msgid "Mail Notification is already running"
 msgstr "Програм за дојаву поште је већ покренут."
 
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
 msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-"Бонобо није успео да пронађе објекат за аутоматизацију. Проверите "
-"инсталацију програма за дојаву поште. (Прим. прев: услед грешке у програму "
-"Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
-"одјавите и поново пријавите на систем да би све почело да ради)"
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
+msgstr "Бонобо није могао да пронађе датотеку %s. Молимо проверите подешавања Дојаве поште."
 
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Бонобо није успео да пронађе објекат за аутоматизацију. Проверите "
-"инсталацију програма за дојаву поште. (Прим. прев: услед грешке у програму "
-"Бонобо у Гному 2.6, када инсталирате програм за обавештења, треба да се "
-"одјавите и поново пријавите на систем да би све почело да ради)"
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "није могуће затворити датотеку: %s"
 
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:222
 #, c-format
 msgid "unable to open mailbox: %s"
 msgstr "није могуће отворити сандуче: %s"
 
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
 msgid "unable to parse MIME message"
 msgstr "није могуће обрадити MIME поруку"
 
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
 msgid "You have no new mail."
 msgstr "Нема поште."
 
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
 msgid "Unreadable message"
 msgstr "Нечитљива порука"
 
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
 msgid "From"
 msgstr "Од"
 
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
 msgid "Subject"
 msgstr "Тема"
 
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
 msgid "Sent"
 msgstr "Послато"
 
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
 msgid "Unknown"
 msgstr "Непознато"
 
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
@@ -1436,7 +1326,7 @@ msgstr[0] "пре %i секунду"
 msgstr[1] "пре %i секунде"
 msgstr[2] "пре %i секунди"
 
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
 #, c-format
 msgid "about %i minute ago"
 msgid_plural "about %i minutes ago"
@@ -1444,7 +1334,7 @@ msgstr[0] "пре око %i минут"
 msgstr[1] "пре око %i минута"
 msgstr[2] "пре око %i минута"
 
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
 #, c-format
 msgid "about %i hour ago"
 msgid_plural "about %i hours ago"
@@ -1452,7 +1342,7 @@ msgstr[0] "пре око %i сат"
 msgstr[1] "пре око %i сата"
 msgstr[2] "пре око %i сати"
 
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
 #, c-format
 msgid "about %i day ago"
 msgid_plural "about %i days ago"
@@ -1460,7 +1350,7 @@ msgstr[0] "пре око %i дан"
 msgstr[1] "пре око %i дана"
 msgstr[2] "пре око %i дана"
 
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
 #, c-format
 msgid "about %i week ago"
 msgid_plural "about %i weeks ago"
@@ -1468,69 +1358,78 @@ msgstr[0] "пре око %i недељу"
 msgstr[1] "пре око %i недеље"
 msgstr[2] "пре око %i недеља"
 
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "грешка при читању датотеке .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "ниједно"
 
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
 #, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr "није могуће отворити датотеку .mh_sequences: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "истражујем"
-
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "_Рачунар:"
+msgid "error while reading %s: %s"
+msgstr "грешка при читању %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Детаљи"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "није могуће отворити %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
 msgid "sta_ndard"
 msgstr "_стандард"
 
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
 msgid "_in-band SSL/TLS"
 msgstr "_уграђени SSL/TLS"
 
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS на посебном порту"
 
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Име или IP број POP3 сервера"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "_Рачунар:"
 
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Ваше име на  POP3 серверу"
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Детаљи"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Ваша лозинка на POP3 серверу (ако не упишете лозинку, програм ће Вас "
-"замолити да је унесете када то буде потребно)"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Врста везе:"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Број порта на POP3 серверу"
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Порт:"
+
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "_Начин пријаве:"
+
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr "Подршка за SSL/TLS није уграђена"
 
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pop3-mailbox.gob:359
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "параметри за могућност LOGIN-DELAY нису исправно постављени"
 
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr "SASL аутентификација са почетним клијентским одговором није успела, покушавам поново без почетног клијентског одговора"
+
+#: ../src/mn-pop3-mailbox.gob:733
 msgid "unknown error"
 msgstr "непозната грешка"
 
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1538,39 +1437,43 @@ msgstr[0] "тражен је застој при пријави, паузира
 msgstr[1] "тражен је застој при пријави, паузирам %i секундe"
 msgstr[2] "тражен је застој при пријави, паузирам %i секунди"
 
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
 msgid "server does not support APOP authentication"
 msgstr "сервер не подржава пријаву коришћењем механизма APOP"
 
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
 msgid "falling back to APOP authentication"
 msgstr "прелазим на  APOP пријаву"
 
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
 msgid "falling back to USER/PASS authentication"
 msgstr "прелазим на пријаву помоћу имена и лозинке"
 
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Поставке за дојаву"
+
+#: ../src/mn-properties-dialog.gob:207
 msgid "top left"
 msgstr "горе-лево"
 
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
 msgid "top right"
 msgstr "горе-десно"
 
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
 msgid "bottom left"
 msgstr "доле-лево"
 
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
 msgid "bottom right"
 msgstr "доле-десно"
 
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
 msgid "No mailbox selected."
 msgstr "Ниједно сандуче није изабрано."
 
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
@@ -1578,408 +1481,763 @@ msgstr[0] "Изабрано %i сандуче"
 msgstr[1] "Изабрана %i сандучета"
 msgstr[2] "Изабрано %i сандучета"
 
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Текст поруке #%i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr "Дијалог за поставке Дојаве поште"
+
+#: ../src/mn-shell.gob:109
 msgid "You have new mail."
 msgstr "Имате нову пошту."
 
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
 msgid "Mailboxes Having New Mail"
 msgstr "Сандучићи са новом поштом"
 
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
 msgid "Errors"
 msgstr "Грешке"
 
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Неподржани сандучићи"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
 msgid "Mail Summary"
 msgstr "Сажетак порука"
 
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "није могуће обрадити заступнички URI ?%s?"
-
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
 msgid "unknown SSL/TLS error"
 msgstr "непозната грешка у  SSL/TLS"
 
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
 msgid "Select _All"
 msgstr "Изабери _све"
 
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
 msgid "Leave Fullscreen"
 msgstr "Остави на целом екрану"
 
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "_Повежи се"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "није могуће отворити директоријум: %s"
 
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
 #, c-format
 msgid "unable to close folder: %s"
 msgstr "није могуће затворити директоријум: %s"
 
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "грешка при читању директоријума: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr "Локално сандуче"
+#: ../src/mn-sylpheed-mailbox-backend.gob:255
+msgid "unexpected end of file"
+msgstr "неочекивани крај датотеке"
 
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-sylpheed-mailbox-backend.gob:269
 #, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr "Користи се локално сандуче (<span weight=\"bold\">%s</span>)."
+msgid "incompatible file version \"%i\""
+msgstr "издање датотеке није сагласно „%i“"
 
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-"Програм није успео да пронађе локално сандуче. Поставите променљиву MAIL да "
-"показује на њега."
+#: ../src/mn-sylpheed-mailbox-backend.gob:272
+msgid "file version missing"
+msgstr "недостаје издање датотеке"
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
+msgstr "Системско сандуче"
 
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "Разлог зашто сандуче није подржано"
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
+#, c-format
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
+msgstr "Ваше системско сандуче је <span weight=\"bold\">%s</span>."
+
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
+msgid ""
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
+msgstr "Место системског сандучета није пронађено. Проверите променљиву MAIL."
 
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "није подржано"
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "променљива MAIL није дефинисана"
 
-#: src/mn-util.c:245
+#: ../src/mn-util.c:281
 #, c-format
 msgid "error loading image: %s"
 msgstr "грешка при учитавању слике: %s"
 
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
 #, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
 msgstr "елемент ?%s? није пронађен у сучељу ?%s?"
 
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "примљен је неисправан списак URI ознака"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "није могуће отворити као модул: %s"
 
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "примљен је неисправан Мозилин URL"
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "обрађивач сигнала „%s“ није пронађен"
+
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Дошло је до грешке при превлачењу/пуштању"
+
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Примљен је неважећи списак места."
+
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Примљен је неважећи Мозилин списак места."
 
-#: src/mn-util.c:519
+#: ../src/mn-util.c:678
 msgid "Unable to display help"
 msgstr "Није могуће приказати помоћ"
 
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
 #, c-format
 msgid "Unable to create a thread: %s."
 msgstr "Није могуће покренути нит: %s."
 
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
 msgid "_Do not show this message again"
 msgstr "_Не приказуј више ову поруку"
 
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+msgid_plural ""
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr[0] "Следеће место је неважеће:\n"
+"\n"
+"%s"
+msgstr[1] "Следећа места су неважећа:\n"
+"\n"
+"%s"
+msgstr[2] "Следећа места су неважећа:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Дошло је до кобне грешке у програму за дојаву поште"
 
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
 #, c-format
 msgid "unable to get current time: %s"
 msgstr "није могуће добавити тренутно време: %s"
 
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
 #, c-format
 msgid "invalid signal specification \"%s\""
 msgstr "неважећа одредница за сигнал ?%s?"
 
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
 msgid "A command error has occurred in Mail Notification"
 msgstr "Дошло је до грешке у командама"
 
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
 #, c-format
 msgid "Unable to execute \"%s\": %s."
 msgstr "Није могуће извршити %s: %s"
 
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "Пријави се"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "Није могуће преименовати %s у %s: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr "није могуће надгледати садржај сандучета (%s), упити су активирани"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr "није могуће надгледати садржај сандучета (%s), упити су активирани"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "формат сандучета није препознат"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "не постоји"
 
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани сваку %i секунду  (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани сваке %i секунде (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани сваких %i секунди (ово кашњење "
+"се може променити из прозора са поставкама)"
+
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани сваки %i минут (ово кашњење се "
+"може променити из прозора са поставкама)"
+msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани сваких %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr[0] ""
+"Пошто нема друге могућности, биће проверавани на око %i минут (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[1] ""
+"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+msgstr[2] ""
+"Пошто нема друге могућности, биће проверавани на око %i минута (ово кашњење "
+"се може променити из прозора са поставкама)"
+
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Дошло је до грешке при мотрењу"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"Није могуће наместити непосредну дојаву нове поште за један или више "
+"сандучића. %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
 msgid "Edit Toolbars"
 msgstr "Уреди алатне траке"
 
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
 msgid "_Add a New Toolbar"
 msgstr "_Додај нову алатну траку"
 
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
 msgid "_Use Default"
 msgstr "_Користи подразумевано"
 
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span weight=\"bold\">Сажетак порука</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Опште</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "_Име сандучета:"
+
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
 msgstr "_Врста сандучета:"
 
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
 msgid "<span weight=\"bold\">Commands</span>"
 msgstr "<span weight=\"bold\">Наредбе</span>"
 
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
 msgid "<span weight=\"bold\">Double-click Action</span>"
 msgstr "<span weight=\"bold\">Наредба за дупли клик</span>"
 
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
 msgid "<span weight=\"bold\">Fonts</span>"
 msgstr "<span weight=\"bold\">Писма</span>"
 
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Опште</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Сандучићи</span>"
 
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Место</span>"
 
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
 msgid "Co_ntents:"
 msgstr "_Садржај:"
 
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
 msgid "Dis_play mail summary in tooltip"
 msgstr "Прикажи прозор са сажетком порука у облачићу"
 
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
 msgid "General"
 msgstr "Опште"
 
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "Хори_зонтални помак:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Поставке за дојаву"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
 msgid "Mail Summary Popup"
 msgstr "Сажетак порука"
 
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
 msgid "Mailboxes"
 msgstr "Сандучићи"
 
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
 msgid "Only display _recent mail"
 msgstr "Прикажи само скорашње поруке"
 
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "_Место:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Пауза пре затварања прозора са сажетком порука"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "Пауза између две узастопне провере"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "Наредба за покретање читача поште"
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "Наредба која се покреће када је сва пошта прочитана"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr "Наредба која се покреће када стиже нова пошта"
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Број тачака које треба оставити између леве, одн. десне стране екрана и "
-"прозора са сажетком порука"
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
-"сажетком порука"
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
 msgid "Use these _fonts:"
 msgstr "Користи ова _писма:"
 
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Када је с_ва пошта прочитана:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Када је _сва пошта прочитана:"
 
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
 msgid "When _new mail arrives:"
 msgstr "Када _стигне нова пошта:"
 
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr "Да ли статусна сличица трепери при грешкама или не"
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-"Да ли треба или не треба аутоматски затворити прозор са сажетком порука"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr "Да ли треба или не треба приказивати сажетак порука у облачићу"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Да ли треба или не треба приказивати сажетак порука када стигне нова пошта"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Да ли треба приказивати претходно приказане поруке или не"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr "Да ли се покреће команда када стигне пошта или не"
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Да ли треба поставити читач поште"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr "Да ли покренути дојаву поште када се пријавите на систем"
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
 msgid "_Automatically close after:"
 msgstr "_Аутоматски затвори после:"
 
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
 msgid "_Blink on errors"
 msgstr "_Трепери при грешкама"
 
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
 msgid "_Delay between mail checks:"
 msgstr "_Пауза између провера:"
 
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "Прикажи пробно прозорче"
+
+#: ../ui/properties-dialog.glade.h:21
 msgid "_Display the main window"
 msgstr "_Прикажи главни прозор"
 
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
 msgid "_Enable mail summary popup"
 msgstr "Дозволи приказ сажетка порука"
 
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "_Хоризонтални помак:"
+
+#: ../ui/properties-dialog.glade.h:24
 msgid "_Launch the mail reader"
 msgstr "П_окрени читач поште"
 
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
 msgid "_Mail reader:"
 msgstr "_Читач поште:"
 
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Место:"
+
+#: ../ui/properties-dialog.glade.h:27
 msgid "_Start Mail Notification on GNOME login"
 msgstr "Покрени _дојаву при пријави"
 
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
 msgid "_Title:"
 msgstr "_Наслов:"
 
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
 msgid "_Update the mail status"
 msgstr "_Освежи податке о пошти"
 
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
 msgid "_Use fonts from theme"
 msgstr "Користи писма из _теме"
 
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
 msgid "_Vertical offset:"
 msgstr "_Вертикални помак:"
 
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
 msgid "minutes"
 msgstr "минута"
 
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
 msgid "pixels"
 msgstr "тачака"
 
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
 msgid "seconds"
 msgstr "секунди"
 
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Сажетак порука</span>"
+#~ msgid "Has already been run"
+#~ 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 need 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> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Прво покретање</span>\n"
-"\n"
-"Програм за дојаву поште је успешно покренут.\n"
-"\n"
-"Пошто сте програм за дојаву поште први пут покренули, вероватно желите и да "
-"га подесите.\n"
-"\n"
-"Пажња: ова порука се убудуће неће приказивати. Да бисте подесили дојаву "
-"поште, изаберите ставку Програми <span weight=\"bold\">Програми</span> → "
-"<span weight=\"bold\">Поставке окружења</span> → <span weight=\"bold"
-"\">Дојава поште</span> (или на неким системима <span weight=\"bold"
-"\">Програми → Поставке → Још поставки → Дојава поште</span>)."
+#~ msgid "Mailbox list"
+#~ msgstr "Списак сандучића"
 
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "_Подеси дојаву поште"
+#~ msgid "The list of mailboxes to monitor."
+#~ msgstr "Списак сандучића који се прате."
 
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "П_рескочи подешавања"
+#~ msgid "Whether Mail Notification has already been run or not."
+#~ msgstr "Да ли је програм покретан пре или није."
+
+#~ msgid ""
+#~ "Drag an item onto the toolbars above to add it, from the toolbars in the "
+#~ "items table to remove it."
+#~ msgstr ""
+#~ "Превуците ставку на алатну траку како бисте је додали, или са алатне "
+#~ "траке у табелу, како бисте је уклонили."
+
+# The email of the translator goes here
+#~ msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#~ msgstr "Филип Милетић <filmil@gmail.com>"
+
+#~ msgid ""
+#~ "<span weight=\"bold\" size=\"larger\">Mail Notification requires a "
+#~ "password</span>\n"
+#~ "\n"
+#~ "%s"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Дојава поште захтева да упишете "
+#~ "лозинку</span>\n"
+#~ "\n"
+#~ "%s"
+
+#~ msgid "The URI of the mailbox"
+#~ msgstr "URI ознака поштанског сандучега"
+
+#~ msgid "Whether the image is blinking or not"
+#~ msgstr "Да ли слика трепери или не"
 
 #~ msgid "received non-ASCII data from server"
 #~ msgstr "сервер је послао знаке који не спадају у скуп АСКРИ"
 
+#~ msgid ""
+#~ "the server sent a SASL challenge, but there was a pending initial SASL "
+#~ "client response"
+#~ msgstr ""
+#~ "сервер је започео SASL разговор, али одговор од клијента стигао пре тога"
+
+#~ msgid ""
+#~ "the server did not send a SASL challenge, but there was no pending "
+#~ "initial SASL client response"
+#~ msgstr ""
+#~ "сервер није послао SASL разговор, али није било ни одговора од клијента."
+
+#~ msgid "Your Gmail username"
+#~ msgstr "Ваш налог на сервису Gmail"
+
+#~ msgid ""
+#~ "Your Gmail password (if left blank, you will be prompted for the password "
+#~ "when needed)"
+#~ msgstr ""
+#~ "Ваша лозинка на сервису Gmail (ако не упишете лозинку, програм ће Вас "
+#~ "замолити да је унесете када то буде потребно)"
+
+#~ msgid "libsoup has not been compiled with SSL/TLS support"
+#~ msgstr "libsoup није изграђен са подршком за SSL/TLS"
+
+#~ msgid "unable to parse URI \"%s\""
+#~ msgstr "није могуће обрадити URI \"%s\""
+
+#~ msgid "received non-UTF-8 data from server"
+#~ msgstr "сервер је послао знаке који не спадају у скуп УТФ-8"
+
+#~ msgid "unable to transfer data: %s"
+#~ msgstr "не могу да преузмем податке: %s"
+
+#~ msgid "logging in"
+#~ msgstr "пријава у току"
+
+#~ msgid "login failed"
+#~ msgstr "пријава није успела"
+
+#~ msgid "searching for unread mail"
+#~ msgstr "тражим нову пошту"
+
+#~ msgid "unable to initialize the ICU library"
+#~ msgstr "не може се покренути ICU библиотека"
+
+#~ msgid "unable to parse Gmail data"
+#~ msgstr "не могу да обрадим податке са сервиса Gmail"
+
+#~ msgid "unable to open calendar: %s"
+#~ msgstr "није могуће отворити календар: %s"
+
+#~ msgid "unable to set calendar time: %s"
+#~ msgstr "није могуће поставити време из календара: %s"
+
+#~ msgid "unable to get calendar time: %s"
+#~ msgstr "није могуће добавити време из календара: %s"
+
+#~ msgid "U_se idle mode if possible"
+#~ msgstr "К_ористи време доколице, ако је могуће"
+
+#~ msgid "The hostname or IP address of the IMAP server"
+#~ msgstr "Име или IP број IMAP сервера"
+
+#~ msgid "Your username on the IMAP server"
+#~ msgstr "Ваше име на IMAP серверу"
+
+#~ msgid ""
+#~ "Your password on the IMAP server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Ваша лозинка на IMAP серверу (ако не упишете лозинку, програм ће Вас "
+#~ "замолити да је унесете када то буде потребно)"
+
+#~ msgid "The port number of the IMAP server"
+#~ msgstr "Број порта на IMAP серверу"
+
+#~ msgid "If possible, whether to use idle mode or not"
+#~ msgstr "Да ли треба користити време доколице или не"
+
+#~ msgid "Label"
+#~ msgstr "Ознака"
+
+#~ msgid "The marked up text to show in the type combo box"
+#~ msgstr "Означени текст који се појављује у ознаци типа"
+
+#~ msgid "Size group"
+#~ msgstr "Величина групе"
+
+#~ msgid "A GtkSizeGroup for aligning control labels"
+#~ msgstr "GtkSizeGroup за уравнање контролних ознака"
+
+#~ msgid "Complete"
+#~ msgstr "Готово"
+
+#~ msgid "Whether the properties are completely filled or not"
+#~ msgstr "Да ли су поставке сасвим попуњене или не"
+
+#~ msgid "Format"
+#~ msgstr "Формат"
+
+#~ msgid "The mailbox is already in the list."
+#~ msgstr "Сандуче је већ у списку."
+
+#~ msgid "The mailbox URI"
+#~ msgstr "URI ознака за сандуче"
+
+#~ msgid "The mailbox human-readable name"
+#~ msgstr "Име сандучета"
+
+#~ msgid "Whether the mailbox has to be polled or not"
+#~ msgstr "Да ли се ово сандуче ручно проверава или не"
+
+#~ msgid "The list of new and unread MNMessage objects"
+#~ msgstr "Списак нових и непрочитаних MNMessage објеката"
+
+#~ msgid "The mailbox error, if any"
+#~ msgstr "Грешка у приступу сандучету, ако постоји"
+
+#~ msgid "unable to enable immediate notification: %s"
+#~ msgstr "Није могуће наместити непосредну дојаву нове поште: %s"
+
+#~ msgid "Whether one or more of the mailboxes has to be polled"
+#~ msgstr ""
+#~ "Показује да ли постоји бар једно сандуче које мора да се учестало "
+#~ "проверава"
+
+#~ msgid "%s is unsupported: %s"
+#~ msgstr "%s није подржан: %s"
+
+#~ msgid "Gmail timestamps"
+#~ msgstr "ГМАИЛ временски печат"
+
+#~ msgid "Report the mail status"
+#~ msgstr "Провери пошту"
+
+#~ msgid ""
+#~ "Bonobo could not locate the GNOME_MailNotification_Automation.server "
+#~ "file. Please check your Mail Notification installation."
+#~ msgstr ""
+#~ "Бонобо није успео да пронађе објекат за аутоматизацију. Проверите "
+#~ "инсталацију програма за дојаву поште. (Прим. прев: услед грешке у "
+#~ "програму Бонобо у Гному 2.6, када инсталирате програм за обавештења, "
+#~ "треба да се одјавите и поново пријавите на систем да би све почело да "
+#~ "ради)"
+
+#~ msgid "error while reading .mh_sequences: %s"
+#~ msgstr "грешка при читању датотеке .mh_sequences: %s"
+
+#~ msgid "unable to open .mh_sequences: %s"
+#~ msgstr "није могуће отворити датотеку .mh_sequences: %s"
+
+#~ msgid "detecting"
+#~ msgstr "истражујем"
+
+#~ msgid "The hostname or IP address of the POP3 server"
+#~ msgstr "Име или IP број POP3 сервера"
+
+#~ msgid "Your username on the POP3 server"
+#~ msgstr "Ваше име на  POP3 серверу"
+
+#~ msgid ""
+#~ "Your password on the POP3 server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Ваша лозинка на POP3 серверу (ако не упишете лозинку, програм ће Вас "
+#~ "замолити да је унесете када то буде потребно)"
+
+#~ msgid "The port number of the POP3 server"
+#~ msgstr "Број порта на POP3 серверу"
+
+#~ msgid "Unsupported Mailboxes"
+#~ msgstr "Неподржани сандучићи"
+
+#~ msgid "unable to parse proxy URI \"%s\""
+#~ msgstr "није могуће обрадити заступнички URI ?%s?"
+
+#~ msgid "The reason why the mailbox is unsupported"
+#~ msgstr "Разлог зашто сандуче није подржано"
+
+#~ msgid "unsupported"
+#~ msgstr "није подржано"
+
+#~ msgid "received an invalid URI list"
+#~ msgstr "примљен је неисправан списак URI ознака"
+
+#~ msgid "received an invalid Mozilla URL"
+#~ msgstr "примљен је неисправан Мозилин URL"
+
+#~ msgid "_Authenticate"
+#~ msgstr "Пријави се"
+
+#~ msgid "The amount of time to wait before closing the mail summary popup"
+#~ msgstr "Пауза пре затварања прозора са сажетком порука"
+
+#~ msgid "The amount of time to wait between mail checks"
+#~ msgstr "Пауза између две узастопне провере"
+
+#~ msgid "The command to run to launch the mail reader"
+#~ msgstr "Наредба за покретање читача поште"
+
+#~ msgid "The command to run when all mail is read"
+#~ msgstr "Наредба која се покреће када је сва пошта прочитана"
+
+#~ msgid "The command to run when new mail arrives"
+#~ msgstr "Наредба која се покреће када стиже нова пошта"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the left or right side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Број тачака које треба оставити између леве, одн. десне стране екрана и "
+#~ "прозора са сажетком порука"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the top or bottom side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Број тачака које треба оставити између врха, одн. дна екрана и прозора са "
+#~ "сажетком порука"
+
+#~ msgid "Whether the status icon should blink on errors or not"
+#~ msgstr "Да ли статусна сличица трепери при грешкама или не"
+
+#~ msgid "Whether to automatically close the mail summary popup or not"
+#~ msgstr ""
+#~ "Да ли треба или не треба аутоматски затворити прозор са сажетком порука"
+
+#~ msgid ""
+#~ "Whether to display the mail summary in the status icon tooltip or not"
+#~ msgstr "Да ли треба или не треба приказивати сажетак порука у облачићу"
+
+#~ msgid ""
+#~ "Whether to display the mail summary popup when new mail arrives or not"
+#~ msgstr ""
+#~ "Да ли треба или не треба приказивати сажетак порука када стигне нова пошта"
+
+#~ msgid "Whether to hide previously displayed mail or not"
+#~ msgstr "Да ли треба приказивати претходно приказане поруке или не"
+
+#~ msgid "Whether to run a command when all mail is read or not"
+#~ msgstr "Да ли се покреће или не покреће команда када је сва пошта прочитана"
+
+#~ msgid "Whether to run a command when new mail arrives or not"
+#~ msgstr "Да ли се покреће команда када стигне пошта или не"
+
+#~ msgid "Whether to set a mail reader or not"
+#~ msgstr "Да ли треба поставити читач поште"
+
+#~ msgid ""
+#~ "Whether to start Mail Notification when you log into your GNOME session "
+#~ "or not"
+#~ msgstr "Да ли покренути дојаву поште када се пријавите на систем"
+
+#~ 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 need 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> (or on some systems <span weight=\"bold"
+#~ "\">Applications → Preferences → More Preferences → Mail Notification</"
+#~ "span>)."
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Прво покретање</span>\n"
+#~ "\n"
+#~ "Програм за дојаву поште је успешно покренут.\n"
+#~ "\n"
+#~ "Пошто сте програм за дојаву поште први пут покренули, вероватно желите и "
+#~ "да га подесите.\n"
+#~ "\n"
+#~ "Пажња: ова порука се убудуће неће приказивати. Да бисте подесили дојаву "
+#~ "поште, изаберите ставку Програми <span weight=\"bold\">Програми</span> → "
+#~ "<span weight=\"bold\">Поставке окружења</span> → <span weight=\"bold"
+#~ "\">Дојава поште</span> (или на неким системима <span weight=\"bold"
+#~ "\">Програми → Поставке → Још поставки → Дојава поште</span>)."
+
+#~ msgid "_Configure Mail Notification"
+#~ msgstr "_Подеси дојаву поште"
+
+#~ msgid "_Skip configuration"
+#~ msgstr "П_рескочи подешавања"
+
 #~ msgid "Use a custom font for the contents of the mail summary popup"
 #~ msgstr "Користи посебно писмо за садржај прозора са сажетком порука"
 
@@ -2041,12 +2299,6 @@ msgstr "П_рескочи подешавања"
 #~ "Да ли треба или не треба користити посебно писмо за наслов прозора са "
 #~ "сажетком порука"
 
-#~ msgid "The following mailbox has new mail:\n"
-#~ msgid_plural "The following mailboxes have new mail:\n"
-#~ msgstr[0] "Сандуче са новом поштом:\n"
-#~ msgstr[1] "Сандучићи са новом поштом:\n"
-#~ msgstr[2] "Сандучићи са новом поштом:\n"
-
 #~ msgid "The following mailbox reported an error:\n"
 #~ msgid_plural "The following mailboxes reported an error:\n"
 #~ msgstr[0] "Ово сандуче има грешку:\n"
@@ -2087,9 +2339,6 @@ msgstr "П_рескочи подешавања"
 #~ msgid "Your password on the POP3 server"
 #~ msgstr "Ваша лозинка на POP3 серверу"
 
-#~ msgid "A command error has occurred"
-#~ msgstr "Дошло је до грешке у командама"
-
 #~ msgid "Unable to execute double-clicked command: %s."
 #~ msgstr "Није могуће извршити команду на двоструки клик: %s."
 
diff --git a/po/sr@Latn.gmo b/po/sr@Latn.gmo
Binary files differ.
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
@@ -11,244 +11,248 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: mail-notification 1.1\n"
+"Project-Id-Version: mail-notification 2.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-02 02:32+0100\n"
-"PO-Revision-Date: 2005-03-01 02:18+0100\n"
+"POT-Creation-Date: 2005-07-31 04:17+0200\n"
+"PO-Revision-Date: 2005-07-31 11:13+0100\n"
 "Last-Translator: Filip Miletić <filmil@gmail.com>\n"
 "Language-Team: Serbian (sr) <gnu@prevod.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3;    plural=n%10==1 && n%100!=11 ? 0 :    n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Plural-Forms: nplurals=3;    plural=n%10==1 && n%100!=11 ? 0 :    n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:1
+#: ../data/GNOME_MailNotification.server.in.in.h:1
 msgid "Mail Notification automation"
 msgstr "Dojava prispeća pošte"
 
-#: data/GNOME_MailNotification_Automation.server.in.in.h:2
+#: ../data/GNOME_MailNotification.server.in.in.h:2
 msgid "Mail Notification automation factory"
-msgstr "Fabrika ѕa dojavu prispeća pošte"
+msgstr "Fabrika za dojavu prispeća pošte"
 
-#: data/mail-notification-properties.desktop.in.h:1 src/mn-main-window.c:145
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:1
+msgid "Evolution folder tree control"
+msgstr "Upravljanje Evolucijinim drvetom direktorijuma"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:2
+msgid "Evolution folder tree control factory"
+msgstr "Fabrika za upravljač Evolucijinim drvetom direktorijuma"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:3
+msgid "Mail Notification / Evolution glue"
+msgstr "Sučelje za Dojavu pošte i Evoluciju"
+
+#: ../data/GNOME_MailNotification_Evolution.server.in.h:4
+msgid "Mail Notification / Evolution glue factory"
+msgstr "Fabrika za Dojavu pošte i Evoluciju"
+
+#: ../data/mail-notification-properties.desktop.in.h:1
+#: ../src/mn-main-window.gob:209
 msgid "Configure Mail Notification"
 msgstr "Podesi dojavu prispeća pošte"
 
-#: data/mail-notification-properties.desktop.in.h:2
-#: data/mail-notification.desktop.in.h:2
-#: data/mail-notification.soundlist.in.h:1 src/mn-about-dialog.gob:39
-#: src/mn-mail-icon.gob:224 src/mn-main.c:292 ui/main.glade.h:1
+#: ../data/mail-notification-properties.desktop.in.h:2
+#: ../data/mail-notification.desktop.in.h:2
+#: ../data/mail-notification.soundlist.in.h:1 ../src/mn-mail-icon.gob:223
+#: ../src/mn-main.c:285 ../src/mn-main.c:301
 msgid "Mail Notification"
 msgstr "Dojava pošte"
 
-#: data/mail-notification.desktop.in.h:1
+#: ../data/mail-notification.desktop.in.h:1
 msgid "Get notified when new mail arrives"
 msgstr "Obavesti kada stigne nova pošta"
 
-#: data/mail-notification.schemas.in.h:1
+#: ../data/mail-notification.schemas.in.h:1
 msgid "Automatically close the mail summary popup"
 msgstr "Automatski zatvori prozor sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:2
+#: ../data/mail-notification.schemas.in.h:2
 msgid "Blink on errors"
 msgstr "Treperi ako dođe do greške"
 
-#: data/mail-notification.schemas.in.h:3
+#: ../data/mail-notification.schemas.in.h:3
 msgid "Delay between mail checks (minutes part)."
 msgstr "Razmak između dve provere (minuti)"
 
-#: data/mail-notification.schemas.in.h:4
+#: ../data/mail-notification.schemas.in.h:4
 msgid "Delay between mail checks (seconds part)."
 msgstr "Razmak između dve provere (sekunde)."
 
-#: data/mail-notification.schemas.in.h:5
+#: ../data/mail-notification.schemas.in.h:5
 msgid "Display mail summary in tooltip"
 msgstr "Prikaži sažetat poruka u oblačiću"
 
-#: data/mail-notification.schemas.in.h:6
+#: ../data/mail-notification.schemas.in.h:6
 msgid "Do not show the immediate notification error dialog"
 msgstr "Ne pokazuj prozor sa obaveštenjem o greškama"
 
-#: data/mail-notification.schemas.in.h:7
+#: ../data/mail-notification.schemas.in.h:7
 msgid "Double-click action"
 msgstr "Izvrši na dvostruki klik"
 
-#: data/mail-notification.schemas.in.h:8
+#: ../data/mail-notification.schemas.in.h:8
 msgid "Enable mail summary popup"
 msgstr "Dozvoli prikaz sažetka poruka"
 
-#: data/mail-notification.schemas.in.h:9
+#: ../data/mail-notification.schemas.in.h:9
 msgid "Fingerprints of trusted X509 certificates"
 msgstr "Otisci proverenih X509 sertifikata"
 
-#: data/mail-notification.schemas.in.h:10
-msgid "Has already been run"
-msgstr "Već je pokrenut"
-
-#: data/mail-notification.schemas.in.h:11
+#: ../data/mail-notification.schemas.in.h:10
 msgid "Height of edit toolbars dialog"
 msgstr "Visina prozora za uređivanje alatnih traka"
 
-#: data/mail-notification.schemas.in.h:12
+#: ../data/mail-notification.schemas.in.h:11
 msgid "Height of main window"
 msgstr "Visina glavnog prozora"
 
-#: data/mail-notification.schemas.in.h:13
+#: ../data/mail-notification.schemas.in.h:12
 msgid "Height of properties dialog"
 msgstr "Visina prozora sa postavkama"
 
-#: data/mail-notification.schemas.in.h:14
+#: ../data/mail-notification.schemas.in.h:13
 msgid "Mail read command"
 msgstr "Komanda za čitanje pošte"
 
-#: data/mail-notification.schemas.in.h:15
+#: ../data/mail-notification.schemas.in.h:14
 msgid "Mail reader command"
 msgstr "Komanda za čitanje pošte"
 
-#: data/mail-notification.schemas.in.h:16
+#: ../data/mail-notification.schemas.in.h:15
 msgid "Mail summary popup contents font"
 msgstr "Pismo koje se koristi za sadržaj prozora sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:17
+#: ../data/mail-notification.schemas.in.h:16
 msgid "Mail summary popup fonts aspect source"
 msgstr "Izvor za aspekt za pismo u prozoru za sažetak (???)"
 
-#: data/mail-notification.schemas.in.h:18
+#: ../data/mail-notification.schemas.in.h:17
 msgid "Mail summary popup horizontal offset"
 msgstr "Pomeraj horizontalnih tačaka za prozor sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:19
+#: ../data/mail-notification.schemas.in.h:18
 msgid "Mail summary popup position"
 msgstr "Broj horizontalnih tačaka za prozor sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:20
+#: ../data/mail-notification.schemas.in.h:19
 msgid "Mail summary popup title font"
 msgstr "Pismo koje se koristi za naslov prozora sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:21
+#: ../data/mail-notification.schemas.in.h:20
 msgid "Mail summary popup vertical offset"
 msgstr "Pomeraj vertikalnih tačaka ѕa prozor sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:22
-msgid "Mailbox list"
-msgstr "Spisak sandučića"
-
-#: data/mail-notification.schemas.in.h:23
+#: ../data/mail-notification.schemas.in.h:21
 msgid "Minutes between mail checks"
 msgstr "Minuta između dve provere"
 
-#: data/mail-notification.schemas.in.h:24
+#: ../data/mail-notification.schemas.in.h:22
 msgid "Minutes to wait before closing the mail summary popup"
 msgstr ""
 "Broj minuta koji treba da protekne pre zatvaranja prozora sa sažetkom poruka"
 
-#: data/mail-notification.schemas.in.h:25
+#: ../data/mail-notification.schemas.in.h:23
 msgid "New mail command"
 msgstr "Izvrši kada pošta stigne"
 
-#: data/mail-notification.schemas.in.h:26
+#: ../data/mail-notification.schemas.in.h:24
 msgid "Only display recent mail in mail summary popup"
 msgstr "Prikaži samo skoro prispele poruke u sažetku"
 
-#: data/mail-notification.schemas.in.h:27
+#: ../data/mail-notification.schemas.in.h:25
 msgid "Run a command when all mail is read"
 msgstr "Pokreni komandu kada je sva pošta pročitana"
 
-#: data/mail-notification.schemas.in.h:28
+#: ../data/mail-notification.schemas.in.h:26
 msgid "Run a command when new mail arrives"
 msgstr "Pokreni komandu kada stigne nova pošta"
 
-#: data/mail-notification.schemas.in.h:29
+#: ../data/mail-notification.schemas.in.h:27
 msgid "Seconds between mail checks"
 msgstr "Sekundi između dve provere"
 
-#: data/mail-notification.schemas.in.h:30
+#: ../data/mail-notification.schemas.in.h:28
 msgid "Seconds to wait before closing the mail summary popup"
 msgstr "Broj sekundi koji treba da protekne pre zatvaranja sažetka poruka"
 
-#: data/mail-notification.schemas.in.h:31
+#: ../data/mail-notification.schemas.in.h:29
 msgid "Set a mail reader"
 msgstr "Izaberite čitač pošte"
 
-#: data/mail-notification.schemas.in.h:32
+#: ../data/mail-notification.schemas.in.h:30
 msgid ""
 "The action to perform when the icon is double-clicked. Must be \"display-"
 "main-window\", \"launch-mail-reader\" or \"update-mail-status\"."
 msgstr ""
-"Postavljanje naredbe koja se izvršava pri dvostrukom kliku na sličicu. "
-"Mogući izbori su: ?glavni-prozor?, ?pokreni-čitač-pošte? ili ?ažuriraj-"
-"status-pošte?."
+"Postavljanje naredbe koja se izvršava pri dvostrukom kliku na sličicu. Mogući "
+"izbori su: ?glavni-prozor?, ?pokreni-čitač-pošte? ili ?ažuriraj-status-"
+"pošte?."
 
-#: data/mail-notification.schemas.in.h:33
+#: ../data/mail-notification.schemas.in.h:31
 msgid ""
 "The amount of time to wait before closing the mail summary popup (minutes "
 "part)."
 msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (minuti)."
 
-#: data/mail-notification.schemas.in.h:34
+#: ../data/mail-notification.schemas.in.h:32
 msgid ""
 "The amount of time to wait before closing the mail summary popup (seconds "
 "part)."
 msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka (sekunde)."
 
-#: data/mail-notification.schemas.in.h:35
+#: ../data/mail-notification.schemas.in.h:33
 msgid ""
 "The aspect source of the mail summary popup fonts. Must be \"theme\" or "
 "\"custom\"."
 msgstr "Izvor za podešavanja pisma. Može biti: ?tema? ili ?poseban?."
 
-#: data/mail-notification.schemas.in.h:36
+#: ../data/mail-notification.schemas.in.h:34
 msgid "The command to run to launch the mail reader."
 msgstr "Komanda kojom se pokreće čitač pošte"
 
-#: data/mail-notification.schemas.in.h:37
+#: ../data/mail-notification.schemas.in.h:35
 msgid "The command to run when all mail is read."
 msgstr "Komanda koju treba pokrenuti kada je sva pošta pročitana."
 
-#: data/mail-notification.schemas.in.h:38
+#: ../data/mail-notification.schemas.in.h:36
 msgid "The command to run when new mail arrives."
 msgstr "Pokreni ovu komandu kada stigne nova pošta."
 
-#: data/mail-notification.schemas.in.h:39
+#: ../data/mail-notification.schemas.in.h:37
 msgid "The custom font to use for the contents of the mail summary popup."
 msgstr ""
 "Posebno pismo koje se koristi za ispis sadržaja prozora sa sažetkom poruka."
 
-#: data/mail-notification.schemas.in.h:40
+#: ../data/mail-notification.schemas.in.h:38
 msgid "The custom font to use for the title of the mail summary popup."
 msgstr ""
 "Posebno pismo koje se koristi za ispis naslova prozora sa sažetkom poruka."
 
-#: data/mail-notification.schemas.in.h:41
+#: ../data/mail-notification.schemas.in.h:39
 msgid "The height of the edit toolbars dialog in pixels."
 msgstr "Visina prozora za uređivanje statusnih traka, izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:42
+#: ../data/mail-notification.schemas.in.h:40
 msgid "The height of the main window in pixels."
 msgstr "Visina glavnog prozora izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:43
+#: ../data/mail-notification.schemas.in.h:41
 msgid "The height of the properties dialog in pixels."
 msgstr "Visina prozora sa postavkama izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:44
-msgid "The list of mailboxes to monitor."
-msgstr "Spisak sandučića koji se prate."
-
-#: data/mail-notification.schemas.in.h:45
+#: ../data/mail-notification.schemas.in.h:42
 msgid ""
 "The list of trusted SSL/TLS servers (hostname:port) lacking a X509 "
 "certificate."
 msgstr ""
 "Spisak proverenih SSL/TLS servera (računar:port) koji nemaju X509 sertifikat."
 
-#: data/mail-notification.schemas.in.h:46
+#: ../data/mail-notification.schemas.in.h:43
 msgid ""
 "The list of trusted X509 certificates, represented by their MD5 fingerprint."
 msgstr "Spisak proverenih X509 sertifikata, predstavljenih MD5 otiskom."
 
-#: data/mail-notification.schemas.in.h:47
+#: ../data/mail-notification.schemas.in.h:44
 msgid ""
 "The number of pixels to leave between the left or right side of the screen "
 "and the mail summary popup."
@@ -256,7 +260,7 @@ msgstr ""
 "Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
 "prozora sa sažetkom poruka."
 
-#: data/mail-notification.schemas.in.h:48
+#: ../data/mail-notification.schemas.in.h:45
 msgid ""
 "The number of pixels to leave between the top or bottom side of the screen "
 "and the mail summary popup."
@@ -264,7 +268,7 @@ msgstr ""
 "Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
 "sažetkom poruka."
 
-#: data/mail-notification.schemas.in.h:49
+#: ../data/mail-notification.schemas.in.h:46
 msgid ""
 "The position of the mail summary popup. Must be \"top-left\", \"top-right\", "
 "\"bottom-left\" or \"bottom-right\"."
@@ -272,7 +276,7 @@ msgstr ""
 "Položaj prozora sa sažetkom poruka. Može biti: ?gore-levo?, ?gore-desno?, ?"
 "dole-levo? ili ?dole-desno?."
 
-#: data/mail-notification.schemas.in.h:50
+#: ../data/mail-notification.schemas.in.h:47
 msgid ""
 "The style of the toolbars. Must be \"desktop-default\", \"icons\", \"text\", "
 "\"both\" or \"both-horiz\"."
@@ -280,273 +284,264 @@ msgstr ""
 "Stil alatnih traka. Može biti: ?podrazumevan?, ?slike?, ?tekst?, ?oba?, ?oba-"
 "vodoravno?."
 
-#: data/mail-notification.schemas.in.h:51
+#: ../data/mail-notification.schemas.in.h:48
 msgid "The width of the edit toolbars dialog in pixels."
 msgstr "Širina prozora za uređivanje statusnih traka, izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:52
+#: ../data/mail-notification.schemas.in.h:49
 msgid "The width of the main window in pixels."
 msgstr "Širina prozora glavnog prozora izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:53
+#: ../data/mail-notification.schemas.in.h:50
 msgid "The width of the properties dialog in pixels."
 msgstr "Širina prozora sa postavkama izražena u tačkama."
 
-#: data/mail-notification.schemas.in.h:54
+#: ../data/mail-notification.schemas.in.h:51
 msgid "Toolbars style"
 msgstr "Stil alatne trake"
 
-#: data/mail-notification.schemas.in.h:55
+#: ../data/mail-notification.schemas.in.h:52
 msgid "Trusted servers list"
 msgstr "Spisak proverenih servera"
 
-#: data/mail-notification.schemas.in.h:56
+#: ../data/mail-notification.schemas.in.h:53
 msgid "View statusbar"
 msgstr "Prikaži statusnu traku"
 
-#: data/mail-notification.schemas.in.h:57
+#: ../data/mail-notification.schemas.in.h:54
 msgid "View toolbars"
 msgstr "Prikaži alatnu traku"
 
-#: data/mail-notification.schemas.in.h:58
-msgid "Whether Mail Notification has already been run or not."
-msgstr "Da li je program pokretan pre ili nije."
-
-#: data/mail-notification.schemas.in.h:59
+#: ../data/mail-notification.schemas.in.h:55
 msgid "Whether the status icon should blink on errors or not."
 msgstr "Da li sličica treba da treperi ako dođe do greške ili ne."
 
-#: data/mail-notification.schemas.in.h:60
+#: ../data/mail-notification.schemas.in.h:56
 msgid "Whether the statusbar should be visible or not."
 msgstr "Da li statusna linija treba da se vidi ili ne."
 
-#: data/mail-notification.schemas.in.h:61
+#: ../data/mail-notification.schemas.in.h:57
 msgid "Whether the toolbars should be visible or not."
 msgstr "Da li alatne trake treba da se vide ili ne"
 
-#: data/mail-notification.schemas.in.h:62
+#: ../data/mail-notification.schemas.in.h:58
 msgid "Whether to automatically close the mail summary popup or not."
 msgstr ""
 "Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom pošte."
 
-#: data/mail-notification.schemas.in.h:63
+#: ../data/mail-notification.schemas.in.h:59
 msgid "Whether to display the mail summary in the status icon tooltip or not."
 msgstr ""
 "Da li treba prikazati sažetak poruka u oblačiću statusne sličice ili ne."
 
-#: data/mail-notification.schemas.in.h:64
+#: ../data/mail-notification.schemas.in.h:60
 msgid "Whether to display the mail summary popup when new mail arrives or not."
 msgstr "Da li treba prikazati sažetak poruka kada stigne nova pošta."
 
-#: data/mail-notification.schemas.in.h:65
+#: ../data/mail-notification.schemas.in.h:61
 msgid ""
 "Whether to hide previously displayed mail in the mail summary popup or not."
 msgstr ""
 "Da li iz sažetka treba ukloniti poruke koje su se u njemu već pre pojavile."
 
-#: data/mail-notification.schemas.in.h:66
+#: ../data/mail-notification.schemas.in.h:62
 msgid ""
 "Whether to prevent the immediate notification error dialog from being "
 "displayed or not."
 msgstr "Da li treba ili ne treba sprečiti pojavu prozora sa opisom grešaka."
 
-#: data/mail-notification.schemas.in.h:67
+#: ../data/mail-notification.schemas.in.h:63
 msgid "Whether to run a command when all mail is read or not."
 msgstr ""
 "Da li treba ili ne treba pokrenuti neku komandu kada je sva pošta pročitana."
 
-#: data/mail-notification.schemas.in.h:68
+#: ../data/mail-notification.schemas.in.h:64
 msgid "Whether to run a command when new mail arrives or not."
 msgstr "Da li treba pokrenuti neku komandu kada stigne nova pošta."
 
-#: data/mail-notification.schemas.in.h:69
+#: ../data/mail-notification.schemas.in.h:65
 msgid "Whether to set a mail reader or not."
 msgstr "Da li treba postaviti čitač pošte ili ne."
 
-#: data/mail-notification.schemas.in.h:70
+#: ../data/mail-notification.schemas.in.h:66
 msgid "Width of edit toolbars dialog"
 msgstr "Širina prozora za uređivanje statusnih traka"
 
-#: data/mail-notification.schemas.in.h:71
+#: ../data/mail-notification.schemas.in.h:67
 msgid "Width of main window"
 msgstr "Širina glavnog prozora"
 
-#: data/mail-notification.schemas.in.h:72
+#: ../data/mail-notification.schemas.in.h:68
 msgid "Width of properties dialog"
 msgstr "Širina prozora sa postavkama"
 
-#: data/mail-notification.soundlist.in.h:2
+#: ../data/mail-notification.soundlist.in.h:2
 msgid "New Mail"
 msgstr "Nova pošta"
 
-#: src/egg-editable-toolbar.c:536
+#: ../src/egg-editable-toolbar.c:534
 msgid "_Remove Toolbar"
 msgstr "_Ukloni alatnu traku"
 
-#: src/egg-toolbar-editor.c:558
+#: ../src/egg-toolbar-editor.c:555
 msgid "Separator"
 msgstr "Graničnik"
 
-#: src/egg-toolbar-editor.c:588
-msgid ""
-"Drag an item onto the toolbars above to add it, from the toolbars in the "
-"items table to remove it."
-msgstr ""
-"Prevucite stavku na alatnu traku kako biste je dodali, ili sa alatne trake u "
-"tabelu, kako biste je uklonili."
-
-#: src/eggtrayicon.c:109
+#: ../src/eggtrayicon.c:128
 msgid "Orientation"
 msgstr "Orijentacija"
 
-#: src/eggtrayicon.c:110
+#: ../src/eggtrayicon.c:129
 msgid "The orientation of the tray."
 msgstr "Orijentacija obaveštajne zone."
 
-#: src/mn-about-dialog.gob:42
+#: ../src/mn-about-dialog.gob:48
 msgid "A Mail Notification Icon"
 msgstr "Sličica za dojavu prispeća pošte"
 
-# The email of the translator goes here
-#. translator: replace with your name and email
-#: src/mn-about-dialog.gob:46
-msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#.
+#. * translators: Your Name <your-email>
+#. * optionally followed by one or more: \nOther Contributor's Name <his-email>
+#.
+#: ../src/mn-about-dialog.gob:56
+msgid "translator-credits"
 msgstr "Filip Miletić <filmil@gmail.com>"
 
-#: src/mn-auth-combo-box.gob:102 src/mn-autodetect-mailbox-properties.gob:39
+#: ../src/mn-about-dialog.gob:78
+msgid "Unable to open link"
+msgstr "nije moguće otvoriti vezu"
+
+#: ../src/mn-auth-combo-box.gob:103
+#: ../src/mn-autodetect-mailbox-properties.gob:92
 msgid "<span style=\"italic\">autodetect</span>"
 msgstr "<span style=\"italic\">sam pronađi</span>"
 
-#: src/mn-authenticated-mailbox.gob:85
+#: ../src/mn-authenticated-mailbox-properties.gob:46
+msgid "_Username:"
+msgstr "_Kor.ime:"
+
+#: ../src/mn-authenticated-mailbox-properties.gob:50
+msgid "_Password:"
+msgstr "_Lozinka:"
+
+#: ../src/mn-authenticated-mailbox.gob:152
 #, c-format
 msgid ""
 "Mail Notification was unable to log into %s mailbox %s, possibly because the "
-"password you have entered is invalid.\n"
+"credentials you have entered are invalid.\n"
 "\n"
-"Please re-enter your password."
+"Please re-enter your credentials."
 msgstr ""
 "Nije moguće prijaviti se za čitanje %s sandučeta %s, najverovatnije zato što "
 "uneta lozinka nije ispravna.\n"
 "\n"
 "Molim unesite ponovo lozinku."
 
-#: src/mn-authenticated-mailbox.gob:86
+#: ../src/mn-authenticated-mailbox.gob:153
 #, c-format
-msgid "Enter your password for %s mailbox %s."
+msgid "Enter your credentials for %s mailbox %s."
 msgstr "Unesite lozinku za %s sanduče %s."
 
-#: src/mn-authenticated-mailbox.gob:137
-#, c-format
-msgid ""
-"<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</"
-"span>\n"
-"\n"
-"%s"
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Dojava pošte zahteva da upišete "
-"lozinku</span>\n"
-"\n"
-"%s"
+#. keep the title in sync with gnome-authentication-manager
+#: ../src/mn-authenticated-mailbox.gob:195
+msgid "Authentication Required"
+msgstr "Potrebna je prijava"
+
+#: ../src/mn-autodetect-mailbox-properties.gob:93
+msgid "Location"
+msgstr "Mesto"
 
-#: src/mn-autodetect-mailbox-properties.gob:70
+#: ../src/mn-autodetect-mailbox-properties.gob:103
 msgid "_Location:"
 msgstr "_Mesto:"
 
-#: src/mn-autodetect-mailbox-properties.gob:76
+#: ../src/mn-autodetect-mailbox-properties.gob:110
 msgid "_Browse..."
 msgstr "_Pregledaj..."
 
-#: src/mn-autodetect-mailbox-properties.gob:81
-msgid "The URI of the mailbox"
-msgstr "URI oznaka poštanskog sandučega"
-
-#: src/mn-autodetect-mailbox-properties.gob:123
+#: ../src/mn-autodetect-mailbox-properties.gob:149
 msgid "Select a File or Folder"
 msgstr "Izaberite datoteku ili direktorijum"
 
-#: src/mn-blinking-image.gob:32
-msgid "Whether the image is blinking or not"
-msgstr "Da li slika treperi ili ne"
-
-#: src/mn-client-session.c:220
+#: ../src/mn-client-session.c:248
 #, c-format
 msgid "resolving %s"
 msgstr "pronalazim %s"
 
-#: src/mn-client-session.c:230
+#: ../src/mn-client-session.c:264
 #, c-format
 msgid "unable to resolve %s: %s"
 msgstr "Nije moguće pronaći %s: %s"
 
-#: src/mn-client-session.c:267
+#: ../src/mn-client-session.c:308
 #, c-format
 msgid "%s: unsupported address family"
 msgstr "%s: ova vrsta adrese nije podržana"
 
-#: src/mn-client-session.c:274
+#: ../src/mn-client-session.c:315
 #, c-format
 msgid "%s: unable to create socket: %s"
 msgstr "%s: nije moguće napraviti utičnicu: %s"
 
-#: src/mn-client-session.c:278
+#: ../src/mn-client-session.c:319
 #, c-format
 msgid "connecting to %s (%s) port %i"
 msgstr "povezujem se sa %s (%s) port %i"
 
-#: src/mn-client-session.c:281
+#: ../src/mn-client-session.c:322
 #, c-format
 msgid "unable to connect: %s"
 msgstr "nije moguće povezati se sa: %s"
 
-#: src/mn-client-session.c:286
+#: ../src/mn-client-session.c:327
 msgid "connected successfully"
 msgstr "povezivanje je uspelo"
 
 #. if reached, we couldn't find a working address
-#: src/mn-client-session.c:292
+#: ../src/mn-client-session.c:333
 #, c-format
 msgid "unable to connect to %s"
 msgstr "nije moguće povezati se sa %s"
 
-#: src/mn-client-session.c:308
+#: ../src/mn-client-session.c:360
 #, c-format
 msgid "unable to initialize the OpenSSL library: %s"
 msgstr "nije moguće pokrenuti OpenSSL biblioteku: %s"
 
-#: src/mn-client-session.c:316
+#: ../src/mn-client-session.c:368
 #, c-format
 msgid "unable to create a SSL/TLS object: %s"
 msgstr "nije moguće napraviti SSL/TLS objekat: %s"
 
-#: src/mn-client-session.c:322
+#: ../src/mn-client-session.c:374
 #, c-format
 msgid "unable to set the SSL/TLS file descriptor: %s"
 msgstr "nije moguće postaviti SSL/TLS opis za datoteku: %s"
 
-#: src/mn-client-session.c:328
+#: ../src/mn-client-session.c:380
 #, c-format
 msgid "unable to perform the SSL/TLS handshake: %s"
 msgstr "nije moguće obaviti SSL/TLS kontakt: %s"
 
-#: src/mn-client-session.c:334
+#: ../src/mn-client-session.c:386
 msgid "untrusted server"
 msgstr "neproveren server"
 
-#: src/mn-client-session.c:338
+#: ../src/mn-client-session.c:390
 #, c-format
 msgid "a SSL/TLS layer is now active (%s, %s %i-bit)"
 msgstr "SSL/TLS sloj je pokrenut (%s, %s %i-bit)"
 
-#: src/mn-client-session.c:385
+#: ../src/mn-client-session.c:437
 #, c-format
 msgid "%s, fingerprint: %s"
 msgstr "%s, otisak: %s"
 
-#: src/mn-client-session.c:414
+#: ../src/mn-client-session.c:466
 msgid "missing certificate"
 msgstr "nedostaje sertifikat"
 
-#: src/mn-client-session.c:440
+#: ../src/mn-client-session.c:492
 #, c-format
 msgid ""
 "Mail Notification was unable to trust \"%s\" (%s). It is possible that "
@@ -565,333 +560,313 @@ msgstr ""
 "sa \"%s\". Ako odlučite da se povežete na server, ova poruka neće ponovo "
 "biti prikazana."
 
-#: src/mn-client-session.c:457
+#: ../src/mn-client-session.c:507
 msgid "Connect to untrusted server?"
 msgstr "Da li da se povežem na neprovereni server?"
 
-#: src/mn-client-session.c:462
-msgid "Co_nnect"
-msgstr "_Poveži se"
-
-#: src/mn-client-session.c:518
+#: ../src/mn-client-session.c:571
 #, c-format
 msgid "response \"%s\" is not valid in current context"
 msgstr "odgovor \"%s\" nije ispravan u trenutno važećem kontekstu"
 
-#: src/mn-client-session.c:544
+#: ../src/mn-client-session.c:599
 #, c-format
 msgid "unable to parse response \"%s\""
 msgstr "nije moguće obraditi odgovor \"%s\""
 
-#: src/mn-client-session.c:592 src/mn-client-session.c:599
+#: ../src/mn-client-session.c:649 ../src/mn-client-session.c:656
 #, c-format
 msgid "unable to read from server: %s"
 msgstr "Nije moguće čitanje sa servera: %s"
 
-#: src/mn-client-session.c:597
+#: ../src/mn-client-session.c:654
 msgid "unable to read from server: EOF"
 msgstr "Nije moguće čitanje sa servera: EOF"
 
-#: src/mn-client-session.c:609
+#: ../src/mn-client-session.c:666
 #, c-format
 msgid "unable to decode data using SASL: %s"
 msgstr "Ne mogu se dekodovati podaci putem SASL: %s"
 
-#: src/mn-client-session.c:743
+#: ../src/mn-client-session.c:811
 #, c-format
 msgid "unable to encode data using SASL: %s"
 msgstr "nije moguće kodirati podatke uz pomoć SASL: %s"
 
-#: src/mn-client-session.c:774 src/mn-client-session.c:781
+#: ../src/mn-client-session.c:842 ../src/mn-client-session.c:849
 #, c-format
 msgid "unable to write to server: %s"
 msgstr "nije moguć upis na server: %s"
 
-#: src/mn-client-session.c:779
+#: ../src/mn-client-session.c:847
 msgid "unable to write to server: EOF"
 msgstr "nije moguć upis na server: EOF"
 
-#: src/mn-client-session.c:811
+#: ../src/mn-client-session.c:878 ../src/mn-pop3-mailbox.gob:468
 #, c-format
 msgid "unable to encode Base64: %s"
 msgstr "nije moguće kodirati Base64: %s"
 
-#: src/mn-client-session.c:922
+#: ../src/mn-client-session.c:1056
 #, c-format
 msgid "unable to initialize the SASL library: %s"
 msgstr "ne može se pokrenuti SASL biblioteka: %s"
 
-#: src/mn-client-session.c:931
+#: ../src/mn-client-session.c:1068
 #, c-format
 msgid "unable to retrieve local address of socket: %s"
 msgstr "ne može da se dobavi lokalna adresa utičnice: %s"
 
-#: src/mn-client-session.c:937
+#: ../src/mn-client-session.c:1074
 #, c-format
 msgid "unable to retrieve remote address of socket: %s"
 msgstr "ne može da se dobavi udaljena adresa utičnice: %s"
 
-#: src/mn-client-session.c:971
+#: ../src/mn-client-session.c:1108
 #, c-format
 msgid "unable to set SASL security properties: %s"
 msgstr "nije moguće postaviti SASL sigurnosne postavke: %s"
 
-#: src/mn-client-session.c:995
+#: ../src/mn-client-session.c:1132
 msgid ""
 "unable to start SASL authentication: SASL asked for something we did not know"
 msgstr "ne može se pokrenuti SASL prijava: SASL traži podatke koje nemamo"
 
-#: src/mn-client-session.c:1014
+#: ../src/mn-client-session.c:1151
 #, c-format
 msgid "unable to start SASL authentication: %s"
 msgstr "ne može se pokrenuti SASL prijava: %s"
 
-#: src/mn-client-session.c:1018
+#: ../src/mn-client-session.c:1155
 #, c-format
 msgid "unable to create a SASL connection: %s"
 msgstr "nije moguće uspostaviti SASL vezu: %s"
 
-#: src/mn-client-session.c:1055
+#: ../src/mn-client-session.c:1202
 msgid "SASL asked for something we did not know, aborting SASL authentication"
 msgstr "SASL je tražio nama nepoznate podatke, obustavljam SASL prijavu"
 
-#: src/mn-client-session.c:1072
+#: ../src/mn-client-session.c:1219
 #, c-format
 msgid "%s, aborting SASL authentication"
 msgstr "%s, obustavljam SASL prijavu"
 
 #. compliance error
-#: src/mn-client-session.c:1077
+#: ../src/mn-client-session.c:1224
 #, c-format
 msgid "unable to decode Base64 input from server: %s"
 msgstr "nije moguće dekodovati Base64 ulaz sa servera: %s"
 
-#: src/mn-client-session.c:1080
-msgid ""
-"the server sent a SASL challenge, but there was a pending initial SASL "
-"client response"
-msgstr ""
-"server je započeo SASL razgovor, ali odgovor od klijenta stigao pre toga"
-
-#: src/mn-client-session.c:1094
-msgid ""
-"the server did not send a SASL challenge, but there was no pending initial "
-"SASL client response"
-msgstr ""
-"server nije poslao SASL razgovor, ali nije bilo ni odgovora od klijenta."
-
-#: src/mn-client-session.c:1119
+#: ../src/mn-client-session.c:1260
 #, c-format
 msgid "a SASL security layer of strength factor %i is now active"
 msgstr "SASL sigurnosni sloj nivoa snage %i je uspostavljen"
 
 #. a security layer is active but we can't retrieve maxoutbuf -> fatal
-#: src/mn-client-session.c:1124
+#: ../src/mn-client-session.c:1265
 #, c-format
 msgid "unable to get SASL_MAXOUTBUF property: %s"
 msgstr "ne mogu da pročitam postavku SASL_MAXOUTBUF: %s"
 
-#: src/mn-client-session.c:1130
+#: ../src/mn-client-session.c:1271
 #, c-format
 msgid "warning: unable to get SASL_SSF property: %s"
 msgstr "upozorenje: ne mogu da pročitam postavku SASL_SSF: %s"
 
-#: src/mn-conf.c:238
+#: ../src/mn-conf.c:240
 msgid "A directory creation error has occurred"
 msgstr "Došlo je do greške pri pravljenju direktorijuma"
 
-#: src/mn-conf.c:239
+#: ../src/mn-conf.c:241
 #, c-format
 msgid "Unable to create directory \"%s\": %s."
 msgstr "Nije moguće napraviti direktorijum ?%s?: %s."
 
-#: src/mn-conf.c:313
+#: ../src/mn-conf.c:317
 #, c-format
 msgid "recursively unsetting %s"
 msgstr "rekurzivno poništavam %s"
 
-#: src/mn-conf.c:317
+#: ../src/mn-conf.c:321
 msgid "syncing the GConf database"
 msgstr "usklađujem GConf bazu podataka"
 
-#: src/mn-conf.c:320
+#: ../src/mn-conf.c:324
 msgid "completed"
 msgstr "urađeno"
 
-#: src/mn-gmail-mailbox-properties.gob:76
-msgid "Your Gmail username"
-msgstr "Vaš nalog na servisu Gmail"
+#: ../src/mn-custom-vfs-mailbox.gob:76
+msgid "invalid location"
+msgstr "nevažeće mesto"
 
-#: src/mn-gmail-mailbox-properties.gob:77
-msgid ""
-"Your Gmail password (if left blank, you will be prompted for the password "
-"when needed)"
-msgstr ""
-"Vaša lozinka na servisu Gmail (ako ne upišete lozinku, program će Vas "
-"zamoliti da je unesete kada to bude potrebno)"
+#: ../src/mn-evolution-folder-tree-control.c:86
+msgid "The currently selected URI"
+msgstr "Trenutno izabran URI"
 
-#: src/mn-gmail-mailbox.gob:86
-msgid "libsoup has not been compiled with SSL/TLS support"
-msgstr "libsoup nije izgrađen sa podrškom za SSL/TLS"
+#: ../src/mn-evolution-mailbox-properties.gob:67
+msgid "Folder"
+msgstr "Direktorijum"
 
-#: src/mn-gmail-mailbox.gob:164
-#, c-format
-msgid "unable to parse URI \"%s\""
-msgstr "nije moguće obraditi URI \"%s\""
-
-#: src/mn-gmail-mailbox.gob:217
-msgid "received non-UTF-8 data from server"
-msgstr "server je poslao znake koji ne spadaju u skup UTF-8"
+#: ../src/mn-evolution-mailbox-properties.gob:169
+msgid ""
+"Mail Notification can not contact Evolution. Make sure that Evolution is "
+"running and that the Evolution Mail Notification plugin is loaded."
+msgstr "Dojava pošte ne može da se poveže sa Evolucijom. Pokrenite Evoluciju i uključite dodatak za povezivanje sa Dojavom pošte."
 
-#: src/mn-gmail-mailbox.gob:224
-#, c-format
-msgid "unable to transfer data: %s"
-msgstr "ne mogu da preuzmem podatke: %s"
+#: ../src/mn-evolution-mailbox.gob:61
+msgid "folder not found"
+msgstr "direktorijum nije nađen"
 
-#: src/mn-gmail-mailbox.gob:345
-msgid "logging in"
-msgstr "prijava u toku"
+#: ../src/mn-evolution-mailbox.gob:182
+msgid "unable to contact Evolution"
+msgstr "nije moguće povezati se sa Evolucijom"
 
-#: src/mn-gmail-mailbox.gob:423
-msgid "login failed"
-msgstr "prijava nije uspela"
+#: ../src/mn-evolution-plugin.c:130 ../src/mn-evolution-plugin.c:134
+msgid "Unable to activate the Mail Notification plugin"
+msgstr "Nije moguće uključiti priključak za Dojavu pošte"
 
-#: src/mn-gmail-mailbox.gob:496
-msgid "searching for unread mail"
-msgstr "tražim novu poštu"
+#: ../src/mn-evolution-plugin.c:130
+#, c-format
+msgid ""
+"Bonobo could not locate the %s server. Please check your Mail Notification "
+"installation."
+msgstr "Bonobo nije uspeo da pronađe %s server. Molim proverite instalaciju Dojave pošte."
 
-#: src/mn-gmail-mailbox.gob:527
-msgid "unable to initialize the ICU library"
-msgstr "ne može se pokrenuti ICU biblioteka"
+#: ../src/mn-evolution-plugin.c:134 ../src/mn-main.c:427
+#, c-format
+msgid ""
+"Bonobo was unable to register the %s server. Please check your Mail "
+"Notification installation."
+msgstr "Bonobo nije uspeo da zabeleži %s server. Molim proverite instalaciju Dojave pošte."
 
-#: src/mn-gmail-mailbox.gob:554
-msgid "unable to parse Gmail data"
-msgstr "ne mogu da obradim podatke sa servisa Gmail"
+#: ../src/mn-gmail-mailbox.gob:111
+msgid "invalid feed location"
+msgstr "mesto dovoda nije ispravno navedeno"
 
-#: src/mn-gmail-mailbox.gob:891
+#: ../src/mn-gmail-mailbox.gob:125
 #, c-format
-msgid "unable to open calendar: %s"
-msgstr "nije moguće otvoriti kalendar: %s"
+msgid "retrieving feed from %s"
+msgstr "preuzimanje izvora sa %s"
 
-#: src/mn-gmail-mailbox.gob:899
+#: ../src/mn-gmail-mailbox.gob:132
 #, c-format
-msgid "unable to set calendar time: %s"
-msgstr "nije moguće postaviti vreme iz kalendara: %s"
+msgid "unable to retrieve feed: %s"
+msgstr "nije moguće pronaći dovod: %s"
 
-#: src/mn-gmail-mailbox.gob:968
-#, c-format
-msgid "unable to get calendar time: %s"
-msgstr "nije moguće dobaviti vreme iz kalendara: %s"
+#: ../src/mn-gmail-mailbox.gob:147 ../src/mn-gmail-mailbox.gob:194
+msgid "unable to parse feed"
+msgstr "nije moguće obraditi dovod"
 
-#: src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-gmime-stream-vfs.gob:49
+#: ../src/mn-sylpheed-mailbox-backend.gob:152
 #, c-format
 msgid "unable to read %s: %s"
 msgstr "Nije moguće pročitati %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:51
+#: ../src/mn-gmime-stream-vfs.gob:51
 #, c-format
 msgid "unable to write to %s: %s"
 msgstr "nije moguć upis na %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:53
+#: ../src/mn-gmime-stream-vfs.gob:53
 #, c-format
 msgid "unable to seek in %s: %s"
 msgstr "Nije moguće pronaći u %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:55
+#: ../src/mn-gmime-stream-vfs.gob:55
 #, c-format
 msgid "unable to tell position of %s: %s"
 msgstr "nije moguće saznati položaj za %s: %s"
 
-#: src/mn-gmime-stream-vfs.gob:57
+#: ../src/mn-gmime-stream-vfs.gob:57 ../src/mn-mh-mailbox-backend.gob:158
 #, c-format
 msgid "unable to close %s: %s"
 msgstr "nije moguće zatvoriti %s: %s"
 
-#: src/mn-imap-mailbox-properties.gob:95
+#: ../src/mn-imap-mailbox-properties.gob:113
 msgid "Mailbox:"
 msgstr "Sanduče:"
 
-#: src/mn-imap-mailbox-properties.gob:99
+#: ../src/mn-imap-mailbox-properties.gob:117
 msgid "in_box"
 msgstr "in_box"
 
-#: src/mn-imap-mailbox-properties.gob:110
+#: ../src/mn-imap-mailbox-properties.gob:128
 msgid "oth_er:"
 msgstr "_drugo:"
 
-#: src/mn-imap-mailbox-properties.gob:122
-msgid "U_se idle mode if possible"
-msgstr "K_oristi vreme dokolice, ako je moguće"
+#: ../src/mn-imap-mailbox-properties.gob:139
+msgid "ne_ver"
+msgstr "ni_kad"
 
-#: src/mn-imap-mailbox-properties.gob:129
-msgid "The hostname or IP address of the IMAP server"
-msgstr "Ime ili IP broj IMAP servera"
+#: ../src/mn-imap-mailbox-properties.gob:140
+msgid "au_todetect"
+msgstr "a_utodetekcija"
 
-#: src/mn-imap-mailbox-properties.gob:130
-msgid "Your username on the IMAP server"
-msgstr "Vaše ime na IMAP serveru"
+#: ../src/mn-imap-mailbox-properties.gob:141
+msgid "al_ways"
+msgstr "_uvek"
 
-#: src/mn-imap-mailbox-properties.gob:131
-msgid ""
-"Your password on the IMAP server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Vaša lozinka na IMAP serveru (ako ne upišete lozinku, program će Vas "
-"zamoliti da je unesete kada to bude potrebno)"
-
-#: src/mn-imap-mailbox-properties.gob:132
-#: src/mn-imap-mailbox-properties.gob:133
-msgid "The port number of the IMAP server"
-msgstr "Broj porta na IMAP serveru"
-
-#: src/mn-imap-mailbox-properties.gob:134
-msgid "The mailbox name"
-msgstr "Ime sandučeta"
+#: ../src/mn-imap-mailbox-properties.gob:173
+msgid "Use the <span style=\"italic\">IDLE</span> extension:"
+msgstr "Koristi <span style=\"italic\">IDLE</span> produžetak:"
 
-#: src/mn-imap-mailbox-properties.gob:135
-msgid "If possible, whether to use idle mode or not"
-msgstr "Da li treba koristiti vreme dokolice ili ne"
-
-#: src/mn-imap-mailbox.gob:156 src/mn-pop3-mailbox.gob:136
-msgid "SSL/TLS support has not been compiled in"
-msgstr "Podrška za SSL/TLS nije ugrađena"
-
-#: src/mn-imap-mailbox.gob:236
+#: ../src/mn-imap-mailbox.gob:390
 msgid "server did not send capabilities"
 msgstr "server nije obavestio o svojim mogućnostima"
 
-#: src/mn-imap-mailbox.gob:408
+#: ../src/mn-imap-mailbox.gob:573
 msgid "server advertised LOGINDISABLED, not using LOGIN authentication"
 msgstr "server je dojavio LOGINDISABLED, LOGIN prijava neće biti korišćena"
 
-#: src/mn-imap-mailbox.gob:409
+#: ../src/mn-imap-mailbox.gob:574
 msgid "unable to login"
 msgstr "prijava nije moguća"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:542
+#: ../src/mn-imap-mailbox.gob:714
 msgid "server did not send search results"
 msgstr "server nije poslao rezultate pretrage"
 
 #. compliance error
-#: src/mn-imap-mailbox.gob:617
+#: ../src/mn-imap-mailbox.gob:792
 msgid "server did not send all the messages we requested"
 msgstr "server nije poslao sve tražene poruke"
 
-#: src/mn-imap-mailbox.gob:671
+#: ../src/mn-imap-mailbox.gob:859
 msgid "unable to fetch message"
 msgstr "nije moguće dobaviti poruku"
 
-#: src/mn-imap-mailbox.gob:1006 src/mn-pop3-mailbox.gob:927
+#: ../src/mn-imap-mailbox.gob:875
+msgid ""
+"\"Use the IDLE extension\" set to \"never\" in the mailbox properties, "
+"logging out"
+msgstr "„Koristi IDLE proširenje“ je postavljeno na „nikad“ u postavkama sandučića, odjavljujem se"
+
+#: ../src/mn-imap-mailbox.gob:886
+#, c-format
+msgid "the remote server runs %s, not using the IDLE extension"
+msgstr "udaljeni server koristi %s, ne koristim IDLE produžetak"
+
+#: ../src/mn-imap-mailbox.gob:891
+#, c-format
+msgid ""
+"the remote server runs %s, the IDLE extension might not function properly"
+msgstr "udaljeni server koristi %s, IDLE proširenje možda neće ispravno raditi"
+
+#: ../src/mn-imap-mailbox.gob:900
+msgid "the remote server does not support the IDLE extension, logging out"
+msgstr "udaljeni server ne podržava IDLE proširenje, odjavljujem se"
+
+#: ../src/mn-imap-mailbox.gob:1251 ../src/mn-pop3-mailbox.gob:1124
 msgid "unknown server error"
 msgstr "nepoznata greška na serveru"
 
-#: src/mn-imap-mailbox.gob:1108 src/mn-pop3-mailbox.gob:220
+#: ../src/mn-imap-mailbox.gob:1357 ../src/mn-pop3-mailbox.gob:311
 msgid "server does not support in-band SSL/TLS"
 msgstr "server ne podržava zaštitu putem SSL/TLS"
 
-#: src/mn-imap-mailbox.gob:1127 src/mn-pop3-mailbox.gob:837
+#: ../src/mn-imap-mailbox.gob:1381 ../src/mn-pop3-mailbox.gob:997
 msgid ""
 "a SASL authentication mechanism was selected but SASL support has not been "
 "compiled in"
@@ -899,216 +874,145 @@ msgstr ""
 "izabran je mehanizam za prijavu koji koristi SASL ali podrška za SASL nije "
 "ugrađena u program"
 
-#: src/mn-imap-mailbox.gob:1137 src/mn-pop3-mailbox.gob:857
+#: ../src/mn-imap-mailbox.gob:1391 ../src/mn-pop3-mailbox.gob:1017
 #, c-format
 msgid "unknown authentication mechanism \"%s\""
 msgstr "nepoznat mehanizam za prijavu \"%s\""
 
-#: src/mn-imap-mailbox.gob:1160
+#: ../src/mn-imap-mailbox.gob:1423 ../src/mn-pop3-mailbox.gob:1053
+#, c-format
+msgid "disabling mechanism \"%s\" and retrying SASL authentication"
+msgstr "isključujem mehanizam „%s“ i pokušavam SASL prijavu"
+
+#: ../src/mn-imap-mailbox.gob:1435
 msgid "falling back to IMAP LOGIN authentication"
 msgstr "povratak na  IMAP LOGIN prijavu"
 
-#: src/mn-imap-mailbox.gob:1172 src/mn-pop3-mailbox.gob:901
+#: ../src/mn-imap-mailbox.gob:1447 ../src/mn-pop3-mailbox.gob:1082
 msgid "authentication failed"
 msgstr "prijava nije uspela"
 
-#: src/mn-mail-icon.gob:91
+#: ../src/mn-mail-icon.gob:91
 msgid "Main _Window"
 msgstr "Glavni _prozor"
 
-#: src/mn-mail-icon.gob:92 src/mn-main-window.c:101
+#: ../src/mn-mail-icon.gob:92 ../src/mn-main-window.gob:165
 msgid "_Mail Reader"
 msgstr "_Čitač pošte"
 
-#: src/mn-mail-icon.gob:93 src/mn-main-window.c:109
+#: ../src/mn-mail-icon.gob:93 ../src/mn-main-window.gob:173
 msgid "_Update"
 msgstr "_Osveži"
 
-#: src/mn-mail-icon.gob:99
+#: ../src/mn-mail-icon.gob:99
 msgid "R_emove From Notification Area"
 msgstr "_Ukloni sa obaveštajne zone"
 
-#: src/mn-mailbox-properties-dialog.c:156
-msgid "Add a Mailbox"
-msgstr "Dodaj sanduče"
-
-#: src/mn-mailbox-properties-dialog.c:325
+#: ../src/mn-mailbox-properties-dialog.gob:88
 #, c-format
 msgid "%s Properties"
 msgstr "Postavke za %s"
 
-#: src/mn-mailbox-properties-util.c:77 ui/authentication.glade.h:3
-msgid "_Username:"
-msgstr "_Kor.ime:"
-
-#: src/mn-mailbox-properties-util.c:87 ui/authentication.glade.h:2
-msgid "_Password:"
-msgstr "_Lozinka:"
-
-#: src/mn-mailbox-properties-util.c:154
-msgid "Connection type:"
-msgstr "Vrsta veze:"
-
-#: src/mn-mailbox-properties-util.c:161
-msgid "Port:"
-msgstr "Port:"
-
-#: src/mn-mailbox-properties-util.c:189
-msgid "_Authentication mechanism:"
-msgstr "_Način prijave:"
-
-#: src/mn-mailbox-properties.c:63
-msgid "Label"
-msgstr "Oznaka"
-
-#: src/mn-mailbox-properties.c:64
-msgid "The marked up text to show in the type combo box"
-msgstr "Označeni tekst koji se pojavljuje u oznaci tipa"
-
-#: src/mn-mailbox-properties.c:69
-msgid "Size group"
-msgstr "Veličina grupe"
-
-#: src/mn-mailbox-properties.c:70
-msgid "A GtkSizeGroup for aligning control labels"
-msgstr "GtkSizeGroup za uravnanje kontrolnih oznaka"
-
-#: src/mn-mailbox-properties.c:75
-msgid "Complete"
-msgstr "Gotovo"
+#: ../src/mn-mailbox-properties-dialog.gob:205
+msgid "Add a Mailbox"
+msgstr "Dodaj sanduče"
 
-#: src/mn-mailbox-properties.c:76
-msgid "Whether the properties are completely filled or not"
-msgstr "Da li su postavke sasvim popunjene ili ne"
+#: ../src/mn-mailbox-view.gob:179
+msgid "A paste error has occurred"
+msgstr "Došlo je do greške prilikom nalepljivanja"
 
-#: src/mn-mailbox-view.gob:271 src/mn-message-view.gob:312
+#: ../src/mn-mailbox-view.gob:320 ../src/mn-message-view.gob:313
 msgid "Mailbox"
 msgstr "Sanduče"
 
-#. format column
-#: src/mn-mailbox-view.gob:287
-msgid "Format"
-msgstr "Format"
+#: ../src/mn-mailbox-view.gob:523
+#, c-format
+msgid "unhandled %s mailbox (%s)"
+msgstr "neobrađeno %s sanduče (%s)"
 
-#: src/mn-mailbox-view.gob:577
-msgid "Unable to add mailbox"
-msgstr "Nije moguće dodati sanduče"
+#: ../src/mn-mailbox-view.gob:528
+#, c-format
+msgid "%s mailbox"
+msgstr "%s sanduče"
 
-#: src/mn-mailbox-view.gob:577
-msgid "The mailbox is already in the list."
-msgstr "Sanduče je već u spisku."
+#: ../src/mn-mailbox-view.gob:543
+msgid "detecting mailbox type..."
+msgstr "prepoznajem vrstu sandučeta..."
 
-#: src/mn-mailbox.gob:131
-msgid "The mailbox URI"
-msgstr "URI oznaka za sanduče"
+#: ../src/mn-mailbox.gob:278
+msgid "\"type\" attribute missing"
+msgstr "nedostaje atribut „vrsta“"
 
-#: src/mn-mailbox.gob:142
-msgid "The mailbox human-readable name"
-msgstr "Ime sandučeta"
+#: ../src/mn-mailbox.gob:285
+#, c-format
+msgid "unknown mailbox type \"%s\""
+msgstr "nepoznata vrsta sandučeta „%s“"
 
-#: src/mn-mailbox.gob:146
-msgid "Whether the mailbox has to be polled or not"
-msgstr "Da li se ovo sanduče ručno proverava ili ne"
+#: ../src/mn-mailbox.gob:305
+#, c-format
+msgid ""
+"property \"%s\": unable to transform string \"%s\" into a value of type \"%s"
+"\""
+msgstr "osobina „%s“: nije moguće prebaciti nisku „%s“ u vrednost vrste „%s“"
 
-#: src/mn-mailbox.gob:152
-msgid "The list of new and unread MNMessage objects"
-msgstr "Spisak novih i nepročitanih MNMessage objekata"
+#: ../src/mn-mailbox.gob:744
+#, c-format
+msgid "property \"%s\" has no value"
+msgstr "osobina „%s“ nema postavljenu vrednost"
 
-#: src/mn-mailbox.gob:206
-msgid "The mailbox error, if any"
-msgstr "Greška u pristupu sandučetu, ako postoji"
+#: ../src/mn-mailboxes.gob:203
+msgid "An error has occurred while importing old mailboxes"
+msgstr "Došlo je do greške prilikom uvoženja starih sandučića"
 
-#: src/mn-mailbox.gob:305
-msgid "does not exist"
-msgstr "ne postoji"
+#: ../src/mn-mailboxes.gob:248
+msgid "Unable to load the mailboxes configuration"
+msgstr "Nije moguće uvesti podešavanja sandučića"
 
-#: src/mn-mailbox.gob:337
-msgid "unknown format"
-msgstr "nepoznat format"
+#: ../src/mn-mailboxes.gob:294
+msgid "Unable to parse the XML document."
+msgstr "nije moguće obraditi XML dokument."
 
-#: src/mn-mailbox.gob:403
-#, c-format
-msgid "unable to enable immediate notification: %s"
-msgstr "Nije moguće namestiti neposrednu dojavu nove pošte: %s"
+#: ../src/mn-mailboxes.gob:301
+msgid "The root element is missing."
+msgstr "Nedostaje koreni element."
 
-#: src/mn-mailbox.gob:421
+#: ../src/mn-mailboxes.gob:307
 #, c-format
-msgid ""
-"As a fallback, they will be checked every %i second (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i seconds (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Pošto nema druge mogućnosti, biće proveravani svaku %i sekundu  (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[1] ""
-"Pošto nema druge mogućnosti, biće proveravani svake %i sekunde (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[2] ""
-"Pošto nema druge mogućnosti, biće proveravani svakih %i sekundi (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgid "The root element \"%s\" is invalid."
+msgstr "Koreni element „%s“ je nevažeći."
 
-#: src/mn-mailbox.gob:432
+#: ../src/mn-mailboxes.gob:330
 #, c-format
-msgid ""
-"As a fallback, they will be checked every %i minute (this delay is "
-"configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked every %i minutes (this delay is "
-"configurable from the Properties Dialog)."
-msgstr[0] ""
-"Pošto nema druge mogućnosti, biće proveravani svaki %i minut (ovo kašnjenje "
-"se može promeniti iz prozora sa postavkama)"
-msgstr[1] ""
-"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[2] ""
-"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgid "On line %i: %s."
+msgstr "U liniji %i: %s."
 
-#: src/mn-mailbox.gob:443
+#: ../src/mn-mailboxes.gob:335
 #, c-format
-msgid ""
-"As a fallback, they will be checked approximately every %i minute (this "
-"delay is configurable from the Properties Dialog)."
-msgid_plural ""
-"As a fallback, they will be checked approximately every %i minutes (this "
-"delay is configurable from the Properties Dialog)."
-msgstr[0] ""
-"Pošto nema druge mogućnosti, biće proveravani na oko %i minut (ovo kašnjenje "
-"se može promeniti iz prozora sa postavkama)"
-msgstr[1] ""
-"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
-msgstr[2] ""
-"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo "
-"kašnjenje se može promeniti iz prozora sa postavkama)"
+msgid "On line %i: unknown element \"%s\"."
+msgstr "U liniji %i: nepoznati element „%s“."
 
-#: src/mn-mailbox.gob:459
-msgid "A monitoring error has occurred"
-msgstr "Došlo je do greške pri motrenju"
+#: ../src/mn-mailboxes.gob:346
+msgid "An error has occurred while loading the mailboxes configuration"
+msgid_plural "Errors have occurred while loading the mailboxes configuration"
+msgstr[0] "Došlo je do greške prilikom učitavanja podešavanja sandučića"
+msgstr[1] "Došlo je do grešaka prilikom učitavanja podešavanja sandučića"
+msgstr[2] "Došlo je do grešaka prilikom učitavanja podešavanja sandučića"
 
-#: src/mn-mailbox.gob:460
-#, c-format
-msgid ""
-"Mail Notification was unable to enable immediate notification for one or "
-"more mailboxes. %s"
-msgstr ""
-"Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
-"sandučića. %s"
+#: ../src/mn-mailboxes.gob:371
+msgid "Unable to save the mailboxes configuration"
+msgstr "Nije moguće sačuvati podešavanja sandučića"
 
-#: src/mn-mailboxes.gob:130
-msgid "Whether one or more of the mailboxes has to be polled"
-msgstr ""
-"Pokazuje da li postoji bar jedno sanduče koje mora da se učestalo proverava"
+#: ../src/mn-mailboxes.gob:417
+msgid "Unable to write the XML document."
+msgstr "Nijem moguće zapisati XML dokument."
 
-#: src/mn-mailboxes.gob:260
+#. non fatal
+#: ../src/mn-mailboxes.gob:433
 #, c-format
-msgid "%s is unsupported: %s"
-msgstr "%s nije podržan: %s"
+msgid "unable to delete %s: %s"
+msgstr "nije moguće obrisati %s: %s"
 
-#: src/mn-mailboxes.gob:290
+#: ../src/mn-mailboxes.gob:457
 #, c-format
 msgid "%s has %i new message"
 msgid_plural "%s has %i new messages"
@@ -1116,170 +1020,174 @@ msgstr[0] "Sanduče %s ima %i novu poruku"
 msgstr[1] "Sanduče %s ima %i nove poruke"
 msgstr[2] "Sanduče %s ima %i novih poruka"
 
-#: src/mn-mailboxes.gob:307
+#: ../src/mn-mailboxes.gob:483
 #, c-format
 msgid "%s reported an error: %s"
 msgstr "%s je dojavio grešku: %s"
 
-#: src/mn-maildir-mailbox.gob:112
+#: ../src/mn-maildir-mailbox-backend.gob:111
 #, c-format
 msgid "unable to open folder \"new\": %s"
 msgstr "nije moguće otvoriti direktorijum \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:141
+#: ../src/mn-maildir-mailbox-backend.gob:144
 #, c-format
 msgid "unable to close folder \"new\": %s"
 msgstr "nije moguće zatvoriti direktorijum \"new\": %s"
 
-#: src/mn-maildir-mailbox.gob:144
+#: ../src/mn-maildir-mailbox-backend.gob:147
 #, c-format
 msgid "error while reading folder \"new\": %s"
 msgstr "greška pri čitanju direktorijuma \"new\": %s"
 
+#: ../src/mn-main-window.gob:106
+msgid "Help messages"
+msgstr "Poruke za pomoć"
+
+#: ../src/mn-main-window.gob:107
+msgid "Count messages"
+msgstr "Prebroj poruke"
+
 #. Toplevel
-#: src/mn-main-window.c:92
+#: ../src/mn-main-window.gob:156
 msgid "_Mail"
 msgstr "_Pošta"
 
-#: src/mn-main-window.c:93
+#: ../src/mn-main-window.gob:157
 msgid "_Edit"
 msgstr "_Uredi"
 
-#: src/mn-main-window.c:94
+#: ../src/mn-main-window.gob:158
 msgid "_View"
 msgstr "_Pregled"
 
-#: src/mn-main-window.c:95
+#: ../src/mn-main-window.gob:159
 msgid "_Help"
 msgstr "P_omoć"
 
-#: src/mn-main-window.c:103
+#: ../src/mn-main-window.gob:167
 msgid "Launch the mail reader"
 msgstr "P_okreni čitač pošte"
 
 #. Reload
-#: src/mn-main-window.c:111 src/mn-main.c:230
+#: ../src/mn-main-window.gob:175 ../src/mn-main.c:248
 msgid "Update the mail status"
 msgstr "Osveži podatke o pošti"
 
-#: src/mn-main-window.c:117
+#: ../src/mn-main-window.gob:181
 msgid "_Close"
 msgstr "_Zatvori"
 
-#: src/mn-main-window.c:119
+#: ../src/mn-main-window.gob:183
 msgid "Close this window"
 msgstr "Zatvori ovaj prozor"
 
-#: src/mn-main-window.c:125
+#: ../src/mn-main-window.gob:189
 msgid "_Quit"
 msgstr "_Kraj"
 
-#: src/mn-main-window.c:127 src/mn-main.c:257
+#: ../src/mn-main-window.gob:191 ../src/mn-main.c:266
 msgid "Quit Mail Notification"
 msgstr "Ugasi dojavu pošte"
 
-#: src/mn-main-window.c:135 src/mn-main-window.c:183
+#: ../src/mn-main-window.gob:199 ../src/mn-main-window.gob:247
 msgid "_Toolbars"
 msgstr "_Alatne trake"
 
-#: src/mn-main-window.c:137
+#: ../src/mn-main-window.gob:201
 msgid "Customize the toolbars"
 msgstr "Uredi alatne trake"
 
-#: src/mn-main-window.c:143
+#: ../src/mn-main-window.gob:207
 msgid "_Preferences"
 msgstr "_Postavke"
 
-#: src/mn-main-window.c:153
+#: ../src/mn-main-window.gob:217
 msgid "Toolbars Styl_e"
 msgstr "Stil alatnih _traka"
 
-#: src/mn-main-window.c:155
+#: ../src/mn-main-window.gob:219
 msgid "Customize the toolbars style"
 msgstr "Prilagodi stil alatnih traka"
 
-#: src/mn-main-window.c:163
+#: ../src/mn-main-window.gob:227
 msgid "_Contents"
 msgstr "_Sadržaj"
 
-#: src/mn-main-window.c:165
+#: ../src/mn-main-window.gob:229
 msgid "Display help"
 msgstr "Prikaži pomoć"
 
-#: src/mn-main-window.c:171
+#: ../src/mn-main-window.gob:235
 msgid "_About"
 msgstr "_O programu"
 
-#: src/mn-main-window.c:173
+#: ../src/mn-main-window.gob:237
 msgid "Display credits"
 msgstr "Prikaži zasluge"
 
-#: src/mn-main-window.c:185
+#: ../src/mn-main-window.gob:249
 msgid "Show or hide the toolbars"
 msgstr "Prikaži ili ukloni alatnu traku"
 
-#: src/mn-main-window.c:192
+#: ../src/mn-main-window.gob:256
 msgid "_Statusbar"
 msgstr "_Statusna traka"
 
-#: src/mn-main-window.c:194
+#: ../src/mn-main-window.gob:258
 msgid "Show or hide the statusbar"
 msgstr "Prikaži ili ukloni statusnu traku"
 
-#: src/mn-main-window.c:205
+#: ../src/mn-main-window.gob:269
 msgid "_Desktop Default"
 msgstr "_Podrazumevano u okruženju"
 
-#: src/mn-main-window.c:207
+#: ../src/mn-main-window.gob:271
 msgid "Set the toolbars style to the desktop default setting"
 msgstr "Postavi stilove traka na stil koji važi u celom radnom okruženju"
 
-#: src/mn-main-window.c:213
+#: ../src/mn-main-window.gob:277
 msgid "I_cons Only"
 msgstr "Samo _slike"
 
-#: src/mn-main-window.c:215
+#: ../src/mn-main-window.gob:279
 msgid "Only display the toolbars icons"
 msgstr "Prikaži samo slike u statusnoj traci"
 
-#: src/mn-main-window.c:221
+#: ../src/mn-main-window.gob:285
 msgid "_Text Only"
 msgstr "Samo _tekst"
 
-#: src/mn-main-window.c:223
+#: ../src/mn-main-window.gob:287
 msgid "Only display the toolbars text"
 msgstr "Prikaži samo tekst u alatnoj traci"
 
-#: src/mn-main-window.c:229
+#: ../src/mn-main-window.gob:293
 msgid "Text Belo_w Icons"
 msgstr "Tekst _ispod slika"
 
-#: src/mn-main-window.c:231
+#: ../src/mn-main-window.gob:295
 msgid "Display the toolbars text below the icons"
 msgstr "Prikaži tekst ispod odgovarajuće slike u alatnoj traci"
 
-#: src/mn-main-window.c:237
+#: ../src/mn-main-window.gob:301
 msgid "Text Be_side Icons"
 msgstr "Tekst _pored slika"
 
-#: src/mn-main-window.c:239
+#: ../src/mn-main-window.gob:303
 msgid "Display the toolbars text beside the icons"
 msgstr "Prikaži tekst pored odgovarajuće slike u alatnoj traci"
 
-#: src/mn-main-window.c:363
+#: ../src/mn-main-window.gob:345
 #, c-format
 msgid "unable to load menus.xml: %s"
 msgstr "Nije moguće pročitati menus.xml: %s"
 
-#: src/mn-main-window.c:398
-msgid "Help messages"
-msgstr "Poruke za pomoć"
-
-#: src/mn-main-window.c:399
-msgid "Count messages"
-msgstr "Prebroj poruke"
+#: ../src/mn-main-window.gob:388
+msgid "unable to load toolbars.xml"
+msgstr "nije moguće učitati toolbars.xml: %s"
 
-#: src/mn-main-window.c:503
+#: ../src/mn-main-window.gob:439
 #, c-format
 msgid "%i new message"
 msgid_plural "%i new messages"
@@ -1287,53 +1195,43 @@ msgstr[0] "%i nova poruka"
 msgstr[1] "%i nove poruke"
 msgstr[2] "%i novih poruka"
 
-#: src/mn-main-window.c:540
-msgid "unable to load toolbars.xml"
-msgstr "nije moguće učitati toolbars.xml: %s"
-
-#: src/mn-main.c:99
-#, c-format
-msgid "Compiled-in mailbox backends: %s\n"
-msgstr "Program ume da čita sandučiće u formatima: %s\n"
+#.
+#. * Here and everywhere else, we order the backends by descending
+#. * order of (believed) popularity.
+#.
+#: ../src/mn-main.c:96
+msgid "Compiled-in mailbox backends: "
+msgstr "Ugrađene mogućnosti za sandučiće:"
 
-#: src/mn-main.c:113
-msgid "Gmail timestamps"
-msgstr "GMAIL vremenski pečat"
+#: ../src/mn-main.c:124
+msgid "Compiled-in POP3 and IMAP features: "
+msgstr "Ugrađene mogućnosti za POP3 i IMAP: "
 
-#: src/mn-main.c:116
-#, c-format
-msgid "Compiled-in features: %s\n"
-msgstr "Ugrađene mogućnosti: %s\n"
-
-#: src/mn-main.c:176
+#: ../src/mn-main.c:194
 msgid "Enable informational output"
 msgstr "Dozvoli rečitiji izlaz"
 
-#: src/mn-main.c:185
+#: ../src/mn-main.c:203
 msgid "List the compiled-in features"
 msgstr "Ispiši ugrađene mogućnosti"
 
-#: src/mn-main.c:194
+#: ../src/mn-main.c:212
 msgid "Display the main window"
 msgstr "Prikaži glavni prozor"
 
-#: src/mn-main.c:203
+#: ../src/mn-main.c:221
 msgid "Display the properties dialog"
 msgstr "Prikaži prozor sa postavkama"
 
-#: src/mn-main.c:212
+#: ../src/mn-main.c:230
 msgid "Display the about dialog"
 msgstr "Prikaži podatke o programu"
 
-#: src/mn-main.c:221
+#: ../src/mn-main.c:239
 msgid "Close the mail summary popup"
 msgstr "Zatvori prozor sa sažetkom poruka"
 
-#: src/mn-main.c:239
-msgid "Report the mail status"
-msgstr "Proveri poštu"
-
-#: src/mn-main.c:248
+#: ../src/mn-main.c:257
 msgid "Unset obsolete GConf configuration"
 msgstr "Poništi zastarela GConf podešavanja"
 
@@ -1341,11 +1239,11 @@ msgstr "Poništi zastarela GConf podešavanja"
 #. * We can't use mn_error_dialog() because gtk_init() has not been
 #. * called yet.
 #.
-#: src/mn-main.c:284
+#: ../src/mn-main.c:293
 msgid "multi-threading is not available"
 msgstr "višenitni rad nije podržan"
 
-#: src/mn-main.c:338
+#: ../src/mn-main.c:355
 msgid ""
 "Bonobo could not locate the automation object. Please check your Mail "
 "Notification installation."
@@ -1355,80 +1253,72 @@ msgstr ""
 "Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
 "odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
 
-#: src/mn-main.c:344
+#: ../src/mn-main.c:361
 msgid "quitting Mail Notification"
 msgstr "Gasim dojavu pošte"
 
-#: src/mn-main.c:348
+#: ../src/mn-main.c:365
 msgid "Mail Notification is not running"
 msgstr "Program za dojavu pošte nije pokrenut."
 
-#: src/mn-main.c:355
+#: ../src/mn-main.c:372
 msgid "Unable to initialize the GnomeVFS library."
 msgstr "Nije moguće pokrenuti biblioteku GnomeVFS."
 
-#: src/mn-main.c:391
+#: ../src/mn-main.c:404
 msgid "updating the mail status"
 msgstr "Proveravam poštu"
 
-#: src/mn-main.c:409
+#: ../src/mn-main.c:413
 msgid "Mail Notification is already running"
 msgstr "Program za dojavu pošte je već pokrenut."
 
-#: src/mn-main.c:417
+#: ../src/mn-main.c:423
+#, c-format
 msgid ""
-"Bonobo could not locate the GNOME_MailNotification_Automation.server file. "
-"Please check your Mail Notification installation."
-msgstr ""
-"Bonobo nije uspeo da pronađe objekat za automatizaciju. Proverite "
-"instalaciju programa za dojavu pošte. (Prim. prev: usled greške u programu "
-"Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
-"odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
+"Bonobo could not locate the %s file. Please check your Mail Notification "
+"installation."
+msgstr "Bonobo nije mogao da pronađe datoteku %s. Molimo proverite podešavanja Dojave pošte."
 
-#: src/mn-main.c:421
-msgid ""
-"Bonobo was unable to register the automation server. Please check your Mail "
-"Notification installation."
-msgstr ""
-"Bonobo nije uspeo da pronađe objekat za automatizaciju. Proverite "
-"instalaciju programa za dojavu pošte. (Prim. prev: usled greške u programu "
-"Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, treba da se "
-"odjavite i ponovo prijavite na sistem da bi sve počelo da radi)"
+#: ../src/mn-mbox-mailbox-backend.gob:209
+#, c-format
+msgid "unable to close file: %s"
+msgstr "nije moguće zatvoriti datoteku: %s"
 
-#: src/mn-mbox-mailbox.gob:184
+#: ../src/mn-mbox-mailbox-backend.gob:222
 #, c-format
 msgid "unable to open mailbox: %s"
 msgstr "nije moguće otvoriti sanduče: %s"
 
-#: src/mn-message-mime.c:105
+#: ../src/mn-message-mime.c:104
 msgid "unable to parse MIME message"
 msgstr "nije moguće obraditi MIME poruku"
 
-#: src/mn-message-view.gob:81
+#: ../src/mn-message-view.gob:82
 msgid "You have no new mail."
 msgstr "Nema pošte."
 
-#: src/mn-message-view.gob:321
+#: ../src/mn-message-view.gob:322
 msgid "Unreadable message"
 msgstr "Nečitljiva poruka"
 
-#: src/mn-message-view.gob:329
+#: ../src/mn-message-view.gob:330
 msgid "From"
 msgstr "Od"
 
-#: src/mn-message-view.gob:337
+#: ../src/mn-message-view.gob:338
 msgid "Subject"
 msgstr "Tema"
 
-#: src/mn-message-view.gob:348
+#: ../src/mn-message-view.gob:349
 msgid "Sent"
 msgstr "Poslato"
 
-#: src/mn-message.gob:101
+#: ../src/mn-message.gob:99
 msgid "Unknown"
 msgstr "Nepoznato"
 
-#: src/mn-message.gob:126
+#: ../src/mn-message.gob:124
 #, c-format
 msgid "%i second ago"
 msgid_plural "%i seconds ago"
@@ -1436,7 +1326,7 @@ msgstr[0] "pre %i sekundu"
 msgstr[1] "pre %i sekunde"
 msgstr[2] "pre %i sekundi"
 
-#: src/mn-message.gob:130
+#: ../src/mn-message.gob:128
 #, c-format
 msgid "about %i minute ago"
 msgid_plural "about %i minutes ago"
@@ -1444,7 +1334,7 @@ msgstr[0] "pre oko %i minut"
 msgstr[1] "pre oko %i minuta"
 msgstr[2] "pre oko %i minuta"
 
-#: src/mn-message.gob:135
+#: ../src/mn-message.gob:133
 #, c-format
 msgid "about %i hour ago"
 msgid_plural "about %i hours ago"
@@ -1452,7 +1342,7 @@ msgstr[0] "pre oko %i sat"
 msgstr[1] "pre oko %i sata"
 msgstr[2] "pre oko %i sati"
 
-#: src/mn-message.gob:140
+#: ../src/mn-message.gob:138
 #, c-format
 msgid "about %i day ago"
 msgid_plural "about %i days ago"
@@ -1460,7 +1350,7 @@ msgstr[0] "pre oko %i dan"
 msgstr[1] "pre oko %i dana"
 msgstr[2] "pre oko %i dana"
 
-#: src/mn-message.gob:145
+#: ../src/mn-message.gob:143
 #, c-format
 msgid "about %i week ago"
 msgid_plural "about %i weeks ago"
@@ -1468,69 +1358,78 @@ msgstr[0] "pre oko %i nedelju"
 msgstr[1] "pre oko %i nedelje"
 msgstr[2] "pre oko %i nedelja"
 
-#: src/mn-mh-mailbox.gob:147
-#, c-format
-msgid "error while reading .mh_sequences: %s"
-msgstr "greška pri čitanju datoteke .mh_sequences: %s"
+#. translators: "none" is used like "Mailbox: none"
+#: ../src/mn-message.gob:163
+msgid "none"
+msgstr "nijedno"
 
-#: src/mn-mh-mailbox.gob:157
+#: ../src/mn-mh-mailbox-backend.gob:161
 #, c-format
-msgid "unable to open .mh_sequences: %s"
-msgstr "nije moguće otvoriti datoteku .mh_sequences: %s"
-
-#: src/mn-pending-mailbox.gob:35
-msgid "detecting"
-msgstr "istražujem"
+msgid "error while reading %s: %s"
+msgstr "greška pri čitanju %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:75
-msgid "_Hostname:"
-msgstr "_Računar:"
-
-#: src/mn-pi-mailbox-properties.gob:93
-msgid "_Details"
-msgstr "_Detalji"
+#: ../src/mn-mh-mailbox-backend.gob:174
+#, c-format
+msgid "unable to open %s: %s"
+msgstr "nije moguće otvoriti %s: %s"
 
-#: src/mn-pi-mailbox-properties.gob:105
+#: ../src/mn-pi-mailbox-properties.gob:67
 msgid "sta_ndard"
 msgstr "_standard"
 
-#: src/mn-pi-mailbox-properties.gob:115
+#: ../src/mn-pi-mailbox-properties.gob:68
 msgid "_in-band SSL/TLS"
 msgstr "_ugrađeni SSL/TLS"
 
-#: src/mn-pi-mailbox-properties.gob:125
+#: ../src/mn-pi-mailbox-properties.gob:69
 msgid "SSL/TLS on sepa_rate port"
 msgstr "SSL/TLS na posebnom portu"
 
-#: src/mn-pop3-mailbox-properties.gob:86
-msgid "The hostname or IP address of the POP3 server"
-msgstr "Ime ili IP broj POP3 servera"
+#: ../src/mn-pi-mailbox-properties.gob:73
+msgid "_Hostname:"
+msgstr "_Računar:"
 
-#: src/mn-pop3-mailbox-properties.gob:87
-msgid "Your username on the POP3 server"
-msgstr "Vaše ime na  POP3 serveru"
+#: ../src/mn-pi-mailbox-properties.gob:93
+msgid "_Details"
+msgstr "_Detalji"
 
-#: src/mn-pop3-mailbox-properties.gob:88
-msgid ""
-"Your password on the POP3 server (if left blank, you will be prompted for "
-"the password when needed)"
-msgstr ""
-"Vaša lozinka na POP3 serveru (ako ne upišete lozinku, program će Vas "
-"zamoliti da je unesete kada to bude potrebno)"
+#: ../src/mn-pi-mailbox-properties.gob:148
+msgid "Connection type:"
+msgstr "Vrsta veze:"
+
+#: ../src/mn-pi-mailbox-properties.gob:155
+msgid "Port:"
+msgstr "Port:"
 
-#: src/mn-pop3-mailbox-properties.gob:89 src/mn-pop3-mailbox-properties.gob:90
-msgid "The port number of the POP3 server"
-msgstr "Broj porta na POP3 serveru"
+#: ../src/mn-pi-mailbox-properties.gob:178
+msgid "_Authentication mechanism:"
+msgstr "_Način prijave:"
 
-#: src/mn-pop3-mailbox.gob:266
+#: ../src/mn-pi-mailbox.gob:113
+msgid "SSL/TLS support has not been compiled in"
+msgstr "Podrška za SSL/TLS nije ugrađena"
+
+#: ../src/mn-pop3-mailbox.gob:359
 msgid "invalid arguments for the LOGIN-DELAY capability"
 msgstr "parametri za mogućnost LOGIN-DELAY nisu ispravno postavljeni"
 
-#: src/mn-pop3-mailbox.gob:569
+#.
+#. * Some servers violate RFC 2449 by not supporting a
+#. * second argument to the AUTH command. Support these
+#. * servers nevertheless, by retrying without the SASL
+#. * initial client response.
+#.
+#: ../src/mn-pop3-mailbox.gob:519
+msgid ""
+"SASL authentication with initial client response failed, retrying without "
+"initial client response"
+msgstr "SASL autentifikacija sa početnim klijentskim odgovorom nije uspela, pokušavam ponovo bez početnog klijentskog odgovora"
+
+#: ../src/mn-pop3-mailbox.gob:733
 msgid "unknown error"
 msgstr "nepoznata greška"
 
-#: src/mn-pop3-mailbox.gob:656
+#: ../src/mn-pop3-mailbox.gob:828
 #, c-format
 msgid "honouring LOGIN-DELAY, sleeping for %i second"
 msgid_plural "honouring LOGIN-DELAY, sleeping for %i seconds"
@@ -1538,39 +1437,43 @@ msgstr[0] "tražen je zastoj pri prijavi, pauziram %i sekundu"
 msgstr[1] "tražen je zastoj pri prijavi, pauziram %i sekunde"
 msgstr[2] "tražen je zastoj pri prijavi, pauziram %i sekundi"
 
-#: src/mn-pop3-mailbox.gob:849
+#: ../src/mn-pop3-mailbox.gob:1009
 msgid "server does not support APOP authentication"
 msgstr "server ne podržava prijavu korišćenjem mehanizma APOP"
 
-#: src/mn-pop3-mailbox.gob:884
+#: ../src/mn-pop3-mailbox.gob:1065
 msgid "falling back to APOP authentication"
 msgstr "prelazim na  APOP prijavu"
 
-#: src/mn-pop3-mailbox.gob:889
+#: ../src/mn-pop3-mailbox.gob:1070
 msgid "falling back to USER/PASS authentication"
 msgstr "prelazim na prijavu pomoću imena i lozinke"
 
-#: src/mn-properties-dialog.c:218
+#: ../src/mn-properties-dialog.gob:170 ../ui/properties-dialog.glade.h:10
+msgid "Mail Notification Properties"
+msgstr "Postavke za dojavu"
+
+#: ../src/mn-properties-dialog.gob:207
 msgid "top left"
 msgstr "gore-levo"
 
-#: src/mn-properties-dialog.c:219
+#: ../src/mn-properties-dialog.gob:208
 msgid "top right"
 msgstr "gore-desno"
 
-#: src/mn-properties-dialog.c:220
+#: ../src/mn-properties-dialog.gob:209
 msgid "bottom left"
 msgstr "dole-levo"
 
-#: src/mn-properties-dialog.c:221
+#: ../src/mn-properties-dialog.gob:210
 msgid "bottom right"
 msgstr "dole-desno"
 
-#: src/mn-properties-dialog.c:323
+#: ../src/mn-properties-dialog.gob:329
 msgid "No mailbox selected."
 msgstr "Nijedno sanduče nije izabrano."
 
-#: src/mn-properties-dialog.c:328
+#: ../src/mn-properties-dialog.gob:334
 #, c-format
 msgid "%i mailbox selected."
 msgid_plural "%i mailboxes selected."
@@ -1578,408 +1481,763 @@ msgstr[0] "Izabrano %i sanduče"
 msgstr[1] "Izabrana %i sandučeta"
 msgstr[2] "Izabrano %i sandučeta"
 
-#: src/mn-shell.gob:96
+#: ../src/mn-properties-dialog.gob:465
+#, c-format
+msgid "Test message #%i"
+msgstr "Tekst poruke #%i"
+
+#: ../src/mn-properties-dialog.gob:470
+msgid "Mail Notification Properties Dialog"
+msgstr "Dijalog za postavke Dojave pošte"
+
+#: ../src/mn-shell.gob:109
 msgid "You have new mail."
 msgstr "Imate novu poštu."
 
-#: src/mn-shell.gob:361
+#: ../src/mn-shell.gob:374
 msgid "Mailboxes Having New Mail"
 msgstr "Sandučići sa novom poštom"
 
-#: src/mn-shell.gob:382
+#: ../src/mn-shell.gob:393
 msgid "Errors"
 msgstr "Greške"
 
-#: src/mn-shell.gob:403
-msgid "Unsupported Mailboxes"
-msgstr "Nepodržani sandučići"
-
-#: src/mn-shell.gob:418
+#: ../src/mn-shell.gob:408
 msgid "Mail Summary"
 msgstr "Sažetak poruka"
 
-#: src/mn-soup.c:140
-#, c-format
-msgid "unable to parse proxy URI \"%s\""
-msgstr "nije moguće obraditi zastupnički URI ?%s?"
-
-#: src/mn-ssl.c:79
+#: ../src/mn-ssl.c:76
 msgid "unknown SSL/TLS error"
 msgstr "nepoznata greška u  SSL/TLS"
 
-#: src/mn-stock.c:28
+#: ../src/mn-stock.c:28
 msgid "Select _All"
 msgstr "Izaberi _sve"
 
-#: src/mn-stock.c:29
+#: ../src/mn-stock.c:29
 msgid "Leave Fullscreen"
 msgstr "Ostavi na celom ekranu"
 
-#: src/mn-sylpheed-mailbox.gob:113
+#: ../src/mn-stock.c:30
+msgid "Co_nnect"
+msgstr "_Poveži se"
+
+#: ../src/mn-sylpheed-mailbox-backend.gob:170
 #, c-format
 msgid "unable to open folder: %s"
 msgstr "nije moguće otvoriti direktorijum: %s"
 
-#: src/mn-sylpheed-mailbox.gob:147
+#: ../src/mn-sylpheed-mailbox-backend.gob:209
 #, c-format
 msgid "unable to close folder: %s"
 msgstr "nije moguće zatvoriti direktorijum: %s"
 
-#: src/mn-sylpheed-mailbox.gob:150
+#: ../src/mn-sylpheed-mailbox-backend.gob:212
 #, c-format
 msgid "error while reading folder: %s"
 msgstr "greška pri čitanju direktorijuma: %s"
 
-#: src/mn-system-mailbox-properties.gob:34 src/mn-uri.gob:411
-msgid "System Mailbox"
-msgstr "Lokalno sanduče"
+#: ../src/mn-sylpheed-mailbox-backend.gob:255
+msgid "unexpected end of file"
+msgstr "neočekivani kraj datoteke"
 
-#: src/mn-system-mailbox-properties.gob:57
+#: ../src/mn-sylpheed-mailbox-backend.gob:269
 #, c-format
-msgid "Your system mailbox (<span weight=\"bold\">%s</span>) will be used."
-msgstr "Koristi se lokalno sanduče (<span weight=\"bold\">%s</span>)."
+msgid "incompatible file version \"%i\""
+msgstr "izdanje datoteke nije saglasno „%i“"
 
-#: src/mn-system-mailbox-properties.gob:64
-msgid ""
-"The location of your system mailbox could not be detected. Please set the "
-"MAIL environment variable."
-msgstr ""
-"Program nije uspeo da pronađe lokalno sanduče. Postavite promenljivu MAIL da "
-"pokazuje na njega."
+#: ../src/mn-sylpheed-mailbox-backend.gob:272
+msgid "file version missing"
+msgstr "nedostaje izdanje datoteke"
 
-#: src/mn-unsupported-mailbox.gob:33
-msgid "The reason why the mailbox is unsupported"
-msgstr "Razlog zašto sanduče nije podržano"
+#: ../src/mn-system-vfs-mailbox-properties.gob:39
+#: ../src/mn-system-vfs-mailbox-properties.gob:47
+#: ../src/mn-system-vfs-mailbox.gob:45
+msgid "System mailbox"
+msgstr "Sistemsko sanduče"
 
-#: src/mn-unsupported-mailbox.gob:40
-msgid "unsupported"
-msgstr "nije podržano"
+#: ../src/mn-system-vfs-mailbox-properties.gob:68
+#, c-format
+msgid "Your system mailbox is <span weight=\"bold\">%s</span>."
+msgstr "Vaše sistemsko sanduče je <span weight=\"bold\">%s</span>."
 
-#: src/mn-util.c:245
+#: ../src/mn-system-vfs-mailbox-properties.gob:75
+msgid ""
+"The location of your system mailbox could not be detected. Check the MAIL "
+"environment variable."
+msgstr "Mesto sistemskog sandučeta nije pronađeno. Proverite promenljivu MAIL."
+
+#: ../src/mn-system-vfs-mailbox.gob:72
+msgid "MAIL environment variable not defined"
+msgstr "promenljiva MAIL nije definisana"
+
+#: ../src/mn-util.c:281
 #, c-format
 msgid "error loading image: %s"
 msgstr "greška pri učitavanju slike: %s"
 
-#: src/mn-util.c:276
+#: ../src/mn-util.c:298
 #, c-format
 msgid "widget \"%s\" not found in interface \"%s\""
 msgstr "element ?%s? nije pronađen u sučelju ?%s?"
 
-#: src/mn-util.c:390
-msgid "received an invalid URI list"
-msgstr "primljen je neispravan spisak URI oznaka"
+#: ../src/mn-util.c:398
+#, c-format
+msgid "unable to open self as a module: %s"
+msgstr "nije moguće otvoriti kao modul: %s"
+
+#: ../src/mn-util.c:403
+#, c-format
+msgid "signal handler \"%s\" not found"
+msgstr "obrađivač signala „%s“ nije pronađen"
+
+#: ../src/mn-util.c:556 ../src/mn-util.c:579 ../src/mn-util.c:601
+#: ../src/mn-util.c:623
+msgid "A drag and drop error has occurred"
+msgstr "Došlo je do greške pri prevlačenju/puštanju"
 
-#: src/mn-util.c:426
-msgid "received an invalid Mozilla URL"
-msgstr "primljen je neispravan Mozilin URL"
+#: ../src/mn-util.c:557
+msgid "An invalid location list has been received."
+msgstr "Primljen je nevažeći spisak mesta."
 
-#: src/mn-util.c:519
+#: ../src/mn-util.c:602
+msgid "An invalid Mozilla location has been received."
+msgstr "Primljen je nevažeći Mozilin spisak mesta."
+
+#: ../src/mn-util.c:678
 msgid "Unable to display help"
 msgstr "Nije moguće prikazati pomoć"
 
-#: src/mn-util.c:533
+#: ../src/mn-util.c:692
 #, c-format
 msgid "Unable to create a thread: %s."
 msgstr "Nije moguće pokrenuti nit: %s."
 
-#: src/mn-util.c:626
+#: ../src/mn-util.c:782
 msgid "_Do not show this message again"
 msgstr "_Ne prikazuj više ovu poruku"
 
-#: src/mn-util.c:710
+#: ../src/mn-util.c:892
+#, c-format
+msgid ""
+"The following location is invalid:\n"
+"\n"
+"%s"
+msgid_plural ""
+"The following locations are invalid:\n"
+"\n"
+"%s"
+msgstr[0] "Sledeće mesto je nevažeće:\n"
+"\n"
+"%s"
+msgstr[1] "Sledeća mesta su nevažeća:\n"
+"\n"
+"%s"
+msgstr[2] "Sledeća mesta su nevažeća:\n"
+"\n"
+"%s"
+
+#: ../src/mn-util.c:912
 msgid "A fatal error has occurred in Mail Notification"
 msgstr "Došlo je do kobne greške u programu za dojavu pošte"
 
-#: src/mn-util.c:725
+#: ../src/mn-util.c:951
 #, c-format
 msgid "unable to get current time: %s"
 msgstr "nije moguće dobaviti trenutno vreme: %s"
 
-#: src/mn-util.c:787
+#: ../src/mn-util.c:1013
 #, c-format
 msgid "invalid signal specification \"%s\""
 msgstr "nevažeća odrednica za signal ?%s?"
 
-#: src/mn-util.c:826
+#: ../src/mn-util.c:1052
 msgid "A command error has occurred in Mail Notification"
 msgstr "Došlo je do greške u komandama"
 
-#: src/mn-util.c:827
+#: ../src/mn-util.c:1053
 #, c-format
 msgid "Unable to execute \"%s\": %s."
 msgstr "Nije moguće izvršiti %s: %s"
 
-#: ui/authentication.glade.h:1
-msgid "_Authenticate"
-msgstr "Prijavi se"
+#: ../src/mn-util.c:1311
+#, c-format
+msgid "unable to rename %s to %s: %s"
+msgstr "Nije moguće preimenovati %s u %s: %s"
+
+#: ../src/mn-vfs-mailbox-backend.gob:117
+#, c-format
+msgid "unable to monitor mailbox contents (%s), poll mode activated"
+msgstr "nije moguće nadgledati sadržaj sandučeta (%s), upiti su aktivirani"
+
+#: ../src/mn-vfs-mailbox.gob:238
+#, c-format
+msgid "unable to monitor mailbox type (%s), poll mode activated"
+msgstr "nije moguće nadgledati sadržaj sandučeta (%s), upiti su aktivirani"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "unknown mailbox format"
+msgstr "format sandučeta nije prepoznat"
+
+#: ../src/mn-vfs-mailbox.gob:307
+msgid "does not exist"
+msgstr "ne postoji"
+
+#: ../src/mn-vfs-mailbox.gob:377
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i second (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i seconds (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani svaku %i sekundu  (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani svake %i sekunde (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i sekundi (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+
+#: ../src/mn-vfs-mailbox.gob:388
+#, c-format
+msgid ""
+"As a fallback, they will be checked every %i minute (this delay is "
+"configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked every %i minutes (this delay is "
+"configurable from the Properties Dialog)."
+msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani svaki %i minut (ovo kašnjenje se "
+"može promeniti iz prozora sa postavkama)"
+msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani svakih %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+
+#: ../src/mn-vfs-mailbox.gob:399
+#, c-format
+msgid ""
+"As a fallback, they will be checked approximately every %i minute (this "
+"delay is configurable from the Properties Dialog)."
+msgid_plural ""
+"As a fallback, they will be checked approximately every %i minutes (this "
+"delay is configurable from the Properties Dialog)."
+msgstr[0] ""
+"Pošto nema druge mogućnosti, biće proveravani na oko %i minut (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[1] ""
+"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
+msgstr[2] ""
+"Pošto nema druge mogućnosti, biće proveravani na oko %i minuta (ovo kašnjenje "
+"se može promeniti iz prozora sa postavkama)"
 
-#: ui/edit-toolbars.glade.h:1
+#: ../src/mn-vfs-mailbox.gob:415
+msgid "A monitoring error has occurred"
+msgstr "Došlo je do greške pri motrenju"
+
+#: ../src/mn-vfs-mailbox.gob:416
+#, c-format
+msgid ""
+"Mail Notification was unable to enable immediate notification for one or "
+"more mailboxes. %s"
+msgstr ""
+"Nije moguće namestiti neposrednu dojavu nove pošte za jedan ili više "
+"sandučića. %s"
+
+#: ../ui/edit-toolbars-dialog.glade.h:1
 msgid "Edit Toolbars"
 msgstr "Uredi alatne trake"
 
-#: ui/edit-toolbars.glade.h:2
+#: ../ui/edit-toolbars-dialog.glade.h:2
 msgid "_Add a New Toolbar"
 msgstr "_Dodaj novu alatnu traku"
 
-#: ui/edit-toolbars.glade.h:3
+#: ../ui/edit-toolbars-dialog.glade.h:3
+#: ../ui/mailbox-properties-dialog.glade.h:4
 msgid "_Use Default"
 msgstr "_Koristi podrazumevano"
 
-#: ui/mailbox-properties.glade.h:1
-msgid "_Mailbox type:"
+#: ../ui/mail-summary-popup.glade.h:1
+msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
+msgstr "<span weight=\"bold\">Sažetak poruka</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:1 ../ui/properties-dialog.glade.h:4
+msgid "<span weight=\"bold\">General</span>"
+msgstr "<span weight=\"bold\">Opšte</span>"
+
+#: ../ui/mailbox-properties-dialog.glade.h:2
+msgid "Mailbox _name:"
+msgstr "_Ime sandučeta:"
+
+#: ../ui/mailbox-properties-dialog.glade.h:3
+msgid "Mailbox _type:"
 msgstr "_Vrsta sandučeta:"
 
-#: ui/properties.glade.h:1
+#: ../ui/properties-dialog.glade.h:1
 msgid "<span weight=\"bold\">Commands</span>"
 msgstr "<span weight=\"bold\">Naredbe</span>"
 
-#: ui/properties.glade.h:2
+#: ../ui/properties-dialog.glade.h:2
 msgid "<span weight=\"bold\">Double-click Action</span>"
 msgstr "<span weight=\"bold\">Naredba za dupli klik</span>"
 
-#: ui/properties.glade.h:3
+#: ../ui/properties-dialog.glade.h:3
 msgid "<span weight=\"bold\">Fonts</span>"
 msgstr "<span weight=\"bold\">Pisma</span>"
 
-#: ui/properties.glade.h:4
-msgid "<span weight=\"bold\">General</span>"
-msgstr "<span weight=\"bold\">Opšte</span>"
-
-#: ui/properties.glade.h:5
+#: ../ui/properties-dialog.glade.h:5
 msgid "<span weight=\"bold\">Mailbox List</span>"
 msgstr "<span weight=\"bold\">Sandučići</span>"
 
-#: ui/properties.glade.h:6
+#: ../ui/properties-dialog.glade.h:6
 msgid "<span weight=\"bold\">Position</span>"
 msgstr "<span weight=\"bold\">Mesto</span>"
 
-#: ui/properties.glade.h:7
+#: ../ui/properties-dialog.glade.h:7
 msgid "Co_ntents:"
 msgstr "_Sadržaj:"
 
-#: ui/properties.glade.h:8
+#: ../ui/properties-dialog.glade.h:8
 msgid "Dis_play mail summary in tooltip"
 msgstr "Prikaži prozor sa sažetkom poruka u oblačiću"
 
-#: ui/properties.glade.h:9
+#: ../ui/properties-dialog.glade.h:9
 msgid "General"
 msgstr "Opšte"
 
-#: ui/properties.glade.h:10
-msgid "Hori_zontal offset:"
-msgstr "Hori_zontalni pomak:"
-
-#: ui/properties.glade.h:11
-msgid "Mail Notification Properties"
-msgstr "Postavke za dojavu"
-
-#: ui/properties.glade.h:12
+#: ../ui/properties-dialog.glade.h:11
 msgid "Mail Summary Popup"
 msgstr "Sažetak poruka"
 
-#: ui/properties.glade.h:13
+#: ../ui/properties-dialog.glade.h:12
 msgid "Mailboxes"
 msgstr "Sandučići"
 
-#: ui/properties.glade.h:14
+#: ../ui/properties-dialog.glade.h:13
 msgid "Only display _recent mail"
 msgstr "Prikaži samo skorašnje poruke"
 
-#: ui/properties.glade.h:15
-msgid "P_osition:"
-msgstr "_Mesto:"
-
-#: ui/properties.glade.h:16
-msgid "The amount of time to wait before closing the mail summary popup"
-msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka"
-
-#: ui/properties.glade.h:17
-msgid "The amount of time to wait between mail checks"
-msgstr "Pauza između dve uzastopne provere"
-
-#: ui/properties.glade.h:18
-msgid "The command to run to launch the mail reader"
-msgstr "Naredba za pokretanje čitača pošte"
-
-#: ui/properties.glade.h:19
-msgid "The command to run when all mail is read"
-msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
-
-#: ui/properties.glade.h:20
-msgid "The command to run when new mail arrives"
-msgstr "Naredba koja se pokreće kada stiže nova pošta"
-
-#: ui/properties.glade.h:21
-msgid ""
-"The number of pixels to leave between the left or right side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
-"prozora sa sažetkom poruka"
-
-#: ui/properties.glade.h:22
-msgid ""
-"The number of pixels to leave between the top or bottom side of the screen "
-"and the mail summary popup"
-msgstr ""
-"Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
-"sažetkom poruka"
-
-#: ui/properties.glade.h:23
+#: ../ui/properties-dialog.glade.h:14
 msgid "Use these _fonts:"
 msgstr "Koristi ova _pisma:"
 
-#: ui/properties.glade.h:24
-msgid "When _all mail is read:"
-msgstr "Kada je s_va pošta pročitana:"
+#: ../ui/properties-dialog.glade.h:15
+msgid "When _all mail has been read:"
+msgstr "Kada je _sva pošta pročitana:"
 
-#: ui/properties.glade.h:25
+#: ../ui/properties-dialog.glade.h:16
 msgid "When _new mail arrives:"
 msgstr "Kada _stigne nova pošta:"
 
-#: ui/properties.glade.h:26
-msgid "Whether the status icon should blink on errors or not"
-msgstr "Da li statusna sličica treperi pri greškama ili ne"
-
-#: ui/properties.glade.h:27
-msgid "Whether to automatically close the mail summary popup or not"
-msgstr ""
-"Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom poruka"
-
-#: ui/properties.glade.h:28
-msgid "Whether to display the mail summary in the status icon tooltip or not"
-msgstr "Da li treba ili ne treba prikazivati sažetak poruka u oblačiću"
-
-#: ui/properties.glade.h:29
-msgid "Whether to display the mail summary popup when new mail arrives or not"
-msgstr ""
-"Da li treba ili ne treba prikazivati sažetak poruka kada stigne nova pošta"
-
-#: ui/properties.glade.h:30
-msgid "Whether to hide previously displayed mail or not"
-msgstr "Da li treba prikazivati prethodno prikazane poruke ili ne"
-
-#: ui/properties.glade.h:31
-msgid "Whether to run a command when all mail is read or not"
-msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
-
-#: ui/properties.glade.h:32
-msgid "Whether to run a command when new mail arrives or not"
-msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
-
-#: ui/properties.glade.h:33
-msgid "Whether to set a mail reader or not"
-msgstr "Da li treba postaviti čitač pošte"
-
-#: ui/properties.glade.h:34
-msgid ""
-"Whether to start Mail Notification when you log into your GNOME session or "
-"not"
-msgstr "Da li pokrenuti dojavu pošte kada se prijavite na sistem"
-
-#: ui/properties.glade.h:35
+#: ../ui/properties-dialog.glade.h:17
 msgid "_Automatically close after:"
 msgstr "_Automatski zatvori posle:"
 
-#: ui/properties.glade.h:36
+#: ../ui/properties-dialog.glade.h:18
 msgid "_Blink on errors"
 msgstr "_Treperi pri greškama"
 
-#: ui/properties.glade.h:37
+#: ../ui/properties-dialog.glade.h:19
 msgid "_Delay between mail checks:"
 msgstr "_Pauza između provera:"
 
-#: ui/properties.glade.h:38
+#: ../ui/properties-dialog.glade.h:20
+msgid "_Display a Test Popup"
+msgstr "Prikaži probno prozorče"
+
+#: ../ui/properties-dialog.glade.h:21
 msgid "_Display the main window"
 msgstr "_Prikaži glavni prozor"
 
-#: ui/properties.glade.h:39
+#: ../ui/properties-dialog.glade.h:22
 msgid "_Enable mail summary popup"
 msgstr "Dozvoli prikaz sažetka poruka"
 
-#: ui/properties.glade.h:40
+#: ../ui/properties-dialog.glade.h:23
+msgid "_Horizontal offset:"
+msgstr "_Horizontalni pomak:"
+
+#: ../ui/properties-dialog.glade.h:24
 msgid "_Launch the mail reader"
 msgstr "P_okreni čitač pošte"
 
-#: ui/properties.glade.h:41
+#: ../ui/properties-dialog.glade.h:25
 msgid "_Mail reader:"
 msgstr "_Čitač pošte:"
 
-#: ui/properties.glade.h:42
+#: ../ui/properties-dialog.glade.h:26
+msgid "_Position:"
+msgstr "_Mesto:"
+
+#: ../ui/properties-dialog.glade.h:27
 msgid "_Start Mail Notification on GNOME login"
 msgstr "Pokreni _dojavu pri prijavi"
 
-#: ui/properties.glade.h:43
+#: ../ui/properties-dialog.glade.h:28
 msgid "_Title:"
 msgstr "_Naslov:"
 
-#: ui/properties.glade.h:44
+#: ../ui/properties-dialog.glade.h:29
 msgid "_Update the mail status"
 msgstr "_Osveži podatke o pošti"
 
-#: ui/properties.glade.h:45
+#: ../ui/properties-dialog.glade.h:30
 msgid "_Use fonts from theme"
 msgstr "Koristi pisma iz _teme"
 
-#: ui/properties.glade.h:46
+#: ../ui/properties-dialog.glade.h:31
 msgid "_Vertical offset:"
 msgstr "_Vertikalni pomak:"
 
-#: ui/properties.glade.h:47
+#: ../ui/properties-dialog.glade.h:32
 msgid "minutes"
 msgstr "minuta"
 
-#: ui/properties.glade.h:48
+#: ../ui/properties-dialog.glade.h:33
 msgid "pixels"
 msgstr "tačaka"
 
-#: ui/properties.glade.h:49
+#: ../ui/properties-dialog.glade.h:34
 msgid "seconds"
 msgstr "sekundi"
 
-#: ui/summary-popup.glade.h:1
-msgid "<span size=\"larger\" weight=\"bold\">Mail Summary</span>"
-msgstr "<span weight=\"bold\">Sažetak poruka</span>"
+#~ msgid "Has already been run"
+#~ msgstr "Već je pokrenut"
 
-#: 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 need 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> (or on some systems <span weight=\"bold\">Applications → Preferences → "
-"More Preferences → Mail Notification</span>)."
-msgstr ""
-"<span weight=\"bold\" size=\"larger\">Prvo pokretanje</span>\n"
-"\n"
-"Program za dojavu pošte je uspešno pokrenut.\n"
-"\n"
-"Pošto ste program za dojavu pošte prvi put pokrenuli, verovatno želite i da "
-"ga podesite.\n"
-"\n"
-"Pažnja: ova poruka se ubuduće neće prikazivati. Da biste podesili dojavu "
-"pošte, izaberite stavku Programi <span weight=\"bold\">Programi</span> → "
-"<span weight=\"bold\">Postavke okruženja</span> → <span weight=\"bold"
-"\">Dojava pošte</span> (ili na nekim sistemima <span weight=\"bold"
-"\">Programi → Postavke → Još postavki → Dojava pošte</span>)."
+#~ msgid "Mailbox list"
+#~ msgstr "Spisak sandučića"
+
+#~ msgid "The list of mailboxes to monitor."
+#~ msgstr "Spisak sandučića koji se prate."
+
+#~ msgid "Whether Mail Notification has already been run or not."
+#~ msgstr "Da li je program pokretan pre ili nije."
+
+#~ msgid ""
+#~ "Drag an item onto the toolbars above to add it, from the toolbars in the "
+#~ "items table to remove it."
+#~ msgstr ""
+#~ "Prevucite stavku na alatnu traku kako biste je dodali, ili sa alatne "
+#~ "trake u tabelu, kako biste je uklonili."
+
+# The email of the translator goes here
+#~ msgid "Jean-Yves Lefort <jylefort@brutele.be>"
+#~ msgstr "Filip Miletić <filmil@gmail.com>"
 
-#: ui/welcome.glade.h:8
-msgid "_Configure Mail Notification"
-msgstr "_Podesi dojavu pošte"
+#~ msgid ""
+#~ "<span weight=\"bold\" size=\"larger\">Mail Notification requires a "
+#~ "password</span>\n"
+#~ "\n"
+#~ "%s"
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Dojava pošte zahteva da upišete "
+#~ "lozinku</span>\n"
+#~ "\n"
+#~ "%s"
 
-#: ui/welcome.glade.h:9
-msgid "_Skip configuration"
-msgstr "P_reskoči podešavanja"
+#~ msgid "The URI of the mailbox"
+#~ msgstr "URI oznaka poštanskog sandučega"
+
+#~ msgid "Whether the image is blinking or not"
+#~ msgstr "Da li slika treperi ili ne"
 
 #~ msgid "received non-ASCII data from server"
 #~ msgstr "server je poslao znake koji ne spadaju u skup ASKRI"
 
+#~ msgid ""
+#~ "the server sent a SASL challenge, but there was a pending initial SASL "
+#~ "client response"
+#~ msgstr ""
+#~ "server je započeo SASL razgovor, ali odgovor od klijenta stigao pre toga"
+
+#~ msgid ""
+#~ "the server did not send a SASL challenge, but there was no pending "
+#~ "initial SASL client response"
+#~ msgstr ""
+#~ "server nije poslao SASL razgovor, ali nije bilo ni odgovora od klijenta."
+
+#~ msgid "Your Gmail username"
+#~ msgstr "Vaš nalog na servisu Gmail"
+
+#~ msgid ""
+#~ "Your Gmail password (if left blank, you will be prompted for the password "
+#~ "when needed)"
+#~ msgstr ""
+#~ "Vaša lozinka na servisu Gmail (ako ne upišete lozinku, program će Vas "
+#~ "zamoliti da je unesete kada to bude potrebno)"
+
+#~ msgid "libsoup has not been compiled with SSL/TLS support"
+#~ msgstr "libsoup nije izgrađen sa podrškom za SSL/TLS"
+
+#~ msgid "unable to parse URI \"%s\""
+#~ msgstr "nije moguće obraditi URI \"%s\""
+
+#~ msgid "received non-UTF-8 data from server"
+#~ msgstr "server je poslao znake koji ne spadaju u skup UTF-8"
+
+#~ msgid "unable to transfer data: %s"
+#~ msgstr "ne mogu da preuzmem podatke: %s"
+
+#~ msgid "logging in"
+#~ msgstr "prijava u toku"
+
+#~ msgid "login failed"
+#~ msgstr "prijava nije uspela"
+
+#~ msgid "searching for unread mail"
+#~ msgstr "tražim novu poštu"
+
+#~ msgid "unable to initialize the ICU library"
+#~ msgstr "ne može se pokrenuti ICU biblioteka"
+
+#~ msgid "unable to parse Gmail data"
+#~ msgstr "ne mogu da obradim podatke sa servisa Gmail"
+
+#~ msgid "unable to open calendar: %s"
+#~ msgstr "nije moguće otvoriti kalendar: %s"
+
+#~ msgid "unable to set calendar time: %s"
+#~ msgstr "nije moguće postaviti vreme iz kalendara: %s"
+
+#~ msgid "unable to get calendar time: %s"
+#~ msgstr "nije moguće dobaviti vreme iz kalendara: %s"
+
+#~ msgid "U_se idle mode if possible"
+#~ msgstr "K_oristi vreme dokolice, ako je moguće"
+
+#~ msgid "The hostname or IP address of the IMAP server"
+#~ msgstr "Ime ili IP broj IMAP servera"
+
+#~ msgid "Your username on the IMAP server"
+#~ msgstr "Vaše ime na IMAP serveru"
+
+#~ msgid ""
+#~ "Your password on the IMAP server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Vaša lozinka na IMAP serveru (ako ne upišete lozinku, program će Vas "
+#~ "zamoliti da je unesete kada to bude potrebno)"
+
+#~ msgid "The port number of the IMAP server"
+#~ msgstr "Broj porta na IMAP serveru"
+
+#~ msgid "If possible, whether to use idle mode or not"
+#~ msgstr "Da li treba koristiti vreme dokolice ili ne"
+
+#~ msgid "Label"
+#~ msgstr "Oznaka"
+
+#~ msgid "The marked up text to show in the type combo box"
+#~ msgstr "Označeni tekst koji se pojavljuje u oznaci tipa"
+
+#~ msgid "Size group"
+#~ msgstr "Veličina grupe"
+
+#~ msgid "A GtkSizeGroup for aligning control labels"
+#~ msgstr "GtkSizeGroup za uravnanje kontrolnih oznaka"
+
+#~ msgid "Complete"
+#~ msgstr "Gotovo"
+
+#~ msgid "Whether the properties are completely filled or not"
+#~ msgstr "Da li su postavke sasvim popunjene ili ne"
+
+#~ msgid "Format"
+#~ msgstr "Format"
+
+#~ msgid "The mailbox is already in the list."
+#~ msgstr "Sanduče je već u spisku."
+
+#~ msgid "The mailbox URI"
+#~ msgstr "URI oznaka za sanduče"
+
+#~ msgid "The mailbox human-readable name"
+#~ msgstr "Ime sandučeta"
+
+#~ msgid "Whether the mailbox has to be polled or not"
+#~ msgstr "Da li se ovo sanduče ručno proverava ili ne"
+
+#~ msgid "The list of new and unread MNMessage objects"
+#~ msgstr "Spisak novih i nepročitanih MNMessage objekata"
+
+#~ msgid "The mailbox error, if any"
+#~ msgstr "Greška u pristupu sandučetu, ako postoji"
+
+#~ msgid "unable to enable immediate notification: %s"
+#~ msgstr "Nije moguće namestiti neposrednu dojavu nove pošte: %s"
+
+#~ msgid "Whether one or more of the mailboxes has to be polled"
+#~ msgstr ""
+#~ "Pokazuje da li postoji bar jedno sanduče koje mora da se učestalo "
+#~ "proverava"
+
+#~ msgid "%s is unsupported: %s"
+#~ msgstr "%s nije podržan: %s"
+
+#~ msgid "Gmail timestamps"
+#~ msgstr "GMAIL vremenski pečat"
+
+#~ msgid "Report the mail status"
+#~ msgstr "Proveri poštu"
+
+#~ msgid ""
+#~ "Bonobo could not locate the GNOME_MailNotification_Automation.server "
+#~ "file. Please check your Mail Notification installation."
+#~ msgstr ""
+#~ "Bonobo nije uspeo da pronađe objekat za automatizaciju. Proverite "
+#~ "instalaciju programa za dojavu pošte. (Prim. prev: usled greške u "
+#~ "programu Bonobo u Gnomu 2.6, kada instalirate program za obaveštenja, "
+#~ "treba da se odjavite i ponovo prijavite na sistem da bi sve počelo da "
+#~ "radi)"
+
+#~ msgid "error while reading .mh_sequences: %s"
+#~ msgstr "greška pri čitanju datoteke .mh_sequences: %s"
+
+#~ msgid "unable to open .mh_sequences: %s"
+#~ msgstr "nije moguće otvoriti datoteku .mh_sequences: %s"
+
+#~ msgid "detecting"
+#~ msgstr "istražujem"
+
+#~ msgid "The hostname or IP address of the POP3 server"
+#~ msgstr "Ime ili IP broj POP3 servera"
+
+#~ msgid "Your username on the POP3 server"
+#~ msgstr "Vaše ime na  POP3 serveru"
+
+#~ msgid ""
+#~ "Your password on the POP3 server (if left blank, you will be prompted for "
+#~ "the password when needed)"
+#~ msgstr ""
+#~ "Vaša lozinka na POP3 serveru (ako ne upišete lozinku, program će Vas "
+#~ "zamoliti da je unesete kada to bude potrebno)"
+
+#~ msgid "The port number of the POP3 server"
+#~ msgstr "Broj porta na POP3 serveru"
+
+#~ msgid "Unsupported Mailboxes"
+#~ msgstr "Nepodržani sandučići"
+
+#~ msgid "unable to parse proxy URI \"%s\""
+#~ msgstr "nije moguće obraditi zastupnički URI ?%s?"
+
+#~ msgid "The reason why the mailbox is unsupported"
+#~ msgstr "Razlog zašto sanduče nije podržano"
+
+#~ msgid "unsupported"
+#~ msgstr "nije podržano"
+
+#~ msgid "received an invalid URI list"
+#~ msgstr "primljen je neispravan spisak URI oznaka"
+
+#~ msgid "received an invalid Mozilla URL"
+#~ msgstr "primljen je neispravan Mozilin URL"
+
+#~ msgid "_Authenticate"
+#~ msgstr "Prijavi se"
+
+#~ msgid "The amount of time to wait before closing the mail summary popup"
+#~ msgstr "Pauza pre zatvaranja prozora sa sažetkom poruka"
+
+#~ msgid "The amount of time to wait between mail checks"
+#~ msgstr "Pauza između dve uzastopne provere"
+
+#~ msgid "The command to run to launch the mail reader"
+#~ msgstr "Naredba za pokretanje čitača pošte"
+
+#~ msgid "The command to run when all mail is read"
+#~ msgstr "Naredba koja se pokreće kada je sva pošta pročitana"
+
+#~ msgid "The command to run when new mail arrives"
+#~ msgstr "Naredba koja se pokreće kada stiže nova pošta"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the left or right side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Broj tačaka koje treba ostaviti između leve, odn. desne strane ekrana i "
+#~ "prozora sa sažetkom poruka"
+
+#~ msgid ""
+#~ "The number of pixels to leave between the top or bottom side of the "
+#~ "screen and the mail summary popup"
+#~ msgstr ""
+#~ "Broj tačaka koje treba ostaviti između vrha, odn. dna ekrana i prozora sa "
+#~ "sažetkom poruka"
+
+#~ msgid "Whether the status icon should blink on errors or not"
+#~ msgstr "Da li statusna sličica treperi pri greškama ili ne"
+
+#~ msgid "Whether to automatically close the mail summary popup or not"
+#~ msgstr ""
+#~ "Da li treba ili ne treba automatski zatvoriti prozor sa sažetkom poruka"
+
+#~ msgid ""
+#~ "Whether to display the mail summary in the status icon tooltip or not"
+#~ msgstr "Da li treba ili ne treba prikazivati sažetak poruka u oblačiću"
+
+#~ msgid ""
+#~ "Whether to display the mail summary popup when new mail arrives or not"
+#~ msgstr ""
+#~ "Da li treba ili ne treba prikazivati sažetak poruka kada stigne nova pošta"
+
+#~ msgid "Whether to hide previously displayed mail or not"
+#~ msgstr "Da li treba prikazivati prethodno prikazane poruke ili ne"
+
+#~ msgid "Whether to run a command when all mail is read or not"
+#~ msgstr "Da li se pokreće ili ne pokreće komanda kada je sva pošta pročitana"
+
+#~ msgid "Whether to run a command when new mail arrives or not"
+#~ msgstr "Da li se pokreće komanda kada stigne pošta ili ne"
+
+#~ msgid "Whether to set a mail reader or not"
+#~ msgstr "Da li treba postaviti čitač pošte"
+
+#~ msgid ""
+#~ "Whether to start Mail Notification when you log into your GNOME session "
+#~ "or not"
+#~ msgstr "Da li pokrenuti dojavu pošte kada se prijavite na sistem"
+
+#~ 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 need 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> (or on some systems <span weight=\"bold"
+#~ "\">Applications → Preferences → More Preferences → Mail Notification</"
+#~ "span>)."
+#~ msgstr ""
+#~ "<span weight=\"bold\" size=\"larger\">Prvo pokretanje</span>\n"
+#~ "\n"
+#~ "Program za dojavu pošte je uspešno pokrenut.\n"
+#~ "\n"
+#~ "Pošto ste program za dojavu pošte prvi put pokrenuli, verovatno želite i "
+#~ "da ga podesite.\n"
+#~ "\n"
+#~ "Pažnja: ova poruka se ubuduće neće prikazivati. Da biste podesili dojavu "
+#~ "pošte, izaberite stavku Programi <span weight=\"bold\">Programi</span> → "
+#~ "<span weight=\"bold\">Postavke okruženja</span> → <span weight=\"bold"
+#~ "\">Dojava pošte</span> (ili na nekim sistemima <span weight=\"bold"
+#~ "\">Programi → Postavke → Još postavki → Dojava pošte</span>)."
+
+#~ msgid "_Configure Mail Notification"
+#~ msgstr "_Podesi dojavu pošte"
+
+#~ msgid "_Skip configuration"
+#~ msgstr "P_reskoči podešavanja"
+
 #~ msgid "Use a custom font for the contents of the mail summary popup"
 #~ msgstr "Koristi posebno pismo za sadržaj prozora sa sažetkom poruka"
 
@@ -2041,12 +2299,6 @@ msgstr "P_reskoči podešavanja"
 #~ "Da li treba ili ne treba koristiti posebno pismo za naslov prozora sa "
 #~ "sažetkom poruka"
 
-#~ msgid "The following mailbox has new mail:\n"
-#~ msgid_plural "The following mailboxes have new mail:\n"
-#~ msgstr[0] "Sanduče sa novom poštom:\n"
-#~ msgstr[1] "Sandučići sa novom poštom:\n"
-#~ msgstr[2] "Sandučići sa novom poštom:\n"
-
 #~ msgid "The following mailbox reported an error:\n"
 #~ msgid_plural "The following mailboxes reported an error:\n"
 #~ msgstr[0] "Ovo sanduče ima grešku:\n"
@@ -2087,9 +2339,6 @@ msgstr "P_reskoči podešavanja"
 #~ msgid "Your password on the POP3 server"
 #~ msgstr "Vaša lozinka na POP3 serveru"
 
-#~ msgid "A command error has occurred"
-#~ msgstr "Došlo je do greške u komandama"
-
 #~ msgid "Unable to execute double-clicked command: %s."
 #~ msgstr "Nije moguće izvršiti komandu na dvostruki klik: %s."
 
diff --git a/src/GNOME_MailNotification.idl b/src/GNOME_MailNotification.idl
@@ -0,0 +1,35 @@
+/* 
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Bonobo.idl>
+
+module GNOME 
+{
+  module MailNotification
+  {
+    interface Automation : Bonobo::Unknown 
+    {
+      void update ();
+      void displayMainWindow ();
+      void displayProperties ();
+      void displayAbout ();
+      void closePopup ();
+      void quit ();
+    };
+  };
+};
diff --git a/src/GNOME_MailNotification_Evolution.idl b/src/GNOME_MailNotification_Evolution.idl
@@ -0,0 +1,50 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <Bonobo.idl>
+
+module GNOME
+{
+  module MailNotification
+  {
+    module Evolution
+    {
+      typedef unsigned long time_t;
+
+      struct Message 
+      {
+	time_t	sent_time;
+	string	id;
+	string	from;
+	string	subject;
+      };
+      typedef sequence<Message> MessageSeq;
+
+      interface Glue : Bonobo::Unknown
+      {
+	exception FolderNotFound {};
+
+	MessageSeq getUnseenMessages (in string folder_uri)
+	  raises (FolderNotFound);
+
+	string getFolderName (in string folder_uri)
+	  raises (FolderNotFound);
+      };
+    };
+  };
+};
diff --git a/src/MNAutomation.idl b/src/MNAutomation.idl
@@ -1,33 +0,0 @@
-/* 
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <Bonobo.idl>
-
-module GNOME 
-{
-  interface MNAutomation : Bonobo::Unknown 
-  {
-    void update ();
-    void report (out string report);
-    void displayMainWindow ();
-    void displayProperties ();
-    void displayAbout ();
-    void closePopup ();
-    void quit ();
-  };
-};
diff --git a/src/Makefile.am b/src/Makefile.am
@@ -1,27 +1,27 @@
 bin_PROGRAMS = mail-notification
 
 if WITH_MBOX
-mbox_gob_sources = mn-mbox-mailbox.gob
+mbox_gob_sources = mn-mbox-mailbox-backend.gob
 mbox_gob_built_sources = \
-	mn-mbox-mailbox-private.h	\
-	mn-mbox-mailbox.c		\
-	mn-mbox-mailbox.h
+	mn-mbox-mailbox-backend-private.h	\
+	mn-mbox-mailbox-backend.c		\
+	mn-mbox-mailbox-backend.h
 endif
 
 if WITH_MH
-mh_gob_sources = mn-mh-mailbox.gob
+mh_gob_sources = mn-mh-mailbox-backend.gob
 mh_gob_built_sources = \
-	mn-mh-mailbox-private.h		\
-	mn-mh-mailbox.c			\
-	mn-mh-mailbox.h
+	mn-mh-mailbox-backend-private.h		\
+	mn-mh-mailbox-backend.c			\
+	mn-mh-mailbox-backend.h
 endif
 
 if WITH_MAILDIR
-maildir_gob_sources = mn-maildir-mailbox.gob
+maildir_gob_sources = mn-maildir-mailbox-backend.gob
 maildir_gob_built_sources = \
-	mn-maildir-mailbox-private.h	\
-	mn-maildir-mailbox.c		\
-	mn-maildir-mailbox.h
+	mn-maildir-mailbox-backend-private.h	\
+	mn-maildir-mailbox-backend.c		\
+	mn-maildir-mailbox-backend.h
 endif
 
 if WITH_POP3
@@ -55,31 +55,39 @@ if WITH_POP3_OR_IMAP
 client_session_sources = mn-client-session.c mn-client-session.h
 pi_gob_sources = \
 	mn-auth-combo-box.gob			\
-	mn-pi-mailbox-properties.gob
+	mn-pi-mailbox-properties.gob		\
+	mn-pi-mailbox.gob
 pi_gob_built_sources = \
-	mn-auth-combo-box-private.h		\
-	mn-auth-combo-box.c			\
-	mn-auth-combo-box.h			\
-	mn-pi-mailbox-properties-private.h	\
-	mn-pi-mailbox-properties.c		\
-	mn-pi-mailbox-properties.h
+	mn-auth-combo-box-private.h			\
+	mn-auth-combo-box.c				\
+	mn-auth-combo-box.h				\
+	mn-pi-mailbox-properties-private.h		\
+	mn-pi-mailbox-properties.c			\
+	mn-pi-mailbox-properties.h			\
+	mn-pi-mailbox-private.h				\
+	mn-pi-mailbox.c					\
+	mn-pi-mailbox.h
 endif
 
 if WITH_POP3_OR_IMAP_OR_GMAIL
 authenticated_mailbox_gob_sources = \
+	mn-authenticated-mailbox-properties.gob	\
 	mn-authenticated-mailbox.gob
 authenticated_mailbox_gob_built_sources = \
-	mn-authenticated-mailbox-private.h	\
-	mn-authenticated-mailbox.c		\
+	mn-authenticated-mailbox-properties-private.h	\
+	mn-authenticated-mailbox-properties.c		\
+	mn-authenticated-mailbox-properties.h		\
+	mn-authenticated-mailbox-private.h		\
+	mn-authenticated-mailbox.c			\
 	mn-authenticated-mailbox.h
 endif
 
 if WITH_SYLPHEED
-sylpheed_gob_sources = mn-sylpheed-mailbox.gob
+sylpheed_gob_sources = mn-sylpheed-mailbox-backend.gob
 sylpheed_gob_built_sources = \
-	mn-sylpheed-mailbox-private.h	\
-	mn-sylpheed-mailbox.c		\
-	mn-sylpheed-mailbox.h
+	mn-sylpheed-mailbox-backend-private.h	\
+	mn-sylpheed-mailbox-backend.c		\
+	mn-sylpheed-mailbox-backend.h
 endif
 
 if WITH_GMAIL
@@ -93,17 +101,39 @@ gmail_gob_built_sources = \
 	mn-gmail-mailbox-private.h		\
 	mn-gmail-mailbox.c			\
 	mn-gmail-mailbox.h
-gmail_sources = \
-	mn-sgml-ref.c	\
-	mn-sgml-ref.h	\
-	mn-soup.c	\
-	mn-soup.h
-gmail_built_sources = \
-	mn-sgml-entities.h
-
-if WITH_GMAIL_TIMESTAMPS
-icu_sources = mn-icu.c mn-icu.h
 endif
+
+if WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED
+vfs_mailbox_gob_sources = \
+	mn-custom-vfs-mailbox.gob		\
+	mn-system-vfs-mailbox-properties.gob	\
+	mn-system-vfs-mailbox.gob		\
+	mn-vfs-mailbox-backend.gob 		\
+	mn-vfs-mailbox.gob
+vfs_mailbox_gob_built_sources = \
+	mn-custom-vfs-mailbox-private.h			\
+	mn-custom-vfs-mailbox.c				\
+	mn-custom-vfs-mailbox.h				\
+	mn-system-vfs-mailbox-properties-private.h	\
+	mn-system-vfs-mailbox-properties.c		\
+	mn-system-vfs-mailbox-properties.h		\
+	mn-system-vfs-mailbox-private.h			\
+	mn-system-vfs-mailbox.c				\
+	mn-system-vfs-mailbox.h				\
+	mn-vfs-mailbox-backend-private.h		\
+	mn-vfs-mailbox-backend.c			\
+	mn-vfs-mailbox-backend.h			\
+	mn-vfs-mailbox-private.h			\
+	mn-vfs-mailbox.c				\
+	mn-vfs-mailbox.h
+endif
+
+if WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION
+reentrant_mailbox_gob_sources = mn-reentrant-mailbox.gob
+reentrant_mailbox_gob_built_sources = \
+	mn-reentrant-mailbox-private.h	\
+	mn-reentrant-mailbox.c		\
+	mn-reentrant-mailbox.h
 endif
 
 if WITH_MIME
@@ -126,12 +156,67 @@ if WITH_SASL
 sasl_sources = mn-sasl.c mn-sasl.h
 endif
 
-idl_sources = MNAutomation.idl
+if WITH_EVOLUTION
+evolution_plugin_eplug = org-gnome-mail-notification.eplug
+
+evolution_shared_sources = mn-evolution.h
+
+evolution_shared_idl_sources = GNOME_MailNotification_Evolution.idl
+evolution_shared_idl_built_sources = \
+	GNOME_MailNotification_Evolution-common.c	\
+	GNOME_MailNotification_Evolution-stubs.c	\
+	GNOME_MailNotification_Evolution-skels.c	\
+	GNOME_MailNotification_Evolution.h
+
+evolution_plugin_gob_sources = mn-evolution-glue.gob
+evolution_plugin_gob_built_sources = \
+	mn-evolution-glue-private.h	\
+	mn-evolution-glue.c		\
+	mn-evolution-glue.h
+
+evolution_gob_sources = \
+	mn-corba-object.gob			\
+	mn-evolution-mailbox-properties.gob	\
+	mn-evolution-mailbox.gob
+evolution_gob_built_sources = \
+	mn-corba-object-private.h			\
+	mn-corba-object.c				\
+	mn-corba-object.h				\
+	mn-evolution-mailbox-properties-private.h	\
+	mn-evolution-mailbox-properties.c		\
+	mn-evolution-mailbox-properties.h		\
+	mn-evolution-mailbox-private.h			\
+	mn-evolution-mailbox.c				\
+	mn-evolution-mailbox.h
+
+evolution_plugin_DATA = $(evolution_plugin_eplug)
+evolution_plugin_LTLIBRARIES = liborg-gnome-mail-notification.la
+
+nodist_liborg_gnome_mail_notification_la_SOURCES = \
+	$(evolution_shared_idl_built_sources)
+liborg_gnome_mail_notification_la_SOURCES = \
+	$(evolution_shared_sources)		\
+	$(evolution_shared_idl_sources)		\
+	$(evolution_plugin_gob_sources)		\
+	$(evolution_plugin_gob_built_sources)	\
+	mn-evolution-folder-tree-control.c	\
+	mn-evolution-folder-tree-control.h	\
+	mn-evolution-plugin.c
+
+liborg_gnome_mail_notification_la_CPPFLAGS = $(WARN_CFLAGS) \
+	-I$(top_srcdir) \
+	-DG_LOG_DOMAIN="\"$(PACKAGE)\"" \
+	$(EVOLUTION_PLUGIN_CFLAGS)
+liborg_gnome_mail_notification_la_LDFLAGS = -avoid-version -module $(EVOLUTION_PLUGIN_LIBS)
+endif
+
+idl_sources = $(evolution_shared_idl_sources) GNOME_MailNotification.idl
 idl_built_sources = \
-	MNAutomation-common.c			\
-	MNAutomation-stubs.c			\
-	MNAutomation-skels.c			\
-	MNAutomation.h
+	$(evolution_shared_idl_built_sources)	\
+	GNOME_MailNotification-common.c		\
+	GNOME_MailNotification-stubs.c		\
+	GNOME_MailNotification-skels.c		\
+	GNOME_MailNotification.h
 
 gob_sources = \
 	$(mbox_gob_sources)			\
@@ -143,23 +228,28 @@ gob_sources = \
 	$(pi_gob_sources)			\
 	$(sylpheed_gob_sources)			\
 	$(gmail_gob_sources)			\
+	$(evolution_gob_sources)		\
+	$(vfs_mailbox_gob_sources)		\
+	$(reentrant_mailbox_gob_sources)	\
 	$(mime_gob_sources)			\
 	mn-about-dialog.gob			\
 	mn-autodetect-mailbox-properties.gob	\
 	mn-automation.gob			\
 	mn-blinking-image.gob			\
+	mn-dialog.gob				\
 	mn-mail-icon.gob			\
+	mn-mail-summary-popup.gob		\
+	mn-mailbox-properties-dialog.gob	\
+	mn-mailbox-properties.gob		\
 	mn-mailbox-view.gob			\
 	mn-mailbox.gob				\
 	mn-mailboxes.gob			\
+	mn-main-window.gob			\
 	mn-message-view.gob			\
 	mn-message.gob				\
-	mn-pending-mailbox.gob			\
+	mn-properties-dialog.gob		\
 	mn-shell.gob				\
-	mn-system-mailbox-properties.gob	\
-	mn-tooltips.gob				\
-	mn-unsupported-mailbox.gob		\
-	mn-uri.gob
+	mn-tooltips.gob
 gob_built_sources = \
 	$(mbox_gob_built_sources)			\
 	$(mh_gob_built_sources)				\
@@ -170,6 +260,9 @@ gob_built_sources = \
 	$(pi_gob_built_sources)				\
 	$(sylpheed_gob_built_sources)			\
 	$(gmail_gob_built_sources)			\
+	$(evolution_gob_built_sources)			\
+	$(vfs_mailbox_gob_built_sources)		\
+	$(reentrant_mailbox_gob_built_sources)		\
 	$(mime_gob_built_sources)			\
 	mn-about-dialog-private.h			\
 	mn-about-dialog.c				\
@@ -183,9 +276,21 @@ gob_built_sources = \
 	mn-blinking-image-private.h			\
 	mn-blinking-image.c				\
 	mn-blinking-image.h				\
+	mn-dialog-private.h				\
+	mn-dialog.c					\
+	mn-dialog.h					\
 	mn-mail-icon-private.h				\
 	mn-mail-icon.c					\
 	mn-mail-icon.h					\
+	mn-mail-summary-popup-private.h			\
+	mn-mail-summary-popup.c				\
+	mn-mail-summary-popup.h				\
+	mn-mailbox-properties-dialog-private.h		\
+	mn-mailbox-properties-dialog.c			\
+	mn-mailbox-properties-dialog.h			\
+	mn-mailbox-properties-private.h			\
+	mn-mailbox-properties.c				\
+	mn-mailbox-properties.h				\
 	mn-mailbox-view-private.h			\
 	mn-mailbox-view.c				\
 	mn-mailbox-view.h				\
@@ -195,30 +300,24 @@ gob_built_sources = \
 	mn-mailboxes-private.h				\
 	mn-mailboxes.c					\
 	mn-mailboxes.h					\
+	mn-main-window-private.h			\
+	mn-main-window.c				\
+	mn-main-window.h				\
 	mn-message-view-private.h			\
 	mn-message-view.c				\
 	mn-message-view.h				\
 	mn-message-private.h				\
 	mn-message.c					\
 	mn-message.h					\
-	mn-pending-mailbox-private.h			\
-	mn-pending-mailbox.c				\
-	mn-pending-mailbox.h				\
+	mn-properties-dialog-private.h			\
+	mn-properties-dialog.c				\
+	mn-properties-dialog.h				\
 	mn-shell-private.h				\
 	mn-shell.c					\
 	mn-shell.h					\
-	mn-system-mailbox-properties-private.h		\
-	mn-system-mailbox-properties.c			\
-	mn-system-mailbox-properties.h			\
 	mn-tooltips-private.h				\
 	mn-tooltips.c					\
-	mn-tooltips.h					\
-	mn-unsupported-mailbox-private.h		\
-	mn-unsupported-mailbox.c			\
-	mn-unsupported-mailbox.h			\
-	mn-uri-private.h				\
-	mn-uri.c					\
-	mn-uri.h
+	mn-tooltips.h
 
 egg_built_sources = \
 	eggmarshalers.c	\
@@ -230,14 +329,12 @@ mail_notification_SOURCES = \
 	$(gob_sources)				\
 	$(gob_built_sources)			\
 	$(egg_built_sources)			\
-	$(gmail_sources)			\
-	$(gmail_built_sources)			\
 	$(md5_sources)				\
 	$(client_session_sources)		\
 	$(ssl_sources)				\
 	$(sasl_sources)				\
 	$(mime_sources)				\
-	$(icu_sources)				\
+	$(evolution_shared_sources)		\
 	egg-editable-toolbar.c			\
 	egg-editable-toolbar.h			\
 	egg-toolbar-editor.c			\
@@ -248,32 +345,22 @@ mail_notification_SOURCES = \
 	eggtrayicon.h				\
 	mn-conf.c				\
 	mn-conf.h				\
-	mn-mailbox-properties-dialog.c		\
-	mn-mailbox-properties-dialog.h		\
-	mn-mailbox-properties-util.c		\
-	mn-mailbox-properties-util.h		\
-	mn-mailbox-properties.c			\
-	mn-mailbox-properties.h			\
-	mn-main-window.c			\
-	mn-main-window.h			\
 	mn-main.c				\
-	mn-properties-dialog.c			\
-	mn-properties-dialog.h			\
 	mn-stock.c				\
 	mn-stock.h				\
-	mn-summary-popup.c			\
-	mn-summary-popup.h			\
 	mn-util.c				\
 	mn-util.h				\
 	mn-vfs.c				\
-	mn-vfs.h
+	mn-vfs.h				\
+	nautilus-cell-renderer-pixbuf-emblem.c	\
+	nautilus-cell-renderer-pixbuf-emblem.h
 BUILT_SOURCES = \
+	$(evolution_plugin_gob_built_sources)	\
 	$(idl_built_sources)			\
 	$(gob_built_sources)			\
-	$(egg_built_sources)			\
-	$(gmail_built_sources)
+	$(egg_built_sources)
 
-AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) $(ICU_CFLAGS) \
+mail_notification_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) \
 	-I$(top_srcdir) \
 	-DPREFIX="\"$(prefix)\"" \
 	-DSYSCONFDIR="\"$(sysconfdir)\"" \
@@ -283,22 +370,19 @@ AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OP
 	-DGNOMEPIXMAPSDIR="\"$(datadir)/pixmaps\"" \
 	-DUIDIR="\"$(pkgdatadir)/ui\"" \
 	-DG_LOG_DOMAIN="\"$(PACKAGE)\""
-AM_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS) $(ICU_LIBS)
+mail_notification_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
 
-CLEANFILES = $(idl_built_sources)
-MAINTAINERCLEANFILES = $(gob_built_sources) $(egg_built_sources) $(gmail_built_sources)
+CLEANFILES = $(evolution_plugin_eplug) $(idl_built_sources)
+MAINTAINERCLEANFILES = $(evolution_plugin_gob_built_sources) $(gob_built_sources) $(egg_built_sources)
 
-entity_sets = xhtml-lat1.ent xhtml-special.ent xhtml-symbol.ent
-EXTRA_DIST = ent2h.sh $(entity_sets) eggmarshalers.list
+EXTRA_DIST = eggmarshalers.list org-gnome-mail-notification.eplug.in
 
 %.c %.h %-private.h: %.gob
 	$(GOB2) --always-private-header --exit-on-warn $<
+
 %-common.c %-stubs.c %-skels.c %.h: %.idl $(ORBIT_IDL)
 	$(ORBIT_IDL) -I$(LIBBONOBO_IDL) -I$(BONOBO_ACTIVATION_IDL) $<
 
-mn-sgml-entities.h: ent2h.sh $(entity_sets)
-	./ent2h.sh $(entity_sets) > $@
-
 eggmarshalers.h: eggmarshalers.list
 	cd $(srcdir) \
 	&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --header > xgen-emh \
@@ -310,3 +394,6 @@ eggmarshalers.c: eggmarshalers.list
 	&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --body > xgen-emc \
 	&& cp xgen-emc eggmarshalers.c \
 	&& rm -f xgen-emc xgen-emc~
+
+%.eplug: %.eplug.in
+	sed -e 's|\@PLUGINDIR\@|$(evolution_plugindir)|' $< > $@
diff --git a/src/Makefile.in b/src/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-SOURCES = $(mail_notification_SOURCES) $(nodist_mail_notification_SOURCES)
+
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -36,146 +36,237 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 bin_PROGRAMS = mail-notification$(EXEEXT)
 subdir = src
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
-am__installdirs = "$(DESTDIR)$(bindir)"
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(evolution_plugindir)" \
+	"$(DESTDIR)$(bindir)" "$(DESTDIR)$(evolution_plugindir)"
+evolution_pluginLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(evolution_plugin_LTLIBRARIES)
+liborg_gnome_mail_notification_la_LIBADD =
+am__liborg_gnome_mail_notification_la_SOURCES_DIST = mn-evolution.h \
+	GNOME_MailNotification_Evolution.idl mn-evolution-glue.gob \
+	mn-evolution-glue-private.h mn-evolution-glue.c \
+	mn-evolution-glue.h mn-evolution-folder-tree-control.c \
+	mn-evolution-folder-tree-control.h mn-evolution-plugin.c
+am__objects_1 =
+@WITH_EVOLUTION_TRUE@am__objects_2 = liborg_gnome_mail_notification_la-mn-evolution-glue.lo
+@WITH_EVOLUTION_TRUE@am_liborg_gnome_mail_notification_la_OBJECTS =  \
+@WITH_EVOLUTION_TRUE@	$(am__objects_1) $(am__objects_1) \
+@WITH_EVOLUTION_TRUE@	$(am__objects_1) $(am__objects_2) \
+@WITH_EVOLUTION_TRUE@	liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo \
+@WITH_EVOLUTION_TRUE@	liborg_gnome_mail_notification_la-mn-evolution-plugin.lo
+@WITH_EVOLUTION_TRUE@am__objects_3 = liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo \
+@WITH_EVOLUTION_TRUE@	liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo \
+@WITH_EVOLUTION_TRUE@	liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo
+@WITH_EVOLUTION_TRUE@nodist_liborg_gnome_mail_notification_la_OBJECTS =  \
+@WITH_EVOLUTION_TRUE@	$(am__objects_3)
+liborg_gnome_mail_notification_la_OBJECTS =  \
+	$(am_liborg_gnome_mail_notification_la_OBJECTS) \
+	$(nodist_liborg_gnome_mail_notification_la_OBJECTS)
+@WITH_EVOLUTION_TRUE@am_liborg_gnome_mail_notification_la_rpath =  \
+@WITH_EVOLUTION_TRUE@	-rpath $(evolution_plugindir)
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
-am__mail_notification_SOURCES_DIST = MNAutomation.idl \
-	mn-mbox-mailbox.gob mn-mh-mailbox.gob mn-maildir-mailbox.gob \
+am__mail_notification_SOURCES_DIST =  \
+	GNOME_MailNotification_Evolution.idl \
+	GNOME_MailNotification.idl mn-mbox-mailbox-backend.gob \
+	mn-mh-mailbox-backend.gob mn-maildir-mailbox-backend.gob \
 	mn-pop3-mailbox-properties.gob mn-pop3-mailbox.gob \
 	mn-imap-mailbox-properties.gob mn-imap-mailbox.gob \
+	mn-authenticated-mailbox-properties.gob \
 	mn-authenticated-mailbox.gob mn-auth-combo-box.gob \
-	mn-pi-mailbox-properties.gob mn-sylpheed-mailbox.gob \
+	mn-pi-mailbox-properties.gob mn-pi-mailbox.gob \
+	mn-sylpheed-mailbox-backend.gob \
 	mn-gmail-mailbox-properties.gob mn-gmail-mailbox.gob \
-	mn-gmime-stream-vfs.gob mn-about-dialog.gob \
-	mn-autodetect-mailbox-properties.gob mn-automation.gob \
-	mn-blinking-image.gob mn-mail-icon.gob mn-mailbox-view.gob \
-	mn-mailbox.gob mn-mailboxes.gob mn-message-view.gob \
-	mn-message.gob mn-pending-mailbox.gob mn-shell.gob \
-	mn-system-mailbox-properties.gob mn-tooltips.gob \
-	mn-unsupported-mailbox.gob mn-uri.gob \
-	mn-mbox-mailbox-private.h mn-mbox-mailbox.c mn-mbox-mailbox.h \
-	mn-mh-mailbox-private.h mn-mh-mailbox.c mn-mh-mailbox.h \
-	mn-maildir-mailbox-private.h mn-maildir-mailbox.c \
-	mn-maildir-mailbox.h mn-pop3-mailbox-properties-private.h \
+	mn-corba-object.gob mn-evolution-mailbox-properties.gob \
+	mn-evolution-mailbox.gob mn-custom-vfs-mailbox.gob \
+	mn-system-vfs-mailbox-properties.gob mn-system-vfs-mailbox.gob \
+	mn-vfs-mailbox-backend.gob mn-vfs-mailbox.gob \
+	mn-reentrant-mailbox.gob mn-gmime-stream-vfs.gob \
+	mn-about-dialog.gob mn-autodetect-mailbox-properties.gob \
+	mn-automation.gob mn-blinking-image.gob mn-dialog.gob \
+	mn-mail-icon.gob mn-mail-summary-popup.gob \
+	mn-mailbox-properties-dialog.gob mn-mailbox-properties.gob \
+	mn-mailbox-view.gob mn-mailbox.gob mn-mailboxes.gob \
+	mn-main-window.gob mn-message-view.gob mn-message.gob \
+	mn-properties-dialog.gob mn-shell.gob mn-tooltips.gob \
+	mn-mbox-mailbox-backend-private.h mn-mbox-mailbox-backend.c \
+	mn-mbox-mailbox-backend.h mn-mh-mailbox-backend-private.h \
+	mn-mh-mailbox-backend.c mn-mh-mailbox-backend.h \
+	mn-maildir-mailbox-backend-private.h \
+	mn-maildir-mailbox-backend.c mn-maildir-mailbox-backend.h \
+	mn-pop3-mailbox-properties-private.h \
 	mn-pop3-mailbox-properties.c mn-pop3-mailbox-properties.h \
 	mn-pop3-mailbox-private.h mn-pop3-mailbox.c mn-pop3-mailbox.h \
 	mn-imap-mailbox-properties-private.h \
 	mn-imap-mailbox-properties.c mn-imap-mailbox-properties.h \
 	mn-imap-mailbox-private.h mn-imap-mailbox.c mn-imap-mailbox.h \
+	mn-authenticated-mailbox-properties-private.h \
+	mn-authenticated-mailbox-properties.c \
+	mn-authenticated-mailbox-properties.h \
 	mn-authenticated-mailbox-private.h mn-authenticated-mailbox.c \
 	mn-authenticated-mailbox.h mn-auth-combo-box-private.h \
 	mn-auth-combo-box.c mn-auth-combo-box.h \
 	mn-pi-mailbox-properties-private.h mn-pi-mailbox-properties.c \
-	mn-pi-mailbox-properties.h mn-sylpheed-mailbox-private.h \
-	mn-sylpheed-mailbox.c mn-sylpheed-mailbox.h \
+	mn-pi-mailbox-properties.h mn-pi-mailbox-private.h \
+	mn-pi-mailbox.c mn-pi-mailbox.h \
+	mn-sylpheed-mailbox-backend-private.h \
+	mn-sylpheed-mailbox-backend.c mn-sylpheed-mailbox-backend.h \
 	mn-gmail-mailbox-properties-private.h \
 	mn-gmail-mailbox-properties.c mn-gmail-mailbox-properties.h \
 	mn-gmail-mailbox-private.h mn-gmail-mailbox.c \
-	mn-gmail-mailbox.h mn-gmime-stream-vfs-private.h \
+	mn-gmail-mailbox.h mn-corba-object-private.h mn-corba-object.c \
+	mn-corba-object.h mn-evolution-mailbox-properties-private.h \
+	mn-evolution-mailbox-properties.c \
+	mn-evolution-mailbox-properties.h \
+	mn-evolution-mailbox-private.h mn-evolution-mailbox.c \
+	mn-evolution-mailbox.h mn-custom-vfs-mailbox-private.h \
+	mn-custom-vfs-mailbox.c mn-custom-vfs-mailbox.h \
+	mn-system-vfs-mailbox-properties-private.h \
+	mn-system-vfs-mailbox-properties.c \
+	mn-system-vfs-mailbox-properties.h \
+	mn-system-vfs-mailbox-private.h mn-system-vfs-mailbox.c \
+	mn-system-vfs-mailbox.h mn-vfs-mailbox-backend-private.h \
+	mn-vfs-mailbox-backend.c mn-vfs-mailbox-backend.h \
+	mn-vfs-mailbox-private.h mn-vfs-mailbox.c mn-vfs-mailbox.h \
+	mn-reentrant-mailbox-private.h mn-reentrant-mailbox.c \
+	mn-reentrant-mailbox.h mn-gmime-stream-vfs-private.h \
 	mn-gmime-stream-vfs.c mn-gmime-stream-vfs.h \
 	mn-about-dialog-private.h mn-about-dialog.c mn-about-dialog.h \
 	mn-autodetect-mailbox-properties-private.h \
 	mn-autodetect-mailbox-properties.c \
 	mn-autodetect-mailbox-properties.h mn-automation-private.h \
 	mn-automation.c mn-automation.h mn-blinking-image-private.h \
-	mn-blinking-image.c mn-blinking-image.h mn-mail-icon-private.h \
-	mn-mail-icon.c mn-mail-icon.h mn-mailbox-view-private.h \
+	mn-blinking-image.c mn-blinking-image.h mn-dialog-private.h \
+	mn-dialog.c mn-dialog.h mn-mail-icon-private.h mn-mail-icon.c \
+	mn-mail-icon.h mn-mail-summary-popup-private.h \
+	mn-mail-summary-popup.c mn-mail-summary-popup.h \
+	mn-mailbox-properties-dialog-private.h \
+	mn-mailbox-properties-dialog.c mn-mailbox-properties-dialog.h \
+	mn-mailbox-properties-private.h mn-mailbox-properties.c \
+	mn-mailbox-properties.h mn-mailbox-view-private.h \
 	mn-mailbox-view.c mn-mailbox-view.h mn-mailbox-private.h \
 	mn-mailbox.c mn-mailbox.h mn-mailboxes-private.h \
-	mn-mailboxes.c mn-mailboxes.h mn-message-view-private.h \
+	mn-mailboxes.c mn-mailboxes.h mn-main-window-private.h \
+	mn-main-window.c mn-main-window.h mn-message-view-private.h \
 	mn-message-view.c mn-message-view.h mn-message-private.h \
-	mn-message.c mn-message.h mn-pending-mailbox-private.h \
-	mn-pending-mailbox.c mn-pending-mailbox.h mn-shell-private.h \
-	mn-shell.c mn-shell.h mn-system-mailbox-properties-private.h \
-	mn-system-mailbox-properties.c mn-system-mailbox-properties.h \
-	mn-tooltips-private.h mn-tooltips.c mn-tooltips.h \
-	mn-unsupported-mailbox-private.h mn-unsupported-mailbox.c \
-	mn-unsupported-mailbox.h mn-uri-private.h mn-uri.c mn-uri.h \
-	eggmarshalers.c eggmarshalers.h mn-sgml-ref.c mn-sgml-ref.h \
-	mn-soup.c mn-soup.h mn-sgml-entities.h mn-md5.c mn-md5.h \
-	mn-client-session.c mn-client-session.h mn-ssl.c mn-ssl.h \
-	mn-sasl.c mn-sasl.h mn-message-mime.c mn-message-mime.h \
-	mn-icu.c mn-icu.h egg-editable-toolbar.c \
+	mn-message.c mn-message.h mn-properties-dialog-private.h \
+	mn-properties-dialog.c mn-properties-dialog.h \
+	mn-shell-private.h mn-shell.c mn-shell.h mn-tooltips-private.h \
+	mn-tooltips.c mn-tooltips.h eggmarshalers.c eggmarshalers.h \
+	mn-md5.c mn-md5.h mn-client-session.c mn-client-session.h \
+	mn-ssl.c mn-ssl.h mn-sasl.c mn-sasl.h mn-message-mime.c \
+	mn-message-mime.h mn-evolution.h egg-editable-toolbar.c \
 	egg-editable-toolbar.h egg-toolbar-editor.c \
 	egg-toolbar-editor.h egg-toolbars-model.c egg-toolbars-model.h \
-	eggtrayicon.c eggtrayicon.h mn-conf.c mn-conf.h \
-	mn-mailbox-properties-dialog.c mn-mailbox-properties-dialog.h \
-	mn-mailbox-properties-util.c mn-mailbox-properties-util.h \
-	mn-mailbox-properties.c mn-mailbox-properties.h \
-	mn-main-window.c mn-main-window.h mn-main.c \
-	mn-properties-dialog.c mn-properties-dialog.h mn-stock.c \
-	mn-stock.h mn-summary-popup.c mn-summary-popup.h mn-util.c \
-	mn-util.h mn-vfs.c mn-vfs.h
-am__objects_1 =
-am__objects_2 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
+	eggtrayicon.c eggtrayicon.h mn-conf.c mn-conf.h mn-main.c \
+	mn-stock.c mn-stock.h mn-util.c mn-util.h mn-vfs.c mn-vfs.h \
+	nautilus-cell-renderer-pixbuf-emblem.c \
+	nautilus-cell-renderer-pixbuf-emblem.h
+am__objects_4 = $(am__objects_1)
+am__objects_5 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
+	$(am__objects_1) $(am__objects_1) $(am__objects_1) \
 	$(am__objects_1) $(am__objects_1) $(am__objects_1) \
 	$(am__objects_1) $(am__objects_1) $(am__objects_1) \
 	$(am__objects_1)
-@WITH_MBOX_TRUE@am__objects_3 = mn-mbox-mailbox.$(OBJEXT)
-@WITH_MH_TRUE@am__objects_4 = mn-mh-mailbox.$(OBJEXT)
-@WITH_MAILDIR_TRUE@am__objects_5 = mn-maildir-mailbox.$(OBJEXT)
-@WITH_POP3_TRUE@am__objects_6 = mn-pop3-mailbox-properties.$(OBJEXT) \
-@WITH_POP3_TRUE@	mn-pop3-mailbox.$(OBJEXT)
-@WITH_IMAP_TRUE@am__objects_7 = mn-imap-mailbox-properties.$(OBJEXT) \
-@WITH_IMAP_TRUE@	mn-imap-mailbox.$(OBJEXT)
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@am__objects_8 = mn-authenticated-mailbox.$(OBJEXT)
-@WITH_POP3_OR_IMAP_TRUE@am__objects_9 = mn-auth-combo-box.$(OBJEXT) \
-@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.$(OBJEXT)
-@WITH_SYLPHEED_TRUE@am__objects_10 = mn-sylpheed-mailbox.$(OBJEXT)
-@WITH_GMAIL_TRUE@am__objects_11 =  \
-@WITH_GMAIL_TRUE@	mn-gmail-mailbox-properties.$(OBJEXT) \
-@WITH_GMAIL_TRUE@	mn-gmail-mailbox.$(OBJEXT)
-@WITH_MIME_TRUE@am__objects_12 = mn-gmime-stream-vfs.$(OBJEXT)
-am__objects_13 = $(am__objects_3) $(am__objects_4) $(am__objects_5) \
-	$(am__objects_6) $(am__objects_7) $(am__objects_8) \
+@WITH_MBOX_TRUE@am__objects_6 = mail_notification-mn-mbox-mailbox-backend.$(OBJEXT)
+@WITH_MH_TRUE@am__objects_7 = mail_notification-mn-mh-mailbox-backend.$(OBJEXT)
+@WITH_MAILDIR_TRUE@am__objects_8 = mail_notification-mn-maildir-mailbox-backend.$(OBJEXT)
+@WITH_POP3_TRUE@am__objects_9 = mail_notification-mn-pop3-mailbox-properties.$(OBJEXT) \
+@WITH_POP3_TRUE@	mail_notification-mn-pop3-mailbox.$(OBJEXT)
+@WITH_IMAP_TRUE@am__objects_10 = mail_notification-mn-imap-mailbox-properties.$(OBJEXT) \
+@WITH_IMAP_TRUE@	mail_notification-mn-imap-mailbox.$(OBJEXT)
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@am__objects_11 = mail_notification-mn-authenticated-mailbox-properties.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mail_notification-mn-authenticated-mailbox.$(OBJEXT)
+@WITH_POP3_OR_IMAP_TRUE@am__objects_12 = mail_notification-mn-auth-combo-box.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_TRUE@	mail_notification-mn-pi-mailbox-properties.$(OBJEXT) \
+@WITH_POP3_OR_IMAP_TRUE@	mail_notification-mn-pi-mailbox.$(OBJEXT)
+@WITH_SYLPHEED_TRUE@am__objects_13 = mail_notification-mn-sylpheed-mailbox-backend.$(OBJEXT)
+@WITH_GMAIL_TRUE@am__objects_14 = mail_notification-mn-gmail-mailbox-properties.$(OBJEXT) \
+@WITH_GMAIL_TRUE@	mail_notification-mn-gmail-mailbox.$(OBJEXT)
+@WITH_EVOLUTION_TRUE@am__objects_15 = mail_notification-mn-corba-object.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@	mail_notification-mn-evolution-mailbox-properties.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@	mail_notification-mn-evolution-mailbox.$(OBJEXT)
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@am__objects_16 = mail_notification-mn-custom-vfs-mailbox.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mail_notification-mn-system-vfs-mailbox-properties.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mail_notification-mn-system-vfs-mailbox.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mail_notification-mn-vfs-mailbox-backend.$(OBJEXT) \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mail_notification-mn-vfs-mailbox.$(OBJEXT)
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@am__objects_17 = mail_notification-mn-reentrant-mailbox.$(OBJEXT)
+@WITH_MIME_TRUE@am__objects_18 = mail_notification-mn-gmime-stream-vfs.$(OBJEXT)
+am__objects_19 = $(am__objects_6) $(am__objects_7) $(am__objects_8) \
 	$(am__objects_9) $(am__objects_10) $(am__objects_11) \
-	$(am__objects_12) mn-about-dialog.$(OBJEXT) \
-	mn-autodetect-mailbox-properties.$(OBJEXT) \
-	mn-automation.$(OBJEXT) mn-blinking-image.$(OBJEXT) \
-	mn-mail-icon.$(OBJEXT) mn-mailbox-view.$(OBJEXT) \
-	mn-mailbox.$(OBJEXT) mn-mailboxes.$(OBJEXT) \
-	mn-message-view.$(OBJEXT) mn-message.$(OBJEXT) \
-	mn-pending-mailbox.$(OBJEXT) mn-shell.$(OBJEXT) \
-	mn-system-mailbox-properties.$(OBJEXT) mn-tooltips.$(OBJEXT) \
-	mn-unsupported-mailbox.$(OBJEXT) mn-uri.$(OBJEXT)
-am__objects_14 = eggmarshalers.$(OBJEXT)
-@WITH_GMAIL_TRUE@am__objects_15 = mn-sgml-ref.$(OBJEXT) \
-@WITH_GMAIL_TRUE@	mn-soup.$(OBJEXT)
-@WITH_POP3_TRUE@am__objects_16 = mn-md5.$(OBJEXT)
-@WITH_POP3_OR_IMAP_TRUE@am__objects_17 = mn-client-session.$(OBJEXT)
-@WITH_SSL_TRUE@am__objects_18 = mn-ssl.$(OBJEXT)
-@WITH_SASL_TRUE@am__objects_19 = mn-sasl.$(OBJEXT)
-@WITH_MIME_TRUE@am__objects_20 = mn-message-mime.$(OBJEXT)
-@WITH_GMAIL_TIMESTAMPS_TRUE@@WITH_GMAIL_TRUE@am__objects_21 =  \
-@WITH_GMAIL_TIMESTAMPS_TRUE@@WITH_GMAIL_TRUE@	mn-icu.$(OBJEXT)
-am_mail_notification_OBJECTS = $(am__objects_1) $(am__objects_2) \
-	$(am__objects_13) $(am__objects_14) $(am__objects_15) \
-	$(am__objects_1) $(am__objects_16) $(am__objects_17) \
-	$(am__objects_18) $(am__objects_19) $(am__objects_20) \
-	$(am__objects_21) egg-editable-toolbar.$(OBJEXT) \
-	egg-toolbar-editor.$(OBJEXT) egg-toolbars-model.$(OBJEXT) \
-	eggtrayicon.$(OBJEXT) mn-conf.$(OBJEXT) \
-	mn-mailbox-properties-dialog.$(OBJEXT) \
-	mn-mailbox-properties-util.$(OBJEXT) \
-	mn-mailbox-properties.$(OBJEXT) mn-main-window.$(OBJEXT) \
-	mn-main.$(OBJEXT) mn-properties-dialog.$(OBJEXT) \
-	mn-stock.$(OBJEXT) mn-summary-popup.$(OBJEXT) \
-	mn-util.$(OBJEXT) mn-vfs.$(OBJEXT)
-am__objects_22 = MNAutomation-common.$(OBJEXT) \
-	MNAutomation-stubs.$(OBJEXT) MNAutomation-skels.$(OBJEXT)
-nodist_mail_notification_OBJECTS = $(am__objects_22)
+	$(am__objects_12) $(am__objects_13) $(am__objects_14) \
+	$(am__objects_15) $(am__objects_16) $(am__objects_17) \
+	$(am__objects_18) mail_notification-mn-about-dialog.$(OBJEXT) \
+	mail_notification-mn-autodetect-mailbox-properties.$(OBJEXT) \
+	mail_notification-mn-automation.$(OBJEXT) \
+	mail_notification-mn-blinking-image.$(OBJEXT) \
+	mail_notification-mn-dialog.$(OBJEXT) \
+	mail_notification-mn-mail-icon.$(OBJEXT) \
+	mail_notification-mn-mail-summary-popup.$(OBJEXT) \
+	mail_notification-mn-mailbox-properties-dialog.$(OBJEXT) \
+	mail_notification-mn-mailbox-properties.$(OBJEXT) \
+	mail_notification-mn-mailbox-view.$(OBJEXT) \
+	mail_notification-mn-mailbox.$(OBJEXT) \
+	mail_notification-mn-mailboxes.$(OBJEXT) \
+	mail_notification-mn-main-window.$(OBJEXT) \
+	mail_notification-mn-message-view.$(OBJEXT) \
+	mail_notification-mn-message.$(OBJEXT) \
+	mail_notification-mn-properties-dialog.$(OBJEXT) \
+	mail_notification-mn-shell.$(OBJEXT) \
+	mail_notification-mn-tooltips.$(OBJEXT)
+am__objects_20 = mail_notification-eggmarshalers.$(OBJEXT)
+@WITH_POP3_TRUE@am__objects_21 = mail_notification-mn-md5.$(OBJEXT)
+@WITH_POP3_OR_IMAP_TRUE@am__objects_22 = mail_notification-mn-client-session.$(OBJEXT)
+@WITH_SSL_TRUE@am__objects_23 = mail_notification-mn-ssl.$(OBJEXT)
+@WITH_SASL_TRUE@am__objects_24 = mail_notification-mn-sasl.$(OBJEXT)
+@WITH_MIME_TRUE@am__objects_25 =  \
+@WITH_MIME_TRUE@	mail_notification-mn-message-mime.$(OBJEXT)
+am_mail_notification_OBJECTS = $(am__objects_4) $(am__objects_5) \
+	$(am__objects_19) $(am__objects_20) $(am__objects_21) \
+	$(am__objects_22) $(am__objects_23) $(am__objects_24) \
+	$(am__objects_25) $(am__objects_1) \
+	mail_notification-egg-editable-toolbar.$(OBJEXT) \
+	mail_notification-egg-toolbar-editor.$(OBJEXT) \
+	mail_notification-egg-toolbars-model.$(OBJEXT) \
+	mail_notification-eggtrayicon.$(OBJEXT) \
+	mail_notification-mn-conf.$(OBJEXT) \
+	mail_notification-mn-main.$(OBJEXT) \
+	mail_notification-mn-stock.$(OBJEXT) \
+	mail_notification-mn-util.$(OBJEXT) \
+	mail_notification-mn-vfs.$(OBJEXT) \
+	mail_notification-nautilus-cell-renderer-pixbuf-emblem.$(OBJEXT)
+@WITH_EVOLUTION_TRUE@am__objects_26 = mail_notification-GNOME_MailNotification_Evolution-common.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@	mail_notification-GNOME_MailNotification_Evolution-stubs.$(OBJEXT) \
+@WITH_EVOLUTION_TRUE@	mail_notification-GNOME_MailNotification_Evolution-skels.$(OBJEXT)
+am__objects_27 = $(am__objects_26) \
+	mail_notification-GNOME_MailNotification-common.$(OBJEXT) \
+	mail_notification-GNOME_MailNotification-stubs.$(OBJEXT) \
+	mail_notification-GNOME_MailNotification-skels.$(OBJEXT)
+nodist_mail_notification_OBJECTS = $(am__objects_27)
 mail_notification_OBJECTS = $(am_mail_notification_OBJECTS) \
 	$(nodist_mail_notification_OBJECTS)
 mail_notification_LDADD = $(LDADD)
@@ -184,11 +275,20 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(mail_notification_SOURCES) \
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(liborg_gnome_mail_notification_la_SOURCES) \
+	$(nodist_liborg_gnome_mail_notification_la_SOURCES) \
+	$(mail_notification_SOURCES) \
 	$(nodist_mail_notification_SOURCES)
-DIST_SOURCES = $(am__mail_notification_SOURCES_DIST)
+DIST_SOURCES = $(am__liborg_gnome_mail_notification_la_SOURCES_DIST) \
+	$(am__mail_notification_SOURCES_DIST)
+evolution_pluginDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(evolution_plugin_DATA)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -196,6 +296,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -208,15 +309,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -233,10 +343,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -247,9 +353,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -262,12 +371,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -275,7 +387,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -292,25 +403,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -331,20 +445,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -359,24 +492,28 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
-@WITH_MBOX_TRUE@mbox_gob_sources = mn-mbox-mailbox.gob
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+@WITH_MBOX_TRUE@mbox_gob_sources = mn-mbox-mailbox-backend.gob
 @WITH_MBOX_TRUE@mbox_gob_built_sources = \
-@WITH_MBOX_TRUE@	mn-mbox-mailbox-private.h	\
-@WITH_MBOX_TRUE@	mn-mbox-mailbox.c		\
-@WITH_MBOX_TRUE@	mn-mbox-mailbox.h
+@WITH_MBOX_TRUE@	mn-mbox-mailbox-backend-private.h	\
+@WITH_MBOX_TRUE@	mn-mbox-mailbox-backend.c		\
+@WITH_MBOX_TRUE@	mn-mbox-mailbox-backend.h
 
-@WITH_MH_TRUE@mh_gob_sources = mn-mh-mailbox.gob
+@WITH_MH_TRUE@mh_gob_sources = mn-mh-mailbox-backend.gob
 @WITH_MH_TRUE@mh_gob_built_sources = \
-@WITH_MH_TRUE@	mn-mh-mailbox-private.h		\
-@WITH_MH_TRUE@	mn-mh-mailbox.c			\
-@WITH_MH_TRUE@	mn-mh-mailbox.h
+@WITH_MH_TRUE@	mn-mh-mailbox-backend-private.h		\
+@WITH_MH_TRUE@	mn-mh-mailbox-backend.c			\
+@WITH_MH_TRUE@	mn-mh-mailbox-backend.h
 
-@WITH_MAILDIR_TRUE@maildir_gob_sources = mn-maildir-mailbox.gob
+@WITH_MAILDIR_TRUE@maildir_gob_sources = mn-maildir-mailbox-backend.gob
 @WITH_MAILDIR_TRUE@maildir_gob_built_sources = \
-@WITH_MAILDIR_TRUE@	mn-maildir-mailbox-private.h	\
-@WITH_MAILDIR_TRUE@	mn-maildir-mailbox.c		\
-@WITH_MAILDIR_TRUE@	mn-maildir-mailbox.h
+@WITH_MAILDIR_TRUE@	mn-maildir-mailbox-backend-private.h	\
+@WITH_MAILDIR_TRUE@	mn-maildir-mailbox-backend.c		\
+@WITH_MAILDIR_TRUE@	mn-maildir-mailbox-backend.h
 
 @WITH_POP3_TRUE@pop3_gob_sources = \
 @WITH_POP3_TRUE@	mn-pop3-mailbox-properties.gob	\
@@ -406,29 +543,37 @@ target_alias = @target_alias@
 @WITH_POP3_OR_IMAP_TRUE@client_session_sources = mn-client-session.c mn-client-session.h
 @WITH_POP3_OR_IMAP_TRUE@pi_gob_sources = \
 @WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box.gob			\
-@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.gob
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.gob		\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox.gob
 
 @WITH_POP3_OR_IMAP_TRUE@pi_gob_built_sources = \
-@WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box-private.h		\
-@WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box.c			\
-@WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box.h			\
-@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties-private.h	\
-@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.c		\
-@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.h
+@WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box-private.h			\
+@WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box.c				\
+@WITH_POP3_OR_IMAP_TRUE@	mn-auth-combo-box.h				\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties-private.h		\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.c			\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-properties.h			\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox-private.h				\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox.c					\
+@WITH_POP3_OR_IMAP_TRUE@	mn-pi-mailbox.h
 
 @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authenticated_mailbox_gob_sources = \
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-properties.gob	\
 @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.gob
 
 @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authenticated_mailbox_gob_built_sources = \
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-private.h	\
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.c		\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-properties-private.h	\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-properties.c		\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-properties.h		\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox-private.h		\
+@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.c			\
 @WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@	mn-authenticated-mailbox.h
 
-@WITH_SYLPHEED_TRUE@sylpheed_gob_sources = mn-sylpheed-mailbox.gob
+@WITH_SYLPHEED_TRUE@sylpheed_gob_sources = mn-sylpheed-mailbox-backend.gob
 @WITH_SYLPHEED_TRUE@sylpheed_gob_built_sources = \
-@WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox-private.h	\
-@WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox.c		\
-@WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox.h
+@WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox-backend-private.h	\
+@WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox-backend.c		\
+@WITH_SYLPHEED_TRUE@	mn-sylpheed-mailbox-backend.h
 
 @WITH_GMAIL_TRUE@gmail_gob_sources = \
 @WITH_GMAIL_TRUE@	mn-gmail-mailbox-properties.gob	\
@@ -442,16 +587,36 @@ target_alias = @target_alias@
 @WITH_GMAIL_TRUE@	mn-gmail-mailbox.c			\
 @WITH_GMAIL_TRUE@	mn-gmail-mailbox.h
 
-@WITH_GMAIL_TRUE@gmail_sources = \
-@WITH_GMAIL_TRUE@	mn-sgml-ref.c	\
-@WITH_GMAIL_TRUE@	mn-sgml-ref.h	\
-@WITH_GMAIL_TRUE@	mn-soup.c	\
-@WITH_GMAIL_TRUE@	mn-soup.h
-
-@WITH_GMAIL_TRUE@gmail_built_sources = \
-@WITH_GMAIL_TRUE@	mn-sgml-entities.h
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@vfs_mailbox_gob_sources = \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-custom-vfs-mailbox.gob		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox-properties.gob	\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox.gob		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox-backend.gob 		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox.gob
+
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@vfs_mailbox_gob_built_sources = \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-custom-vfs-mailbox-private.h			\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-custom-vfs-mailbox.c				\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-custom-vfs-mailbox.h				\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox-properties-private.h	\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox-properties.c		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox-properties.h		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox-private.h			\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox.c				\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-system-vfs-mailbox.h				\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox-backend-private.h		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox-backend.c			\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox-backend.h			\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox-private.h			\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox.c				\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@	mn-vfs-mailbox.h
+
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@reentrant_mailbox_gob_sources = mn-reentrant-mailbox.gob
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@reentrant_mailbox_gob_built_sources = \
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@	mn-reentrant-mailbox-private.h	\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@	mn-reentrant-mailbox.c		\
+@WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@	mn-reentrant-mailbox.h
 
-@WITH_GMAIL_TIMESTAMPS_TRUE@@WITH_GMAIL_TRUE@icu_sources = mn-icu.c mn-icu.h
 @WITH_MIME_TRUE@mime_gob_sources = \
 @WITH_MIME_TRUE@	mn-gmime-stream-vfs.gob
 
@@ -466,12 +631,64 @@ target_alias = @target_alias@
 
 @WITH_SSL_TRUE@ssl_sources = mn-ssl.c mn-ssl.h
 @WITH_SASL_TRUE@sasl_sources = mn-sasl.c mn-sasl.h
-idl_sources = MNAutomation.idl
+@WITH_EVOLUTION_TRUE@evolution_plugin_eplug = org-gnome-mail-notification.eplug
+@WITH_EVOLUTION_TRUE@evolution_shared_sources = mn-evolution.h
+@WITH_EVOLUTION_TRUE@evolution_shared_idl_sources = GNOME_MailNotification_Evolution.idl
+@WITH_EVOLUTION_TRUE@evolution_shared_idl_built_sources = \
+@WITH_EVOLUTION_TRUE@	GNOME_MailNotification_Evolution-common.c	\
+@WITH_EVOLUTION_TRUE@	GNOME_MailNotification_Evolution-stubs.c	\
+@WITH_EVOLUTION_TRUE@	GNOME_MailNotification_Evolution-skels.c	\
+@WITH_EVOLUTION_TRUE@	GNOME_MailNotification_Evolution.h
+
+@WITH_EVOLUTION_TRUE@evolution_plugin_gob_sources = mn-evolution-glue.gob
+@WITH_EVOLUTION_TRUE@evolution_plugin_gob_built_sources = \
+@WITH_EVOLUTION_TRUE@	mn-evolution-glue-private.h	\
+@WITH_EVOLUTION_TRUE@	mn-evolution-glue.c		\
+@WITH_EVOLUTION_TRUE@	mn-evolution-glue.h
+
+@WITH_EVOLUTION_TRUE@evolution_gob_sources = \
+@WITH_EVOLUTION_TRUE@	mn-corba-object.gob			\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox-properties.gob	\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox.gob
+
+@WITH_EVOLUTION_TRUE@evolution_gob_built_sources = \
+@WITH_EVOLUTION_TRUE@	mn-corba-object-private.h			\
+@WITH_EVOLUTION_TRUE@	mn-corba-object.c				\
+@WITH_EVOLUTION_TRUE@	mn-corba-object.h				\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox-properties-private.h	\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox-properties.c		\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox-properties.h		\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox-private.h			\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox.c				\
+@WITH_EVOLUTION_TRUE@	mn-evolution-mailbox.h
+
+@WITH_EVOLUTION_TRUE@evolution_plugin_DATA = $(evolution_plugin_eplug)
+@WITH_EVOLUTION_TRUE@evolution_plugin_LTLIBRARIES = liborg-gnome-mail-notification.la
+@WITH_EVOLUTION_TRUE@nodist_liborg_gnome_mail_notification_la_SOURCES = \
+@WITH_EVOLUTION_TRUE@	$(evolution_shared_idl_built_sources)
+
+@WITH_EVOLUTION_TRUE@liborg_gnome_mail_notification_la_SOURCES = \
+@WITH_EVOLUTION_TRUE@	$(evolution_shared_sources)		\
+@WITH_EVOLUTION_TRUE@	$(evolution_shared_idl_sources)		\
+@WITH_EVOLUTION_TRUE@	$(evolution_plugin_gob_sources)		\
+@WITH_EVOLUTION_TRUE@	$(evolution_plugin_gob_built_sources)	\
+@WITH_EVOLUTION_TRUE@	mn-evolution-folder-tree-control.c	\
+@WITH_EVOLUTION_TRUE@	mn-evolution-folder-tree-control.h	\
+@WITH_EVOLUTION_TRUE@	mn-evolution-plugin.c
+
+@WITH_EVOLUTION_TRUE@liborg_gnome_mail_notification_la_CPPFLAGS = $(WARN_CFLAGS) \
+@WITH_EVOLUTION_TRUE@	-I$(top_srcdir) \
+@WITH_EVOLUTION_TRUE@	-DG_LOG_DOMAIN="\"$(PACKAGE)\"" \
+@WITH_EVOLUTION_TRUE@	$(EVOLUTION_PLUGIN_CFLAGS)
+
+@WITH_EVOLUTION_TRUE@liborg_gnome_mail_notification_la_LDFLAGS = -avoid-version -module $(EVOLUTION_PLUGIN_LIBS)
+idl_sources = $(evolution_shared_idl_sources) GNOME_MailNotification.idl
 idl_built_sources = \
-	MNAutomation-common.c			\
-	MNAutomation-stubs.c			\
-	MNAutomation-skels.c			\
-	MNAutomation.h
+	$(evolution_shared_idl_built_sources)	\
+	GNOME_MailNotification-common.c		\
+	GNOME_MailNotification-stubs.c		\
+	GNOME_MailNotification-skels.c		\
+	GNOME_MailNotification.h
 
 gob_sources = \
 	$(mbox_gob_sources)			\
@@ -483,23 +700,28 @@ gob_sources = \
 	$(pi_gob_sources)			\
 	$(sylpheed_gob_sources)			\
 	$(gmail_gob_sources)			\
+	$(evolution_gob_sources)		\
+	$(vfs_mailbox_gob_sources)		\
+	$(reentrant_mailbox_gob_sources)	\
 	$(mime_gob_sources)			\
 	mn-about-dialog.gob			\
 	mn-autodetect-mailbox-properties.gob	\
 	mn-automation.gob			\
 	mn-blinking-image.gob			\
+	mn-dialog.gob				\
 	mn-mail-icon.gob			\
+	mn-mail-summary-popup.gob		\
+	mn-mailbox-properties-dialog.gob	\
+	mn-mailbox-properties.gob		\
 	mn-mailbox-view.gob			\
 	mn-mailbox.gob				\
 	mn-mailboxes.gob			\
+	mn-main-window.gob			\
 	mn-message-view.gob			\
 	mn-message.gob				\
-	mn-pending-mailbox.gob			\
+	mn-properties-dialog.gob		\
 	mn-shell.gob				\
-	mn-system-mailbox-properties.gob	\
-	mn-tooltips.gob				\
-	mn-unsupported-mailbox.gob		\
-	mn-uri.gob
+	mn-tooltips.gob
 
 gob_built_sources = \
 	$(mbox_gob_built_sources)			\
@@ -511,6 +733,9 @@ gob_built_sources = \
 	$(pi_gob_built_sources)				\
 	$(sylpheed_gob_built_sources)			\
 	$(gmail_gob_built_sources)			\
+	$(evolution_gob_built_sources)			\
+	$(vfs_mailbox_gob_built_sources)		\
+	$(reentrant_mailbox_gob_built_sources)		\
 	$(mime_gob_built_sources)			\
 	mn-about-dialog-private.h			\
 	mn-about-dialog.c				\
@@ -524,9 +749,21 @@ gob_built_sources = \
 	mn-blinking-image-private.h			\
 	mn-blinking-image.c				\
 	mn-blinking-image.h				\
+	mn-dialog-private.h				\
+	mn-dialog.c					\
+	mn-dialog.h					\
 	mn-mail-icon-private.h				\
 	mn-mail-icon.c					\
 	mn-mail-icon.h					\
+	mn-mail-summary-popup-private.h			\
+	mn-mail-summary-popup.c				\
+	mn-mail-summary-popup.h				\
+	mn-mailbox-properties-dialog-private.h		\
+	mn-mailbox-properties-dialog.c			\
+	mn-mailbox-properties-dialog.h			\
+	mn-mailbox-properties-private.h			\
+	mn-mailbox-properties.c				\
+	mn-mailbox-properties.h				\
 	mn-mailbox-view-private.h			\
 	mn-mailbox-view.c				\
 	mn-mailbox-view.h				\
@@ -536,30 +773,24 @@ gob_built_sources = \
 	mn-mailboxes-private.h				\
 	mn-mailboxes.c					\
 	mn-mailboxes.h					\
+	mn-main-window-private.h			\
+	mn-main-window.c				\
+	mn-main-window.h				\
 	mn-message-view-private.h			\
 	mn-message-view.c				\
 	mn-message-view.h				\
 	mn-message-private.h				\
 	mn-message.c					\
 	mn-message.h					\
-	mn-pending-mailbox-private.h			\
-	mn-pending-mailbox.c				\
-	mn-pending-mailbox.h				\
+	mn-properties-dialog-private.h			\
+	mn-properties-dialog.c				\
+	mn-properties-dialog.h				\
 	mn-shell-private.h				\
 	mn-shell.c					\
 	mn-shell.h					\
-	mn-system-mailbox-properties-private.h		\
-	mn-system-mailbox-properties.c			\
-	mn-system-mailbox-properties.h			\
 	mn-tooltips-private.h				\
 	mn-tooltips.c					\
-	mn-tooltips.h					\
-	mn-unsupported-mailbox-private.h		\
-	mn-unsupported-mailbox.c			\
-	mn-unsupported-mailbox.h			\
-	mn-uri-private.h				\
-	mn-uri.c					\
-	mn-uri.h
+	mn-tooltips.h
 
 egg_built_sources = \
 	eggmarshalers.c	\
@@ -571,14 +802,12 @@ mail_notification_SOURCES = \
 	$(gob_sources)				\
 	$(gob_built_sources)			\
 	$(egg_built_sources)			\
-	$(gmail_sources)			\
-	$(gmail_built_sources)			\
 	$(md5_sources)				\
 	$(client_session_sources)		\
 	$(ssl_sources)				\
 	$(sasl_sources)				\
 	$(mime_sources)				\
-	$(icu_sources)				\
+	$(evolution_shared_sources)		\
 	egg-editable-toolbar.c			\
 	egg-editable-toolbar.h			\
 	egg-toolbar-editor.c			\
@@ -589,33 +818,23 @@ mail_notification_SOURCES = \
 	eggtrayicon.h				\
 	mn-conf.c				\
 	mn-conf.h				\
-	mn-mailbox-properties-dialog.c		\
-	mn-mailbox-properties-dialog.h		\
-	mn-mailbox-properties-util.c		\
-	mn-mailbox-properties-util.h		\
-	mn-mailbox-properties.c			\
-	mn-mailbox-properties.h			\
-	mn-main-window.c			\
-	mn-main-window.h			\
 	mn-main.c				\
-	mn-properties-dialog.c			\
-	mn-properties-dialog.h			\
 	mn-stock.c				\
 	mn-stock.h				\
-	mn-summary-popup.c			\
-	mn-summary-popup.h			\
 	mn-util.c				\
 	mn-util.h				\
 	mn-vfs.c				\
-	mn-vfs.h
+	mn-vfs.h				\
+	nautilus-cell-renderer-pixbuf-emblem.c	\
+	nautilus-cell-renderer-pixbuf-emblem.h
 
 BUILT_SOURCES = \
+	$(evolution_plugin_gob_built_sources)	\
 	$(idl_built_sources)			\
 	$(gob_built_sources)			\
-	$(egg_built_sources)			\
-	$(gmail_built_sources)
+	$(egg_built_sources)
 
-AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) $(ICU_CFLAGS) \
+mail_notification_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(OPENSSL_CFLAGS) $(SASL_CFLAGS) \
 	-I$(top_srcdir) \
 	-DPREFIX="\"$(prefix)\"" \
 	-DSYSCONFDIR="\"$(sysconfdir)\"" \
@@ -626,16 +845,15 @@ AM_CPPFLAGS = $(WARN_CFLAGS) $(GNOME_CFLAGS) $(GMIME_CFLAGS) $(SOUP_CFLAGS) $(OP
 	-DUIDIR="\"$(pkgdatadir)/ui\"" \
 	-DG_LOG_DOMAIN="\"$(PACKAGE)\""
 
-AM_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(SOUP_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS) $(ICU_LIBS)
-CLEANFILES = $(idl_built_sources)
-MAINTAINERCLEANFILES = $(gob_built_sources) $(egg_built_sources) $(gmail_built_sources)
-entity_sets = xhtml-lat1.ent xhtml-special.ent xhtml-symbol.ent
-EXTRA_DIST = ent2h.sh $(entity_sets) eggmarshalers.list
+mail_notification_LDFLAGS = $(INTLLIBS) $(GNOME_LIBS) $(GMIME_LIBS) $(OPENSSL_LIBS) $(SASL_LIBS)
+CLEANFILES = $(evolution_plugin_eplug) $(idl_built_sources)
+MAINTAINERCLEANFILES = $(evolution_plugin_gob_built_sources) $(gob_built_sources) $(egg_built_sources)
+EXTRA_DIST = eggmarshalers.list org-gnome-mail-notification.eplug.in
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .o .obj
+.SUFFIXES: .c .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -665,16 +883,46 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-evolution_pluginLTLIBRARIES: $(evolution_plugin_LTLIBRARIES)
+	@$(NORMAL_INSTALL)
+	test -z "$(evolution_plugindir)" || $(mkdir_p) "$(DESTDIR)$(evolution_plugindir)"
+	@list='$(evolution_plugin_LTLIBRARIES)'; for p in $$list; do \
+	  if test -f $$p; then \
+	    f=$(am__strip_dir) \
+	    echo " $(LIBTOOL) --mode=install $(evolution_pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(evolution_plugindir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(evolution_pluginLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(evolution_plugindir)/$$f"; \
+	  else :; fi; \
+	done
+
+uninstall-evolution_pluginLTLIBRARIES:
+	@$(NORMAL_UNINSTALL)
+	@set -x; list='$(evolution_plugin_LTLIBRARIES)'; for p in $$list; do \
+	  p=$(am__strip_dir) \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(evolution_plugindir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(evolution_plugindir)/$$p"; \
+	done
+
+clean-evolution_pluginLTLIBRARIES:
+	-test -z "$(evolution_plugin_LTLIBRARIES)" || rm -f $(evolution_plugin_LTLIBRARIES)
+	@list='$(evolution_plugin_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+liborg-gnome-mail-notification.la: $(liborg_gnome_mail_notification_la_OBJECTS) $(liborg_gnome_mail_notification_la_DEPENDENCIES) 
+	$(LINK) $(am_liborg_gnome_mail_notification_la_rpath) $(liborg_gnome_mail_notification_la_LDFLAGS) $(liborg_gnome_mail_notification_la_OBJECTS) $(liborg_gnome_mail_notification_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
 	  if test -f $$p \
+	     || test -f $$p1 \
 	  ; then \
 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
 	  else :; fi; \
 	done
 
@@ -687,7 +935,11 @@ uninstall-binPROGRAMS:
 	done
 
 clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
 mail-notification$(EXEEXT): $(mail_notification_OBJECTS) $(mail_notification_DEPENDENCIES) 
 	@rm -f mail-notification$(EXEEXT)
 	$(LINK) $(mail_notification_LDFLAGS) $(mail_notification_OBJECTS) $(mail_notification_LDADD) $(LIBS)
@@ -698,63 +950,77 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MNAutomation-common.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MNAutomation-skels.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MNAutomation-stubs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egg-editable-toolbar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egg-toolbar-editor.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egg-toolbars-model.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggmarshalers.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eggtrayicon.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-about-dialog.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-auth-combo-box.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-authenticated-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-autodetect-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-automation.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-blinking-image.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-client-session.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-conf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-gmail-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-gmail-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-gmime-stream-vfs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-icu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-imap-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-imap-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mail-icon.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-properties-dialog.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-properties-util.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox-view.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mailboxes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-maildir-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-main-window.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mbox-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-md5.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-mime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message-view.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-message.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-mh-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pending-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pi-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pop3-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-pop3-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-properties-dialog.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sasl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sgml-ref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-shell.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-soup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-ssl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-stock.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-summary-popup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sylpheed-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-system-mailbox-properties.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-tooltips.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-unsupported-mailbox.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-uri.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-util.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-vfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-egg-editable-toolbar.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-egg-toolbar-editor.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-egg-toolbars-model.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-eggmarshalers.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-eggtrayicon.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-about-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-auth-combo-box.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-automation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-blinking-image.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-client-session.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-conf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-corba-object.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-evolution-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-gmail-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-imap-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mail-icon.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mail-summary-popup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mailboxes.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-main-window.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-md5.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-message-mime.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-message-view.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-message.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pi-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-pop3-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-properties-dialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-sasl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-shell.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-ssl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-stock.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-tooltips.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-util.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-vfs-mailbox.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-mn-vfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@@ -769,7 +1035,992 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+liborg_gnome_mail_notification_la-mn-evolution-glue.lo: mn-evolution-glue.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-mn-evolution-glue.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Tpo" -c -o liborg_gnome_mail_notification_la-mn-evolution-glue.lo `test -f 'mn-evolution-glue.c' || echo '$(srcdir)/'`mn-evolution-glue.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-glue.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-glue.c' object='liborg_gnome_mail_notification_la-mn-evolution-glue.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-mn-evolution-glue.lo `test -f 'mn-evolution-glue.c' || echo '$(srcdir)/'`mn-evolution-glue.c
+
+liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo: mn-evolution-folder-tree-control.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Tpo" -c -o liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo `test -f 'mn-evolution-folder-tree-control.c' || echo '$(srcdir)/'`mn-evolution-folder-tree-control.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-folder-tree-control.c' object='liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-mn-evolution-folder-tree-control.lo `test -f 'mn-evolution-folder-tree-control.c' || echo '$(srcdir)/'`mn-evolution-folder-tree-control.c
+
+liborg_gnome_mail_notification_la-mn-evolution-plugin.lo: mn-evolution-plugin.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-mn-evolution-plugin.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Tpo" -c -o liborg_gnome_mail_notification_la-mn-evolution-plugin.lo `test -f 'mn-evolution-plugin.c' || echo '$(srcdir)/'`mn-evolution-plugin.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-mn-evolution-plugin.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-plugin.c' object='liborg_gnome_mail_notification_la-mn-evolution-plugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-mn-evolution-plugin.lo `test -f 'mn-evolution-plugin.c' || echo '$(srcdir)/'`mn-evolution-plugin.c
+
+liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo: GNOME_MailNotification_Evolution-common.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Tpo" -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-common.c' object='liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-common.lo `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c
+
+liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo: GNOME_MailNotification_Evolution-stubs.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Tpo" -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-stubs.c' object='liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-stubs.lo `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c
+
+liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo: GNOME_MailNotification_Evolution-skels.c
+@am__fastdepCC_TRUE@	if $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo -MD -MP -MF "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Tpo" -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Tpo" "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Plo"; else rm -f "$(DEPDIR)/liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-skels.c' object='liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liborg_gnome_mail_notification_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liborg_gnome_mail_notification_la-GNOME_MailNotification_Evolution-skels.lo `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c
+
+mail_notification-mn-mbox-mailbox-backend.o: mn-mbox-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mbox-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" -c -o mail_notification-mn-mbox-mailbox-backend.o `test -f 'mn-mbox-mailbox-backend.c' || echo '$(srcdir)/'`mn-mbox-mailbox-backend.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mbox-mailbox-backend.c' object='mail_notification-mn-mbox-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mbox-mailbox-backend.o `test -f 'mn-mbox-mailbox-backend.c' || echo '$(srcdir)/'`mn-mbox-mailbox-backend.c
+
+mail_notification-mn-mbox-mailbox-backend.obj: mn-mbox-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mbox-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" -c -o mail_notification-mn-mbox-mailbox-backend.obj `if test -f 'mn-mbox-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mbox-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mbox-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mbox-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mbox-mailbox-backend.c' object='mail_notification-mn-mbox-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mbox-mailbox-backend.obj `if test -f 'mn-mbox-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mbox-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mbox-mailbox-backend.c'; fi`
+
+mail_notification-mn-mh-mailbox-backend.o: mn-mh-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mh-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" -c -o mail_notification-mn-mh-mailbox-backend.o `test -f 'mn-mh-mailbox-backend.c' || echo '$(srcdir)/'`mn-mh-mailbox-backend.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mh-mailbox-backend.c' object='mail_notification-mn-mh-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mh-mailbox-backend.o `test -f 'mn-mh-mailbox-backend.c' || echo '$(srcdir)/'`mn-mh-mailbox-backend.c
+
+mail_notification-mn-mh-mailbox-backend.obj: mn-mh-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mh-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" -c -o mail_notification-mn-mh-mailbox-backend.obj `if test -f 'mn-mh-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mh-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mh-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mh-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mh-mailbox-backend.c' object='mail_notification-mn-mh-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mh-mailbox-backend.obj `if test -f 'mn-mh-mailbox-backend.c'; then $(CYGPATH_W) 'mn-mh-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-mh-mailbox-backend.c'; fi`
+
+mail_notification-mn-maildir-mailbox-backend.o: mn-maildir-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-maildir-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" -c -o mail_notification-mn-maildir-mailbox-backend.o `test -f 'mn-maildir-mailbox-backend.c' || echo '$(srcdir)/'`mn-maildir-mailbox-backend.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-maildir-mailbox-backend.c' object='mail_notification-mn-maildir-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-maildir-mailbox-backend.o `test -f 'mn-maildir-mailbox-backend.c' || echo '$(srcdir)/'`mn-maildir-mailbox-backend.c
+
+mail_notification-mn-maildir-mailbox-backend.obj: mn-maildir-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-maildir-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" -c -o mail_notification-mn-maildir-mailbox-backend.obj `if test -f 'mn-maildir-mailbox-backend.c'; then $(CYGPATH_W) 'mn-maildir-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-maildir-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-maildir-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-maildir-mailbox-backend.c' object='mail_notification-mn-maildir-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-maildir-mailbox-backend.obj `if test -f 'mn-maildir-mailbox-backend.c'; then $(CYGPATH_W) 'mn-maildir-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-maildir-mailbox-backend.c'; fi`
+
+mail_notification-mn-pop3-mailbox-properties.o: mn-pop3-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" -c -o mail_notification-mn-pop3-mailbox-properties.o `test -f 'mn-pop3-mailbox-properties.c' || echo '$(srcdir)/'`mn-pop3-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pop3-mailbox-properties.c' object='mail_notification-mn-pop3-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox-properties.o `test -f 'mn-pop3-mailbox-properties.c' || echo '$(srcdir)/'`mn-pop3-mailbox-properties.c
+
+mail_notification-mn-pop3-mailbox-properties.obj: mn-pop3-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" -c -o mail_notification-mn-pop3-mailbox-properties.obj `if test -f 'mn-pop3-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pop3-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pop3-mailbox-properties.c' object='mail_notification-mn-pop3-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox-properties.obj `if test -f 'mn-pop3-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pop3-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox-properties.c'; fi`
+
+mail_notification-mn-pop3-mailbox.o: mn-pop3-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" -c -o mail_notification-mn-pop3-mailbox.o `test -f 'mn-pop3-mailbox.c' || echo '$(srcdir)/'`mn-pop3-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pop3-mailbox.c' object='mail_notification-mn-pop3-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox.o `test -f 'mn-pop3-mailbox.c' || echo '$(srcdir)/'`mn-pop3-mailbox.c
+
+mail_notification-mn-pop3-mailbox.obj: mn-pop3-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pop3-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" -c -o mail_notification-mn-pop3-mailbox.obj `if test -f 'mn-pop3-mailbox.c'; then $(CYGPATH_W) 'mn-pop3-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pop3-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pop3-mailbox.c' object='mail_notification-mn-pop3-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pop3-mailbox.obj `if test -f 'mn-pop3-mailbox.c'; then $(CYGPATH_W) 'mn-pop3-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pop3-mailbox.c'; fi`
+
+mail_notification-mn-imap-mailbox-properties.o: mn-imap-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" -c -o mail_notification-mn-imap-mailbox-properties.o `test -f 'mn-imap-mailbox-properties.c' || echo '$(srcdir)/'`mn-imap-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-imap-mailbox-properties.c' object='mail_notification-mn-imap-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox-properties.o `test -f 'mn-imap-mailbox-properties.c' || echo '$(srcdir)/'`mn-imap-mailbox-properties.c
+
+mail_notification-mn-imap-mailbox-properties.obj: mn-imap-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" -c -o mail_notification-mn-imap-mailbox-properties.obj `if test -f 'mn-imap-mailbox-properties.c'; then $(CYGPATH_W) 'mn-imap-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-imap-mailbox-properties.c' object='mail_notification-mn-imap-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox-properties.obj `if test -f 'mn-imap-mailbox-properties.c'; then $(CYGPATH_W) 'mn-imap-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox-properties.c'; fi`
+
+mail_notification-mn-imap-mailbox.o: mn-imap-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" -c -o mail_notification-mn-imap-mailbox.o `test -f 'mn-imap-mailbox.c' || echo '$(srcdir)/'`mn-imap-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-imap-mailbox.c' object='mail_notification-mn-imap-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox.o `test -f 'mn-imap-mailbox.c' || echo '$(srcdir)/'`mn-imap-mailbox.c
+
+mail_notification-mn-imap-mailbox.obj: mn-imap-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-imap-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" -c -o mail_notification-mn-imap-mailbox.obj `if test -f 'mn-imap-mailbox.c'; then $(CYGPATH_W) 'mn-imap-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-imap-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-imap-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-imap-mailbox.c' object='mail_notification-mn-imap-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-imap-mailbox.obj `if test -f 'mn-imap-mailbox.c'; then $(CYGPATH_W) 'mn-imap-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-imap-mailbox.c'; fi`
+
+mail_notification-mn-authenticated-mailbox-properties.o: mn-authenticated-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" -c -o mail_notification-mn-authenticated-mailbox-properties.o `test -f 'mn-authenticated-mailbox-properties.c' || echo '$(srcdir)/'`mn-authenticated-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-authenticated-mailbox-properties.c' object='mail_notification-mn-authenticated-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox-properties.o `test -f 'mn-authenticated-mailbox-properties.c' || echo '$(srcdir)/'`mn-authenticated-mailbox-properties.c
+
+mail_notification-mn-authenticated-mailbox-properties.obj: mn-authenticated-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" -c -o mail_notification-mn-authenticated-mailbox-properties.obj `if test -f 'mn-authenticated-mailbox-properties.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-authenticated-mailbox-properties.c' object='mail_notification-mn-authenticated-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox-properties.obj `if test -f 'mn-authenticated-mailbox-properties.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox-properties.c'; fi`
+
+mail_notification-mn-authenticated-mailbox.o: mn-authenticated-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" -c -o mail_notification-mn-authenticated-mailbox.o `test -f 'mn-authenticated-mailbox.c' || echo '$(srcdir)/'`mn-authenticated-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-authenticated-mailbox.c' object='mail_notification-mn-authenticated-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox.o `test -f 'mn-authenticated-mailbox.c' || echo '$(srcdir)/'`mn-authenticated-mailbox.c
+
+mail_notification-mn-authenticated-mailbox.obj: mn-authenticated-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-authenticated-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" -c -o mail_notification-mn-authenticated-mailbox.obj `if test -f 'mn-authenticated-mailbox.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-authenticated-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-authenticated-mailbox.c' object='mail_notification-mn-authenticated-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-authenticated-mailbox.obj `if test -f 'mn-authenticated-mailbox.c'; then $(CYGPATH_W) 'mn-authenticated-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-authenticated-mailbox.c'; fi`
+
+mail_notification-mn-auth-combo-box.o: mn-auth-combo-box.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-auth-combo-box.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" -c -o mail_notification-mn-auth-combo-box.o `test -f 'mn-auth-combo-box.c' || echo '$(srcdir)/'`mn-auth-combo-box.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" "$(DEPDIR)/mail_notification-mn-auth-combo-box.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-auth-combo-box.c' object='mail_notification-mn-auth-combo-box.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-auth-combo-box.o `test -f 'mn-auth-combo-box.c' || echo '$(srcdir)/'`mn-auth-combo-box.c
+
+mail_notification-mn-auth-combo-box.obj: mn-auth-combo-box.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-auth-combo-box.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" -c -o mail_notification-mn-auth-combo-box.obj `if test -f 'mn-auth-combo-box.c'; then $(CYGPATH_W) 'mn-auth-combo-box.c'; else $(CYGPATH_W) '$(srcdir)/mn-auth-combo-box.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo" "$(DEPDIR)/mail_notification-mn-auth-combo-box.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-auth-combo-box.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-auth-combo-box.c' object='mail_notification-mn-auth-combo-box.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-auth-combo-box.obj `if test -f 'mn-auth-combo-box.c'; then $(CYGPATH_W) 'mn-auth-combo-box.c'; else $(CYGPATH_W) '$(srcdir)/mn-auth-combo-box.c'; fi`
+
+mail_notification-mn-pi-mailbox-properties.o: mn-pi-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" -c -o mail_notification-mn-pi-mailbox-properties.o `test -f 'mn-pi-mailbox-properties.c' || echo '$(srcdir)/'`mn-pi-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pi-mailbox-properties.c' object='mail_notification-mn-pi-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox-properties.o `test -f 'mn-pi-mailbox-properties.c' || echo '$(srcdir)/'`mn-pi-mailbox-properties.c
+
+mail_notification-mn-pi-mailbox-properties.obj: mn-pi-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" -c -o mail_notification-mn-pi-mailbox-properties.obj `if test -f 'mn-pi-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pi-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pi-mailbox-properties.c' object='mail_notification-mn-pi-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox-properties.obj `if test -f 'mn-pi-mailbox-properties.c'; then $(CYGPATH_W) 'mn-pi-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox-properties.c'; fi`
+
+mail_notification-mn-pi-mailbox.o: mn-pi-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" -c -o mail_notification-mn-pi-mailbox.o `test -f 'mn-pi-mailbox.c' || echo '$(srcdir)/'`mn-pi-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pi-mailbox.c' object='mail_notification-mn-pi-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox.o `test -f 'mn-pi-mailbox.c' || echo '$(srcdir)/'`mn-pi-mailbox.c
+
+mail_notification-mn-pi-mailbox.obj: mn-pi-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-pi-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" -c -o mail_notification-mn-pi-mailbox.obj `if test -f 'mn-pi-mailbox.c'; then $(CYGPATH_W) 'mn-pi-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-pi-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-pi-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-pi-mailbox.c' object='mail_notification-mn-pi-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-pi-mailbox.obj `if test -f 'mn-pi-mailbox.c'; then $(CYGPATH_W) 'mn-pi-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-pi-mailbox.c'; fi`
+
+mail_notification-mn-sylpheed-mailbox-backend.o: mn-sylpheed-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sylpheed-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" -c -o mail_notification-mn-sylpheed-mailbox-backend.o `test -f 'mn-sylpheed-mailbox-backend.c' || echo '$(srcdir)/'`mn-sylpheed-mailbox-backend.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-sylpheed-mailbox-backend.c' object='mail_notification-mn-sylpheed-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sylpheed-mailbox-backend.o `test -f 'mn-sylpheed-mailbox-backend.c' || echo '$(srcdir)/'`mn-sylpheed-mailbox-backend.c
+
+mail_notification-mn-sylpheed-mailbox-backend.obj: mn-sylpheed-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sylpheed-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" -c -o mail_notification-mn-sylpheed-mailbox-backend.obj `if test -f 'mn-sylpheed-mailbox-backend.c'; then $(CYGPATH_W) 'mn-sylpheed-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-sylpheed-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sylpheed-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-sylpheed-mailbox-backend.c' object='mail_notification-mn-sylpheed-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sylpheed-mailbox-backend.obj `if test -f 'mn-sylpheed-mailbox-backend.c'; then $(CYGPATH_W) 'mn-sylpheed-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-sylpheed-mailbox-backend.c'; fi`
+
+mail_notification-mn-gmail-mailbox-properties.o: mn-gmail-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" -c -o mail_notification-mn-gmail-mailbox-properties.o `test -f 'mn-gmail-mailbox-properties.c' || echo '$(srcdir)/'`mn-gmail-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-gmail-mailbox-properties.c' object='mail_notification-mn-gmail-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox-properties.o `test -f 'mn-gmail-mailbox-properties.c' || echo '$(srcdir)/'`mn-gmail-mailbox-properties.c
+
+mail_notification-mn-gmail-mailbox-properties.obj: mn-gmail-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" -c -o mail_notification-mn-gmail-mailbox-properties.obj `if test -f 'mn-gmail-mailbox-properties.c'; then $(CYGPATH_W) 'mn-gmail-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-gmail-mailbox-properties.c' object='mail_notification-mn-gmail-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox-properties.obj `if test -f 'mn-gmail-mailbox-properties.c'; then $(CYGPATH_W) 'mn-gmail-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox-properties.c'; fi`
+
+mail_notification-mn-gmail-mailbox.o: mn-gmail-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" -c -o mail_notification-mn-gmail-mailbox.o `test -f 'mn-gmail-mailbox.c' || echo '$(srcdir)/'`mn-gmail-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-gmail-mailbox.c' object='mail_notification-mn-gmail-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox.o `test -f 'mn-gmail-mailbox.c' || echo '$(srcdir)/'`mn-gmail-mailbox.c
+
+mail_notification-mn-gmail-mailbox.obj: mn-gmail-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmail-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" -c -o mail_notification-mn-gmail-mailbox.obj `if test -f 'mn-gmail-mailbox.c'; then $(CYGPATH_W) 'mn-gmail-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmail-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-gmail-mailbox.c' object='mail_notification-mn-gmail-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmail-mailbox.obj `if test -f 'mn-gmail-mailbox.c'; then $(CYGPATH_W) 'mn-gmail-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmail-mailbox.c'; fi`
+
+mail_notification-mn-corba-object.o: mn-corba-object.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-corba-object.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" -c -o mail_notification-mn-corba-object.o `test -f 'mn-corba-object.c' || echo '$(srcdir)/'`mn-corba-object.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" "$(DEPDIR)/mail_notification-mn-corba-object.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-corba-object.c' object='mail_notification-mn-corba-object.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-corba-object.o `test -f 'mn-corba-object.c' || echo '$(srcdir)/'`mn-corba-object.c
+
+mail_notification-mn-corba-object.obj: mn-corba-object.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-corba-object.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" -c -o mail_notification-mn-corba-object.obj `if test -f 'mn-corba-object.c'; then $(CYGPATH_W) 'mn-corba-object.c'; else $(CYGPATH_W) '$(srcdir)/mn-corba-object.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo" "$(DEPDIR)/mail_notification-mn-corba-object.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-corba-object.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-corba-object.c' object='mail_notification-mn-corba-object.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-corba-object.obj `if test -f 'mn-corba-object.c'; then $(CYGPATH_W) 'mn-corba-object.c'; else $(CYGPATH_W) '$(srcdir)/mn-corba-object.c'; fi`
+
+mail_notification-mn-evolution-mailbox-properties.o: mn-evolution-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" -c -o mail_notification-mn-evolution-mailbox-properties.o `test -f 'mn-evolution-mailbox-properties.c' || echo '$(srcdir)/'`mn-evolution-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-mailbox-properties.c' object='mail_notification-mn-evolution-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox-properties.o `test -f 'mn-evolution-mailbox-properties.c' || echo '$(srcdir)/'`mn-evolution-mailbox-properties.c
+
+mail_notification-mn-evolution-mailbox-properties.obj: mn-evolution-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" -c -o mail_notification-mn-evolution-mailbox-properties.obj `if test -f 'mn-evolution-mailbox-properties.c'; then $(CYGPATH_W) 'mn-evolution-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-mailbox-properties.c' object='mail_notification-mn-evolution-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox-properties.obj `if test -f 'mn-evolution-mailbox-properties.c'; then $(CYGPATH_W) 'mn-evolution-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox-properties.c'; fi`
+
+mail_notification-mn-evolution-mailbox.o: mn-evolution-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" -c -o mail_notification-mn-evolution-mailbox.o `test -f 'mn-evolution-mailbox.c' || echo '$(srcdir)/'`mn-evolution-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-mailbox.c' object='mail_notification-mn-evolution-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox.o `test -f 'mn-evolution-mailbox.c' || echo '$(srcdir)/'`mn-evolution-mailbox.c
+
+mail_notification-mn-evolution-mailbox.obj: mn-evolution-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-evolution-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" -c -o mail_notification-mn-evolution-mailbox.obj `if test -f 'mn-evolution-mailbox.c'; then $(CYGPATH_W) 'mn-evolution-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-evolution-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-evolution-mailbox.c' object='mail_notification-mn-evolution-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-evolution-mailbox.obj `if test -f 'mn-evolution-mailbox.c'; then $(CYGPATH_W) 'mn-evolution-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-evolution-mailbox.c'; fi`
+
+mail_notification-mn-custom-vfs-mailbox.o: mn-custom-vfs-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-custom-vfs-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" -c -o mail_notification-mn-custom-vfs-mailbox.o `test -f 'mn-custom-vfs-mailbox.c' || echo '$(srcdir)/'`mn-custom-vfs-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-custom-vfs-mailbox.c' object='mail_notification-mn-custom-vfs-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-custom-vfs-mailbox.o `test -f 'mn-custom-vfs-mailbox.c' || echo '$(srcdir)/'`mn-custom-vfs-mailbox.c
+
+mail_notification-mn-custom-vfs-mailbox.obj: mn-custom-vfs-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-custom-vfs-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" -c -o mail_notification-mn-custom-vfs-mailbox.obj `if test -f 'mn-custom-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-custom-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-custom-vfs-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-custom-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-custom-vfs-mailbox.c' object='mail_notification-mn-custom-vfs-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-custom-vfs-mailbox.obj `if test -f 'mn-custom-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-custom-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-custom-vfs-mailbox.c'; fi`
+
+mail_notification-mn-system-vfs-mailbox-properties.o: mn-system-vfs-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" -c -o mail_notification-mn-system-vfs-mailbox-properties.o `test -f 'mn-system-vfs-mailbox-properties.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-system-vfs-mailbox-properties.c' object='mail_notification-mn-system-vfs-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox-properties.o `test -f 'mn-system-vfs-mailbox-properties.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox-properties.c
+
+mail_notification-mn-system-vfs-mailbox-properties.obj: mn-system-vfs-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" -c -o mail_notification-mn-system-vfs-mailbox-properties.obj `if test -f 'mn-system-vfs-mailbox-properties.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-system-vfs-mailbox-properties.c' object='mail_notification-mn-system-vfs-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox-properties.obj `if test -f 'mn-system-vfs-mailbox-properties.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox-properties.c'; fi`
+
+mail_notification-mn-system-vfs-mailbox.o: mn-system-vfs-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" -c -o mail_notification-mn-system-vfs-mailbox.o `test -f 'mn-system-vfs-mailbox.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-system-vfs-mailbox.c' object='mail_notification-mn-system-vfs-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox.o `test -f 'mn-system-vfs-mailbox.c' || echo '$(srcdir)/'`mn-system-vfs-mailbox.c
+
+mail_notification-mn-system-vfs-mailbox.obj: mn-system-vfs-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-system-vfs-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" -c -o mail_notification-mn-system-vfs-mailbox.obj `if test -f 'mn-system-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-system-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-system-vfs-mailbox.c' object='mail_notification-mn-system-vfs-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-system-vfs-mailbox.obj `if test -f 'mn-system-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-system-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-system-vfs-mailbox.c'; fi`
+
+mail_notification-mn-vfs-mailbox-backend.o: mn-vfs-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox-backend.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" -c -o mail_notification-mn-vfs-mailbox-backend.o `test -f 'mn-vfs-mailbox-backend.c' || echo '$(srcdir)/'`mn-vfs-mailbox-backend.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-vfs-mailbox-backend.c' object='mail_notification-mn-vfs-mailbox-backend.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox-backend.o `test -f 'mn-vfs-mailbox-backend.c' || echo '$(srcdir)/'`mn-vfs-mailbox-backend.c
+
+mail_notification-mn-vfs-mailbox-backend.obj: mn-vfs-mailbox-backend.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox-backend.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" -c -o mail_notification-mn-vfs-mailbox-backend.obj `if test -f 'mn-vfs-mailbox-backend.c'; then $(CYGPATH_W) 'mn-vfs-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox-backend.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox-backend.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-vfs-mailbox-backend.c' object='mail_notification-mn-vfs-mailbox-backend.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox-backend.obj `if test -f 'mn-vfs-mailbox-backend.c'; then $(CYGPATH_W) 'mn-vfs-mailbox-backend.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox-backend.c'; fi`
+
+mail_notification-mn-vfs-mailbox.o: mn-vfs-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" -c -o mail_notification-mn-vfs-mailbox.o `test -f 'mn-vfs-mailbox.c' || echo '$(srcdir)/'`mn-vfs-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-vfs-mailbox.c' object='mail_notification-mn-vfs-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox.o `test -f 'mn-vfs-mailbox.c' || echo '$(srcdir)/'`mn-vfs-mailbox.c
+
+mail_notification-mn-vfs-mailbox.obj: mn-vfs-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" -c -o mail_notification-mn-vfs-mailbox.obj `if test -f 'mn-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-vfs-mailbox.c' object='mail_notification-mn-vfs-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs-mailbox.obj `if test -f 'mn-vfs-mailbox.c'; then $(CYGPATH_W) 'mn-vfs-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs-mailbox.c'; fi`
+
+mail_notification-mn-reentrant-mailbox.o: mn-reentrant-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-reentrant-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" -c -o mail_notification-mn-reentrant-mailbox.o `test -f 'mn-reentrant-mailbox.c' || echo '$(srcdir)/'`mn-reentrant-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-reentrant-mailbox.c' object='mail_notification-mn-reentrant-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-reentrant-mailbox.o `test -f 'mn-reentrant-mailbox.c' || echo '$(srcdir)/'`mn-reentrant-mailbox.c
+
+mail_notification-mn-reentrant-mailbox.obj: mn-reentrant-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-reentrant-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" -c -o mail_notification-mn-reentrant-mailbox.obj `if test -f 'mn-reentrant-mailbox.c'; then $(CYGPATH_W) 'mn-reentrant-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-reentrant-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-reentrant-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-reentrant-mailbox.c' object='mail_notification-mn-reentrant-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-reentrant-mailbox.obj `if test -f 'mn-reentrant-mailbox.c'; then $(CYGPATH_W) 'mn-reentrant-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-reentrant-mailbox.c'; fi`
+
+mail_notification-mn-gmime-stream-vfs.o: mn-gmime-stream-vfs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmime-stream-vfs.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" -c -o mail_notification-mn-gmime-stream-vfs.o `test -f 'mn-gmime-stream-vfs.c' || echo '$(srcdir)/'`mn-gmime-stream-vfs.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-gmime-stream-vfs.c' object='mail_notification-mn-gmime-stream-vfs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmime-stream-vfs.o `test -f 'mn-gmime-stream-vfs.c' || echo '$(srcdir)/'`mn-gmime-stream-vfs.c
+
+mail_notification-mn-gmime-stream-vfs.obj: mn-gmime-stream-vfs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-gmime-stream-vfs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" -c -o mail_notification-mn-gmime-stream-vfs.obj `if test -f 'mn-gmime-stream-vfs.c'; then $(CYGPATH_W) 'mn-gmime-stream-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmime-stream-vfs.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-gmime-stream-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-gmime-stream-vfs.c' object='mail_notification-mn-gmime-stream-vfs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-gmime-stream-vfs.obj `if test -f 'mn-gmime-stream-vfs.c'; then $(CYGPATH_W) 'mn-gmime-stream-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-gmime-stream-vfs.c'; fi`
+
+mail_notification-mn-about-dialog.o: mn-about-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-about-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" -c -o mail_notification-mn-about-dialog.o `test -f 'mn-about-dialog.c' || echo '$(srcdir)/'`mn-about-dialog.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-about-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-about-dialog.c' object='mail_notification-mn-about-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-about-dialog.o `test -f 'mn-about-dialog.c' || echo '$(srcdir)/'`mn-about-dialog.c
+
+mail_notification-mn-about-dialog.obj: mn-about-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-about-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" -c -o mail_notification-mn-about-dialog.obj `if test -f 'mn-about-dialog.c'; then $(CYGPATH_W) 'mn-about-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-about-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-about-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-about-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-about-dialog.c' object='mail_notification-mn-about-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-about-dialog.obj `if test -f 'mn-about-dialog.c'; then $(CYGPATH_W) 'mn-about-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-about-dialog.c'; fi`
+
+mail_notification-mn-autodetect-mailbox-properties.o: mn-autodetect-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-autodetect-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" -c -o mail_notification-mn-autodetect-mailbox-properties.o `test -f 'mn-autodetect-mailbox-properties.c' || echo '$(srcdir)/'`mn-autodetect-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-autodetect-mailbox-properties.c' object='mail_notification-mn-autodetect-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-autodetect-mailbox-properties.o `test -f 'mn-autodetect-mailbox-properties.c' || echo '$(srcdir)/'`mn-autodetect-mailbox-properties.c
+
+mail_notification-mn-autodetect-mailbox-properties.obj: mn-autodetect-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-autodetect-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" -c -o mail_notification-mn-autodetect-mailbox-properties.obj `if test -f 'mn-autodetect-mailbox-properties.c'; then $(CYGPATH_W) 'mn-autodetect-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-autodetect-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-autodetect-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-autodetect-mailbox-properties.c' object='mail_notification-mn-autodetect-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-autodetect-mailbox-properties.obj `if test -f 'mn-autodetect-mailbox-properties.c'; then $(CYGPATH_W) 'mn-autodetect-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-autodetect-mailbox-properties.c'; fi`
+
+mail_notification-mn-automation.o: mn-automation.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-automation.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-automation.Tpo" -c -o mail_notification-mn-automation.o `test -f 'mn-automation.c' || echo '$(srcdir)/'`mn-automation.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-automation.Tpo" "$(DEPDIR)/mail_notification-mn-automation.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-automation.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-automation.c' object='mail_notification-mn-automation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-automation.o `test -f 'mn-automation.c' || echo '$(srcdir)/'`mn-automation.c
+
+mail_notification-mn-automation.obj: mn-automation.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-automation.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-automation.Tpo" -c -o mail_notification-mn-automation.obj `if test -f 'mn-automation.c'; then $(CYGPATH_W) 'mn-automation.c'; else $(CYGPATH_W) '$(srcdir)/mn-automation.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-automation.Tpo" "$(DEPDIR)/mail_notification-mn-automation.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-automation.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-automation.c' object='mail_notification-mn-automation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-automation.obj `if test -f 'mn-automation.c'; then $(CYGPATH_W) 'mn-automation.c'; else $(CYGPATH_W) '$(srcdir)/mn-automation.c'; fi`
+
+mail_notification-mn-blinking-image.o: mn-blinking-image.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-blinking-image.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" -c -o mail_notification-mn-blinking-image.o `test -f 'mn-blinking-image.c' || echo '$(srcdir)/'`mn-blinking-image.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" "$(DEPDIR)/mail_notification-mn-blinking-image.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-blinking-image.c' object='mail_notification-mn-blinking-image.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-blinking-image.o `test -f 'mn-blinking-image.c' || echo '$(srcdir)/'`mn-blinking-image.c
+
+mail_notification-mn-blinking-image.obj: mn-blinking-image.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-blinking-image.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" -c -o mail_notification-mn-blinking-image.obj `if test -f 'mn-blinking-image.c'; then $(CYGPATH_W) 'mn-blinking-image.c'; else $(CYGPATH_W) '$(srcdir)/mn-blinking-image.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo" "$(DEPDIR)/mail_notification-mn-blinking-image.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-blinking-image.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-blinking-image.c' object='mail_notification-mn-blinking-image.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-blinking-image.obj `if test -f 'mn-blinking-image.c'; then $(CYGPATH_W) 'mn-blinking-image.c'; else $(CYGPATH_W) '$(srcdir)/mn-blinking-image.c'; fi`
+
+mail_notification-mn-dialog.o: mn-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-dialog.Tpo" -c -o mail_notification-mn-dialog.o `test -f 'mn-dialog.c' || echo '$(srcdir)/'`mn-dialog.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-dialog.c' object='mail_notification-mn-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-dialog.o `test -f 'mn-dialog.c' || echo '$(srcdir)/'`mn-dialog.c
+
+mail_notification-mn-dialog.obj: mn-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-dialog.Tpo" -c -o mail_notification-mn-dialog.obj `if test -f 'mn-dialog.c'; then $(CYGPATH_W) 'mn-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-dialog.c' object='mail_notification-mn-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-dialog.obj `if test -f 'mn-dialog.c'; then $(CYGPATH_W) 'mn-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-dialog.c'; fi`
+
+mail_notification-mn-mail-icon.o: mn-mail-icon.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-icon.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" -c -o mail_notification-mn-mail-icon.o `test -f 'mn-mail-icon.c' || echo '$(srcdir)/'`mn-mail-icon.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" "$(DEPDIR)/mail_notification-mn-mail-icon.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mail-icon.c' object='mail_notification-mn-mail-icon.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-icon.o `test -f 'mn-mail-icon.c' || echo '$(srcdir)/'`mn-mail-icon.c
+
+mail_notification-mn-mail-icon.obj: mn-mail-icon.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-icon.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" -c -o mail_notification-mn-mail-icon.obj `if test -f 'mn-mail-icon.c'; then $(CYGPATH_W) 'mn-mail-icon.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-icon.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo" "$(DEPDIR)/mail_notification-mn-mail-icon.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-icon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mail-icon.c' object='mail_notification-mn-mail-icon.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-icon.obj `if test -f 'mn-mail-icon.c'; then $(CYGPATH_W) 'mn-mail-icon.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-icon.c'; fi`
+
+mail_notification-mn-mail-summary-popup.o: mn-mail-summary-popup.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-summary-popup.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" -c -o mail_notification-mn-mail-summary-popup.o `test -f 'mn-mail-summary-popup.c' || echo '$(srcdir)/'`mn-mail-summary-popup.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mail-summary-popup.c' object='mail_notification-mn-mail-summary-popup.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-summary-popup.o `test -f 'mn-mail-summary-popup.c' || echo '$(srcdir)/'`mn-mail-summary-popup.c
+
+mail_notification-mn-mail-summary-popup.obj: mn-mail-summary-popup.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mail-summary-popup.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" -c -o mail_notification-mn-mail-summary-popup.obj `if test -f 'mn-mail-summary-popup.c'; then $(CYGPATH_W) 'mn-mail-summary-popup.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-summary-popup.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo" "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mail-summary-popup.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mail-summary-popup.c' object='mail_notification-mn-mail-summary-popup.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mail-summary-popup.obj `if test -f 'mn-mail-summary-popup.c'; then $(CYGPATH_W) 'mn-mail-summary-popup.c'; else $(CYGPATH_W) '$(srcdir)/mn-mail-summary-popup.c'; fi`
+
+mail_notification-mn-mailbox-properties-dialog.o: mn-mailbox-properties-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" -c -o mail_notification-mn-mailbox-properties-dialog.o `test -f 'mn-mailbox-properties-dialog.c' || echo '$(srcdir)/'`mn-mailbox-properties-dialog.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox-properties-dialog.c' object='mail_notification-mn-mailbox-properties-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties-dialog.o `test -f 'mn-mailbox-properties-dialog.c' || echo '$(srcdir)/'`mn-mailbox-properties-dialog.c
+
+mail_notification-mn-mailbox-properties-dialog.obj: mn-mailbox-properties-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" -c -o mail_notification-mn-mailbox-properties-dialog.obj `if test -f 'mn-mailbox-properties-dialog.c'; then $(CYGPATH_W) 'mn-mailbox-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox-properties-dialog.c' object='mail_notification-mn-mailbox-properties-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties-dialog.obj `if test -f 'mn-mailbox-properties-dialog.c'; then $(CYGPATH_W) 'mn-mailbox-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties-dialog.c'; fi`
+
+mail_notification-mn-mailbox-properties.o: mn-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" -c -o mail_notification-mn-mailbox-properties.o `test -f 'mn-mailbox-properties.c' || echo '$(srcdir)/'`mn-mailbox-properties.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox-properties.c' object='mail_notification-mn-mailbox-properties.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties.o `test -f 'mn-mailbox-properties.c' || echo '$(srcdir)/'`mn-mailbox-properties.c
+
+mail_notification-mn-mailbox-properties.obj: mn-mailbox-properties.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-properties.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" -c -o mail_notification-mn-mailbox-properties.obj `if test -f 'mn-mailbox-properties.c'; then $(CYGPATH_W) 'mn-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-properties.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-properties.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox-properties.c' object='mail_notification-mn-mailbox-properties.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-properties.obj `if test -f 'mn-mailbox-properties.c'; then $(CYGPATH_W) 'mn-mailbox-properties.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-properties.c'; fi`
+
+mail_notification-mn-mailbox-view.o: mn-mailbox-view.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-view.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" -c -o mail_notification-mn-mailbox-view.o `test -f 'mn-mailbox-view.c' || echo '$(srcdir)/'`mn-mailbox-view.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox-view.c' object='mail_notification-mn-mailbox-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-view.o `test -f 'mn-mailbox-view.c' || echo '$(srcdir)/'`mn-mailbox-view.c
+
+mail_notification-mn-mailbox-view.obj: mn-mailbox-view.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox-view.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" -c -o mail_notification-mn-mailbox-view.obj `if test -f 'mn-mailbox-view.c'; then $(CYGPATH_W) 'mn-mailbox-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-view.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox-view.c' object='mail_notification-mn-mailbox-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox-view.obj `if test -f 'mn-mailbox-view.c'; then $(CYGPATH_W) 'mn-mailbox-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox-view.c'; fi`
+
+mail_notification-mn-mailbox.o: mn-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" -c -o mail_notification-mn-mailbox.o `test -f 'mn-mailbox.c' || echo '$(srcdir)/'`mn-mailbox.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox.c' object='mail_notification-mn-mailbox.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox.o `test -f 'mn-mailbox.c' || echo '$(srcdir)/'`mn-mailbox.c
+
+mail_notification-mn-mailbox.obj: mn-mailbox.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailbox.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" -c -o mail_notification-mn-mailbox.obj `if test -f 'mn-mailbox.c'; then $(CYGPATH_W) 'mn-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo" "$(DEPDIR)/mail_notification-mn-mailbox.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailbox.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailbox.c' object='mail_notification-mn-mailbox.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailbox.obj `if test -f 'mn-mailbox.c'; then $(CYGPATH_W) 'mn-mailbox.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailbox.c'; fi`
+
+mail_notification-mn-mailboxes.o: mn-mailboxes.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailboxes.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" -c -o mail_notification-mn-mailboxes.o `test -f 'mn-mailboxes.c' || echo '$(srcdir)/'`mn-mailboxes.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" "$(DEPDIR)/mail_notification-mn-mailboxes.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailboxes.c' object='mail_notification-mn-mailboxes.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailboxes.o `test -f 'mn-mailboxes.c' || echo '$(srcdir)/'`mn-mailboxes.c
+
+mail_notification-mn-mailboxes.obj: mn-mailboxes.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-mailboxes.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" -c -o mail_notification-mn-mailboxes.obj `if test -f 'mn-mailboxes.c'; then $(CYGPATH_W) 'mn-mailboxes.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailboxes.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo" "$(DEPDIR)/mail_notification-mn-mailboxes.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-mailboxes.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-mailboxes.c' object='mail_notification-mn-mailboxes.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-mailboxes.obj `if test -f 'mn-mailboxes.c'; then $(CYGPATH_W) 'mn-mailboxes.c'; else $(CYGPATH_W) '$(srcdir)/mn-mailboxes.c'; fi`
+
+mail_notification-mn-main-window.o: mn-main-window.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main-window.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main-window.Tpo" -c -o mail_notification-mn-main-window.o `test -f 'mn-main-window.c' || echo '$(srcdir)/'`mn-main-window.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo" "$(DEPDIR)/mail_notification-mn-main-window.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-main-window.c' object='mail_notification-mn-main-window.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main-window.o `test -f 'mn-main-window.c' || echo '$(srcdir)/'`mn-main-window.c
+
+mail_notification-mn-main-window.obj: mn-main-window.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main-window.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main-window.Tpo" -c -o mail_notification-mn-main-window.obj `if test -f 'mn-main-window.c'; then $(CYGPATH_W) 'mn-main-window.c'; else $(CYGPATH_W) '$(srcdir)/mn-main-window.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo" "$(DEPDIR)/mail_notification-mn-main-window.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main-window.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-main-window.c' object='mail_notification-mn-main-window.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main-window.obj `if test -f 'mn-main-window.c'; then $(CYGPATH_W) 'mn-main-window.c'; else $(CYGPATH_W) '$(srcdir)/mn-main-window.c'; fi`
+
+mail_notification-mn-message-view.o: mn-message-view.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-view.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-view.Tpo" -c -o mail_notification-mn-message-view.o `test -f 'mn-message-view.c' || echo '$(srcdir)/'`mn-message-view.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo" "$(DEPDIR)/mail_notification-mn-message-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-message-view.c' object='mail_notification-mn-message-view.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-view.o `test -f 'mn-message-view.c' || echo '$(srcdir)/'`mn-message-view.c
+
+mail_notification-mn-message-view.obj: mn-message-view.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-view.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-view.Tpo" -c -o mail_notification-mn-message-view.obj `if test -f 'mn-message-view.c'; then $(CYGPATH_W) 'mn-message-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-view.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo" "$(DEPDIR)/mail_notification-mn-message-view.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-view.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-message-view.c' object='mail_notification-mn-message-view.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-view.obj `if test -f 'mn-message-view.c'; then $(CYGPATH_W) 'mn-message-view.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-view.c'; fi`
+
+mail_notification-mn-message.o: mn-message.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message.Tpo" -c -o mail_notification-mn-message.o `test -f 'mn-message.c' || echo '$(srcdir)/'`mn-message.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-message.Tpo" "$(DEPDIR)/mail_notification-mn-message.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-message.c' object='mail_notification-mn-message.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message.o `test -f 'mn-message.c' || echo '$(srcdir)/'`mn-message.c
+
+mail_notification-mn-message.obj: mn-message.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message.Tpo" -c -o mail_notification-mn-message.obj `if test -f 'mn-message.c'; then $(CYGPATH_W) 'mn-message.c'; else $(CYGPATH_W) '$(srcdir)/mn-message.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-message.Tpo" "$(DEPDIR)/mail_notification-mn-message.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-message.c' object='mail_notification-mn-message.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message.obj `if test -f 'mn-message.c'; then $(CYGPATH_W) 'mn-message.c'; else $(CYGPATH_W) '$(srcdir)/mn-message.c'; fi`
+
+mail_notification-mn-properties-dialog.o: mn-properties-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-properties-dialog.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" -c -o mail_notification-mn-properties-dialog.o `test -f 'mn-properties-dialog.c' || echo '$(srcdir)/'`mn-properties-dialog.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-properties-dialog.c' object='mail_notification-mn-properties-dialog.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-properties-dialog.o `test -f 'mn-properties-dialog.c' || echo '$(srcdir)/'`mn-properties-dialog.c
+
+mail_notification-mn-properties-dialog.obj: mn-properties-dialog.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-properties-dialog.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" -c -o mail_notification-mn-properties-dialog.obj `if test -f 'mn-properties-dialog.c'; then $(CYGPATH_W) 'mn-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-properties-dialog.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo" "$(DEPDIR)/mail_notification-mn-properties-dialog.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-properties-dialog.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-properties-dialog.c' object='mail_notification-mn-properties-dialog.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-properties-dialog.obj `if test -f 'mn-properties-dialog.c'; then $(CYGPATH_W) 'mn-properties-dialog.c'; else $(CYGPATH_W) '$(srcdir)/mn-properties-dialog.c'; fi`
+
+mail_notification-mn-shell.o: mn-shell.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-shell.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-shell.Tpo" -c -o mail_notification-mn-shell.o `test -f 'mn-shell.c' || echo '$(srcdir)/'`mn-shell.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-shell.Tpo" "$(DEPDIR)/mail_notification-mn-shell.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-shell.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-shell.c' object='mail_notification-mn-shell.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-shell.o `test -f 'mn-shell.c' || echo '$(srcdir)/'`mn-shell.c
+
+mail_notification-mn-shell.obj: mn-shell.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-shell.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-shell.Tpo" -c -o mail_notification-mn-shell.obj `if test -f 'mn-shell.c'; then $(CYGPATH_W) 'mn-shell.c'; else $(CYGPATH_W) '$(srcdir)/mn-shell.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-shell.Tpo" "$(DEPDIR)/mail_notification-mn-shell.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-shell.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-shell.c' object='mail_notification-mn-shell.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-shell.obj `if test -f 'mn-shell.c'; then $(CYGPATH_W) 'mn-shell.c'; else $(CYGPATH_W) '$(srcdir)/mn-shell.c'; fi`
+
+mail_notification-mn-tooltips.o: mn-tooltips.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-tooltips.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" -c -o mail_notification-mn-tooltips.o `test -f 'mn-tooltips.c' || echo '$(srcdir)/'`mn-tooltips.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" "$(DEPDIR)/mail_notification-mn-tooltips.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-tooltips.c' object='mail_notification-mn-tooltips.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-tooltips.o `test -f 'mn-tooltips.c' || echo '$(srcdir)/'`mn-tooltips.c
+
+mail_notification-mn-tooltips.obj: mn-tooltips.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-tooltips.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" -c -o mail_notification-mn-tooltips.obj `if test -f 'mn-tooltips.c'; then $(CYGPATH_W) 'mn-tooltips.c'; else $(CYGPATH_W) '$(srcdir)/mn-tooltips.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo" "$(DEPDIR)/mail_notification-mn-tooltips.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-tooltips.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-tooltips.c' object='mail_notification-mn-tooltips.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-tooltips.obj `if test -f 'mn-tooltips.c'; then $(CYGPATH_W) 'mn-tooltips.c'; else $(CYGPATH_W) '$(srcdir)/mn-tooltips.c'; fi`
+
+mail_notification-eggmarshalers.o: eggmarshalers.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggmarshalers.o -MD -MP -MF "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" -c -o mail_notification-eggmarshalers.o `test -f 'eggmarshalers.c' || echo '$(srcdir)/'`eggmarshalers.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" "$(DEPDIR)/mail_notification-eggmarshalers.Po"; else rm -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eggmarshalers.c' object='mail_notification-eggmarshalers.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggmarshalers.o `test -f 'eggmarshalers.c' || echo '$(srcdir)/'`eggmarshalers.c
+
+mail_notification-eggmarshalers.obj: eggmarshalers.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggmarshalers.obj -MD -MP -MF "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" -c -o mail_notification-eggmarshalers.obj `if test -f 'eggmarshalers.c'; then $(CYGPATH_W) 'eggmarshalers.c'; else $(CYGPATH_W) '$(srcdir)/eggmarshalers.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo" "$(DEPDIR)/mail_notification-eggmarshalers.Po"; else rm -f "$(DEPDIR)/mail_notification-eggmarshalers.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eggmarshalers.c' object='mail_notification-eggmarshalers.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggmarshalers.obj `if test -f 'eggmarshalers.c'; then $(CYGPATH_W) 'eggmarshalers.c'; else $(CYGPATH_W) '$(srcdir)/eggmarshalers.c'; fi`
+
+mail_notification-mn-md5.o: mn-md5.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-md5.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-md5.Tpo" -c -o mail_notification-mn-md5.o `test -f 'mn-md5.c' || echo '$(srcdir)/'`mn-md5.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-md5.Tpo" "$(DEPDIR)/mail_notification-mn-md5.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-md5.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-md5.c' object='mail_notification-mn-md5.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-md5.o `test -f 'mn-md5.c' || echo '$(srcdir)/'`mn-md5.c
+
+mail_notification-mn-md5.obj: mn-md5.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-md5.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-md5.Tpo" -c -o mail_notification-mn-md5.obj `if test -f 'mn-md5.c'; then $(CYGPATH_W) 'mn-md5.c'; else $(CYGPATH_W) '$(srcdir)/mn-md5.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-md5.Tpo" "$(DEPDIR)/mail_notification-mn-md5.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-md5.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-md5.c' object='mail_notification-mn-md5.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-md5.obj `if test -f 'mn-md5.c'; then $(CYGPATH_W) 'mn-md5.c'; else $(CYGPATH_W) '$(srcdir)/mn-md5.c'; fi`
+
+mail_notification-mn-client-session.o: mn-client-session.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-client-session.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-client-session.Tpo" -c -o mail_notification-mn-client-session.o `test -f 'mn-client-session.c' || echo '$(srcdir)/'`mn-client-session.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo" "$(DEPDIR)/mail_notification-mn-client-session.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-client-session.c' object='mail_notification-mn-client-session.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-client-session.o `test -f 'mn-client-session.c' || echo '$(srcdir)/'`mn-client-session.c
+
+mail_notification-mn-client-session.obj: mn-client-session.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-client-session.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-client-session.Tpo" -c -o mail_notification-mn-client-session.obj `if test -f 'mn-client-session.c'; then $(CYGPATH_W) 'mn-client-session.c'; else $(CYGPATH_W) '$(srcdir)/mn-client-session.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo" "$(DEPDIR)/mail_notification-mn-client-session.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-client-session.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-client-session.c' object='mail_notification-mn-client-session.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-client-session.obj `if test -f 'mn-client-session.c'; then $(CYGPATH_W) 'mn-client-session.c'; else $(CYGPATH_W) '$(srcdir)/mn-client-session.c'; fi`
+
+mail_notification-mn-ssl.o: mn-ssl.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-ssl.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-ssl.Tpo" -c -o mail_notification-mn-ssl.o `test -f 'mn-ssl.c' || echo '$(srcdir)/'`mn-ssl.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo" "$(DEPDIR)/mail_notification-mn-ssl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-ssl.c' object='mail_notification-mn-ssl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-ssl.o `test -f 'mn-ssl.c' || echo '$(srcdir)/'`mn-ssl.c
+
+mail_notification-mn-ssl.obj: mn-ssl.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-ssl.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-ssl.Tpo" -c -o mail_notification-mn-ssl.obj `if test -f 'mn-ssl.c'; then $(CYGPATH_W) 'mn-ssl.c'; else $(CYGPATH_W) '$(srcdir)/mn-ssl.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo" "$(DEPDIR)/mail_notification-mn-ssl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-ssl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-ssl.c' object='mail_notification-mn-ssl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-ssl.obj `if test -f 'mn-ssl.c'; then $(CYGPATH_W) 'mn-ssl.c'; else $(CYGPATH_W) '$(srcdir)/mn-ssl.c'; fi`
+
+mail_notification-mn-sasl.o: mn-sasl.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sasl.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sasl.Tpo" -c -o mail_notification-mn-sasl.o `test -f 'mn-sasl.c' || echo '$(srcdir)/'`mn-sasl.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo" "$(DEPDIR)/mail_notification-mn-sasl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-sasl.c' object='mail_notification-mn-sasl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sasl.o `test -f 'mn-sasl.c' || echo '$(srcdir)/'`mn-sasl.c
+
+mail_notification-mn-sasl.obj: mn-sasl.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-sasl.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-sasl.Tpo" -c -o mail_notification-mn-sasl.obj `if test -f 'mn-sasl.c'; then $(CYGPATH_W) 'mn-sasl.c'; else $(CYGPATH_W) '$(srcdir)/mn-sasl.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo" "$(DEPDIR)/mail_notification-mn-sasl.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-sasl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-sasl.c' object='mail_notification-mn-sasl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-sasl.obj `if test -f 'mn-sasl.c'; then $(CYGPATH_W) 'mn-sasl.c'; else $(CYGPATH_W) '$(srcdir)/mn-sasl.c'; fi`
+
+mail_notification-mn-message-mime.o: mn-message-mime.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-mime.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" -c -o mail_notification-mn-message-mime.o `test -f 'mn-message-mime.c' || echo '$(srcdir)/'`mn-message-mime.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" "$(DEPDIR)/mail_notification-mn-message-mime.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-message-mime.c' object='mail_notification-mn-message-mime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-mime.o `test -f 'mn-message-mime.c' || echo '$(srcdir)/'`mn-message-mime.c
+
+mail_notification-mn-message-mime.obj: mn-message-mime.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-message-mime.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" -c -o mail_notification-mn-message-mime.obj `if test -f 'mn-message-mime.c'; then $(CYGPATH_W) 'mn-message-mime.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-mime.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo" "$(DEPDIR)/mail_notification-mn-message-mime.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-message-mime.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-message-mime.c' object='mail_notification-mn-message-mime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-message-mime.obj `if test -f 'mn-message-mime.c'; then $(CYGPATH_W) 'mn-message-mime.c'; else $(CYGPATH_W) '$(srcdir)/mn-message-mime.c'; fi`
+
+mail_notification-egg-editable-toolbar.o: egg-editable-toolbar.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-editable-toolbar.o -MD -MP -MF "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" -c -o mail_notification-egg-editable-toolbar.o `test -f 'egg-editable-toolbar.c' || echo '$(srcdir)/'`egg-editable-toolbar.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" "$(DEPDIR)/mail_notification-egg-editable-toolbar.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-editable-toolbar.c' object='mail_notification-egg-editable-toolbar.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-editable-toolbar.o `test -f 'egg-editable-toolbar.c' || echo '$(srcdir)/'`egg-editable-toolbar.c
+
+mail_notification-egg-editable-toolbar.obj: egg-editable-toolbar.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-editable-toolbar.obj -MD -MP -MF "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" -c -o mail_notification-egg-editable-toolbar.obj `if test -f 'egg-editable-toolbar.c'; then $(CYGPATH_W) 'egg-editable-toolbar.c'; else $(CYGPATH_W) '$(srcdir)/egg-editable-toolbar.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo" "$(DEPDIR)/mail_notification-egg-editable-toolbar.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-editable-toolbar.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-editable-toolbar.c' object='mail_notification-egg-editable-toolbar.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-editable-toolbar.obj `if test -f 'egg-editable-toolbar.c'; then $(CYGPATH_W) 'egg-editable-toolbar.c'; else $(CYGPATH_W) '$(srcdir)/egg-editable-toolbar.c'; fi`
+
+mail_notification-egg-toolbar-editor.o: egg-toolbar-editor.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbar-editor.o -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" -c -o mail_notification-egg-toolbar-editor.o `test -f 'egg-toolbar-editor.c' || echo '$(srcdir)/'`egg-toolbar-editor.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" "$(DEPDIR)/mail_notification-egg-toolbar-editor.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-toolbar-editor.c' object='mail_notification-egg-toolbar-editor.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbar-editor.o `test -f 'egg-toolbar-editor.c' || echo '$(srcdir)/'`egg-toolbar-editor.c
+
+mail_notification-egg-toolbar-editor.obj: egg-toolbar-editor.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbar-editor.obj -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" -c -o mail_notification-egg-toolbar-editor.obj `if test -f 'egg-toolbar-editor.c'; then $(CYGPATH_W) 'egg-toolbar-editor.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbar-editor.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo" "$(DEPDIR)/mail_notification-egg-toolbar-editor.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbar-editor.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-toolbar-editor.c' object='mail_notification-egg-toolbar-editor.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbar-editor.obj `if test -f 'egg-toolbar-editor.c'; then $(CYGPATH_W) 'egg-toolbar-editor.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbar-editor.c'; fi`
+
+mail_notification-egg-toolbars-model.o: egg-toolbars-model.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbars-model.o -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" -c -o mail_notification-egg-toolbars-model.o `test -f 'egg-toolbars-model.c' || echo '$(srcdir)/'`egg-toolbars-model.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" "$(DEPDIR)/mail_notification-egg-toolbars-model.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-toolbars-model.c' object='mail_notification-egg-toolbars-model.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbars-model.o `test -f 'egg-toolbars-model.c' || echo '$(srcdir)/'`egg-toolbars-model.c
+
+mail_notification-egg-toolbars-model.obj: egg-toolbars-model.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-egg-toolbars-model.obj -MD -MP -MF "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" -c -o mail_notification-egg-toolbars-model.obj `if test -f 'egg-toolbars-model.c'; then $(CYGPATH_W) 'egg-toolbars-model.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbars-model.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo" "$(DEPDIR)/mail_notification-egg-toolbars-model.Po"; else rm -f "$(DEPDIR)/mail_notification-egg-toolbars-model.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='egg-toolbars-model.c' object='mail_notification-egg-toolbars-model.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-egg-toolbars-model.obj `if test -f 'egg-toolbars-model.c'; then $(CYGPATH_W) 'egg-toolbars-model.c'; else $(CYGPATH_W) '$(srcdir)/egg-toolbars-model.c'; fi`
+
+mail_notification-eggtrayicon.o: eggtrayicon.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggtrayicon.o -MD -MP -MF "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" -c -o mail_notification-eggtrayicon.o `test -f 'eggtrayicon.c' || echo '$(srcdir)/'`eggtrayicon.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" "$(DEPDIR)/mail_notification-eggtrayicon.Po"; else rm -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eggtrayicon.c' object='mail_notification-eggtrayicon.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggtrayicon.o `test -f 'eggtrayicon.c' || echo '$(srcdir)/'`eggtrayicon.c
+
+mail_notification-eggtrayicon.obj: eggtrayicon.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-eggtrayicon.obj -MD -MP -MF "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" -c -o mail_notification-eggtrayicon.obj `if test -f 'eggtrayicon.c'; then $(CYGPATH_W) 'eggtrayicon.c'; else $(CYGPATH_W) '$(srcdir)/eggtrayicon.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo" "$(DEPDIR)/mail_notification-eggtrayicon.Po"; else rm -f "$(DEPDIR)/mail_notification-eggtrayicon.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='eggtrayicon.c' object='mail_notification-eggtrayicon.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-eggtrayicon.obj `if test -f 'eggtrayicon.c'; then $(CYGPATH_W) 'eggtrayicon.c'; else $(CYGPATH_W) '$(srcdir)/eggtrayicon.c'; fi`
+
+mail_notification-mn-conf.o: mn-conf.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-conf.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-conf.Tpo" -c -o mail_notification-mn-conf.o `test -f 'mn-conf.c' || echo '$(srcdir)/'`mn-conf.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-conf.Tpo" "$(DEPDIR)/mail_notification-mn-conf.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-conf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-conf.c' object='mail_notification-mn-conf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-conf.o `test -f 'mn-conf.c' || echo '$(srcdir)/'`mn-conf.c
+
+mail_notification-mn-conf.obj: mn-conf.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-conf.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-conf.Tpo" -c -o mail_notification-mn-conf.obj `if test -f 'mn-conf.c'; then $(CYGPATH_W) 'mn-conf.c'; else $(CYGPATH_W) '$(srcdir)/mn-conf.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-conf.Tpo" "$(DEPDIR)/mail_notification-mn-conf.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-conf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-conf.c' object='mail_notification-mn-conf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-conf.obj `if test -f 'mn-conf.c'; then $(CYGPATH_W) 'mn-conf.c'; else $(CYGPATH_W) '$(srcdir)/mn-conf.c'; fi`
+
+mail_notification-mn-main.o: mn-main.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main.Tpo" -c -o mail_notification-mn-main.o `test -f 'mn-main.c' || echo '$(srcdir)/'`mn-main.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-main.Tpo" "$(DEPDIR)/mail_notification-mn-main.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-main.c' object='mail_notification-mn-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main.o `test -f 'mn-main.c' || echo '$(srcdir)/'`mn-main.c
+
+mail_notification-mn-main.obj: mn-main.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-main.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-main.Tpo" -c -o mail_notification-mn-main.obj `if test -f 'mn-main.c'; then $(CYGPATH_W) 'mn-main.c'; else $(CYGPATH_W) '$(srcdir)/mn-main.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-main.Tpo" "$(DEPDIR)/mail_notification-mn-main.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-main.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-main.c' object='mail_notification-mn-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-main.obj `if test -f 'mn-main.c'; then $(CYGPATH_W) 'mn-main.c'; else $(CYGPATH_W) '$(srcdir)/mn-main.c'; fi`
+
+mail_notification-mn-stock.o: mn-stock.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-stock.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-stock.Tpo" -c -o mail_notification-mn-stock.o `test -f 'mn-stock.c' || echo '$(srcdir)/'`mn-stock.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-stock.Tpo" "$(DEPDIR)/mail_notification-mn-stock.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-stock.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-stock.c' object='mail_notification-mn-stock.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-stock.o `test -f 'mn-stock.c' || echo '$(srcdir)/'`mn-stock.c
+
+mail_notification-mn-stock.obj: mn-stock.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-stock.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-stock.Tpo" -c -o mail_notification-mn-stock.obj `if test -f 'mn-stock.c'; then $(CYGPATH_W) 'mn-stock.c'; else $(CYGPATH_W) '$(srcdir)/mn-stock.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-stock.Tpo" "$(DEPDIR)/mail_notification-mn-stock.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-stock.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-stock.c' object='mail_notification-mn-stock.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-stock.obj `if test -f 'mn-stock.c'; then $(CYGPATH_W) 'mn-stock.c'; else $(CYGPATH_W) '$(srcdir)/mn-stock.c'; fi`
+
+mail_notification-mn-util.o: mn-util.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-util.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-util.Tpo" -c -o mail_notification-mn-util.o `test -f 'mn-util.c' || echo '$(srcdir)/'`mn-util.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-util.Tpo" "$(DEPDIR)/mail_notification-mn-util.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-util.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-util.c' object='mail_notification-mn-util.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-util.o `test -f 'mn-util.c' || echo '$(srcdir)/'`mn-util.c
+
+mail_notification-mn-util.obj: mn-util.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-util.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-util.Tpo" -c -o mail_notification-mn-util.obj `if test -f 'mn-util.c'; then $(CYGPATH_W) 'mn-util.c'; else $(CYGPATH_W) '$(srcdir)/mn-util.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-util.Tpo" "$(DEPDIR)/mail_notification-mn-util.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-util.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-util.c' object='mail_notification-mn-util.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-util.obj `if test -f 'mn-util.c'; then $(CYGPATH_W) 'mn-util.c'; else $(CYGPATH_W) '$(srcdir)/mn-util.c'; fi`
+
+mail_notification-mn-vfs.o: mn-vfs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs.o -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs.Tpo" -c -o mail_notification-mn-vfs.o `test -f 'mn-vfs.c' || echo '$(srcdir)/'`mn-vfs.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-vfs.c' object='mail_notification-mn-vfs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs.o `test -f 'mn-vfs.c' || echo '$(srcdir)/'`mn-vfs.c
+
+mail_notification-mn-vfs.obj: mn-vfs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-mn-vfs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-mn-vfs.Tpo" -c -o mail_notification-mn-vfs.obj `if test -f 'mn-vfs.c'; then $(CYGPATH_W) 'mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo" "$(DEPDIR)/mail_notification-mn-vfs.Po"; else rm -f "$(DEPDIR)/mail_notification-mn-vfs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='mn-vfs.c' object='mail_notification-mn-vfs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-mn-vfs.obj `if test -f 'mn-vfs.c'; then $(CYGPATH_W) 'mn-vfs.c'; else $(CYGPATH_W) '$(srcdir)/mn-vfs.c'; fi`
+
+mail_notification-nautilus-cell-renderer-pixbuf-emblem.o: nautilus-cell-renderer-pixbuf-emblem.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-nautilus-cell-renderer-pixbuf-emblem.o -MD -MP -MF "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.o `test -f 'nautilus-cell-renderer-pixbuf-emblem.c' || echo '$(srcdir)/'`nautilus-cell-renderer-pixbuf-emblem.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Po"; else rm -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='nautilus-cell-renderer-pixbuf-emblem.c' object='mail_notification-nautilus-cell-renderer-pixbuf-emblem.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.o `test -f 'nautilus-cell-renderer-pixbuf-emblem.c' || echo '$(srcdir)/'`nautilus-cell-renderer-pixbuf-emblem.c
+
+mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj: nautilus-cell-renderer-pixbuf-emblem.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj -MD -MP -MF "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj `if test -f 'nautilus-cell-renderer-pixbuf-emblem.c'; then $(CYGPATH_W) 'nautilus-cell-renderer-pixbuf-emblem.c'; else $(CYGPATH_W) '$(srcdir)/nautilus-cell-renderer-pixbuf-emblem.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo" "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Po"; else rm -f "$(DEPDIR)/mail_notification-nautilus-cell-renderer-pixbuf-emblem.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='nautilus-cell-renderer-pixbuf-emblem.c' object='mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-nautilus-cell-renderer-pixbuf-emblem.obj `if test -f 'nautilus-cell-renderer-pixbuf-emblem.c'; then $(CYGPATH_W) 'nautilus-cell-renderer-pixbuf-emblem.c'; else $(CYGPATH_W) '$(srcdir)/nautilus-cell-renderer-pixbuf-emblem.c'; fi`
+
+mail_notification-GNOME_MailNotification_Evolution-common.o: GNOME_MailNotification_Evolution-common.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-common.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-common.o `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-common.c' object='mail_notification-GNOME_MailNotification_Evolution-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-common.o `test -f 'GNOME_MailNotification_Evolution-common.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-common.c
+
+mail_notification-GNOME_MailNotification_Evolution-common.obj: GNOME_MailNotification_Evolution-common.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-common.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-common.obj `if test -f 'GNOME_MailNotification_Evolution-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-common.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-common.c' object='mail_notification-GNOME_MailNotification_Evolution-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-common.obj `if test -f 'GNOME_MailNotification_Evolution-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-common.c'; fi`
+
+mail_notification-GNOME_MailNotification_Evolution-stubs.o: GNOME_MailNotification_Evolution-stubs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-stubs.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.o `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-stubs.c' object='mail_notification-GNOME_MailNotification_Evolution-stubs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.o `test -f 'GNOME_MailNotification_Evolution-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-stubs.c
+
+mail_notification-GNOME_MailNotification_Evolution-stubs.obj: GNOME_MailNotification_Evolution-stubs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-stubs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.obj `if test -f 'GNOME_MailNotification_Evolution-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-stubs.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-stubs.c' object='mail_notification-GNOME_MailNotification_Evolution-stubs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-stubs.obj `if test -f 'GNOME_MailNotification_Evolution-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-stubs.c'; fi`
+
+mail_notification-GNOME_MailNotification_Evolution-skels.o: GNOME_MailNotification_Evolution-skels.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-skels.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-skels.o `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-skels.c' object='mail_notification-GNOME_MailNotification_Evolution-skels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-skels.o `test -f 'GNOME_MailNotification_Evolution-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification_Evolution-skels.c
+
+mail_notification-GNOME_MailNotification_Evolution-skels.obj: GNOME_MailNotification_Evolution-skels.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification_Evolution-skels.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" -c -o mail_notification-GNOME_MailNotification_Evolution-skels.obj `if test -f 'GNOME_MailNotification_Evolution-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-skels.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification_Evolution-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification_Evolution-skels.c' object='mail_notification-GNOME_MailNotification_Evolution-skels.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification_Evolution-skels.obj `if test -f 'GNOME_MailNotification_Evolution-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification_Evolution-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification_Evolution-skels.c'; fi`
+
+mail_notification-GNOME_MailNotification-common.o: GNOME_MailNotification-common.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-common.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" -c -o mail_notification-GNOME_MailNotification-common.o `test -f 'GNOME_MailNotification-common.c' || echo '$(srcdir)/'`GNOME_MailNotification-common.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification-common.c' object='mail_notification-GNOME_MailNotification-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-common.o `test -f 'GNOME_MailNotification-common.c' || echo '$(srcdir)/'`GNOME_MailNotification-common.c
+
+mail_notification-GNOME_MailNotification-common.obj: GNOME_MailNotification-common.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-common.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" -c -o mail_notification-GNOME_MailNotification-common.obj `if test -f 'GNOME_MailNotification-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-common.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-common.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification-common.c' object='mail_notification-GNOME_MailNotification-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-common.obj `if test -f 'GNOME_MailNotification-common.c'; then $(CYGPATH_W) 'GNOME_MailNotification-common.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-common.c'; fi`
+
+mail_notification-GNOME_MailNotification-stubs.o: GNOME_MailNotification-stubs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-stubs.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification-stubs.o `test -f 'GNOME_MailNotification-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification-stubs.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification-stubs.c' object='mail_notification-GNOME_MailNotification-stubs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-stubs.o `test -f 'GNOME_MailNotification-stubs.c' || echo '$(srcdir)/'`GNOME_MailNotification-stubs.c
+
+mail_notification-GNOME_MailNotification-stubs.obj: GNOME_MailNotification-stubs.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-stubs.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" -c -o mail_notification-GNOME_MailNotification-stubs.obj `if test -f 'GNOME_MailNotification-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-stubs.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-stubs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification-stubs.c' object='mail_notification-GNOME_MailNotification-stubs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-stubs.obj `if test -f 'GNOME_MailNotification-stubs.c'; then $(CYGPATH_W) 'GNOME_MailNotification-stubs.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-stubs.c'; fi`
+
+mail_notification-GNOME_MailNotification-skels.o: GNOME_MailNotification-skels.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-skels.o -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" -c -o mail_notification-GNOME_MailNotification-skels.o `test -f 'GNOME_MailNotification-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification-skels.c; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification-skels.c' object='mail_notification-GNOME_MailNotification-skels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-skels.o `test -f 'GNOME_MailNotification-skels.c' || echo '$(srcdir)/'`GNOME_MailNotification-skels.c
+
+mail_notification-GNOME_MailNotification-skels.obj: GNOME_MailNotification-skels.c
+@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mail_notification-GNOME_MailNotification-skels.obj -MD -MP -MF "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" -c -o mail_notification-GNOME_MailNotification-skels.obj `if test -f 'GNOME_MailNotification-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-skels.c'; fi`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo" "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Po"; else rm -f "$(DEPDIR)/mail_notification-GNOME_MailNotification-skels.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='GNOME_MailNotification-skels.c' object='mail_notification-GNOME_MailNotification-skels.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mail_notification_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mail_notification-GNOME_MailNotification-skels.obj `if test -f 'GNOME_MailNotification-skels.c'; then $(CYGPATH_W) 'GNOME_MailNotification-skels.c'; else $(CYGPATH_W) '$(srcdir)/GNOME_MailNotification-skels.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
+install-evolution_pluginDATA: $(evolution_plugin_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(evolution_plugindir)" || $(mkdir_p) "$(DESTDIR)$(evolution_plugindir)"
+	@list='$(evolution_plugin_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(evolution_pluginDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(evolution_plugindir)/$$f'"; \
+	  $(evolution_pluginDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(evolution_plugindir)/$$f"; \
+	done
+
+uninstall-evolution_pluginDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(evolution_plugin_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(evolution_plugindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(evolution_plugindir)/$$f"; \
+	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -849,9 +2100,9 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(bindir)"; do \
+	for dir in "$(DESTDIR)$(evolution_plugindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(evolution_plugindir)"; do \
 	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
 	done
 install: $(BUILT_SOURCES)
@@ -884,13 +2135,14 @@ maintainer-clean-generic:
 	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
 clean: clean-am
 
-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+clean-am: clean-binPROGRAMS clean-evolution_pluginLTLIBRARIES \
+	clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+	distclean-libtool distclean-tags
 
 dvi: dvi-am
 
@@ -902,7 +2154,8 @@ info: info-am
 
 info-am:
 
-install-data-am:
+install-data-am: install-evolution_pluginDATA \
+	install-evolution_pluginLTLIBRARIES
 
 install-exec-am: install-binPROGRAMS
 
@@ -919,7 +2172,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -929,28 +2183,31 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-info-am
+uninstall-am: uninstall-binPROGRAMS uninstall-evolution_pluginDATA \
+	uninstall-evolution_pluginLTLIBRARIES uninstall-info-am
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
+	clean-evolution_pluginLTLIBRARIES clean-generic clean-libtool \
+	ctags distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
 	html-am info info-am install install-am install-binPROGRAMS \
-	install-data install-data-am install-exec install-exec-am \
-	install-info install-info-am install-man install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-binPROGRAMS uninstall-info-am
+	install-data install-data-am install-evolution_pluginDATA \
+	install-evolution_pluginLTLIBRARIES install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-evolution_pluginDATA \
+	uninstall-evolution_pluginLTLIBRARIES uninstall-info-am
 
 
 %.c %.h %-private.h: %.gob
 	$(GOB2) --always-private-header --exit-on-warn $<
+
 %-common.c %-stubs.c %-skels.c %.h: %.idl $(ORBIT_IDL)
 	$(ORBIT_IDL) -I$(LIBBONOBO_IDL) -I$(BONOBO_ACTIVATION_IDL) $<
 
-mn-sgml-entities.h: ent2h.sh $(entity_sets)
-	./ent2h.sh $(entity_sets) > $@
-
 eggmarshalers.h: eggmarshalers.list
 	cd $(srcdir) \
 	&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --header > xgen-emh \
@@ -962,6 +2219,9 @@ eggmarshalers.c: eggmarshalers.list
 	&& $(GLIB_GENMARSHAL) --prefix=_egg_marshal eggmarshalers.list --body > xgen-emc \
 	&& cp xgen-emc eggmarshalers.c \
 	&& rm -f xgen-emc xgen-emc~
+
+%.eplug: %.eplug.in
+	sed -e 's|\@PLUGINDIR\@|$(evolution_plugindir)|' $< > $@
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/src/egg-editable-toolbar.c b/src/egg-editable-toolbar.c
@@ -1,6 +1,6 @@
 /*
- *  Copyright (C) 2003-2004 Marco Pesenti Gritti
- *  Copyright (C) 2004 Christian Persch
+ *  Copyright (C) 2003, 2004  Marco Pesenti Gritti
+ *  Copyright (C) 2003, 2004, 2005  Christian Persch
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -16,12 +16,10 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- *  $Id: egg-editable-toolbar.c,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ *  $libegg-Id: egg-editable-toolbar.c,v 1.29 2005/07/07 19:09:35 chpe Exp $
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "egg-editable-toolbar.h"
 #include "egg-toolbars-model.h"
@@ -49,10 +47,9 @@ static void egg_editable_toolbar_finalize	(GObject *object);
 
 #define MIN_TOOLBAR_HEIGHT 20
 
-static GtkTargetEntry dest_drag_types[] = {
+static const GtkTargetEntry dest_drag_types[] = {
   {EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0},
 };
-static int n_dest_drag_types = G_N_ELEMENTS (dest_drag_types);
 
 enum
 {
@@ -73,13 +70,12 @@ static GObjectClass *parent_class = NULL;
 
 #define EGG_EDITABLE_TOOLBAR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarPrivate))
 
-struct EggEditableToolbarPrivate
+struct _EggEditableToolbarPrivate
 {
   GtkUIManager *manager;
   EggToolbarsModel *model;
   gboolean edit_mode;
   GtkWidget *selected_toolbar;
-  GtkToolItem *fixed;
   GtkWidget *fixed_toolbar;
 
   gboolean pending;
@@ -90,9 +86,9 @@ struct EggEditableToolbarPrivate
 GType
 egg_editable_toolbar_get_type (void)
 {
-  static GType egg_editable_toolbar_type = 0;
+  static GType type = 0;
 
-  if (egg_editable_toolbar_type == 0)
+  if (G_UNLIKELY (type == 0))
     {
       static const GTypeInfo our_info = {
 	sizeof (EggEditableToolbarClass),
@@ -106,12 +102,12 @@ egg_editable_toolbar_get_type (void)
 	(GInstanceInitFunc) egg_editable_toolbar_init
       };
 
-      egg_editable_toolbar_type = g_type_register_static (GTK_TYPE_VBOX,
-							  "EggEditableToolbar",
-							  &our_info, 0);
+      type = g_type_register_static (GTK_TYPE_VBOX,
+				     "EggEditableToolbar",
+				     &our_info, 0);
     }
 
-  return egg_editable_toolbar_type;
+  return type;
 }
 
 static int
@@ -253,7 +249,8 @@ drag_data_get_cb (GtkWidget          *widget,
     }
 
   gtk_selection_data_set (selection_data,
-			  selection_data->target, 8, target, strlen (target));
+                          selection_data->target, 8,
+                          (const guchar *)target, strlen (target));
 
   g_free (target);
 }
@@ -448,7 +445,8 @@ drag_data_received_cb (GtkWidget          *widget,
 	  
   target = gtk_drag_dest_find_target (widget, context, NULL);
   type = egg_toolbars_model_get_item_type (etoolbar->priv->model, target);
-  id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type, selection_data->data);
+  id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type,
+                                       (const char*)selection_data->data);
 
   /* This function can be called for two reasons
    *
@@ -484,7 +482,7 @@ drag_data_received_cb (GtkWidget          *widget,
       pos = gtk_toolbar_get_drop_index (GTK_TOOLBAR (widget), x, y);
       toolbar_pos = get_toolbar_position (etoolbar, widget);
 
-      if (data_is_separator (selection_data->data))
+      if (data_is_separator ((const char*)selection_data->data))
 	{
 	  egg_toolbars_model_add_separator (etoolbar->priv->model,
 					    toolbar_pos, pos);
@@ -703,7 +701,7 @@ create_dock (EggEditableToolbar *t)
   gtk_box_pack_start (GTK_BOX (hbox), toolbar, TRUE, TRUE, 0);
 
   gtk_drag_dest_set (toolbar, 0,
-		     dest_drag_types, n_dest_drag_types,
+		     dest_drag_types, G_N_ELEMENTS (dest_drag_types),
 		     GDK_ACTION_MOVE | GDK_ACTION_COPY);
  
   g_signal_connect (toolbar, "drag_drop",
@@ -725,7 +723,8 @@ static void
 set_fixed_style (EggEditableToolbar *t, GtkToolbarStyle style)
 {
   g_return_if_fail (GTK_IS_TOOLBAR (t->priv->fixed_toolbar));
-  gtk_toolbar_set_style (GTK_TOOLBAR (t->priv->fixed_toolbar), style);
+  gtk_toolbar_set_style (GTK_TOOLBAR (t->priv->fixed_toolbar),
+  			 style == GTK_TOOLBAR_ICONS ? GTK_TOOLBAR_BOTH_HORIZ : style);
 }
 
 static void
@@ -747,19 +746,19 @@ toolbar_changed_cb (EggToolbarsModel   *model,
   flags = egg_toolbars_model_get_flags (model, position);
   toolbar = get_toolbar_nth (t, position);
 
-  if (flags & EGG_TB_MODEL_ICONS_ONLY)
+  if (flags & EGG_TB_MODEL_ICONS)
   {
     style = GTK_TOOLBAR_ICONS;
   }
-  else if (flags & EGG_TB_MODEL_TEXT_ONLY)
+  else if (flags & EGG_TB_MODEL_TEXT)
   {
     style = GTK_TOOLBAR_TEXT;
   }
-  else if (flags & EGG_TB_MODEL_ICONS_TEXT)
+  else if (flags & EGG_TB_MODEL_BOTH)
   {
     style = GTK_TOOLBAR_BOTH;
   }
-  else if (flags & EGG_TB_MODEL_ICONS_TEXT_HORIZ)
+  else if (flags & EGG_TB_MODEL_BOTH_HORIZ)
   {
     style = GTK_TOOLBAR_BOTH_HORIZ;
   }
@@ -808,7 +807,10 @@ update_fixed (EggEditableToolbar *t)
     {
       gtk_box_pack_end (GTK_BOX (dock), toolbar, FALSE, TRUE, 0);
 
-      gtk_widget_show_all (toolbar);
+      gtk_widget_show (toolbar);
+  
+      gtk_widget_set_size_request (dock, -1, -1);
+      gtk_widget_queue_resize_no_redraw (dock);
     }
 }
 
@@ -839,6 +841,11 @@ toolbar_removed_cb (EggToolbarsModel   *model,
 {
   GtkWidget *toolbar;
 
+  if (position == 0 && t->priv->fixed_toolbar != NULL)
+    {
+      unparent_fixed (t);
+    }
+
   toolbar = get_dock_nth (t, position);
   gtk_widget_destroy (toolbar);
 
@@ -907,22 +914,11 @@ egg_editable_toolbar_construct (EggEditableToolbar *t)
   for (i = 0; i < n_toolbars; i++)
     {
       GtkWidget *toolbar, *dock;
-      EggTbModelFlags flags;
 
       dock = create_dock (t);
       gtk_box_pack_start (GTK_BOX (t), dock, TRUE, TRUE, 0);
       toolbar = get_toolbar_nth (t, i);
 
-      flags = egg_toolbars_model_get_flags (model, i);
-      if (flags & EGG_TB_MODEL_ICONS_ONLY)
-        {
-          gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
-          if (i == 0 && t->priv->fixed_toolbar)
-            {
-	      set_fixed_style (t, GTK_TOOLBAR_ICONS);
-            }
-        }
-
       n_items = egg_toolbars_model_n_items (model, i);
       for (l = 0; l < n_items; l++)
         {
@@ -955,6 +951,12 @@ egg_editable_toolbar_construct (EggEditableToolbar *t)
     }
 
   update_fixed (t);
+
+  /* apply styles */
+  for (i = 0; i < n_toolbars; i ++)
+    {
+      toolbar_changed_cb (model, i, t);
+    }
 }
 
 static void
@@ -1267,35 +1269,27 @@ egg_editable_toolbar_hide (EggEditableToolbar *etoolbar,
 
 void
 egg_editable_toolbar_set_fixed (EggEditableToolbar *toolbar,
-				GtkToolItem        *fixed)
+				GtkToolbar         *fixed_toolbar)
 {
   g_return_if_fail (EGG_IS_EDITABLE_TOOLBAR (toolbar));
-  g_return_if_fail (!fixed || GTK_IS_TOOL_ITEM (fixed));
+  g_return_if_fail (!fixed_toolbar || GTK_IS_TOOLBAR (fixed_toolbar));
 
-  if (!toolbar->priv->fixed_toolbar)
+  if (toolbar->priv->fixed_toolbar)
     {
-      toolbar->priv->fixed_toolbar = gtk_toolbar_new ();
-      gtk_toolbar_set_show_arrow (GTK_TOOLBAR (toolbar->priv->fixed_toolbar), FALSE);
-      g_object_ref (toolbar->priv->fixed_toolbar);
-      gtk_object_sink (GTK_OBJECT (toolbar->priv->fixed_toolbar));
+      unparent_fixed (toolbar);
+      g_object_unref (toolbar->priv->fixed_toolbar);
+      toolbar->priv->fixed_toolbar = NULL;
     }
 
-  if (toolbar->priv->fixed)
+  if (fixed_toolbar)
     {
-      gtk_container_remove (GTK_CONTAINER (toolbar->priv->fixed_toolbar),
-	    		    GTK_WIDGET (toolbar->priv->fixed));
-      g_object_unref (toolbar->priv->fixed);
+      toolbar->priv->fixed_toolbar = GTK_WIDGET (fixed_toolbar);
+      gtk_toolbar_set_show_arrow (fixed_toolbar, FALSE);
+      g_object_ref (fixed_toolbar);
+      gtk_object_sink (GTK_OBJECT (fixed_toolbar));
     }
 
-  toolbar->priv->fixed = fixed;
-
-  if (fixed)
-    {
-      g_object_ref (fixed);
-      gtk_object_sink (GTK_OBJECT (fixed));
-
-      gtk_toolbar_insert (GTK_TOOLBAR (toolbar->priv->fixed_toolbar), fixed, 0);
-    }
+  update_fixed (toolbar);
 }
 
 void
@@ -1403,7 +1397,7 @@ new_pixbuf_from_widget (GtkWidget *widget)
   
   /* Create a pixmap */
   visual = gtk_widget_get_visual (window);
-  pixmap = gdk_pixmap_new (NULL, icon_width, icon_height, gdk_visual_get_best_depth());
+  pixmap = gdk_pixmap_new (NULL, icon_width, icon_height, visual->depth);
   gdk_drawable_set_colormap (GDK_DRAWABLE (pixmap), gtk_widget_get_colormap (window));
 
   /* Draw the window */
@@ -1417,6 +1411,8 @@ new_pixbuf_from_widget (GtkWidget *widget)
   pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, icon_width, icon_height);
   gdk_pixbuf_get_from_drawable (pixbuf, pixmap, NULL, 0, 0, 0, 0, icon_width, icon_height);
 
+  gtk_widget_destroy (window);
+
   return pixbuf;
 }
 
@@ -1428,7 +1424,6 @@ new_separator_pixbuf ()
 
   separator = gtk_vseparator_new ();
   pixbuf = new_pixbuf_from_widget (separator);
-  gtk_widget_destroy (separator);
   return pixbuf;
 }
 
diff --git a/src/egg-editable-toolbar.h b/src/egg-editable-toolbar.h
@@ -1,6 +1,6 @@
 /*
- *  Copyright (C) 2003-2004 Marco Pesenti Gritti
- *  Copyright (C) 2004 Christian Persch
+ *  Copyright (C) 2003, 2004  Marco Pesenti Gritti
+ *  Copyright (C) 2003, 2004, 2005  Christian Persch
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- *  $Id: egg-editable-toolbar.h,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ *  $libegg-Id: egg-editable-toolbar.h,v 1.13 2005/06/01 17:22:19 chpe Exp $
  */
 
 #ifndef EGG_EDITABLE_TOOLBAR_H
@@ -32,8 +32,6 @@
 
 G_BEGIN_DECLS
 
-typedef struct EggEditableToolbarClass EggEditableToolbarClass;
-
 #define EGG_TYPE_EDITABLE_TOOLBAR             (egg_editable_toolbar_get_type ())
 #define EGG_EDITABLE_TOOLBAR(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbar))
 #define EGG_EDITABLE_TOOLBAR_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarClass))
@@ -41,11 +39,11 @@ typedef struct EggEditableToolbarClass EggEditableToolbarClass;
 #define EGG_IS_EDITABLE_TOOLBAR_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_EDITABLE_TOOLBAR))
 #define EGG_EDITABLE_TOOLBAR_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_EDITABLE_TOOLBAR, EggEditableToolbarClass))
 
+typedef struct _EggEditableToolbar        EggEditableToolbar;
+typedef struct _EggEditableToolbarPrivate EggEditableToolbarPrivate;
+typedef struct _EggEditableToolbarClass   EggEditableToolbarClass;
 
-typedef struct EggEditableToolbar EggEditableToolbar;
-typedef struct EggEditableToolbarPrivate EggEditableToolbarPrivate;
-
-struct EggEditableToolbar
+struct _EggEditableToolbar
 {
   GtkVBox parent_object;
 
@@ -53,7 +51,7 @@ struct EggEditableToolbar
   EggEditableToolbarPrivate *priv;
 };
 
-struct EggEditableToolbarClass
+struct _EggEditableToolbarClass
 {
   GtkVBoxClass parent_class;
 
@@ -80,7 +78,7 @@ void		    egg_editable_toolbar_set_drag_dest   (EggEditableToolbar   *etoolbar,
 							  gint                  n_targets,
 							  const char           *toolbar_name);
 void		    egg_editable_toolbar_set_fixed       (EggEditableToolbar   *etoolbar,
-							  GtkToolItem          *fixed);
+							  GtkToolbar           *fixed_toolbar);
 
 
 /* Private Functions */
diff --git a/src/egg-toolbar-editor.c b/src/egg-toolbar-editor.c
@@ -15,19 +15,17 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- *  $Id: egg-toolbar-editor.c,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ *  $libegg-Id: egg-toolbar-editor.c,v 1.14 2005/06/01 17:22:19 chpe Exp $
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "egg-toolbar-editor.h"
 #include "egg-editable-toolbar.h"
 
 #include <string.h>
-#include <libxml/tree.h>
 #include <glib/gi18n.h>
+#include <libxml/tree.h>
 #include <gtk/gtkimage.h>
 #include <gtk/gtkeventbox.h>
 #include <gtk/gtkdnd.h>
@@ -37,15 +35,13 @@
 #include <gtk/gtkstock.h>
 #include <gtk/gtkhbox.h>
 
-static GtkTargetEntry dest_drag_types[] = {
+static const GtkTargetEntry dest_drag_types[] = {
   {EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0},
 };
-static int n_dest_drag_types = G_N_ELEMENTS (dest_drag_types);
 
-static GtkTargetEntry source_drag_types[] = {
+static const GtkTargetEntry source_drag_types[] = {
   {EGG_TOOLBAR_ITEM_TYPE, GTK_TARGET_SAME_APP, 0},
 };
-static int n_source_drag_types = G_N_ELEMENTS (source_drag_types);
 
 static void egg_toolbar_editor_class_init	(EggToolbarEditorClass *klass);
 static void egg_toolbar_editor_init		(EggToolbarEditor *t);
@@ -79,9 +75,9 @@ struct EggToolbarEditorPrivate
 GType
 egg_toolbar_editor_get_type (void)
 {
-  static GType egg_toolbar_editor_type = 0;
+  static GType type = 0;
 
-  if (egg_toolbar_editor_type == 0)
+  if (G_UNLIKELY (type == 0))
     {
       static const GTypeInfo our_info = {
 	sizeof (EggToolbarEditorClass),
@@ -95,12 +91,12 @@ egg_toolbar_editor_get_type (void)
 	(GInstanceInitFunc) egg_toolbar_editor_init
       };
 
-      egg_toolbar_editor_type = g_type_register_static (GTK_TYPE_VBOX,
-							"EggToolbarEditor",
-							&our_info, 0);
+      type = g_type_register_static (GTK_TYPE_VBOX,
+				     "EggToolbarEditor",
+				     &our_info, 0);
     }
 
-  return egg_toolbar_editor_type;
+  return type;
 }
 
 static gint
@@ -370,7 +366,8 @@ drag_data_get_cb (GtkWidget          *widget,
     }
 
   gtk_selection_data_set (selection_data,
-			  selection_data->target, 8, target, strlen (target));
+                          selection_data->target, 8,
+                          (const guchar *)target, strlen (target));
 }
 
 static gchar *
@@ -454,7 +451,7 @@ editor_create_item (EggToolbarEditor *editor,
   gtk_widget_show (event_box);
   gtk_drag_source_set (event_box,
 		       GDK_BUTTON1_MASK,
-		       source_drag_types, n_source_drag_types, action);
+		       source_drag_types, G_N_ELEMENTS (source_drag_types), action);
   g_signal_connect (event_box, "drag_data_get",
 		    G_CALLBACK (drag_data_get_cb), editor);
   g_signal_connect (event_box, "drag_data_delete",
@@ -511,14 +508,14 @@ update_editor_sheet (EggToolbarEditor *editor)
   gtk_scrolled_window_add_with_viewport
     (GTK_SCROLLED_WINDOW (editor->priv->scrolled_window), table);
   gtk_drag_dest_set (table, GTK_DEST_DEFAULT_ALL,
-		     dest_drag_types, n_dest_drag_types, GDK_ACTION_MOVE);
+		     dest_drag_types, G_N_ELEMENTS (dest_drag_types), GDK_ACTION_MOVE);
   g_signal_connect (table, "drag_data_received",
 		    G_CALLBACK (editor_drag_data_received_cb), editor);
 
   to_drag = editor->priv->actions_list;
 
   x = y = 0;
-  width = 3;
+  width = 4;
   height = (g_list_length (to_drag)) / width + 1;
   gtk_table_resize (GTK_TABLE (editor->priv->table), height, width);
 
@@ -565,11 +562,6 @@ static void
 setup_editor (EggToolbarEditor *editor)
 {
   GtkWidget *scrolled_window;
-  GtkWidget *label_hbox;
-  GtkWidget *image;
-  GtkWidget *label;
-
-  g_return_if_fail (EGG_IS_TOOLBAR_EDITOR (editor));
 
   gtk_container_set_border_width (GTK_CONTAINER (editor), 12);
   scrolled_window = gtk_scrolled_window_new (NULL, NULL);
@@ -578,18 +570,6 @@ setup_editor (EggToolbarEditor *editor)
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
 				  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
   gtk_box_pack_start (GTK_BOX (editor), scrolled_window, TRUE, TRUE, 0);
-  label_hbox = gtk_hbox_new (FALSE, 6);
-  gtk_widget_show (label_hbox);
-  gtk_box_pack_start (GTK_BOX (editor), label_hbox, FALSE, FALSE, 0);
-  image =
-    gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
-  gtk_widget_show (image);
-  gtk_box_pack_start (GTK_BOX (label_hbox), image, FALSE, FALSE, 0);
-  label = gtk_label_new (_("Drag an item onto the toolbars above to add it, "
-			   "from the toolbars in the items table to remove it."));
-  gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-  gtk_widget_show (label);
-  gtk_box_pack_start (GTK_BOX (label_hbox), label, FALSE, TRUE, 0);
 }
 
 static void
@@ -623,12 +603,12 @@ parse_item_list (EggToolbarEditor *t,
 {
   while (child)
     {
-      if (xmlStrEqual (child->name, "toolitem"))
+      if (xmlStrEqual (child->name, (const xmlChar*) "toolitem"))
 	{
 	  xmlChar *name;
 
-	  name = xmlGetProp (child, "name");
-	  egg_toolbar_editor_add_action (t, name);
+	  name = xmlGetProp (child, (const xmlChar*) "name");
+	  egg_toolbar_editor_add_action (t, (const char*)name);
 	  xmlFree (name);
 	}
       child = child->next;
@@ -696,7 +676,7 @@ egg_toolbar_editor_load_actions (EggToolbarEditor *editor,
 
   while (child)
     {
-      if (xmlStrEqual (child->name, "available"))
+      if (xmlStrEqual (child->name, (const xmlChar*) "available"))
 	{
 	  parse_item_list (editor, child->children);
 	}
diff --git a/src/egg-toolbars-model.c b/src/egg-toolbars-model.c
@@ -16,12 +16,10 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- *  $Id: egg-toolbars-model.c,v 1.1 2005/02/10 17:08:30 jylefort Exp $
+ *  $libegg-Id: egg-toolbars-model.c,v 1.15 2005/06/01 17:22:19 chpe Exp $
  */
 
-#ifdef HAVE_CONFIG_H
 #include "config.h"
-#endif
 
 #include "egg-toolbars-model.h"
 #include "eggmarshalers.h"
@@ -77,7 +75,7 @@ egg_toolbars_model_get_type (void)
 {
   static GType type = 0;
 
-  if (type == 0)
+  if (G_UNLIKELY (type == 0))
     {
       static const GTypeInfo our_info = {
 	sizeof (EggToolbarsModelClass),
@@ -110,16 +108,16 @@ egg_toolbars_model_to_xml (EggToolbarsModel *t)
   tl = t->priv->toolbars;
 
   xmlIndentTreeOutput = TRUE;
-  doc = xmlNewDoc ("1.0");
-  doc->children = xmlNewDocNode (doc, NULL, "toolbars", NULL);
+  doc = xmlNewDoc ((const xmlChar*) "1.0");
+  doc->children = xmlNewDocNode (doc, NULL, (const xmlChar*) "toolbars", NULL);
 
   for (l1 = tl->children; l1 != NULL; l1 = l1->next)
     {
       xmlNodePtr tnode;
       EggToolbarsToolbar *toolbar = l1->data;
 
-      tnode = xmlNewChild (doc->children, NULL, "toolbar", NULL);
-      xmlSetProp (tnode, "name", toolbar->name);
+      tnode = xmlNewChild (doc->children, NULL, (const xmlChar*) "toolbar", NULL);
+      xmlSetProp (tnode, (const xmlChar*) "name", (const xmlChar*) toolbar->name);
 
       for (l2 = l1->children; l2 != NULL; l2 = l2->next)
 	{
@@ -128,16 +126,16 @@ egg_toolbars_model_to_xml (EggToolbarsModel *t)
 
 	  if (item->separator)
 	    {
-	      node = xmlNewChild (tnode, NULL, "separator", NULL);
+	      node = xmlNewChild (tnode, NULL, (const xmlChar*) "separator", NULL);
 	    }
 	  else
 	    {
 	      char *data;
 
-	      node = xmlNewChild (tnode, NULL, "toolitem", NULL);
+	      node = xmlNewChild (tnode, NULL, (const xmlChar*) "toolitem", NULL);
 	      data = egg_toolbars_model_get_item_data (t, item->type, item->id);
-	      xmlSetProp (node, "type", item->type);
-	      xmlSetProp (node, "name", data);
+	      xmlSetProp (node, (const xmlChar*) "type", (const xmlChar*) item->type);
+	      xmlSetProp (node, (const xmlChar*) "name", (const xmlChar*) data);
 	      g_free (data);
 	    }
 	}
@@ -214,7 +212,7 @@ egg_toolbars_model_save (EggToolbarsModel *t,
 
   doc = egg_toolbars_model_to_xml (t);
   root = xmlDocGetRootElement (doc);
-  xmlSetProp (root, "version", version);
+  xmlSetProp (root, (const xmlChar*) "version", (const xmlChar*) version);
   safe_save_xml (xml_file, doc);
   xmlFreeDoc (doc);
 }
@@ -365,31 +363,31 @@ parse_item_list (EggToolbarsModel *t,
 {
   while (child)
     {
-      if (xmlStrEqual (child->name, "toolitem"))
+      if (xmlStrEqual (child->name, (const xmlChar*) "toolitem"))
 	{
 	  xmlChar *name, *type;
 	  char *id;
 
-	  name = xmlGetProp (child, "name");
-	  type = xmlGetProp (child, "type");
+	  name = xmlGetProp (child, (const xmlChar*) "name");
+	  type = xmlGetProp (child, (const xmlChar*) "type");
           if (type == NULL)
             {
-              type = xmlStrdup (EGG_TOOLBAR_ITEM_TYPE);
+              type = xmlCharStrdup (EGG_TOOLBAR_ITEM_TYPE);
             }
 
 	  if (name != NULL && name[0] != '\0' && type != NULL)
 	    {
-              id = egg_toolbars_model_get_item_id (t, type, name);
+              id = egg_toolbars_model_get_item_id (t, (const char*)type, (const char*)name);
 	      if (id != NULL)
 	        {
-	          egg_toolbars_model_add_item (t, position, -1, id, type);
+	          egg_toolbars_model_add_item (t, position, -1, id, (const char*)type);
                 }
               g_free (id);
             }
 	  xmlFree (name);
           xmlFree (type);
 	}
-      else if (xmlStrEqual (child->name, "separator"))
+      else if (xmlStrEqual (child->name, (const xmlChar*) "separator"))
 	{
 	  egg_toolbars_model_add_separator (t, position, -1);
 	}
@@ -425,21 +423,21 @@ parse_toolbars (EggToolbarsModel *t,
 {
   while (child)
     {
-      if (xmlStrEqual (child->name, "toolbar"))
+      if (xmlStrEqual (child->name, (const xmlChar*) "toolbar"))
 	{
 	  xmlChar *name;
 	  xmlChar *style;
 	  int position;
 
-	  name = xmlGetProp (child, "name");
-	  position = egg_toolbars_model_add_toolbar (t, -1, name);
+	  name = xmlGetProp (child, (const xmlChar*) "name");
+	  position = egg_toolbars_model_add_toolbar (t, -1, (const char*) name);
 	  xmlFree (name);
 
-	  style = xmlGetProp (child, "style");
-	  if (style && xmlStrEqual (style, "icons-only"))
+	  style = xmlGetProp (child, (const xmlChar*) "style");
+	  if (style && xmlStrEqual (style, (const xmlChar*) "icons-only"))
 	    {
 	      /* FIXME: use toolbar position instead of 0 */
-	      egg_toolbars_model_set_flags (t, 0, EGG_TB_MODEL_ICONS_ONLY);
+	      egg_toolbars_model_set_flags (t, 0, EGG_TB_MODEL_ICONS);
 	    }
 	  xmlFree (style);
 
diff --git a/src/egg-toolbars-model.h b/src/egg-toolbars-model.h
@@ -14,6 +14,8 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * 
+ *  $libegg-Id: egg-toolbars-model.h,v 1.13 2005/06/01 17:22:19 chpe Exp $
  */
 
 #ifndef EGG_TOOLBARS_MODEL_H
@@ -25,7 +27,6 @@
 
 G_BEGIN_DECLS
 
-
 #define EGG_TYPE_TOOLBARS_MODEL             (egg_toolbars_model_get_type ())
 #define EGG_TOOLBARS_MODEL(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModel))
 #define EGG_TOOLBARS_MODEL_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModelClass))
@@ -42,10 +43,11 @@ typedef struct EggToolbarsModelClass	EggToolbarsModelClass;
 typedef enum
 {
   EGG_TB_MODEL_NOT_REMOVABLE	 = 1 << 0,
-  EGG_TB_MODEL_ICONS_ONLY	 = 1 << 1,
-  EGG_TB_MODEL_TEXT_ONLY	 = 1 << 2,
-  EGG_TB_MODEL_ICONS_TEXT	 = 1 << 3,
-  EGG_TB_MODEL_ICONS_TEXT_HORIZ	 = 1 << 4,
+  EGG_TB_MODEL_BOTH		 = 1 << 1,
+  EGG_TB_MODEL_BOTH_HORIZ	 = 1 << 2,
+  EGG_TB_MODEL_ICONS		 = 1 << 3,
+  EGG_TB_MODEL_TEXT		 = 1 << 4,
+  EGG_TB_MODEL_STYLES_MASK	 = 0x1F,
   EGG_TB_MODEL_ACCEPT_ITEMS_ONLY = 1 << 5
 } EggTbModelFlags;
 
@@ -91,6 +93,7 @@ struct EggToolbarsModelClass
 			    const char       *type);
 };
 
+GType		  egg_toolbars_model_flags_get_type (void);
 GType		  egg_toolbars_model_get_type       (void);
 EggToolbarsModel *egg_toolbars_model_new	    (void);
 gboolean          egg_toolbars_model_load           (EggToolbarsModel *model,
diff --git a/src/eggtrayicon.c b/src/eggtrayicon.c
@@ -1,7 +1,6 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /* eggtrayicon.c
  * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org>
- * Copyright (C) 2003, 2004 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -19,14 +18,30 @@
  * Boston, MA 02111-1307, USA.
  */
 
-#include "config.h"
+#include <config.h>
 #include <string.h>
 #include <glib/gi18n.h>
+#include <libintl.h>
 
 #include "eggtrayicon.h"
 
+#include <gdkconfig.h>
+#if defined (GDK_WINDOWING_X11)
 #include <gdk/gdkx.h>
 #include <X11/Xatom.h>
+#elif defined (GDK_WINDOWING_WIN32)
+#include <gdk/gdkwin32.h>
+#endif
+
+#ifndef EGG_COMPILATION
+#ifndef _
+#define _(x) dgettext (GETTEXT_PACKAGE, x)
+#define N_(x) x
+#endif
+#else
+#define _(x) x
+#define N_(x) x
+#endif
 
 #define SYSTEM_TRAY_REQUEST_DOCK    0
 #define SYSTEM_TRAY_BEGIN_MESSAGE   1
@@ -53,7 +68,11 @@ static void egg_tray_icon_get_property (GObject    *object,
 static void egg_tray_icon_realize   (GtkWidget *widget);
 static void egg_tray_icon_unrealize (GtkWidget *widget);
 
-static void egg_tray_icon_update_manager_window (EggTrayIcon *icon);
+#ifdef GDK_WINDOWING_X11
+static void egg_tray_icon_update_manager_window    (EggTrayIcon *icon,
+						    gboolean     dock_if_realized);
+static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon);
+#endif
 
 GType
 egg_tray_icon_get_type (void)
@@ -111,6 +130,14 @@ egg_tray_icon_class_init (EggTrayIconClass *klass)
 						      GTK_TYPE_ORIENTATION,
 						      GTK_ORIENTATION_HORIZONTAL,
 						      G_PARAM_READABLE));
+
+#if defined (GDK_WINDOWING_X11)
+  /* Nothing */
+#elif defined (GDK_WINDOWING_WIN32)
+  g_warning ("Port eggtrayicon to Win32");
+#else
+  g_warning ("Port eggtrayicon to this GTK+ backend");
+#endif
 }
 
 static void
@@ -132,6 +159,8 @@ egg_tray_icon_get_property (GObject    *object,
     }
 }
 
+#ifdef GDK_WINDOWING_X11
+
 static void
 egg_tray_icon_get_orientation_property (EggTrayIcon *icon)
 {
@@ -194,7 +223,7 @@ egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_
       xev->xclient.message_type == icon->manager_atom &&
       xev->xclient.data.l[1] == icon->selection_atom)
     {
-      egg_tray_icon_update_manager_window (icon);
+      egg_tray_icon_update_manager_window (icon, TRUE);
     }
   else if (xev->xany.window == icon->manager_window)
     {
@@ -205,16 +234,18 @@ egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_
 	}
       if (xev->xany.type == DestroyNotify)
 	{
-	  egg_tray_icon_update_manager_window (icon);
+	  egg_tray_icon_manager_window_destroyed (icon);
 	}
     }
-  
   return GDK_FILTER_CONTINUE;
 }
 
+#endif  
+
 static void
 egg_tray_icon_unrealize (GtkWidget *widget)
 {
+#ifdef GDK_WINDOWING_X11
   EggTrayIcon *icon = EGG_TRAY_ICON (widget);
   GdkWindow *root_window;
 
@@ -234,8 +265,11 @@ egg_tray_icon_unrealize (GtkWidget *widget)
 
   if (GTK_WIDGET_CLASS (parent_class)->unrealize)
     (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
+#endif
 }
 
+#ifdef GDK_WINDOWING_X11
+
 static void
 egg_tray_icon_send_manager_message (EggTrayIcon *icon,
 				    long         message,
@@ -277,21 +311,15 @@ egg_tray_icon_send_dock_request (EggTrayIcon *icon)
 }
 
 static void
-egg_tray_icon_update_manager_window (EggTrayIcon *icon)
+egg_tray_icon_update_manager_window (EggTrayIcon *icon,
+				     gboolean     dock_if_realized)
 {
   Display *xdisplay;
   
-  xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
-  
   if (icon->manager_window != None)
-    {
-      GdkWindow *gdkwin;
+    return;
 
-      gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
-					      icon->manager_window);
-      
-      gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
-    }
+  xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon)));
   
   XGrabServer (xdisplay);
   
@@ -314,16 +342,36 @@ egg_tray_icon_update_manager_window (EggTrayIcon *icon)
       
       gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon);
 
-      /* Send a request that we'd like to dock */
-      egg_tray_icon_send_dock_request (icon);
+      if (dock_if_realized && GTK_WIDGET_REALIZED (icon))
+	egg_tray_icon_send_dock_request (icon);
 
       egg_tray_icon_get_orientation_property (icon);
     }
 }
 
 static void
+egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon)
+{
+  GdkWindow *gdkwin;
+  
+  g_return_if_fail (icon->manager_window != None);
+
+  gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)),
+					  icon->manager_window);
+      
+  gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon);
+
+  icon->manager_window = None;
+
+  egg_tray_icon_update_manager_window (icon, TRUE);
+}
+
+#endif
+
+static void
 egg_tray_icon_realize (GtkWidget *widget)
 {
+#ifdef GDK_WINDOWING_X11
   EggTrayIcon *icon = EGG_TRAY_ICON (widget);
   GdkScreen *screen;
   GdkDisplay *display;
@@ -355,13 +403,15 @@ egg_tray_icon_realize (GtkWidget *widget)
 					"_NET_SYSTEM_TRAY_ORIENTATION",
 					False);
 
-  egg_tray_icon_update_manager_window (icon);
+  egg_tray_icon_update_manager_window (icon, FALSE);
+  egg_tray_icon_send_dock_request (icon);
 
   root_window = gdk_screen_get_root_window (screen);
   
   /* Add a root window filter so that we get changes on MANAGER */
   gdk_window_add_filter (root_window,
 			 egg_tray_icon_manager_filter, icon);
+#endif
 }
 
 EggTrayIcon *
@@ -390,14 +440,17 @@ egg_tray_icon_send_message (EggTrayIcon *icon,
   g_return_val_if_fail (timeout >= 0, 0);
   g_return_val_if_fail (message != NULL, 0);
 		     
+#ifdef GDK_WINDOWING_X11
   if (icon->manager_window == None)
     return 0;
+#endif
 
   if (len < 0)
     len = strlen (message);
 
   stamp = icon->stamp++;
   
+#ifdef GDK_WINDOWING_X11
   /* Get ready to send the message */
   egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE,
 				      (Window)gtk_plug_get_id (GTK_PLUG (icon)),
@@ -434,6 +487,7 @@ egg_tray_icon_send_message (EggTrayIcon *icon,
       XSync (xdisplay, False);
     }
   gdk_error_trap_pop ();
+#endif
 
   return stamp;
 }
@@ -444,10 +498,11 @@ egg_tray_icon_cancel_message (EggTrayIcon *icon,
 {
   g_return_if_fail (EGG_IS_TRAY_ICON (icon));
   g_return_if_fail (id > 0);
-  
+#ifdef GDK_WINDOWING_X11  
   egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE,
 				      (Window)gtk_plug_get_id (GTK_PLUG (icon)),
 				      id, 0, 0);
+#endif
 }
 
 GtkOrientation
diff --git a/src/eggtrayicon.h b/src/eggtrayicon.h
@@ -22,7 +22,9 @@
 #define __EGG_TRAY_ICON_H__
 
 #include <gtk/gtkplug.h>
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 
 G_BEGIN_DECLS
 
@@ -42,12 +44,13 @@ struct _EggTrayIcon
 
   guint stamp;
   
+#ifdef GDK_WINDOWING_X11
   Atom selection_atom;
   Atom manager_atom;
   Atom system_tray_opcode_atom;
   Atom orientation_atom;
   Window manager_window;
-
+#endif
   GtkOrientation orientation;
 };
 
diff --git a/src/ent2h.sh b/src/ent2h.sh
@@ -1,51 +0,0 @@
-#!/bin/sh
-#
-# ent2h.sh - convert one or more SGML entity sets to a C header
-# $Id: ent2h.sh,v 1.2 2005/01/19 01:49:14 jylefort Exp $
-#
-# Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-cat <<EOF
-/*
- * mn-sgml-entities.h - SGML entities table
- *
- * Generated automatically by ent2h.sh.
- * Do not edit this file directly.
- */
-
-#ifndef _MN_SGML_ENTITIES_H
-#define _MN_SGML_ENTITIES_H
-
-static const struct
-{
-  const char		*name;
-  unsigned long		character;
-} entities[] = {
-EOF
-
-for f in $@; do
-    echo ""
-    echo "  /* $f */"
-    grep '^<!ENTITY' $f \
-	| sed -E 's/^<!ENTITY ([a-zA-Z]+).*"&#([0-9]+);.*$/  { "\1",	\2 },/'
-done
-
-cat <<EOF
-};
-
-#endif /* _MN_SGML_ENTITIES_H */
-EOF
diff --git a/src/mn-about-dialog-private.h b/src/mn-about-dialog-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_ABOUT_DIALOG_PRIVATE_H__
 #define __MN_ABOUT_DIALOG_PRIVATE_H__
diff --git a/src/mn-about-dialog.c b/src/mn-about-dialog.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,11 +23,12 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 25 "mn-about-dialog.gob"
+#line 26 "mn-about-dialog.gob"
 
+#include <gnome.h>
 #include "mn-util.h"
 
-#line 31 "mn-about-dialog.c"
+#line 32 "mn-about-dialog.c"
 /* self casting macros */
 #define SELF(x) MN_ABOUT_DIALOG(x)
 #define SELF_CONST(x) MN_ABOUT_DIALOG_CONST(x)
@@ -42,14 +43,15 @@ typedef MNAboutDialog Self;
 typedef MNAboutDialogClass SelfClass;
 
 /* here are local prototypes */
-static void mn_about_dialog_class_init (MNAboutDialogClass * c) G_GNUC_UNUSED;
+static void mn_about_dialog_class_init (MNAboutDialogClass * class) G_GNUC_UNUSED;
 static void mn_about_dialog_init (MNAboutDialog * self) G_GNUC_UNUSED;
+static void mn_about_dialog_activate_link_cb (GtkAboutDialog * about, const char * link, gpointer data) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
-static GnomeAboutClass *parent_class = NULL;
+static GtkAboutDialogClass *parent_class = NULL;
 
 /* Short form macros */
-#define self_new mn_about_dialog_new
+#define self_activate_link_cb mn_about_dialog_activate_link_cb
 GType
 mn_about_dialog_get_type (void)
 {
@@ -69,7 +71,7 @@ mn_about_dialog_get_type (void)
 			NULL
 		};
 
-		type = g_type_register_static (GNOME_TYPE_ABOUT, "MNAboutDialog", &info, (GTypeFlags)0);
+		type = g_type_register_static (GTK_TYPE_ABOUT_DIALOG, "MNAboutDialog", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -92,58 +94,85 @@ GET_NEW_VARG (const char *first, ...)
 	return ret;
 }
 
+#line 33 "mn-about-dialog.gob"
 static void 
-mn_about_dialog_class_init (MNAboutDialogClass * c G_GNUC_UNUSED)
+mn_about_dialog_class_init (MNAboutDialogClass * class G_GNUC_UNUSED)
+#line 101 "mn-about-dialog.c"
 {
 #define __GOB_FUNCTION__ "MN:About:Dialog::class_init"
 
-	parent_class = g_type_class_ref (GNOME_TYPE_ABOUT);
+	parent_class = g_type_class_ref (GTK_TYPE_ABOUT_DIALOG);
 
+ {
+#line 34 "mn-about-dialog.gob"
+
+    gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+    gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+  
+#line 113 "mn-about-dialog.c"
+ }
 }
 #undef __GOB_FUNCTION__
-#line 31 "mn-about-dialog.gob"
+#line 39 "mn-about-dialog.gob"
 static void 
 mn_about_dialog_init (MNAboutDialog * self G_GNUC_UNUSED)
-#line 108 "mn-about-dialog.c"
+#line 120 "mn-about-dialog.c"
 {
 #define __GOB_FUNCTION__ "MN:About:Dialog::init"
  {
-#line 32 "mn-about-dialog.gob"
+#line 40 "mn-about-dialog.gob"
 
+    GtkAboutDialog *about = GTK_ABOUT_DIALOG(self);
     const char *authors[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
     const char *documenters[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
     GdkPixbuf *logo;
 
+    gtk_about_dialog_set_version(about, VERSION);
+    gtk_about_dialog_set_copyright(about, "Copyright \302\251 2003-2005 Jean-Yves Lefort");
+    gtk_about_dialog_set_comments(about, _("A Mail Notification Icon"));
+    gtk_about_dialog_set_website(about, "http://www.nongnu.org/mailnotify");
+    gtk_about_dialog_set_authors(about, authors);
+    gtk_about_dialog_set_documenters(about, documenters);
+    /*
+     * translators: Your Name <your-email>
+     * optionally followed by one or more: \nOther Contributor's Name <his-email>
+     */
+    gtk_about_dialog_set_translator_credits(about, _("translator-credits"));
+
     logo = mn_pixbuf_new(MN_IMAGE_FILE(UIDIR, "logo.png"));
-    gnome_about_construct(GNOME_ABOUT(self),
-			  _("Mail Notification"),
-			  VERSION,
-			  "Copyright \302\251 2003-2005 Jean-Yves Lefort",
-			  _("A Mail Notification Icon"),
-			  authors,
-			  documenters,
-			  /* translator: replace with your name and email */
-			  _("Jean-Yves Lefort <jylefort@brutele.be>"),
-			  logo);
-    g_object_unref(logo);
+    if (logo)
+      {
+	gtk_about_dialog_set_logo(about, logo);
+	g_object_unref(logo);
+      }
   
-#line 131 "mn-about-dialog.c"
+#line 150 "mn-about-dialog.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 51 "mn-about-dialog.gob"
-GtkWidget * 
-mn_about_dialog_new (void)
-#line 141 "mn-about-dialog.c"
+#line 66 "mn-about-dialog.gob"
+static void 
+mn_about_dialog_activate_link_cb (GtkAboutDialog * about, const char * link, gpointer data)
+#line 160 "mn-about-dialog.c"
 {
-#define __GOB_FUNCTION__ "MN:About:Dialog::new"
+#define __GOB_FUNCTION__ "MN:About:Dialog::activate_link_cb"
 {
-#line 53 "mn-about-dialog.gob"
+#line 70 "mn-about-dialog.gob"
 	
-    return GTK_WIDGET(GET_NEW);
+    GError *err = NULL;
+    const char *prefix = data;
+    char *url;
+
+    url = prefix ? g_strconcat(prefix, link, NULL) : g_strdup(link);
+    if (! gnome_url_show(url, &err))
+      {
+        mn_error_dialog(GTK_WINDOW(about), NULL, NULL, _("Unable to open link"), "%s", err->message);
+	g_error_free(err);
+      }
+    g_free(url);
   }}
-#line 149 "mn-about-dialog.c"
+#line 178 "mn-about-dialog.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-about-dialog.gob b/src/mn-about-dialog.gob
@@ -16,41 +16,68 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include "config.h"
-#include <gnome.h>
+#include <gtk/gtk.h>
 %}
+
 %{
+#include <gnome.h>
 #include "mn-util.h"
 %}
 
-class MN:About:Dialog from Gnome:About
+class MN:About:Dialog from Gtk:About:Dialog
 {
+  class_init (class)
+  {
+    gtk_about_dialog_set_email_hook(self_activate_link_cb, "mailto:", NULL);
+    gtk_about_dialog_set_url_hook(self_activate_link_cb, NULL, NULL);
+  }
+  
   init (self)
   {
+    GtkAboutDialog *about = GTK_ABOUT_DIALOG(self);
     const char *authors[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
     const char *documenters[] = { "Jean-Yves Lefort <jylefort@brutele.be>", NULL };
     GdkPixbuf *logo;
 
+    gtk_about_dialog_set_version(about, VERSION);
+    gtk_about_dialog_set_copyright(about, "Copyright \302\251 2003-2005 Jean-Yves Lefort");
+    gtk_about_dialog_set_comments(about, _("A Mail Notification Icon"));
+    gtk_about_dialog_set_website(about, "http://www.nongnu.org/mailnotify");
+    gtk_about_dialog_set_authors(about, authors);
+    gtk_about_dialog_set_documenters(about, documenters);
+    /*
+     * translators: Your Name <your-email>
+     * optionally followed by one or more: \nOther Contributor's Name <his-email>
+     */
+    gtk_about_dialog_set_translator_credits(about, _("translator-credits"));
+
     logo = mn_pixbuf_new(MN_IMAGE_FILE(UIDIR, "logo.png"));
-    gnome_about_construct(GNOME_ABOUT(self),
-			  _("Mail Notification"),
-			  VERSION,
-			  "Copyright \302\251 2003-2005 Jean-Yves Lefort",
-			  _("A Mail Notification Icon"),
-			  authors,
-			  documenters,
-			  /* translator: replace with your name and email */
-			  _("Jean-Yves Lefort <jylefort@brutele.be>"),
-			  logo);
-    g_object_unref(logo);
+    if (logo)
+      {
+	gtk_about_dialog_set_logo(about, logo);
+	g_object_unref(logo);
+      }
   }
 
-  public GtkWidget *
-    new (void) 
+  private void
+    activate_link_cb (GtkAboutDialog *about,
+		      const char *link,
+		      gpointer data)
   {
-    return GTK_WIDGET(GET_NEW);
+    GError *err = NULL;
+    const char *prefix = data;
+    char *url;
+
+    url = prefix ? g_strconcat(prefix, link, NULL) : g_strdup(link);
+    if (! gnome_url_show(url, &err))
+      {
+        mn_error_dialog(GTK_WINDOW(about), NULL, NULL, _("Unable to open link"), "%s", err->message);
+	g_error_free(err);
+      }
+    g_free(url);
   }
 }
diff --git a/src/mn-about-dialog.h b/src/mn-about-dialog.h
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
 #include "config.h"
-#include <gnome.h>
+#include <gtk/gtk.h>
 
 #ifndef __MN_ABOUT_DIALOG_H__
 #define __MN_ABOUT_DIALOG_H__
@@ -34,7 +34,7 @@ extern "C" {
 typedef struct _MNAboutDialog MNAboutDialog;
 #endif
 struct _MNAboutDialog {
-	GnomeAbout __parent__;
+	GtkAboutDialog __parent__;
 };
 
 /*
@@ -42,7 +42,7 @@ struct _MNAboutDialog {
  */
 typedef struct _MNAboutDialogClass MNAboutDialogClass;
 struct _MNAboutDialogClass {
-	GnomeAboutClass __parent__;
+	GtkAboutDialogClass __parent__;
 };
 
 
@@ -50,7 +50,6 @@ struct _MNAboutDialogClass {
  * Public methods
  */
 GType	mn_about_dialog_get_type	(void);
-GtkWidget * 	mn_about_dialog_new	(void);
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-auth-combo-box-private.h b/src/mn-auth-combo-box-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_AUTH_COMBO_BOX_PRIVATE_H__
 #define __MN_AUTH_COMBO_BOX_PRIVATE_H__
diff --git a/src/mn-auth-combo-box.c b/src/mn-auth-combo-box.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,7 +23,7 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-auth-combo-box.gob"
+#line 25 "mn-auth-combo-box.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
@@ -31,15 +31,16 @@
 #include <sasl/sasl.h>
 #include "mn-sasl.h"
 #endif /* WITH_SASL */
+#include "mn-util.h"
 
-  enum 
-  {
-    COLUMN_MECHANISM,
-    COLUMN_LABEL,
-    N_COLUMNS
-  };
+enum 
+{
+  COLUMN_MECHANISM,
+  COLUMN_LABEL,
+  N_COLUMNS
+};
 
-#line 43 "mn-auth-combo-box.c"
+#line 44 "mn-auth-combo-box.c"
 /* self casting macros */
 #define SELF(x) MN_AUTH_COMBO_BOX(x)
 #define SELF_CONST(x) MN_AUTH_COMBO_BOX_CONST(x)
@@ -58,6 +59,7 @@ static void ___object_set_property (GObject *object, guint property_id, const GV
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_auth_combo_box_class_init (MNAuthComboBoxClass * c) G_GNUC_UNUSED;
 static void mn_auth_combo_box_init (MNAuthComboBox * self) G_GNUC_UNUSED;
+static int mn_auth_combo_box_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data) G_GNUC_UNUSED;
 
 enum {
 	PROP_0,
@@ -70,6 +72,7 @@ static GtkComboBoxClass *parent_class = NULL;
 /* Short form macros */
 #define self_get_active_mechanism mn_auth_combo_box_get_active_mechanism
 #define self_set_active_mechanism mn_auth_combo_box_set_active_mechanism
+#define self_sort_cb mn_auth_combo_box_sort_cb
 #define self_append mn_auth_combo_box_append
 #define self_new mn_auth_combo_box_new
 GType
@@ -139,14 +142,14 @@ mn_auth_combo_box_class_init (MNAuthComboBoxClass * c G_GNUC_UNUSED)
     }
 }
 #undef __GOB_FUNCTION__
-#line 87 "mn-auth-combo-box.gob"
+#line 88 "mn-auth-combo-box.gob"
 static void 
 mn_auth_combo_box_init (MNAuthComboBox * self G_GNUC_UNUSED)
-#line 146 "mn-auth-combo-box.c"
+#line 149 "mn-auth-combo-box.c"
 {
 #define __GOB_FUNCTION__ "MN:Auth:Combo:Box::init"
  {
-#line 88 "mn-auth-combo-box.gob"
+#line 89 "mn-auth-combo-box.gob"
 
     GtkListStore *store;
     GtkCellRenderer *renderer;
@@ -163,7 +166,7 @@ mn_auth_combo_box_init (MNAuthComboBox * self G_GNUC_UNUSED)
     
     self_append(self, NULL, _("<span style=\"italic\">autodetect</span>"));
 #ifdef WITH_SASL
-    if (mn_sasl_use(NULL))
+    if (mn_sasl_init(NULL))
       {
         const char **mechanisms;
 
@@ -179,13 +182,15 @@ mn_auth_combo_box_init (MNAuthComboBox * self G_GNUC_UNUSED)
 		g_free(escaped);
 	      }
 	  }
-	mn_sasl_unuse();
       }
 #endif /* WITH_SASL */
 
+    gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), self_sort_cb, NULL, NULL);
+    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
+
     self_set_active_mechanism(self, NULL);
   
-#line 189 "mn-auth-combo-box.c"
+#line 194 "mn-auth-combo-box.c"
  }
 }
 #undef __GOB_FUNCTION__
@@ -204,7 +209,7 @@ ___object_set_property (GObject *object,
 	switch (property_id) {
 	case PROP_ACTIVE_MECHANISM:
 		{
-#line 44 "mn-auth-combo-box.gob"
+#line 46 "mn-auth-combo-box.gob"
 
       const char *mechanism = g_value_get_string(VAL);
       GtkTreeModel *model;
@@ -233,7 +238,7 @@ ___object_set_property (GObject *object,
 	  valid = gtk_tree_model_iter_next(model, &iter);
 	}
     
-#line 237 "mn-auth-combo-box.c"
+#line 242 "mn-auth-combo-box.c"
 		}
 		break;
 	default:
@@ -262,7 +267,7 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_ACTIVE_MECHANISM:
 		{
-#line 73 "mn-auth-combo-box.gob"
+#line 75 "mn-auth-combo-box.gob"
 
       char *mechanism = NULL;
       GtkTreeIter iter;
@@ -273,10 +278,9 @@ ___object_get_property (GObject *object,
 	  gtk_tree_model_get(model, &iter, COLUMN_MECHANISM, &mechanism, -1);
 	}
 
-      g_value_set_string(VAL, mechanism);
-      g_free(mechanism);
+      g_value_take_string(VAL, mechanism);
     
-#line 280 "mn-auth-combo-box.c"
+#line 284 "mn-auth-combo-box.c"
 		}
 		break;
 	default:
@@ -292,48 +296,88 @@ ___object_get_property (GObject *object,
 #undef __GOB_FUNCTION__
 
 
-#line 73 "mn-auth-combo-box.gob"
+#line 75 "mn-auth-combo-box.gob"
 gchar * 
 mn_auth_combo_box_get_active_mechanism (MNAuthComboBox * self)
-#line 299 "mn-auth-combo-box.c"
+#line 303 "mn-auth-combo-box.c"
 {
 #define __GOB_FUNCTION__ "MN:Auth:Combo:Box::get_active_mechanism"
 {
-#line 42 "mn-auth-combo-box.gob"
+#line 44 "mn-auth-combo-box.gob"
 		gchar* val; g_object_get (G_OBJECT (self), "active_mechanism", &val, NULL); return val;
 }}
-#line 306 "mn-auth-combo-box.c"
+#line 310 "mn-auth-combo-box.c"
 #undef __GOB_FUNCTION__
 
-#line 44 "mn-auth-combo-box.gob"
+#line 46 "mn-auth-combo-box.gob"
 void 
 mn_auth_combo_box_set_active_mechanism (MNAuthComboBox * self, gchar * val)
-#line 312 "mn-auth-combo-box.c"
+#line 316 "mn-auth-combo-box.c"
 {
 #define __GOB_FUNCTION__ "MN:Auth:Combo:Box::set_active_mechanism"
 {
-#line 42 "mn-auth-combo-box.gob"
+#line 44 "mn-auth-combo-box.gob"
 		g_object_set (G_OBJECT (self), "active_mechanism", val, NULL);
 }}
-#line 319 "mn-auth-combo-box.c"
+#line 323 "mn-auth-combo-box.c"
 #undef __GOB_FUNCTION__
 
 
-#line 127 "mn-auth-combo-box.gob"
+#line 130 "mn-auth-combo-box.gob"
+static int 
+mn_auth_combo_box_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data)
+#line 330 "mn-auth-combo-box.c"
+{
+#define __GOB_FUNCTION__ "MN:Auth:Combo:Box::sort_cb"
+{
+#line 135 "mn-auth-combo-box.gob"
+	
+    char *mechanism_a;
+    char *label_a;
+    char *mechanism_b;
+    char *label_b;
+    int coll;
+
+    gtk_tree_model_get(model, a,
+		       COLUMN_MECHANISM, &mechanism_a,
+		       COLUMN_LABEL, &label_a,
+		       -1);
+    gtk_tree_model_get(model, b,
+		       COLUMN_MECHANISM, &mechanism_b,
+		       COLUMN_LABEL, &label_b,
+		       -1);
+
+    /* put "autodetect" (NULL mechanism) on top of the list */
+    if (mechanism_a && mechanism_b)
+      coll = mn_utf8_strcasecoll(label_a, label_b);
+    else if (mechanism_a || mechanism_b)
+      coll = mechanism_a ? 1 : -1;
+    else
+      coll = 0;
+
+    g_free(mechanism_a);
+    g_free(mechanism_b);
+
+    return coll;
+  }}
+#line 364 "mn-auth-combo-box.c"
+#undef __GOB_FUNCTION__
+
+#line 165 "mn-auth-combo-box.gob"
 void 
 mn_auth_combo_box_append (MNAuthComboBox * self, const char * mechanism, const char * label)
-#line 326 "mn-auth-combo-box.c"
+#line 370 "mn-auth-combo-box.c"
 {
 #define __GOB_FUNCTION__ "MN:Auth:Combo:Box::append"
-#line 127 "mn-auth-combo-box.gob"
+#line 165 "mn-auth-combo-box.gob"
 	g_return_if_fail (self != NULL);
-#line 127 "mn-auth-combo-box.gob"
+#line 165 "mn-auth-combo-box.gob"
 	g_return_if_fail (MN_IS_AUTH_COMBO_BOX (self));
-#line 127 "mn-auth-combo-box.gob"
+#line 165 "mn-auth-combo-box.gob"
 	g_return_if_fail (label != NULL);
-#line 335 "mn-auth-combo-box.c"
+#line 379 "mn-auth-combo-box.c"
 {
-#line 129 "mn-auth-combo-box.gob"
+#line 167 "mn-auth-combo-box.gob"
 	
     GtkTreeModel *model;
     GtkTreeIter iter;
@@ -346,19 +390,19 @@ mn_auth_combo_box_append (MNAuthComboBox * self, const char * mechanism, const c
 		       COLUMN_LABEL, label,
 		       -1);
   }}
-#line 350 "mn-auth-combo-box.c"
+#line 394 "mn-auth-combo-box.c"
 #undef __GOB_FUNCTION__
 
-#line 142 "mn-auth-combo-box.gob"
+#line 180 "mn-auth-combo-box.gob"
 GtkWidget * 
 mn_auth_combo_box_new (void)
-#line 356 "mn-auth-combo-box.c"
+#line 400 "mn-auth-combo-box.c"
 {
 #define __GOB_FUNCTION__ "MN:Auth:Combo:Box::new"
 {
-#line 144 "mn-auth-combo-box.gob"
+#line 182 "mn-auth-combo-box.gob"
 	
     return GTK_WIDGET(GET_NEW);
   }}
-#line 364 "mn-auth-combo-box.c"
+#line 408 "mn-auth-combo-box.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-auth-combo-box.gob b/src/mn-auth-combo-box.gob
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,11 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
@@ -28,13 +29,14 @@ requires 2.0.10
 #include <sasl/sasl.h>
 #include "mn-sasl.h"
 #endif /* WITH_SASL */
+#include "mn-util.h"
 
-  enum 
-  {
-    COLUMN_MECHANISM,
-    COLUMN_LABEL,
-    N_COLUMNS
-  };
+enum 
+{
+  COLUMN_MECHANISM,
+  COLUMN_LABEL,
+  N_COLUMNS
+};
 %}
 
 class MN:Auth:Combo:Box from Gtk:Combo:Box
@@ -80,8 +82,7 @@ class MN:Auth:Combo:Box from Gtk:Combo:Box
 	  gtk_tree_model_get(model, &iter, COLUMN_MECHANISM, &mechanism, -1);
 	}
 
-      g_value_set_string(VAL, mechanism);
-      g_free(mechanism);
+      g_value_take_string(VAL, mechanism);
     };
   
   init (self)
@@ -101,7 +102,7 @@ class MN:Auth:Combo:Box from Gtk:Combo:Box
     
     self_append(self, NULL, _("<span style=\"italic\">autodetect</span>"));
 #ifdef WITH_SASL
-    if (mn_sasl_use(NULL))
+    if (mn_sasl_init(NULL))
       {
         const char **mechanisms;
 
@@ -117,13 +118,50 @@ class MN:Auth:Combo:Box from Gtk:Combo:Box
 		g_free(escaped);
 	      }
 	  }
-	mn_sasl_unuse();
       }
 #endif /* WITH_SASL */
 
+    gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store), self_sort_cb, NULL, NULL);
+    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
+
     self_set_active_mechanism(self, NULL);
   }
 
+  private int
+    sort_cb (GtkTreeModel *model,
+	     GtkTreeIter *a,
+	     GtkTreeIter *b,
+	     gpointer user_data)
+  {
+    char *mechanism_a;
+    char *label_a;
+    char *mechanism_b;
+    char *label_b;
+    int coll;
+
+    gtk_tree_model_get(model, a,
+		       COLUMN_MECHANISM, &mechanism_a,
+		       COLUMN_LABEL, &label_a,
+		       -1);
+    gtk_tree_model_get(model, b,
+		       COLUMN_MECHANISM, &mechanism_b,
+		       COLUMN_LABEL, &label_b,
+		       -1);
+
+    /* put "autodetect" (NULL mechanism) on top of the list */
+    if (mechanism_a && mechanism_b)
+      coll = mn_utf8_strcasecoll(label_a, label_b);
+    else if (mechanism_a || mechanism_b)
+      coll = mechanism_a ? 1 : -1;
+    else
+      coll = 0;
+
+    g_free(mechanism_a);
+    g_free(mechanism_b);
+
+    return coll;
+  }
+  
   public void
     append (self, const char *mechanism, const char *label (check null))
   {
diff --git a/src/mn-auth-combo-box.h b/src/mn-auth-combo-box.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/mn-authenticated-mailbox-private.h b/src/mn-authenticated-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
 #define __MN_AUTHENTICATED_MAILBOX_PRIVATE_H__
@@ -9,15 +9,23 @@
 extern "C" {
 #endif /* __cplusplus */
 
+
+#line 25 "mn-authenticated-mailbox.gob"
+
+#include <gtk/gtk.h>
+
+#line 18 "mn-authenticated-mailbox-private.h"
 struct _MNAuthenticatedMailboxPrivate {
-#line 39 "mn-authenticated-mailbox.gob"
+#line 51 "mn-authenticated-mailbox.gob"
 	gboolean authentication_failed;
-#line 40 "mn-authenticated-mailbox.gob"
+#line 52 "mn-authenticated-mailbox.gob"
 	GtkWidget * dialog;
-#line 18 "mn-authenticated-mailbox-private.h"
+#line 54 "mn-authenticated-mailbox.gob"
+	gboolean checking;
+#line 26 "mn-authenticated-mailbox-private.h"
 };
 void 	mn_authenticated_mailbox_authentication_failed	(MNAuthenticatedMailbox * self);
-void 	mn_authenticated_mailbox_fill_password	(MNAuthenticatedMailbox * self);
+void 	mn_authenticated_mailbox_fill_credentials	(MNAuthenticatedMailbox * self, gboolean need_username, gboolean need_password);
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-authenticated-mailbox-properties-private.h b/src/mn-authenticated-mailbox-properties-private.h
@@ -0,0 +1,19 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_AUTHENTICATED_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_AUTHENTICATED_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-authenticated-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+GtkWidget * 	mn_authenticated_mailbox_properties_field_new	(MNAuthenticatedMailboxProperties * self, const char * mnemonic, GtkWidget ** label, GtkWidget ** entry);
+void 	mn_authenticated_mailbox_properties_get_contents	(MNAuthenticatedMailboxProperties * self, const char ** username, const char ** password);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-authenticated-mailbox-properties.c b/src/mn-authenticated-mailbox-properties.c
@@ -0,0 +1,277 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-authenticated-mailbox-properties.h"
+
+#include "mn-authenticated-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 26 "mn-authenticated-mailbox-properties.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-authenticated-mailbox.h"
+
+#line 33 "mn-authenticated-mailbox-properties.c"
+/* self casting macros */
+#define SELF(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_AUTHENTICATED_MAILBOX_PROPERTIES_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNAuthenticatedMailboxProperties Self;
+typedef MNAuthenticatedMailboxPropertiesClass SelfClass;
+
+/* here are local prototypes */
+static void mn_authenticated_mailbox_properties_class_init (MNAuthenticatedMailboxPropertiesClass * c) G_GNUC_UNUSED;
+static void mn_authenticated_mailbox_properties_init (MNAuthenticatedMailboxProperties * self) G_GNUC_UNUSED;
+static void ___3_mn_authenticated_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_authenticated_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNMailboxPropertiesClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_field_new mn_authenticated_mailbox_properties_field_new
+#define self_get_contents mn_authenticated_mailbox_properties_get_contents
+GType
+mn_authenticated_mailbox_properties_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNAuthenticatedMailboxPropertiesClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_authenticated_mailbox_properties_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNAuthenticatedMailboxProperties),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_authenticated_mailbox_properties_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNAuthenticatedMailboxProperties", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNAuthenticatedMailboxProperties *)g_object_new(mn_authenticated_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNAuthenticatedMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNAuthenticatedMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNAuthenticatedMailboxProperties *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNAuthenticatedMailboxProperties *)g_object_new_valist (mn_authenticated_mailbox_properties_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+static void 
+mn_authenticated_mailbox_properties_class_init (MNAuthenticatedMailboxPropertiesClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::class_init"
+	MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)c;
+
+	parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
+
+#line 90 "mn-authenticated-mailbox-properties.gob"
+	mn_mailbox_properties_class->set_mailbox = ___3_mn_authenticated_mailbox_properties_set_mailbox;
+#line 100 "mn-authenticated-mailbox-properties.gob"
+	mn_mailbox_properties_class->get_mailbox = ___4_mn_authenticated_mailbox_properties_get_mailbox;
+#line 113 "mn-authenticated-mailbox-properties.c"
+}
+#undef __GOB_FUNCTION__
+#line 41 "mn-authenticated-mailbox-properties.gob"
+static void 
+mn_authenticated_mailbox_properties_init (MNAuthenticatedMailboxProperties * self G_GNUC_UNUSED)
+#line 119 "mn-authenticated-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::init"
+ {
+#line 42 "mn-authenticated-mailbox-properties.gob"
+
+    const char *username;
+
+    self->username_vbox = self_field_new(self,
+					 _("_Username:"),
+					 &self->username_label,
+					 &self->username_entry);
+    self->password_vbox = self_field_new(self,
+					 _("_Password:"),
+					 &self->password_label,
+					 &self->password_entry);
+
+    /* defaults to the login name */
+    username = g_get_user_name();
+    if (username)
+      gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
+
+    gtk_entry_set_visibility(GTK_ENTRY(self->password_entry), FALSE);
+  
+#line 143 "mn-authenticated-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 62 "mn-authenticated-mailbox-properties.gob"
+GtkWidget * 
+mn_authenticated_mailbox_properties_field_new (MNAuthenticatedMailboxProperties * self, const char * mnemonic, GtkWidget ** label, GtkWidget ** entry)
+#line 153 "mn-authenticated-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::field_new"
+#line 62 "mn-authenticated-mailbox-properties.gob"
+	g_return_val_if_fail (self != NULL, (GtkWidget * )0);
+#line 62 "mn-authenticated-mailbox-properties.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES (self), (GtkWidget * )0);
+#line 62 "mn-authenticated-mailbox-properties.gob"
+	g_return_val_if_fail (mnemonic != NULL, (GtkWidget * )0);
+#line 62 "mn-authenticated-mailbox-properties.gob"
+	g_return_val_if_fail (entry != NULL, (GtkWidget * )0);
+#line 164 "mn-authenticated-mailbox-properties.c"
+{
+#line 67 "mn-authenticated-mailbox-properties.gob"
+	
+    GtkWidget *hbox;
+    GtkWidget *_label;
+
+    _label = gtk_label_new_with_mnemonic(mnemonic);
+    gtk_misc_set_alignment(GTK_MISC(_label), 0.0, 0.5);
+
+    *entry = gtk_entry_new();
+    gtk_label_set_mnemonic_widget(GTK_LABEL(_label), *entry);
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), _label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, _label);
+
+    if (label)
+      *label = _label;
+    
+    return hbox;
+  }}
+#line 189 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 90 "mn-authenticated-mailbox-properties.gob"
+static void 
+___3_mn_authenticated_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 195 "mn-authenticated-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+	{ if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::set_mailbox"
+{
+#line 92 "mn-authenticated-mailbox-properties.gob"
+	
+    Self *self = SELF(properties);
+    MNAuthenticatedMailbox *auth_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+
+    gtk_entry_set_text(GTK_ENTRY(self->username_entry), auth_mailbox->username ? auth_mailbox->username : "");
+    gtk_entry_set_text(GTK_ENTRY(self->password_entry), auth_mailbox->password ? auth_mailbox->password : "");
+  }}
+#line 210 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 100 "mn-authenticated-mailbox-properties.gob"
+static MNMailbox * 
+___4_mn_authenticated_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 217 "mn-authenticated-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+	((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::get_mailbox"
+{
+#line 102 "mn-authenticated-mailbox-properties.gob"
+	
+    Self *self = SELF(properties);
+    MNMailbox *mailbox;
+    const char *username;
+    const char *password;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+    password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+
+    g_object_set(mailbox,
+		 "username", *username ? username : NULL,
+		 "password", *password ? password : NULL,
+		 NULL);
+
+    return mailbox;
+  }}
+#line 244 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 121 "mn-authenticated-mailbox-properties.gob"
+void 
+mn_authenticated_mailbox_properties_get_contents (MNAuthenticatedMailboxProperties * self, const char ** username, const char ** password)
+#line 251 "mn-authenticated-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox:Properties::get_contents"
+#line 121 "mn-authenticated-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 121 "mn-authenticated-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES (self));
+#line 258 "mn-authenticated-mailbox-properties.c"
+{
+#line 125 "mn-authenticated-mailbox-properties.gob"
+	
+    if (username)
+      {
+	const char *_username;
+
+	_username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+	*username = *_username ? _username : NULL;
+      }
+    if (password)
+      {
+	const char *_password;
+
+	_password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+	*password = *_password ? _password : NULL;
+      }
+  }}
+#line 277 "mn-authenticated-mailbox-properties.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-authenticated-mailbox-properties.gob b/src/mn-authenticated-mailbox-properties.gob
@@ -0,0 +1,141 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-authenticated-mailbox.h"
+%}
+
+class MN:Authenticated:Mailbox:Properties from MN:Mailbox:Properties
+{
+  protected GtkWidget *username_vbox;
+  protected GtkWidget *username_label;
+  protected GtkWidget *username_entry;
+  protected GtkWidget *password_vbox;
+  protected GtkWidget *password_label;
+  protected GtkWidget *password_entry;
+
+  init (self)
+  {
+    const char *username;
+
+    self->username_vbox = self_field_new(self,
+					 _("_Username:"),
+					 &self->username_label,
+					 &self->username_entry);
+    self->password_vbox = self_field_new(self,
+					 _("_Password:"),
+					 &self->password_label,
+					 &self->password_entry);
+
+    /* defaults to the login name */
+    username = g_get_user_name();
+    if (username)
+      gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
+
+    gtk_entry_set_visibility(GTK_ENTRY(self->password_entry), FALSE);
+  }
+
+  protected GtkWidget *
+    field_new (self,
+	       const char *mnemonic (check null),
+	       GtkWidget **label,
+	       GtkWidget **entry (check null))
+  {
+    GtkWidget *hbox;
+    GtkWidget *_label;
+
+    _label = gtk_label_new_with_mnemonic(mnemonic);
+    gtk_misc_set_alignment(GTK_MISC(_label), 0.0, 0.5);
+
+    *entry = gtk_entry_new();
+    gtk_label_set_mnemonic_widget(GTK_LABEL(_label), *entry);
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), _label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, _label);
+
+    if (label)
+      *label = _label;
+    
+    return hbox;
+  }
+
+  override (MN:Mailbox:Properties) void
+    set_mailbox (MNMailboxProperties *properties, MNMailbox *mailbox)
+  {
+    Self *self = SELF(properties);
+    MNAuthenticatedMailbox *auth_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+
+    gtk_entry_set_text(GTK_ENTRY(self->username_entry), auth_mailbox->username ? auth_mailbox->username : "");
+    gtk_entry_set_text(GTK_ENTRY(self->password_entry), auth_mailbox->password ? auth_mailbox->password : "");
+  }
+
+  override (MN:Mailbox:Properties) MNMailbox *
+    get_mailbox (MNMailboxProperties *properties)
+  {
+    Self *self = SELF(properties);
+    MNMailbox *mailbox;
+    const char *username;
+    const char *password;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+    password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+
+    g_object_set(mailbox,
+		 "username", *username ? username : NULL,
+		 "password", *password ? password : NULL,
+		 NULL);
+
+    return mailbox;
+  }
+
+  protected void
+    get_contents (self,
+		  const char **username,
+		  const char **password)
+  {
+    if (username)
+      {
+	const char *_username;
+
+	_username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
+	*username = *_username ? _username : NULL;
+      }
+    if (password)
+      {
+	const char *_password;
+
+	_password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
+	*password = *_password ? _password : NULL;
+      }
+  }
+}
diff --git a/src/mn-authenticated-mailbox-properties.h b/src/mn-authenticated-mailbox-properties.h
@@ -0,0 +1,65 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
+
+#ifndef __MN_AUTHENTICATED_MAILBOX_PROPERTIES_H__
+#define __MN_AUTHENTICATED_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES	(mn_authenticated_mailbox_properties_get_type())
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxProperties)
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxProperties const)
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxPropertiesClass)
+#define MN_IS_AUTHENTICATED_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_authenticated_mailbox_properties_get_type ())
+
+#define MN_AUTHENTICATED_MAILBOX_PROPERTIES_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_authenticated_mailbox_properties_get_type(), MNAuthenticatedMailboxPropertiesClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_AUTHENTICATED_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_AUTHENTICATED_MAILBOX_PROPERTIES__
+typedef struct _MNAuthenticatedMailboxProperties MNAuthenticatedMailboxProperties;
+#endif
+struct _MNAuthenticatedMailboxProperties {
+	MNMailboxProperties __parent__;
+	/*< private >*/
+	GtkWidget * username_vbox; /* protected */
+	GtkWidget * username_label; /* protected */
+	GtkWidget * username_entry; /* protected */
+	GtkWidget * password_vbox; /* protected */
+	GtkWidget * password_label; /* protected */
+	GtkWidget * password_entry; /* protected */
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNAuthenticatedMailboxPropertiesClass MNAuthenticatedMailboxPropertiesClass;
+struct _MNAuthenticatedMailboxPropertiesClass {
+	MNMailboxPropertiesClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_authenticated_mailbox_properties_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-authenticated-mailbox.c b/src/mn-authenticated-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,10 +23,10 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 26 "mn-authenticated-mailbox.gob"
+#line 29 "mn-authenticated-mailbox.gob"
 
 #include "config.h"
-#include <glib/gi18n.h>
+#include <gnome.h>
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
 #include "mn-util.h"
@@ -46,20 +46,32 @@ typedef MNAuthenticatedMailbox Self;
 typedef MNAuthenticatedMailboxClass SelfClass;
 
 /* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_authenticated_mailbox_init (MNAuthenticatedMailbox * o) G_GNUC_UNUSED;
 static void mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c) G_GNUC_UNUSED;
 static void ___1_mn_authenticated_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void ___2_mn_authenticated_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static char * mn_authenticated_mailbox_password_prompt (MNAuthenticatedMailbox * self, const char * format, ...) G_GNUC_UNUSED;
+static void ___2_mn_authenticated_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_authenticated_mailbox_check_thread_cb (MNAuthenticatedMailbox * self) G_GNUC_UNUSED;
+static void ___real_mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self);
+static void mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self) G_GNUC_UNUSED;
+static gboolean mn_authenticated_mailbox_credentials_prompt (MNAuthenticatedMailbox * self, char ** username, char ** password, const char * format, ...) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_USERNAME,
+	PROP_PASSWORD
+};
 
 /* pointer to the class of our parent */
 static MNMailboxClass *parent_class = NULL;
 
 /* Short form macros */
+#define self_check_thread_cb mn_authenticated_mailbox_check_thread_cb
+#define self_impl_check mn_authenticated_mailbox_impl_check
 #define self_authentication_failed mn_authenticated_mailbox_authentication_failed
-#define self_fill_password mn_authenticated_mailbox_fill_password
-#define self_password_prompt mn_authenticated_mailbox_password_prompt
-#define self_password_prompt_changed_h mn_authenticated_mailbox_password_prompt_changed_h
+#define self_fill_credentials mn_authenticated_mailbox_fill_credentials
+#define self_credentials_prompt mn_authenticated_mailbox_credentials_prompt
 GType
 mn_authenticated_mailbox_get_type (void)
 {
@@ -111,9 +123,18 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 36 "mn-authenticated-mailbox.gob"
+#line 39 "mn-authenticated-mailbox.gob"
+	if(self->username) { g_free ((gpointer) self->username); self->username = NULL; }
+#line 129 "mn-authenticated-mailbox.c"
+#line 42 "mn-authenticated-mailbox.gob"
 	if(self->password) { g_free ((gpointer) self->password); self->password = NULL; }
-#line 117 "mn-authenticated-mailbox.c"
+#line 132 "mn-authenticated-mailbox.c"
+#line 45 "mn-authenticated-mailbox.gob"
+	if(self->runtime_username) { g_free ((gpointer) self->runtime_username); self->runtime_username = NULL; }
+#line 135 "mn-authenticated-mailbox.c"
+#line 46 "mn-authenticated-mailbox.gob"
+	if(self->runtime_password) { g_free ((gpointer) self->runtime_password); self->runtime_password = NULL; }
+#line 138 "mn-authenticated-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -121,10 +142,7 @@ static void
 mn_authenticated_mailbox_init (MNAuthenticatedMailbox * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNAuthenticatedMailboxPrivate);
-#line 26 "mn-authenticated-mailbox.gob"
-	o->password = NULL;
-#line 128 "mn-authenticated-mailbox.c"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_AUTHENTICATED_MAILBOX,MNAuthenticatedMailboxPrivate);
 }
 #undef __GOB_FUNCTION__
 static void 
@@ -138,33 +156,130 @@ mn_authenticated_mailbox_class_init (MNAuthenticatedMailboxClass * c G_GNUC_UNUS
 
 	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
 
-#line 42 "mn-authenticated-mailbox.gob"
+#line 56 "mn-authenticated-mailbox.gob"
 	mn_mailbox_class->removed = ___1_mn_authenticated_mailbox_removed;
-#line 53 "mn-authenticated-mailbox.gob"
-	mn_mailbox_class->impl_check = ___2_mn_authenticated_mailbox_impl_check;
-#line 146 "mn-authenticated-mailbox.c"
+#line 67 "mn-authenticated-mailbox.gob"
+	mn_mailbox_class->check = ___2_mn_authenticated_mailbox_check;
+#line 97 "mn-authenticated-mailbox.gob"
+	c->impl_check = ___real_mn_authenticated_mailbox_impl_check;
+#line 166 "mn-authenticated-mailbox.c"
 	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_string
+		("username" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_USERNAME,
+		param_spec);
+	param_spec = g_param_spec_string
+		("password" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_PASSWORD,
+		param_spec);
+    }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::set_property"
+{
+	MNAuthenticatedMailbox *self G_GNUC_UNUSED;
+
+	self = MN_AUTHENTICATED_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_USERNAME:
+		{
+#line 40 "mn-authenticated-mailbox.gob"
+{ char *old = self->username; self->username = g_value_dup_string (VAL); g_free (old); }
+#line 211 "mn-authenticated-mailbox.c"
+		}
+		break;
+	case PROP_PASSWORD:
+		{
+#line 43 "mn-authenticated-mailbox.gob"
+{ char *old = self->password; self->password = g_value_dup_string (VAL); g_free (old); }
+#line 218 "mn-authenticated-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::get_property"
+{
+	MNAuthenticatedMailbox *self G_GNUC_UNUSED;
+
+	self = MN_AUTHENTICATED_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_USERNAME:
+		{
+#line 40 "mn-authenticated-mailbox.gob"
+g_value_set_string (VAL, self->username);
+#line 249 "mn-authenticated-mailbox.c"
+		}
+		break;
+	case PROP_PASSWORD:
+		{
+#line 43 "mn-authenticated-mailbox.gob"
+g_value_set_string (VAL, self->password);
+#line 256 "mn-authenticated-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 42 "mn-authenticated-mailbox.gob"
+#line 56 "mn-authenticated-mailbox.gob"
 static void 
 ___1_mn_authenticated_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 156 "mn-authenticated-mailbox.c"
+#line 276 "mn-authenticated-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
 	{ if(MN_MAILBOX_CLASS(parent_class)->removed) \
 		(* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
 {
 #define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::removed"
-#line 42 "mn-authenticated-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 42 "mn-authenticated-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 166 "mn-authenticated-mailbox.c"
 {
-#line 44 "mn-authenticated-mailbox.gob"
+#line 58 "mn-authenticated-mailbox.gob"
 	
     Self *self = SELF(mailbox);
 
@@ -173,185 +288,255 @@ ___1_mn_authenticated_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
 
     PARENT_HANDLER(mailbox);
   }}
-#line 177 "mn-authenticated-mailbox.c"
+#line 292 "mn-authenticated-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 53 "mn-authenticated-mailbox.gob"
+#line 67 "mn-authenticated-mailbox.gob"
 static void 
-___2_mn_authenticated_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 184 "mn-authenticated-mailbox.c"
+___2_mn_authenticated_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 299 "mn-authenticated-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+	{ if(MN_MAILBOX_CLASS(parent_class)->check) \
+		(* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::impl_check"
-#line 53 "mn-authenticated-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 53 "mn-authenticated-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 194 "mn-authenticated-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::check"
 {
-#line 55 "mn-authenticated-mailbox.gob"
+#line 69 "mn-authenticated-mailbox.gob"
 	
     Self *self = SELF(mailbox);
 
+    if (selfp->checking)
+      return;
+
+    PARENT_HANDLER(mailbox);
+
+    mn_mailbox_set_error(mailbox, NULL);
+
+    g_object_ref(self);
+    mn_thread_create((GThreadFunc) self_check_thread_cb, self);
+  }}
+#line 320 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 83 "mn-authenticated-mailbox.gob"
+static void 
+mn_authenticated_mailbox_check_thread_cb (MNAuthenticatedMailbox * self)
+#line 327 "mn-authenticated-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::check_thread_cb"
+#line 83 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 83 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
+#line 334 "mn-authenticated-mailbox.c"
+{
+#line 85 "mn-authenticated-mailbox.gob"
+	
+    self_impl_check(self);
+
+    GDK_THREADS_ENTER();
+
+    selfp->checking = FALSE;
+    g_object_unref(self);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+  }}
+#line 348 "mn-authenticated-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 97 "mn-authenticated-mailbox.gob"
+static void 
+mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self)
+#line 354 "mn-authenticated-mailbox.c"
+{
+	MNAuthenticatedMailboxClass *klass;
+#line 97 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 97 "mn-authenticated-mailbox.gob"
+	g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
+#line 361 "mn-authenticated-mailbox.c"
+	klass = MN_AUTHENTICATED_MAILBOX_GET_CLASS(self);
+
+	if(klass->impl_check)
+		(*klass->impl_check)(self);
+}
+#line 97 "mn-authenticated-mailbox.gob"
+static void 
+___real_mn_authenticated_mailbox_impl_check (MNAuthenticatedMailbox * self G_GNUC_UNUSED)
+#line 370 "mn-authenticated-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::impl_check"
+{
+#line 99 "mn-authenticated-mailbox.gob"
+	
     self->prompted = FALSE;
     selfp->authentication_failed = FALSE;
   }}
-#line 203 "mn-authenticated-mailbox.c"
+#line 379 "mn-authenticated-mailbox.c"
 #undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
 
-#line 62 "mn-authenticated-mailbox.gob"
+#line 104 "mn-authenticated-mailbox.gob"
 void 
 mn_authenticated_mailbox_authentication_failed (MNAuthenticatedMailbox * self)
-#line 210 "mn-authenticated-mailbox.c"
+#line 385 "mn-authenticated-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::authentication_failed"
-#line 62 "mn-authenticated-mailbox.gob"
+#line 104 "mn-authenticated-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 62 "mn-authenticated-mailbox.gob"
+#line 104 "mn-authenticated-mailbox.gob"
 	g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
-#line 217 "mn-authenticated-mailbox.c"
+#line 392 "mn-authenticated-mailbox.c"
 {
-#line 64 "mn-authenticated-mailbox.gob"
+#line 106 "mn-authenticated-mailbox.gob"
 	
-    g_free(self->password);
-    self->password = NULL;
+    if (! self->username)
+      {
+	g_free(self->runtime_username);
+	self->runtime_username = NULL;
+      }
+
+    if (! self->password)
+      {
+	g_free(self->runtime_password);
+	self->runtime_password = NULL;
+      }
+
     selfp->authentication_failed = TRUE;
   }}
-#line 225 "mn-authenticated-mailbox.c"
+#line 410 "mn-authenticated-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 70 "mn-authenticated-mailbox.gob"
+#line 122 "mn-authenticated-mailbox.gob"
 void 
-mn_authenticated_mailbox_fill_password (MNAuthenticatedMailbox * self)
-#line 231 "mn-authenticated-mailbox.c"
+mn_authenticated_mailbox_fill_credentials (MNAuthenticatedMailbox * self, gboolean need_username, gboolean need_password)
+#line 416 "mn-authenticated-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::fill_password"
-#line 70 "mn-authenticated-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::fill_credentials"
+#line 122 "mn-authenticated-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 70 "mn-authenticated-mailbox.gob"
+#line 122 "mn-authenticated-mailbox.gob"
 	g_return_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self));
-#line 238 "mn-authenticated-mailbox.c"
+#line 423 "mn-authenticated-mailbox.c"
 {
-#line 72 "mn-authenticated-mailbox.gob"
+#line 124 "mn-authenticated-mailbox.gob"
 	
+    g_return_if_fail(need_username || need_password);
+
     self->cancelled = FALSE;
-    if (! self->password)
+
+    if (! self->runtime_username)
+      self->runtime_username = g_strdup(self->username);
+    if (! self->runtime_password)
+      self->runtime_password = g_strdup(self->password);
+
+    if (self->runtime_username)
+      need_username = FALSE;
+    if (self->runtime_password)
+      need_password = FALSE;
+
+    if (need_username || need_password)
       {
-	self->password = g_strdup(MN_MAILBOX(self)->uri->password);
-	if (! self->password)
+	char *username;
+	char *password;
+
+	GDK_THREADS_ENTER();
+
+	self->prompted = TRUE;
+
+	if (self_credentials_prompt(self,
+				    need_username ? &username : NULL,
+				    &password,
+				    selfp->authentication_failed
+				    ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the credentials you have entered are invalid.\n\nPlease re-enter your credentials.")
+				    : _("Enter your credentials for %s mailbox %s."),
+				    MN_MAILBOX(self)->format,
+				    MN_MAILBOX(self)->runtime_name))
 	  {
-	    GDK_THREADS_ENTER();
-
-	    self->prompted = TRUE;
-
-	    self->password = self_password_prompt(self,
-						  selfp->authentication_failed
-						  ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the password you have entered is invalid.\n\nPlease re-enter your password.")
-						  : _("Enter your password for %s mailbox %s."),
-						  MN_MAILBOX_GET_CLASS(self)->format,
-						  mn_mailbox_get_name(MN_MAILBOX(self)));
-
-	    if (! self->password)
-	      self->cancelled = TRUE;
-	    
-	    gdk_flush();
-	    GDK_THREADS_LEAVE();
+	    if (need_username)
+	      self->runtime_username = username;
+
+	    /*
+	     * GnomePasswordDialog does not let us disable the
+	     * password entry, so, even if need_password is FALSE, we
+	     * set runtime_password to what the user has entered.
+	     */
+
+	    g_free(self->runtime_password);
+	    self->runtime_password = password;
 	  }
+	else
+	  self->cancelled = TRUE;
+	
+	gdk_flush();
+	GDK_THREADS_LEAVE();
       }
   }}
-#line 267 "mn-authenticated-mailbox.c"
+#line 478 "mn-authenticated-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 99 "mn-authenticated-mailbox.gob"
-static char * 
-mn_authenticated_mailbox_password_prompt (MNAuthenticatedMailbox * self, const char * format, ...)
-#line 273 "mn-authenticated-mailbox.c"
+#line 177 "mn-authenticated-mailbox.gob"
+static gboolean 
+mn_authenticated_mailbox_credentials_prompt (MNAuthenticatedMailbox * self, char ** username, char ** password, const char * format, ...)
+#line 484 "mn-authenticated-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::password_prompt"
-#line 99 "mn-authenticated-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (char * )0);
-#line 99 "mn-authenticated-mailbox.gob"
-	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self), (char * )0);
-#line 99 "mn-authenticated-mailbox.gob"
-	g_return_val_if_fail (format != NULL, (char * )0);
-#line 282 "mn-authenticated-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::credentials_prompt"
+#line 177 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 177 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (MN_IS_AUTHENTICATED_MAILBOX (self), (gboolean )0);
+#line 177 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (password != NULL, (gboolean )0);
+#line 177 "mn-authenticated-mailbox.gob"
+	g_return_val_if_fail (format != NULL, (gboolean )0);
+#line 495 "mn-authenticated-mailbox.c"
 {
-#line 101 "mn-authenticated-mailbox.gob"
+#line 183 "mn-authenticated-mailbox.gob"
 	
-    GtkWidget *label;
-    GtkWidget *username_label;
-    GtkWidget *username_entry;
-    GtkWidget *password_label;
-    GtkWidget *password_entry;
-    GtkSizeGroup *size_group;
     va_list args;
-    char *prompt;
-    char *markup;
-    char *password = NULL;
-
-    g_return_val_if_fail(selfp->dialog == NULL, NULL);
-
-    mn_create_interface(MN_INTERFACE_FILE("authentication.glade"),
-			"dialog", &selfp->dialog,
-			"label", &label,
-			"username_label", &username_label,
-			"username_entry", &username_entry,
-			"password_label", &password_label,
-			"password_entry", &password_entry,
-			NULL);
+    char *message;
+    gboolean ok;
 
-    eel_add_weak_pointer(&selfp->dialog);
-
-    gtk_dialog_set_default_response(GTK_DIALOG(selfp->dialog), GTK_RESPONSE_OK);
-
-    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-    gtk_size_group_add_widget(size_group, username_label);
-    gtk_size_group_add_widget(size_group, password_label);
-    g_object_unref(size_group);
+    g_return_val_if_fail(selfp->dialog == NULL, FALSE);
 
     va_start(args, format);
-    prompt = g_strdup_vprintf(format, args);
+    message = g_strdup_vprintf(format, args);
     va_end(args);
 
-    markup = g_markup_printf_escaped(_("<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</span>\n"
-				       "\n"
-				       "%s"),
-				     prompt);
-    g_free(prompt);
+    /* keep the title in sync with gnome-authentication-manager */
+    selfp->dialog = gnome_password_dialog_new(_("Authentication Required"),
+					      message,
+					      self->runtime_username,
+					      self->runtime_password,
+					      FALSE);
+    g_free(message);
 
-    gtk_label_set_markup(GTK_LABEL(label), markup);
-    g_free(markup);
-
-    gtk_entry_set_text(GTK_ENTRY(username_entry), MN_MAILBOX(self)->uri->username);
+    eel_add_weak_pointer(&selfp->dialog);
 
-    if (mn_dialog_run_nonmodal(GTK_DIALOG(selfp->dialog)) == GTK_RESPONSE_OK)
-      password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry)));
+    gnome_password_dialog_set_show_userpass_buttons(GNOME_PASSWORD_DIALOG(selfp->dialog), FALSE);
+    gnome_password_dialog_set_readonly_username(GNOME_PASSWORD_DIALOG(selfp->dialog), username == NULL);
 
-    gtk_widget_destroy(selfp->dialog);
+    ok = gnome_password_dialog_run_and_block(GNOME_PASSWORD_DIALOG(selfp->dialog));
+    if (ok)
+      {
+	if (username)
+	  *username = gnome_password_dialog_get_username(GNOME_PASSWORD_DIALOG(selfp->dialog));
 
-    return password;
-  }}
-#line 339 "mn-authenticated-mailbox.c"
-#undef __GOB_FUNCTION__
+	*password = gnome_password_dialog_get_password(GNOME_PASSWORD_DIALOG(selfp->dialog));
+      }
+    else
+      {
+	if (username)
+	  *username = NULL;
 
-#line 158 "mn-authenticated-mailbox.gob"
-void 
-mn_authenticated_mailbox_password_prompt_changed_h (gpointer user_data, GtkEditable * editable)
-#line 345 "mn-authenticated-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Authenticated:Mailbox::password_prompt_changed_h"
-{
-#line 161 "mn-authenticated-mailbox.gob"
-	
-    GtkDialog *dialog = user_data;
-    const char *password;
+	*password = NULL;
+      }
+    
+    gtk_widget_destroy(selfp->dialog);
 
-    password = gtk_entry_get_text(GTK_ENTRY(editable));
-    gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, *password != 0);
+    return ok;
   }}
-#line 357 "mn-authenticated-mailbox.c"
+#line 542 "mn-authenticated-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-authenticated-mailbox.gob b/src/mn-authenticated-mailbox.gob
@@ -16,16 +16,19 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
-#include <gtk/gtk.h>
 #include "mn-mailbox.h"
 %}
 
+%privateheader{
+#include <gtk/gtk.h>
+%}
+
 %{
 #include "config.h"
-#include <glib/gi18n.h>
+#include <gnome.h>
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
 #include "mn-util.h"
@@ -33,14 +36,25 @@ requires 2.0.10
 
 class MN:Authenticated:Mailbox from MN:Mailbox
 {
-  protected char *password = NULL destroywith g_free;
+  public char *username destroywith g_free;
+  property STRING username (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+  public char *password destroywith g_free;
+  property STRING password (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+  public char *runtime_username destroywith g_free;
+  public char *runtime_password destroywith g_free;
+
   protected gboolean prompted;
   protected gboolean cancelled;
+
   private gboolean authentication_failed;
   private GtkWidget *dialog;
 
+  private gboolean checking;
+
   override (MN:Mailbox) void
-    removed (MN:Mailbox *mailbox (check null type))
+    removed (MNMailbox *mailbox)
   {
     Self *self = SELF(mailbox);
 
@@ -51,10 +65,38 @@ class MN:Authenticated:Mailbox from MN:Mailbox
   }
 
   override (MN:Mailbox) void
-    impl_check (MN:Mailbox *mailbox (check null type))
+    check (MNMailbox *mailbox)
   {
     Self *self = SELF(mailbox);
 
+    if (selfp->checking)
+      return;
+
+    PARENT_HANDLER(mailbox);
+
+    mn_mailbox_set_error(mailbox, NULL);
+
+    g_object_ref(self);
+    mn_thread_create((GThreadFunc) self_check_thread_cb, self);
+  }
+
+  private void
+    check_thread_cb (self)
+  {
+    self_impl_check(self);
+
+    GDK_THREADS_ENTER();
+
+    selfp->checking = FALSE;
+    g_object_unref(self);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+  }
+  
+  virtual private void
+    impl_check (self)
+  {
     self->prompted = FALSE;
     selfp->authentication_failed = FALSE;
   }
@@ -62,107 +104,124 @@ class MN:Authenticated:Mailbox from MN:Mailbox
   protected void
     authentication_failed (self)
   {
-    g_free(self->password);
-    self->password = NULL;
+    if (! self->username)
+      {
+	g_free(self->runtime_username);
+	self->runtime_username = NULL;
+      }
+
+    if (! self->password)
+      {
+	g_free(self->runtime_password);
+	self->runtime_password = NULL;
+      }
+
     selfp->authentication_failed = TRUE;
   }
   
   protected void
-    fill_password (self)
+    fill_credentials (self, gboolean need_username, gboolean need_password)
   {
+    g_return_if_fail(need_username || need_password);
+
     self->cancelled = FALSE;
-    if (! self->password)
+
+    if (! self->runtime_username)
+      self->runtime_username = g_strdup(self->username);
+    if (! self->runtime_password)
+      self->runtime_password = g_strdup(self->password);
+
+    if (self->runtime_username)
+      need_username = FALSE;
+    if (self->runtime_password)
+      need_password = FALSE;
+
+    if (need_username || need_password)
       {
-	self->password = g_strdup(MN_MAILBOX(self)->uri->password);
-	if (! self->password)
+	char *username;
+	char *password;
+
+	GDK_THREADS_ENTER();
+
+	self->prompted = TRUE;
+
+	if (self_credentials_prompt(self,
+				    need_username ? &username : NULL,
+				    &password,
+				    selfp->authentication_failed
+				    ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the credentials you have entered are invalid.\n\nPlease re-enter your credentials.")
+				    : _("Enter your credentials for %s mailbox %s."),
+				    MN_MAILBOX(self)->format,
+				    MN_MAILBOX(self)->runtime_name))
 	  {
-	    GDK_THREADS_ENTER();
-
-	    self->prompted = TRUE;
-
-	    self->password = self_password_prompt(self,
-						  selfp->authentication_failed
-						  ? _("Mail Notification was unable to log into %s mailbox %s, possibly because the password you have entered is invalid.\n\nPlease re-enter your password.")
-						  : _("Enter your password for %s mailbox %s."),
-						  MN_MAILBOX_GET_CLASS(self)->format,
-						  mn_mailbox_get_name(MN_MAILBOX(self)));
-
-	    if (! self->password)
-	      self->cancelled = TRUE;
-	    
-	    gdk_flush();
-	    GDK_THREADS_LEAVE();
+	    if (need_username)
+	      self->runtime_username = username;
+
+	    /*
+	     * GnomePasswordDialog does not let us disable the
+	     * password entry, so, even if need_password is FALSE, we
+	     * set runtime_password to what the user has entered.
+	     */
+
+	    g_free(self->runtime_password);
+	    self->runtime_password = password;
 	  }
+	else
+	  self->cancelled = TRUE;
+	
+	gdk_flush();
+	GDK_THREADS_LEAVE();
       }
   }
   
-  private char *
-    password_prompt (self, const char *format (check null), ...)
+  private gboolean
+    credentials_prompt (self,
+			char **username,
+			char **password (check null),
+			const char *format (check null),
+			...)
   {
-    GtkWidget *label;
-    GtkWidget *username_label;
-    GtkWidget *username_entry;
-    GtkWidget *password_label;
-    GtkWidget *password_entry;
-    GtkSizeGroup *size_group;
     va_list args;
-    char *prompt;
-    char *markup;
-    char *password = NULL;
+    char *message;
+    gboolean ok;
 
-    g_return_val_if_fail(selfp->dialog == NULL, NULL);
-
-    mn_create_interface(MN_INTERFACE_FILE("authentication.glade"),
-			"dialog", &selfp->dialog,
-			"label", &label,
-			"username_label", &username_label,
-			"username_entry", &username_entry,
-			"password_label", &password_label,
-			"password_entry", &password_entry,
-			NULL);
-
-    eel_add_weak_pointer(&selfp->dialog);
-
-    gtk_dialog_set_default_response(GTK_DIALOG(selfp->dialog), GTK_RESPONSE_OK);
-
-    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-    gtk_size_group_add_widget(size_group, username_label);
-    gtk_size_group_add_widget(size_group, password_label);
-    g_object_unref(size_group);
+    g_return_val_if_fail(selfp->dialog == NULL, FALSE);
 
     va_start(args, format);
-    prompt = g_strdup_vprintf(format, args);
+    message = g_strdup_vprintf(format, args);
     va_end(args);
 
-    markup = g_markup_printf_escaped(_("<span weight=\"bold\" size=\"larger\">Mail Notification requires a password</span>\n"
-				       "\n"
-				       "%s"),
-				     prompt);
-    g_free(prompt);
-
-    gtk_label_set_markup(GTK_LABEL(label), markup);
-    g_free(markup);
-
-    gtk_entry_set_text(GTK_ENTRY(username_entry), MN_MAILBOX(self)->uri->username);
+    /* keep the title in sync with gnome-authentication-manager */
+    selfp->dialog = gnome_password_dialog_new(_("Authentication Required"),
+					      message,
+					      self->runtime_username,
+					      self->runtime_password,
+					      FALSE);
+    g_free(message);
 
-    if (mn_dialog_run_nonmodal(GTK_DIALOG(selfp->dialog)) == GTK_RESPONSE_OK)
-      password = g_strdup(gtk_entry_get_text(GTK_ENTRY(password_entry)));
+    eel_add_weak_pointer(&selfp->dialog);
 
-    gtk_widget_destroy(selfp->dialog);
+    gnome_password_dialog_set_show_userpass_buttons(GNOME_PASSWORD_DIALOG(selfp->dialog), FALSE);
+    gnome_password_dialog_set_readonly_username(GNOME_PASSWORD_DIALOG(selfp->dialog), username == NULL);
 
-    return password;
-  }
+    ok = gnome_password_dialog_run_and_block(GNOME_PASSWORD_DIALOG(selfp->dialog));
+    if (ok)
+      {
+	if (username)
+	  *username = gnome_password_dialog_get_username(GNOME_PASSWORD_DIALOG(selfp->dialog));
 
-  /* libglade callbacks */
+	*password = gnome_password_dialog_get_password(GNOME_PASSWORD_DIALOG(selfp->dialog));
+      }
+    else
+      {
+	if (username)
+	  *username = NULL;
 
-  public void
-    password_prompt_changed_h (gpointer user_data,
-			       GtkEditable *editable)
-  {
-    GtkDialog *dialog = user_data;
-    const char *password;
+	*password = NULL;
+      }
+    
+    gtk_widget_destroy(selfp->dialog);
 
-    password = gtk_entry_get_text(GTK_ENTRY(editable));
-    gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_OK, *password != 0);
+    return ok;
   }
 }
diff --git a/src/mn-authenticated-mailbox.h b/src/mn-authenticated-mailbox.h
@@ -1,10 +1,9 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
-#include <gtk/gtk.h>
 #include "mn-mailbox.h"
 
 #ifndef __MN_AUTHENTICATED_MAILBOX_H__
@@ -38,8 +37,12 @@ typedef struct _MNAuthenticatedMailbox MNAuthenticatedMailbox;
 #endif
 struct _MNAuthenticatedMailbox {
 	MNMailbox __parent__;
+	/*< public >*/
+	char * username;
+	char * password;
+	char * runtime_username;
+	char * runtime_password;
 	/*< private >*/
-	char * password; /* protected */
 	gboolean prompted; /* protected */
 	gboolean cancelled; /* protected */
 	MNAuthenticatedMailboxPrivate *_priv;
@@ -51,6 +54,7 @@ struct _MNAuthenticatedMailbox {
 typedef struct _MNAuthenticatedMailboxClass MNAuthenticatedMailboxClass;
 struct _MNAuthenticatedMailboxClass {
 	MNMailboxClass __parent__;
+	void (* impl_check) (MNAuthenticatedMailbox * self);
 };
 
 
@@ -58,8 +62,22 @@ struct _MNAuthenticatedMailboxClass {
  * Public methods
  */
 GType	mn_authenticated_mailbox_get_type	(void);
-void 	mn_authenticated_mailbox_password_prompt_changed_h	(gpointer user_data,
-					GtkEditable * editable);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_AUTHENTICATED_MAILBOX_PROP_USERNAME(arg)    	"username", __extension__ ({gchar *z = (arg); z;})
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_USERNAME(arg)	"username", __extension__ ({gchar **z = (arg); z;})
+#define MN_AUTHENTICATED_MAILBOX_PROP_PASSWORD(arg)    	"password", __extension__ ({gchar *z = (arg); z;})
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_PASSWORD(arg)	"password", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_AUTHENTICATED_MAILBOX_PROP_USERNAME(arg)    	"username",(gchar *)(arg)
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_USERNAME(arg)	"username",(gchar **)(arg)
+#define MN_AUTHENTICATED_MAILBOX_PROP_PASSWORD(arg)    	"password",(gchar *)(arg)
+#define MN_AUTHENTICATED_MAILBOX_GET_PROP_PASSWORD(arg)	"password",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-autodetect-mailbox-properties-private.h b/src/mn-autodetect-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_AUTODETECT_MAILBOX_PROPERTIES_PRIVATE_H__
 #define __MN_AUTODETECT_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -10,13 +10,11 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNAutodetectMailboxPropertiesPrivate {
-#line 41 "mn-autodetect-mailbox-properties.gob"
-	GtkSizeGroup * size_group;
-#line 53 "mn-autodetect-mailbox-properties.gob"
+#line 44 "mn-autodetect-mailbox-properties.gob"
 	GtkWidget * location_entry;
-#line 54 "mn-autodetect-mailbox-properties.gob"
+#line 45 "mn-autodetect-mailbox-properties.gob"
 	GtkWidget * chooser;
-#line 20 "mn-autodetect-mailbox-properties-private.h"
+#line 18 "mn-autodetect-mailbox-properties-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-autodetect-mailbox-properties.c b/src/mn-autodetect-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,19 +23,23 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-autodetect-mailbox-properties.gob"
+#line 26 "mn-autodetect-mailbox-properties.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
 #include <eel/eel.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
 #include "mn-util.h"
 #include "mn-properties-dialog.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-custom-vfs-mailbox.h"
+#endif
+#include "mn-stock.h"
 
-  static char *current_folder_uri = NULL;
+static char *current_folder_uri = NULL;
 
-#line 39 "mn-autodetect-mailbox-properties.c"
+#line 43 "mn-autodetect-mailbox-properties.c"
 /* self casting macros */
 #define SELF(x) MN_AUTODETECT_MAILBOX_PROPERTIES(x)
 #define SELF_CONST(x) MN_AUTODETECT_MAILBOX_PROPERTIES_CONST(x)
@@ -50,47 +54,28 @@ typedef MNAutodetectMailboxProperties Self;
 typedef MNAutodetectMailboxPropertiesClass SelfClass;
 
 /* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * o) G_GNUC_UNUSED;
-static void mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_autodetect_mailbox_properties_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static void mn_autodetect_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data) G_GNUC_UNUSED;
+static void mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * self) G_GNUC_UNUSED;
 static void mn_autodetect_mailbox_properties_browse_clicked_h (GtkButton * button, gpointer user_data) G_GNUC_UNUSED;
 static void mn_autodetect_mailbox_properties_current_folder_changed_h (GtkFileChooser * chooser, gpointer user_data) G_GNUC_UNUSED;
 static void mn_autodetect_mailbox_properties_chooser_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_autodetect_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_autodetect_mailbox_properties_get_uri (MNMailboxProperties * self) G_GNUC_UNUSED;
+static void ___6_mn_autodetect_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___7_mn_autodetect_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
 
 enum {
 	PROP_0,
-	PROP_LABEL,
-	PROP_SIZE_GROUP,
-	PROP_COMPLETE
+	PROP_COMPLETE,
+	PROP_DEFAULT_NAME
 };
 
 /* pointer to the class of our parent */
-static GtkHBoxClass *parent_class = NULL;
+static MNMailboxPropertiesClass *parent_class = NULL;
 
 /* Short form macros */
-#define self_entry_changed_h mn_autodetect_mailbox_properties_entry_changed_h
 #define self_browse_clicked_h mn_autodetect_mailbox_properties_browse_clicked_h
 #define self_current_folder_changed_h mn_autodetect_mailbox_properties_current_folder_changed_h
 #define self_chooser_response_h mn_autodetect_mailbox_properties_chooser_response_h
-#define self_set_uri mn_autodetect_mailbox_properties_set_uri
-#define self_get_uri mn_autodetect_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 176 "mn-autodetect-mailbox-properties.gob"
-	iface->set_uri = self_set_uri;
-#line 184 "mn-autodetect-mailbox-properties.gob"
-	iface->get_uri = self_get_uri;
-#line 92 "mn-autodetect-mailbox-properties.c"
-}
-
 GType
 mn_autodetect_mailbox_properties_get_type (void)
 {
@@ -110,16 +95,7 @@ mn_autodetect_mailbox_properties_get_type (void)
 			NULL
 		};
 
-		static const GInterfaceInfo MN_Mailbox_Properties_info = {
-			(GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
-			NULL,
-			NULL
-		};
-
-		type = g_type_register_static (GTK_TYPE_HBOX, "MNAutodetectMailboxProperties", &info, (GTypeFlags)0);
-		g_type_add_interface_static (type,
-			MN_TYPE_MAILBOX_PROPERTIES,
-			&MN_Mailbox_Properties_info);
+		type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNAutodetectMailboxProperties", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -144,20 +120,6 @@ GET_NEW_VARG (const char *first, ...)
 
 
 static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::dispose"
-	MNAutodetectMailboxProperties *self G_GNUC_UNUSED = MN_AUTODETECT_MAILBOX_PROPERTIES (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 41 "mn-autodetect-mailbox-properties.gob"
-	if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
-#line 156 "mn-autodetect-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
 ___finalize(GObject *obj_self)
 {
 #define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::finalize"
@@ -168,72 +130,96 @@ ___finalize(GObject *obj_self)
 }
 #undef __GOB_FUNCTION__
 
+#line 86 "mn-autodetect-mailbox-properties.gob"
 static void 
-mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNAutodetectMailboxPropertiesPrivate);
-}
-#undef __GOB_FUNCTION__
-static void 
-mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * c G_GNUC_UNUSED)
+mn_autodetect_mailbox_properties_class_init (MNAutodetectMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 137 "mn-autodetect-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
 
-	g_type_class_add_private(c,sizeof(MNAutodetectMailboxPropertiesPrivate));
+	g_type_class_add_private(class,sizeof(MNAutodetectMailboxPropertiesPrivate));
 
-	parent_class = g_type_class_ref (GTK_TYPE_HBOX);
+	parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
 
-#line 56 "mn-autodetect-mailbox-properties.gob"
-	g_object_class->constructor = ___1_mn_autodetect_mailbox_properties_constructor;
-#line 191 "mn-autodetect-mailbox-properties.c"
-	g_object_class->dispose = ___dispose;
+#line 199 "mn-autodetect-mailbox-properties.gob"
+	mn_mailbox_properties_class->set_mailbox = ___6_mn_autodetect_mailbox_properties_set_mailbox;
+#line 211 "mn-autodetect-mailbox-properties.gob"
+	mn_mailbox_properties_class->get_mailbox = ___7_mn_autodetect_mailbox_properties_get_mailbox;
+#line 151 "mn-autodetect-mailbox-properties.c"
 	g_object_class->finalize = ___finalize;
 	g_object_class->get_property = ___object_get_property;
-	g_object_class->set_property = ___object_set_property;
     {
 	g_object_class_override_property (g_object_class,
-		PROP_LABEL,
-		"label");
-	g_object_class_override_property (g_object_class,
-		PROP_SIZE_GROUP,
-		"size_group");
-	g_object_class_override_property (g_object_class,
 		PROP_COMPLETE,
 		"complete");
+	g_object_class_override_property (g_object_class,
+		PROP_DEFAULT_NAME,
+		"default_name");
     }
+ {
+#line 87 "mn-autodetect-mailbox-properties.gob"
+
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->type = "custom-vfs";
+    p_class->stock_id = MN_STOCK_UNKNOWN;
+    p_class->combo_label = _("<span style=\"italic\">autodetect</span>");
+    p_class->section_label = _("Location");
+  
+#line 172 "mn-autodetect-mailbox-properties.c"
+ }
 }
 #undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
-	guint property_id,
-	const GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::set_property"
+#line 96 "mn-autodetect-mailbox-properties.gob"
+static void 
+mn_autodetect_mailbox_properties_init (MNAutodetectMailboxProperties * self G_GNUC_UNUSED)
+#line 179 "mn-autodetect-mailbox-properties.c"
 {
-	MNAutodetectMailboxProperties *self G_GNUC_UNUSED;
+#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES,MNAutodetectMailboxPropertiesPrivate);
+ {
+#line 97 "mn-autodetect-mailbox-properties.gob"
 
-	self = MN_AUTODETECT_MAILBOX_PROPERTIES (object);
+    GtkWidget *outer_hbox;
+    GtkWidget *hbox;
+    GtkWidget *label;
+    GtkWidget *button;
 
-	switch (property_id) {
-	case PROP_SIZE_GROUP:
-		{
-#line 42 "mn-autodetect-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 226 "mn-autodetect-mailbox-properties.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
+    label = gtk_label_new_with_mnemonic(_("_Location:"));
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+    
+    outer_hbox = gtk_hbox_new(FALSE, 12);
+    hbox = gtk_hbox_new(FALSE, 6);
+    
+    selfp->location_entry = gtk_entry_new();
+    button = gtk_button_new_with_mnemonic(_("_Browse..."));
+    
+    gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
+    mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->location_entry));
+
+    gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
+    
+    gtk_box_pack_start(GTK_BOX(outer_hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(outer_hbox), hbox, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(self), outer_hbox, FALSE, FALSE, 0);
+    
+    gtk_widget_show_all(outer_hbox);
+
+    gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, label);
+    gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->entry_button_size_group, button);
+
+    g_object_connect(selfp->location_entry,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+		     NULL);
+    
+    g_signal_connect(button, "clicked", G_CALLBACK(self_browse_clicked_h), self);
+  
+#line 222 "mn-autodetect-mailbox-properties.c"
+ }
 }
 #undef __GOB_FUNCTION__
 
@@ -249,30 +235,49 @@ ___object_get_property (GObject *object,
 	self = MN_AUTODETECT_MAILBOX_PROPERTIES (object);
 
 	switch (property_id) {
-	case PROP_LABEL:
-		{
-#line 39 "mn-autodetect-mailbox-properties.gob"
- g_value_set_string(VAL, _("<span style=\"italic\">autodetect</span>")); 
-#line 257 "mn-autodetect-mailbox-properties.c"
-		}
-		break;
-	case PROP_SIZE_GROUP:
-		{
-#line 42 "mn-autodetect-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 264 "mn-autodetect-mailbox-properties.c"
-		}
-		break;
 	case PROP_COMPLETE:
 		{
-#line 46 "mn-autodetect-mailbox-properties.gob"
+#line 49 "mn-autodetect-mailbox-properties.gob"
 
       const char *location;
+      gboolean complete = FALSE;
       
       location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
-      g_value_set_boolean(VAL, *location != 0);
+      if (*location)
+	{
+	  MNMailbox *mailbox;
+
+	  mailbox = mn_mailbox_new_from_uri(location);
+	  if (mailbox)
+	    {
+	      complete = TRUE;
+	      g_object_unref(mailbox);
+	    }
+	}
+      
+      g_value_set_boolean(VAL, complete);
     
-#line 276 "mn-autodetect-mailbox-properties.c"
+#line 261 "mn-autodetect-mailbox-properties.c"
+		}
+		break;
+	case PROP_DEFAULT_NAME:
+		{
+#line 71 "mn-autodetect-mailbox-properties.gob"
+
+      char *name = NULL;
+      MNMailbox *mailbox;
+
+      mailbox = mn_mailbox_new_from_uri(gtk_entry_get_text(GTK_ENTRY(selfp->location_entry)));
+      if (mailbox)
+	{
+	  mn_mailbox_seal(mailbox);
+	  name = g_strdup(mailbox->runtime_name);
+	  g_object_unref(mailbox);
+	}
+
+      g_value_take_string(VAL, name);
+    
+#line 281 "mn-autodetect-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -289,100 +294,14 @@ g_value_set_object (VAL, (gpointer)self->_priv->size_group);
 
 
 
-#line 56 "mn-autodetect-mailbox-properties.gob"
-static GObject * 
-___1_mn_autodetect_mailbox_properties_constructor (GType type G_GNUC_UNUSED, guint n_construct_properties, GObjectConstructParam * construct_params)
-#line 296 "mn-autodetect-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
-	((G_OBJECT_CLASS(parent_class)->constructor)? \
-		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::constructor"
-{
-#line 58 "mn-autodetect-mailbox-properties.gob"
-	
-    GObject *object;
-    Self *self;
-    GtkWidget *hbox;
-    GtkWidget *label;
-    GtkWidget *button;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-
-    gtk_box_set_spacing(GTK_BOX(self), 12);
-    
-    label = gtk_label_new_with_mnemonic(_("_Location:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-    
-    hbox = gtk_hbox_new(FALSE, 6);
-    
-    selfp->location_entry = gtk_entry_new();
-    button = gtk_button_new_with_mnemonic(_("_Browse..."));
-    
-    gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
-    gtk_entry_set_activates_default(GTK_ENTRY(selfp->location_entry), TRUE);
-
-    mn_properties_dialog_set_tooltip(selfp->location_entry, _("The URI of the mailbox"));
-
-    gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
-    
-    gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(self), hbox, TRUE, TRUE, 0);
-    
-    gtk_widget_show(label);
-    gtk_widget_show_all(hbox);
-
-    gtk_size_group_add_widget(selfp->size_group, label);
-
-    g_signal_connect(selfp->location_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(button, "clicked", G_CALLBACK(self_browse_clicked_h), self);
-
-    return object;
-  }}
-#line 346 "mn-autodetect-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 100 "mn-autodetect-mailbox-properties.gob"
-static void 
-mn_autodetect_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 353 "mn-autodetect-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::entry_changed_h"
-#line 100 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (editable != NULL);
-#line 100 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 100 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 362 "mn-autodetect-mailbox-properties.c"
-{
-#line 103 "mn-autodetect-mailbox-properties.gob"
-	
-    Self *self = user_data;
-    g_object_notify(G_OBJECT(self), "complete");
-  }}
-#line 369 "mn-autodetect-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 108 "mn-autodetect-mailbox-properties.gob"
+#line 135 "mn-autodetect-mailbox-properties.gob"
 static void 
 mn_autodetect_mailbox_properties_browse_clicked_h (GtkButton * button, gpointer user_data)
-#line 375 "mn-autodetect-mailbox-properties.c"
+#line 301 "mn-autodetect-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::browse_clicked_h"
-#line 108 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (button != NULL);
-#line 108 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_BUTTON (button));
-#line 108 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 384 "mn-autodetect-mailbox-properties.c"
 {
-#line 111 "mn-autodetect-mailbox-properties.gob"
+#line 137 "mn-autodetect-mailbox-properties.gob"
 	
     Self *self = user_data;
     GtkWidget *toplevel;
@@ -421,44 +340,32 @@ mn_autodetect_mailbox_properties_browse_clicked_h (GtkButton * button, gpointer 
 
     gtk_widget_show(selfp->chooser);
   }}
-#line 425 "mn-autodetect-mailbox-properties.c"
+#line 344 "mn-autodetect-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 150 "mn-autodetect-mailbox-properties.gob"
+#line 176 "mn-autodetect-mailbox-properties.gob"
 static void 
 mn_autodetect_mailbox_properties_current_folder_changed_h (GtkFileChooser * chooser, gpointer user_data)
-#line 431 "mn-autodetect-mailbox-properties.c"
+#line 350 "mn-autodetect-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::current_folder_changed_h"
-#line 150 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (chooser != NULL);
-#line 150 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_FILE_CHOOSER (chooser));
-#line 438 "mn-autodetect-mailbox-properties.c"
 {
-#line 153 "mn-autodetect-mailbox-properties.gob"
+#line 178 "mn-autodetect-mailbox-properties.gob"
 	
     g_free(current_folder_uri);
     current_folder_uri = gtk_file_chooser_get_current_folder_uri(chooser);
   }}
-#line 445 "mn-autodetect-mailbox-properties.c"
+#line 359 "mn-autodetect-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 158 "mn-autodetect-mailbox-properties.gob"
+#line 183 "mn-autodetect-mailbox-properties.gob"
 static void 
 mn_autodetect_mailbox_properties_chooser_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 451 "mn-autodetect-mailbox-properties.c"
+#line 365 "mn-autodetect-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::chooser_response_h"
-#line 158 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (dialog != NULL);
-#line 158 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 158 "mn-autodetect-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 460 "mn-autodetect-mailbox-properties.c"
 {
-#line 162 "mn-autodetect-mailbox-properties.gob"
+#line 185 "mn-autodetect-mailbox-properties.gob"
 	
     if (response == 1)
       {
@@ -472,51 +379,51 @@ mn_autodetect_mailbox_properties_chooser_response_h (GtkDialog * dialog, int res
 
     gtk_widget_destroy(GTK_WIDGET(dialog));
   }}
-#line 476 "mn-autodetect-mailbox-properties.c"
+#line 383 "mn-autodetect-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 176 "mn-autodetect-mailbox-properties.gob"
-static gboolean 
-mn_autodetect_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 482 "mn-autodetect-mailbox-properties.c"
+#line 199 "mn-autodetect-mailbox-properties.gob"
+static void 
+___6_mn_autodetect_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 389 "mn-autodetect-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+	{ if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::set_uri"
-#line 176 "mn-autodetect-mailbox-properties.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 176 "mn-autodetect-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 176 "mn-autodetect-mailbox-properties.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 176 "mn-autodetect-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 493 "mn-autodetect-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::set_mailbox"
 {
-#line 179 "mn-autodetect-mailbox-properties.gob"
+#line 201 "mn-autodetect-mailbox-properties.gob"
 	
-    gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->location_entry), uri->text);
-    return TRUE;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+    g_return_if_fail(MN_IS_CUSTOM_VFS_MAILBOX(mailbox));
+
+    gtk_entry_set_text(GTK_ENTRY(SELF(properties)->_priv->location_entry), MN_CUSTOM_VFS_MAILBOX(mailbox)->uri);
+#else
+    g_return_if_reached();
+#endif
   }}
-#line 500 "mn-autodetect-mailbox-properties.c"
+#line 406 "mn-autodetect-mailbox-properties.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
 
-#line 184 "mn-autodetect-mailbox-properties.gob"
-static MNURI * 
-mn_autodetect_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 506 "mn-autodetect-mailbox-properties.c"
+#line 211 "mn-autodetect-mailbox-properties.gob"
+static MNMailbox * 
+___7_mn_autodetect_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 413 "mn-autodetect-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+	((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+		((MNMailbox * )0))
 {
-#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::get_uri"
-#line 184 "mn-autodetect-mailbox-properties.gob"
-	g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 184 "mn-autodetect-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 513 "mn-autodetect-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:Autodetect:Mailbox:Properties::get_mailbox"
 {
-#line 186 "mn-autodetect-mailbox-properties.gob"
+#line 213 "mn-autodetect-mailbox-properties.gob"
 	
-    const char *location;
+    const char *uri;
 
-    location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
-    return mn_uri_new(location);
+    uri = gtk_entry_get_text(GTK_ENTRY(SELF(properties)->_priv->location_entry));
+    return mn_mailbox_new_from_uri(uri);
   }}
-#line 522 "mn-autodetect-mailbox-properties.c"
+#line 428 "mn-autodetect-mailbox-properties.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-autodetect-mailbox-properties.gob b/src/mn-autodetect-mailbox-properties.gob
@@ -16,98 +16,124 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
 #include <eel/eel.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
 #include "mn-util.h"
 #include "mn-properties-dialog.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-custom-vfs-mailbox.h"
+#endif
+#include "mn-stock.h"
 
-  static char *current_folder_uri = NULL;
+static char *current_folder_uri = NULL;
 %}
 
-class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Properties)
+class MN:Autodetect:Mailbox:Properties from MN:Mailbox:Properties
 {
-  property STRING label (override)
-    get { g_value_set_string(VAL, _("<span style=\"italic\">autodetect</span>")); };
-  
-  private GtkSizeGroup *size_group unrefwith g_object_unref;
-  property OBJECT size_group (override, link);
-  
+  private GtkWidget *location_entry;
+  private GtkWidget *chooser;
+
   property BOOLEAN complete (override)
     get
     {
       const char *location;
+      gboolean complete = FALSE;
       
       location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
-      g_value_set_boolean(VAL, *location != 0);
+      if (*location)
+	{
+	  MNMailbox *mailbox;
+
+	  mailbox = mn_mailbox_new_from_uri(location);
+	  if (mailbox)
+	    {
+	      complete = TRUE;
+	      g_object_unref(mailbox);
+	    }
+	}
+      
+      g_value_set_boolean(VAL, complete);
     };
 
-  private GtkWidget *location_entry;
-  private GtkWidget *chooser;
+  property STRING default_name (override)
+    get
+    {
+      char *name = NULL;
+      MNMailbox *mailbox;
+
+      mailbox = mn_mailbox_new_from_uri(gtk_entry_get_text(GTK_ENTRY(selfp->location_entry)));
+      if (mailbox)
+	{
+	  mn_mailbox_seal(mailbox);
+	  name = g_strdup(mailbox->runtime_name);
+	  g_object_unref(mailbox);
+	}
+
+      g_value_take_string(VAL, name);
+    };
+  
+  class_init (class)
+  {
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-  override (G:Object) GObject *
-    constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_params)
+    p_class->type = "custom-vfs";
+    p_class->stock_id = MN_STOCK_UNKNOWN;
+    p_class->combo_label = _("<span style=\"italic\">autodetect</span>");
+    p_class->section_label = _("Location");
+  }
+
+  init (self)
   {
-    GObject *object;
-    Self *self;
+    GtkWidget *outer_hbox;
     GtkWidget *hbox;
     GtkWidget *label;
     GtkWidget *button;
 
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-
-    gtk_box_set_spacing(GTK_BOX(self), 12);
-    
     label = gtk_label_new_with_mnemonic(_("_Location:"));
     gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
     
+    outer_hbox = gtk_hbox_new(FALSE, 12);
     hbox = gtk_hbox_new(FALSE, 6);
     
     selfp->location_entry = gtk_entry_new();
     button = gtk_button_new_with_mnemonic(_("_Browse..."));
     
     gtk_label_set_mnemonic_widget(GTK_LABEL(label), selfp->location_entry);
-    gtk_entry_set_activates_default(GTK_ENTRY(selfp->location_entry), TRUE);
-
-    mn_properties_dialog_set_tooltip(selfp->location_entry, _("The URI of the mailbox"));
+    mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->location_entry));
 
     gtk_box_pack_start(GTK_BOX(hbox), selfp->location_entry, TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
     
-    gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(self), hbox, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(outer_hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(outer_hbox), hbox, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(self), outer_hbox, FALSE, FALSE, 0);
     
-    gtk_widget_show(label);
-    gtk_widget_show_all(hbox);
+    gtk_widget_show_all(outer_hbox);
 
-    gtk_size_group_add_widget(selfp->size_group, label);
+    gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->label_size_group, label);
+    gtk_size_group_add_widget(MN_MAILBOX_PROPERTIES(self)->entry_button_size_group, button);
 
-    g_signal_connect(selfp->location_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
+    g_object_connect(selfp->location_entry,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+		     NULL);
+    
     g_signal_connect(button, "clicked", G_CALLBACK(self_browse_clicked_h), self);
-
-    return object;
   }
 
   private void
-    entry_changed_h (Gtk:Editable *editable (check null type),
-		     gpointer user_data (check null))
-  {
-    Self *self = user_data;
-    g_object_notify(G_OBJECT(self), "complete");
-  }
-
-  private void
-    browse_clicked_h (Gtk:Button *button (check null type),
-		      gpointer user_data (check null))
+    browse_clicked_h (GtkButton *button, gpointer user_data)
   {
     Self *self = user_data;
     GtkWidget *toplevel;
@@ -148,17 +174,14 @@ class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Prope
   }
   
   private void
-    current_folder_changed_h (Gtk:File:Chooser *chooser (check null type),
-			      gpointer user_data)
+    current_folder_changed_h (GtkFileChooser *chooser, gpointer user_data)
   {
     g_free(current_folder_uri);
     current_folder_uri = gtk_file_chooser_get_current_folder_uri(chooser);
   }
   
   private void
-    chooser_response_h (Gtk:Dialog *dialog (check null type),
-			int response,
-			gpointer user_data (check null))
+    chooser_response_h (GtkDialog *dialog, int response, gpointer user_data)
   {
     if (response == 1)
       {
@@ -173,20 +196,24 @@ class MN:Autodetect:Mailbox:Properties from Gtk:HBox (interface MN:Mailbox:Prope
     gtk_widget_destroy(GTK_WIDGET(dialog));
   }
   
-  interface MN:Mailbox:Properties private gboolean
-    set_uri (MN:Mailbox:Properties *self (check null type),
-	     MN:URI *uri (check null type))
+  override (MN:Mailbox:Properties) void
+    set_mailbox (MNMailboxProperties *properties, MNMailbox *mailbox)
   {
-    gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->location_entry), uri->text);
-    return TRUE;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+    g_return_if_fail(MN_IS_CUSTOM_VFS_MAILBOX(mailbox));
+
+    gtk_entry_set_text(GTK_ENTRY(SELF(properties)->_priv->location_entry), MN_CUSTOM_VFS_MAILBOX(mailbox)->uri);
+#else
+    g_return_if_reached();
+#endif
   }
 
-  interface MN:Mailbox:Properties private MNURI *
-    get_uri (MN:Mailbox:Properties *self (check null type))
+  override (MN:Mailbox:Properties) MNMailbox *
+    get_mailbox (MNMailboxProperties *properties)
   {
-    const char *location;
+    const char *uri;
 
-    location = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->location_entry));
-    return mn_uri_new(location);
+    uri = gtk_entry_get_text(GTK_ENTRY(SELF(properties)->_priv->location_entry));
+    return mn_mailbox_new_from_uri(uri);
   }
 }
diff --git a/src/mn-autodetect-mailbox-properties.h b/src/mn-autodetect-mailbox-properties.h
@@ -1,10 +1,11 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
 #include <gtk/gtk.h>
+#include "mn-mailbox-properties.h"
 
 #ifndef __MN_AUTODETECT_MAILBOX_PROPERTIES_H__
 #define __MN_AUTODETECT_MAILBOX_PROPERTIES_H__
@@ -36,7 +37,7 @@ typedef struct _MNAutodetectMailboxPropertiesPrivate MNAutodetectMailboxProperti
 typedef struct _MNAutodetectMailboxProperties MNAutodetectMailboxProperties;
 #endif
 struct _MNAutodetectMailboxProperties {
-	GtkHBox __parent__;
+	MNMailboxProperties __parent__;
 	/*< private >*/
 	MNAutodetectMailboxPropertiesPrivate *_priv;
 };
@@ -46,7 +47,7 @@ struct _MNAutodetectMailboxProperties {
  */
 typedef struct _MNAutodetectMailboxPropertiesClass MNAutodetectMailboxPropertiesClass;
 struct _MNAutodetectMailboxPropertiesClass {
-	GtkHBoxClass __parent__;
+	MNMailboxPropertiesClass __parent__;
 };
 
 
@@ -59,15 +60,11 @@ GType	mn_autodetect_mailbox_properties_get_type	(void);
  * Argument wrapping macros
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label", __extension__ ({gchar **z = (arg); z;})
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group", __extension__ ({GObject **z = (arg); z;})
 #define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
 #else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label",(gchar **)(arg)
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group",(GObject *)(arg)
-#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group",(GObject **)(arg)
 #define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_AUTODETECT_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
 #endif /* __GNUC__ && !__STRICT_ANSI__ */
 
 
diff --git a/src/mn-automation-private.h b/src/mn-automation-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_AUTOMATION_PRIVATE_H__
 #define __MN_AUTOMATION_PRIVATE_H__
diff --git a/src/mn-automation.c b/src/mn-automation.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,14 +23,11 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 25 "mn-automation.gob"
+#line 26 "mn-automation.gob"
 
-#include "mn-main-window.h"
-#include "mn-summary-popup.h"
-#include "mn-properties-dialog.h"
 #include "mn-shell.h"
 
-#line 34 "mn-automation.c"
+#line 31 "mn-automation.c"
 /* self casting macros */
 #define SELF(x) MN_AUTOMATION(x)
 #define SELF_CONST(x) MN_AUTOMATION_CONST(x)
@@ -48,7 +45,6 @@ typedef MNAutomationClass SelfClass;
 static void mn_automation_init (MNAutomation * o) G_GNUC_UNUSED;
 static void mn_automation_class_init (MNAutomationClass * c) G_GNUC_UNUSED;
 static void mn_automation_update (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
-static void mn_automation_report (PortableServer_Servant servant, CORBA_char ** report, CORBA_Environment * env) G_GNUC_UNUSED;
 static void mn_automation_displayMainWindow (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
 static void mn_automation_displayProperties (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
 static void mn_automation_displayAbout (PortableServer_Servant servant, CORBA_Environment * env) G_GNUC_UNUSED;
@@ -60,7 +56,6 @@ static BonoboObjectClass *parent_class = NULL;
 
 /* Short form macros */
 #define self_update mn_automation_update
-#define self_report mn_automation_report
 #define self_displayMainWindow mn_automation_displayMainWindow
 #define self_displayProperties mn_automation_displayProperties
 #define self_displayAbout mn_automation_displayAbout
@@ -88,7 +83,7 @@ mn_automation_get_type (void)
 
 		type = bonobo_type_unique (
 			BONOBO_OBJECT_TYPE,
-			POA_GNOME_MNAutomation__init, NULL,
+			POA_GNOME_MailNotification_Automation__init, NULL,
 			G_STRUCT_OFFSET (MNAutomationClass, _epv),
 			&info, "MNAutomation");
 	}
@@ -126,141 +121,124 @@ mn_automation_class_init (MNAutomationClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (BONOBO_TYPE_OBJECT);
 
-#line 34 "mn-automation.gob"
+#line 32 "mn-automation.gob"
 	c->_epv.update = self_update;
-#line 41 "mn-automation.gob"
-	c->_epv.report = self_report;
-#line 50 "mn-automation.gob"
+#line 39 "mn-automation.gob"
 	c->_epv.displayMainWindow = self_displayMainWindow;
-#line 57 "mn-automation.gob"
+#line 46 "mn-automation.gob"
 	c->_epv.displayProperties = self_displayProperties;
-#line 64 "mn-automation.gob"
+#line 53 "mn-automation.gob"
 	c->_epv.displayAbout = self_displayAbout;
-#line 71 "mn-automation.gob"
+#line 60 "mn-automation.gob"
 	c->_epv.closePopup = self_closePopup;
-#line 78 "mn-automation.gob"
+#line 67 "mn-automation.gob"
 	c->_epv.quit = self_quit;
-#line 144 "mn-automation.c"
+#line 137 "mn-automation.c"
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 34 "mn-automation.gob"
+#line 32 "mn-automation.gob"
 static void 
 mn_automation_update (PortableServer_Servant servant, CORBA_Environment * env)
-#line 153 "mn-automation.c"
+#line 146 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::update"
 {
-#line 36 "mn-automation.gob"
+#line 34 "mn-automation.gob"
 	
     g_return_if_fail(mn_shell != NULL);
     mn_mailboxes_check(mn_shell->mailboxes);
   }}
-#line 162 "mn-automation.c"
-#undef __GOB_FUNCTION__
-
-#line 41 "mn-automation.gob"
-static void 
-mn_automation_report (PortableServer_Servant servant, CORBA_char ** report, CORBA_Environment * env)
-#line 168 "mn-automation.c"
-{
-#define __GOB_FUNCTION__ "MN:Automation::report"
-{
-#line 45 "mn-automation.gob"
-	
-    g_return_if_fail(mn_shell != NULL);
-    mn_shell_report(mn_shell, report);
-  }}
-#line 177 "mn-automation.c"
+#line 155 "mn-automation.c"
 #undef __GOB_FUNCTION__
 
-#line 50 "mn-automation.gob"
+#line 39 "mn-automation.gob"
 static void 
 mn_automation_displayMainWindow (PortableServer_Servant servant, CORBA_Environment * env)
-#line 183 "mn-automation.c"
+#line 161 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::displayMainWindow"
 {
-#line 52 "mn-automation.gob"
+#line 41 "mn-automation.gob"
 	
     g_return_if_fail(mn_shell != NULL);
-    mn_main_window_display();
+    mn_shell_display_main_window(mn_shell);
   }}
-#line 192 "mn-automation.c"
+#line 170 "mn-automation.c"
 #undef __GOB_FUNCTION__
 
-#line 57 "mn-automation.gob"
+#line 46 "mn-automation.gob"
 static void 
 mn_automation_displayProperties (PortableServer_Servant servant, CORBA_Environment * env)
-#line 198 "mn-automation.c"
+#line 176 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::displayProperties"
 {
-#line 59 "mn-automation.gob"
+#line 48 "mn-automation.gob"
 	
     g_return_if_fail(mn_shell != NULL);
-    mn_properties_dialog_display();
+    mn_shell_display_properties_dialog(mn_shell, NULL);
   }}
-#line 207 "mn-automation.c"
+#line 185 "mn-automation.c"
 #undef __GOB_FUNCTION__
 
-#line 64 "mn-automation.gob"
+#line 53 "mn-automation.gob"
 static void 
 mn_automation_displayAbout (PortableServer_Servant servant, CORBA_Environment * env)
-#line 213 "mn-automation.c"
+#line 191 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::displayAbout"
 {
-#line 66 "mn-automation.gob"
+#line 55 "mn-automation.gob"
 	
     g_return_if_fail(mn_shell != NULL);
-    mn_shell_display_about_dialog(mn_shell);
+    mn_shell_display_about_dialog(mn_shell, NULL);
   }}
-#line 222 "mn-automation.c"
+#line 200 "mn-automation.c"
 #undef __GOB_FUNCTION__
 
-#line 71 "mn-automation.gob"
+#line 60 "mn-automation.gob"
 static void 
 mn_automation_closePopup (PortableServer_Servant servant, CORBA_Environment * env)
-#line 228 "mn-automation.c"
+#line 206 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::closePopup"
 {
-#line 73 "mn-automation.gob"
+#line 62 "mn-automation.gob"
 	
     g_return_if_fail(mn_shell != NULL);
-    mn_summary_popup_destroy();
+    mn_shell_close_mail_summary_popup(mn_shell);
   }}
-#line 237 "mn-automation.c"
+#line 215 "mn-automation.c"
 #undef __GOB_FUNCTION__
 
-#line 78 "mn-automation.gob"
+#line 67 "mn-automation.gob"
 static void 
 mn_automation_quit (PortableServer_Servant servant, CORBA_Environment * env)
-#line 243 "mn-automation.c"
+#line 221 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::quit"
 {
-#line 80 "mn-automation.gob"
+#line 69 "mn-automation.gob"
 	
     g_return_if_fail(mn_shell != NULL);
     g_object_unref(mn_shell);
   }}
-#line 252 "mn-automation.c"
+#line 230 "mn-automation.c"
 #undef __GOB_FUNCTION__
 
-#line 85 "mn-automation.gob"
+#line 74 "mn-automation.gob"
 MNAutomation * 
 mn_automation_new (void)
-#line 258 "mn-automation.c"
+#line 236 "mn-automation.c"
 {
 #define __GOB_FUNCTION__ "MN:Automation::new"
 {
-#line 87 "mn-automation.gob"
+#line 76 "mn-automation.gob"
 	
     return GET_NEW;
   }}
-#line 266 "mn-automation.c"
+#line 244 "mn-automation.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-automation.gob b/src/mn-automation.gob
@@ -16,20 +16,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <libbonobo.h>
-#include "MNAutomation.h"
+#include "GNOME_MailNotification.h"
 %}
+
 %{
-#include "mn-main-window.h"
-#include "mn-summary-popup.h"
-#include "mn-properties-dialog.h"
 #include "mn-shell.h"
 %}
   
-class MN:Automation from Bonobo:Object (BonoboObject GNOME_MNAutomation)
+class MN:Automation from Bonobo:Object (BonoboObject GNOME_MailNotification_Automation)
 {
   BonoboObject private void
     update (PortableServer_Servant servant, CORBA_Environment *env)
@@ -39,40 +37,31 @@ class MN:Automation from Bonobo:Object (BonoboObject GNOME_MNAutomation)
   }
 
   BonoboObject private void
-    report (PortableServer_Servant servant,
-	    CORBA_char **report,
-	    CORBA_Environment *env)
-  {
-    g_return_if_fail(mn_shell != NULL);
-    mn_shell_report(mn_shell, report);
-  }
-
-  BonoboObject private void
     displayMainWindow (PortableServer_Servant servant, CORBA_Environment *env)
   {
     g_return_if_fail(mn_shell != NULL);
-    mn_main_window_display();
+    mn_shell_display_main_window(mn_shell);
   }
 
   BonoboObject private void
     displayProperties (PortableServer_Servant servant, CORBA_Environment *env)
   {
     g_return_if_fail(mn_shell != NULL);
-    mn_properties_dialog_display();
+    mn_shell_display_properties_dialog(mn_shell, NULL);
   }
 
   BonoboObject private void
     displayAbout (PortableServer_Servant servant, CORBA_Environment *env)
   {
     g_return_if_fail(mn_shell != NULL);
-    mn_shell_display_about_dialog(mn_shell);
+    mn_shell_display_about_dialog(mn_shell, NULL);
   }
 
   BonoboObject private void
     closePopup (PortableServer_Servant servant, CORBA_Environment *env)
   {
     g_return_if_fail(mn_shell != NULL);
-    mn_summary_popup_destroy();
+    mn_shell_close_mail_summary_popup(mn_shell);
   }
 
   BonoboObject private void
diff --git a/src/mn-automation.h b/src/mn-automation.h
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
 #include <libbonobo.h>
-#include "MNAutomation.h"
+#include "GNOME_MailNotification.h"
 
 #ifndef __MN_AUTOMATION_H__
 #define __MN_AUTOMATION_H__
@@ -44,7 +44,7 @@ typedef struct _MNAutomationClass MNAutomationClass;
 struct _MNAutomationClass {
 	BonoboObjectClass __parent__;
 	/* Bonobo object epv */
-	POA_GNOME_MNAutomation__epv _epv;
+	POA_GNOME_MailNotification_Automation__epv _epv;
 };
 
 
diff --git a/src/mn-blinking-image-private.h b/src/mn-blinking-image-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_BLINKING_IMAGE_PRIVATE_H__
 #define __MN_BLINKING_IMAGE_PRIVATE_H__
@@ -10,7 +10,7 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNBlinkingImagePrivate {
-#line 31 "mn-blinking-image.gob"
+#line 32 "mn-blinking-image.gob"
 	gboolean blinking;
 #line 51 "mn-blinking-image.gob"
 	unsigned int timeout_id;
diff --git a/src/mn-blinking-image.c b/src/mn-blinking-image.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,7 +23,7 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-blinking-image.gob"
+#line 25 "mn-blinking-image.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
@@ -127,7 +127,7 @@ static void
 mn_blinking_image_init (MNBlinkingImage * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNBlinkingImagePrivate);
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_BLINKING_IMAGE,MNBlinkingImagePrivate);
 #line 47 "mn-blinking-image.gob"
 	o->_priv->is_on = TRUE;
 #line 134 "mn-blinking-image.c"
@@ -154,7 +154,7 @@ mn_blinking_image_class_init (MNBlinkingImageClass * c G_GNUC_UNUSED)
 	param_spec = g_param_spec_boolean
 		("blinking" /* name */,
 		 NULL /* nick */,
-		 _("Whether the image is blinking or not") /* blurb */,
+		 NULL /* blurb */,
 		 FALSE /* default_value */,
 		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (g_object_class,
@@ -247,7 +247,7 @@ mn_blinking_image_get_blinking (MNBlinkingImage * self)
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::get_blinking"
 {
-#line 32 "mn-blinking-image.gob"
+#line 33 "mn-blinking-image.gob"
 		gboolean val; g_object_get (G_OBJECT (self), "blinking", &val, NULL); return val;
 }}
 #line 254 "mn-blinking-image.c"
@@ -260,7 +260,7 @@ mn_blinking_image_set_blinking (MNBlinkingImage * self, gboolean val)
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::set_blinking"
 {
-#line 32 "mn-blinking-image.gob"
+#line 33 "mn-blinking-image.gob"
 		g_object_set (G_OBJECT (self), "blinking", val, NULL);
 }}
 #line 267 "mn-blinking-image.c"
@@ -275,11 +275,6 @@ ___3_mn_blinking_image_finalize (GObject * object G_GNUC_UNUSED)
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::finalize"
-#line 57 "mn-blinking-image.gob"
-	g_return_if_fail (object != NULL);
-#line 57 "mn-blinking-image.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 283 "mn-blinking-image.c"
 {
 #line 59 "mn-blinking-image.gob"
 	
@@ -290,21 +285,21 @@ ___3_mn_blinking_image_finalize (GObject * object G_GNUC_UNUSED)
 
     PARENT_HANDLER(object);
   }}
-#line 294 "mn-blinking-image.c"
+#line 289 "mn-blinking-image.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
 #line 68 "mn-blinking-image.gob"
 static void 
 mn_blinking_image_update (MNBlinkingImage * self, gboolean is_on)
-#line 301 "mn-blinking-image.c"
+#line 296 "mn-blinking-image.c"
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::update"
 #line 68 "mn-blinking-image.gob"
 	g_return_if_fail (self != NULL);
 #line 68 "mn-blinking-image.gob"
 	g_return_if_fail (MN_IS_BLINKING_IMAGE (self));
-#line 308 "mn-blinking-image.c"
+#line 303 "mn-blinking-image.c"
 {
 #line 70 "mn-blinking-image.gob"
 	
@@ -319,7 +314,7 @@ mn_blinking_image_update (MNBlinkingImage * self, gboolean is_on)
 					selfp->stock_id,
 					selfp->icon_size,
 					NULL);
-	g_return_if_fail(pixbuf != NULL);
+	g_assert(pixbuf != NULL);
 
 	width = gdk_pixbuf_get_width(pixbuf);
 	height = gdk_pixbuf_get_height(pixbuf);
@@ -334,18 +329,15 @@ mn_blinking_image_update (MNBlinkingImage * self, gboolean is_on)
 
     selfp->is_on = is_on;
   }}
-#line 338 "mn-blinking-image.c"
+#line 333 "mn-blinking-image.c"
 #undef __GOB_FUNCTION__
 
 #line 98 "mn-blinking-image.gob"
 static gboolean 
 mn_blinking_image_timeout_cb (gpointer data)
-#line 344 "mn-blinking-image.c"
+#line 339 "mn-blinking-image.c"
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::timeout_cb"
-#line 98 "mn-blinking-image.gob"
-	g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 349 "mn-blinking-image.c"
 {
 #line 100 "mn-blinking-image.gob"
 	
@@ -357,18 +349,18 @@ mn_blinking_image_timeout_cb (gpointer data)
 
     return TRUE;
   }}
-#line 361 "mn-blinking-image.c"
+#line 353 "mn-blinking-image.c"
 #undef __GOB_FUNCTION__
 
 #line 110 "mn-blinking-image.gob"
 GtkWidget * 
 mn_blinking_image_new_from_stock (const char * stock_id, GtkIconSize icon_size)
-#line 367 "mn-blinking-image.c"
+#line 359 "mn-blinking-image.c"
 {
 #define __GOB_FUNCTION__ "MN:Blinking:Image::new_from_stock"
 #line 110 "mn-blinking-image.gob"
 	g_return_val_if_fail (stock_id != NULL, (GtkWidget * )0);
-#line 372 "mn-blinking-image.c"
+#line 364 "mn-blinking-image.c"
 {
 #line 113 "mn-blinking-image.gob"
 	
@@ -382,5 +374,5 @@ mn_blinking_image_new_from_stock (const char * stock_id, GtkIconSize icon_size)
 
     return GTK_WIDGET(self);
   }}
-#line 386 "mn-blinking-image.c"
+#line 378 "mn-blinking-image.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-blinking-image.gob b/src/mn-blinking-image.gob
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,11 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
@@ -29,8 +30,7 @@ requires 2.0.10
 class MN:Blinking:Image from Gtk:Image
 {
   private gboolean blinking;
-  property BOOLEAN blinking (blurb = _("Whether the image is blinking or not"),
-			     export)
+  property BOOLEAN blinking (export)
     set
     {
       if (selfp->blinking)
@@ -55,7 +55,7 @@ class MN:Blinking:Image from Gtk:Image
   private GtkIconSize icon_size;
 
   override (G:Object) void
-    finalize (G:Object *object (check null type))
+    finalize (GObject *object)
   {
     Self *self = SELF(object);
 
@@ -79,7 +79,7 @@ class MN:Blinking:Image from Gtk:Image
 					selfp->stock_id,
 					selfp->icon_size,
 					NULL);
-	g_return_if_fail(pixbuf != NULL);
+	g_assert(pixbuf != NULL);
 
 	width = gdk_pixbuf_get_width(pixbuf);
 	height = gdk_pixbuf_get_height(pixbuf);
@@ -96,7 +96,7 @@ class MN:Blinking:Image from Gtk:Image
   }
 
   private gboolean
-    timeout_cb (gpointer data (check null))
+    timeout_cb (gpointer data)
   {
     Self *self = data;
 
diff --git a/src/mn-blinking-image.h b/src/mn-blinking-image.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/mn-client-session.c b/src/mn-client-session.c
@@ -1,4 +1,20 @@
 /* 
+ * mn-client-session.c - a state machine for handling POP3 and IMAP
+ * client sessions.
+ *
+ * The MNClientSession interface provides an abstract POP3 and IMAP
+ * protocol client. The module handles the low-level client
+ * functionality, such as connecting to a server, setting up SSL/TLS,
+ * reading and writing data, and conducting a SASL authentication
+ * exchange.
+ *
+ * MNClientSession contains no code which is specific to either POP3
+ * or IMAP. It is the responsability of the caller to manage the POP3
+ * or IMAP session, by parsing responses and switching to the
+ * appropriate state depending on the context.
+ *
+ *
+ *
  * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -44,10 +60,11 @@
 #include "mn-util.h"
 #include "mn-client-session.h"
 #include "mn-conf.h"
+#include "mn-stock.h"
 
 /*** cpp *********************************************************************/
 
-#define READ_BUFSIZE				2048
+#define READ_BUFSIZE			2048
   
 /*** types *******************************************************************/
 
@@ -59,7 +76,7 @@ struct _MNClientSession
   int				port;
   int				s;
   MNClientSessionState		*state;
-  char				*error;
+  GError			*error;
   MNClientSessionPrivate	*private;
   GByteArray			*input_buffer;
   unsigned int			bytes_to_remove;
@@ -69,13 +86,8 @@ struct _MNClientSession
 #endif
 
 #ifdef WITH_SASL
-  gboolean			sasl_available;
   sasl_conn_t			*sasl_conn;
-  const char			*sasl_initial_clientout;
-  unsigned int			sasl_initial_clientoutlen;
-  const char			*sasl_clientout;
-  unsigned int			sasl_clientoutlen;
-  int				sasl_ssf;
+  sasl_ssf_t			sasl_ssf;
   unsigned int			sasl_maxoutbuf;
 #endif /* WITH_SASL */
 };
@@ -92,6 +104,10 @@ static sasl_callback_t sasl_callbacks[] = {
 };
 #endif /* WITH_SASL */
 
+#ifndef HAVE_REENTRANT_RESOLVER
+G_LOCK_DEFINE_STATIC(resolver);
+#endif
+
 /*** functions ***************************************************************/
 
 static struct addrinfo *mn_client_session_resolve (MNClientSession *session);
@@ -120,6 +136,24 @@ static char *mn_client_session_sasl_get_ip_port (const struct sockaddr *addr);
 
 /*** implementation **********************************************************/
 
+/**
+ * mn_client_session_run:
+ * @states: a %MN_CLIENT_SESSION_STATES_END-terminated array of
+ *          %MNClientSessionState structures. One of the states must
+ *          have the %MN_CLIENT_SESSION_INITIAL_STATE id.
+ * @callbacks: a pointer to a %MNClientSessionCallbacks structure
+ * @use_ssl: whether to establish a SSL/TLS connection or not
+ * @hostname: the hostname, IPv4 address or IPv6 address to connect to
+ * @port: the port to connect to
+ * @private: an opaque pointer which will be passed to callbacks, or %NULL
+ * @err: a location to report errors, or %NULL
+ *
+ * Runs the client session. After connecting to the server, the
+ * %MN_CLIENT_SESSION_INITIAL_STATE state is entered.
+ *
+ * Return value: %TRUE on success, or %FALSE on failure (in such case
+ * @err is set)
+ **/
 gboolean
 mn_client_session_run (MNClientSessionState *states,
 		       MNClientSessionCallbacks *callbacks,
@@ -138,7 +172,6 @@ mn_client_session_run (MNClientSessionState *states,
   g_return_val_if_fail(states != NULL, FALSE);
   g_return_val_if_fail(callbacks != NULL, FALSE);
   g_return_val_if_fail(callbacks->response_new != NULL, FALSE);
-  g_return_val_if_fail(callbacks->response_free != NULL, FALSE);
   g_return_val_if_fail(hostname != NULL, FALSE);
 
   memset(&session, 0, sizeof(session));
@@ -182,17 +215,12 @@ mn_client_session_run (MNClientSessionState *states,
     SSL_free(session.ssl);
 #endif /* WITH_SSL */
 #ifdef WITH_SASL
-  if (session.sasl_available)
-    {
-      if (session.sasl_conn)
-	sasl_dispose(&session.sasl_conn);
-      mn_sasl_unuse();
-    }
+  if (session.sasl_conn)
+    sasl_dispose(&session.sasl_conn);
 #endif /* WITH_SASL */
   if (session.error)
     {
-      g_set_error(err, 0, 0, "%s", session.error);
-      g_free(session.error);
+      g_propagate_error(err, session.error);
       return FALSE;
     }
   else
@@ -220,14 +248,20 @@ mn_client_session_resolve (MNClientSession *session)
   mn_client_session_notice(session, _("resolving %s"), session->hostname);
 
   servname = g_strdup_printf("%i", session->port);
+#ifndef HAVE_REENTRANT_RESOLVER
+  G_LOCK(resolver);
+#endif
   status = getaddrinfo(session->hostname, servname, &hints, &addrinfo);
+#ifndef HAVE_REENTRANT_RESOLVER
+  G_UNLOCK(resolver);
+#endif
   g_free(servname);
 
   if (status == 0)
     return addrinfo;
   else
     {
-      mn_client_session_error(session, _("unable to resolve %s: %s"), session->hostname, gai_strerror(status));
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to resolve %s: %s"), session->hostname, gai_strerror(status));
       return NULL;
     }
 }
@@ -247,6 +281,9 @@ mn_client_session_connect (MNClientSession *session, struct addrinfo *addrinfo)
       int s;
       char ip[NI_MAXHOST];
 
+#ifndef HAVE_REENTRANT_RESOLVER
+      G_LOCK(resolver);
+#endif
       status = getnameinfo(a->ai_addr,
 			   a->ai_addrlen,
 			   ip,
@@ -254,6 +291,10 @@ mn_client_session_connect (MNClientSession *session, struct addrinfo *addrinfo)
 			   NULL,
 			   0,
 			   NI_NUMERICHOST);
+#ifndef HAVE_REENTRANT_RESOLVER
+      G_UNLOCK(resolver);
+#endif
+
       g_return_val_if_fail(status == 0, -1);
       
       if (a->ai_family == AF_INET)
@@ -289,11 +330,21 @@ mn_client_session_connect (MNClientSession *session, struct addrinfo *addrinfo)
     }
   
   /* if reached, we couldn't find a working address */
-  mn_client_session_error(session, _("unable to connect to %s"), session->hostname);
+  mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to connect to %s"), session->hostname);
   return -1;
 }
 
 #ifdef WITH_SSL
+/**
+ * mn_client_session_enable_ssl:
+ * @session: a #MNClientSession
+ *
+ * Enables in-band SSL/TLS. Must not be used if the @use_ssl
+ * mn_client_session_run() argument was %TRUE. If an error occurs,
+ * mn_client_session_error() will be called on @session.
+ *
+ * Return value: %TRUE on success
+ **/
 gboolean
 mn_client_session_enable_ssl (MNClientSession *session)
 {
@@ -301,11 +352,12 @@ mn_client_session_enable_ssl (MNClientSession *session)
   GError *err = NULL;
   
   g_return_val_if_fail(session != NULL, FALSE);
+  g_return_val_if_fail(session->ssl == NULL, FALSE);
 
   ctx = mn_ssl_init(&err);
   if (! ctx)
     {
-      mn_client_session_error(session, _("unable to initialize the OpenSSL library: %s"), err->message);
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to initialize the OpenSSL library: %s"), err->message);
       g_error_free(err);
       return FALSE;
     }
@@ -313,25 +365,25 @@ mn_client_session_enable_ssl (MNClientSession *session)
   session->ssl = SSL_new(ctx);
   if (! session->ssl)
     {
-      mn_client_session_error(session, _("unable to create a SSL/TLS object: %s"), mn_ssl_get_error());
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to create a SSL/TLS object: %s"), mn_ssl_get_error());
       return FALSE;
     }
 
   if (! SSL_set_fd(session->ssl, session->s))
     {
-      mn_client_session_error(session, _("unable to set the SSL/TLS file descriptor: %s"), mn_ssl_get_error());
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to set the SSL/TLS file descriptor: %s"), mn_ssl_get_error());
       return FALSE;
     }
 
   if (SSL_connect(session->ssl) != 1)
     {
-      mn_client_session_error(session, _("unable to perform the SSL/TLS handshake: %s"), mn_ssl_get_error());
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to perform the SSL/TLS handshake: %s"), mn_ssl_get_error());
       return FALSE;
     }
   
   if (! mn_client_session_ssl_verify(session))
     {
-      mn_client_session_error(session, _("untrusted server"));
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("untrusted server"));
       return FALSE;
     }
   
@@ -450,16 +502,13 @@ mn_client_session_run_untrusted_dialog (const char *hostname,
   
   GDK_THREADS_ENTER();
 
-  dialog = eel_alert_dialog_new(NULL,
-				GTK_DIALOG_DESTROY_WITH_PARENT,
-				GTK_MESSAGE_WARNING,
-				GTK_BUTTONS_NONE,
-				_("Connect to untrusted server?"),
-				secondary,
-				NULL);
+  dialog = mn_alert_dialog_new(NULL,
+			       GTK_MESSAGE_WARNING,
+			       _("Connect to untrusted server?"),
+			       secondary);
 
   gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
-  gtk_dialog_add_button(GTK_DIALOG(dialog), _("Co_nnect"), GTK_RESPONSE_OK);
+  gtk_dialog_add_button(GTK_DIALOG(dialog), MN_STOCK_CONNECT, GTK_RESPONSE_OK);
 			
   status = mn_dialog_run_nonmodal(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK;
   gtk_widget_destroy(dialog);
@@ -515,11 +564,18 @@ mn_client_session_handle_input (MNClientSession *session, const char *input)
 	  break;
 
 	case MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT:
-	  mn_client_session_error(session, _("response \"%s\" is not valid in current context"), input);
-	  cont = FALSE;
+	  {
+	    char *escaped;
+
+	    escaped = mn_utf8_escape(input);
+	    mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("response \"%s\" is not valid in current context"), escaped);
+	    g_free(escaped);
+
+	    cont = FALSE;
+	  }
 	  break;
 	  
-	case MN_CLIENT_SESSION_RESULT_END:
+	case MN_CLIENT_SESSION_RESULT_DISCONNECT:
 	  cont = FALSE;
 	  break;
 	  
@@ -527,21 +583,22 @@ mn_client_session_handle_input (MNClientSession *session, const char *input)
 	  g_return_val_if_reached(FALSE);
 
 	default:
-	  if (result > 0)	/* state */
-	    result = mn_client_session_enter_state(session, result);
-	  else			/* custom result */
-	    {
-	      g_return_val_if_fail(session->callbacks->custom_handler != NULL, FALSE);
-	      result = session->callbacks->custom_handler(session, response, result, session->private);
-	    }
+	  g_return_val_if_fail(result > 0, FALSE);
+	  result = mn_client_session_enter_state(session, result);
 	  goto loop;
 	}
 
-      session->callbacks->response_free(session, response, session->private);
+      if (session->callbacks->response_free)
+	session->callbacks->response_free(session, response, session->private);
     }
   else
     {
-      mn_client_session_error(session, _("unable to parse response \"%s\""), input);
+      char *escaped;
+
+      escaped = mn_utf8_escape(input);
+      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to parse response \"%s\""), escaped);
+      g_free(escaped);
+
       cont = FALSE;
     }
 
@@ -589,14 +646,14 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
     {
 #ifdef WITH_SSL
       if (session->ssl)
-	mn_client_session_error(session, _("unable to read from server: %s"), mn_ssl_get_error());
+	mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to read from server: %s"), mn_ssl_get_error());
       else
 #endif /* WITH_SSL */
 	{
 	  if (bytes_read == 0)
-	    mn_client_session_error(session, _("unable to read from server: EOF"));
+	    mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to read from server: EOF"));
 	  else
-	    mn_client_session_error(session, _("unable to read from server: %s"), g_strerror(errno));
+	    mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to read from server: %s"), g_strerror(errno));
 	}
       return FALSE;
     }
@@ -606,7 +663,7 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
     {
       if (sasl_decode(session->sasl_conn, buf, bytes_read, &in, &inlen) != SASL_OK)
 	{
-	  mn_client_session_error(session, _("unable to decode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
+	  mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to decode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
 	  return FALSE;
 	}
     }
@@ -631,9 +688,8 @@ mn_client_session_fill_input_buffer (MNClientSession *session)
  * mn_client_session_error() will be called on @session.
  *
  * Return value: a pointer to a buffer containing @nbytes on success,
- *               %NULL on failure. The pointer will be valid until the
- *               next call to mn_client_session_read() or
- *               mn_client_session_read_line().
+ * %NULL on failure. The pointer will be valid until the next call to
+ * mn_client_session_read() or mn_client_session_read_line().
  **/
 gconstpointer
 mn_client_session_read (MNClientSession *session, unsigned int nbytes)
@@ -668,8 +724,8 @@ mn_client_session_read (MNClientSession *session, unsigned int nbytes)
  * mn_client_session_error() will be called on @session.
  *
  * Return value: the line read on success, %NULL on failure. The
- *               pointer will be valid until the next call to
- *               mn_client_session_read() or mn_client_session_read_line().
+ * pointer will be valid until the next call to
+ * mn_client_session_read() or mn_client_session_read_line().
  **/
 const char *
 mn_client_session_read_line (MNClientSession *session)
@@ -700,6 +756,18 @@ mn_client_session_read_line (MNClientSession *session)
   return line;
 }
 
+/**
+ * mn_client_session_write:
+ * @session: a #MNClientSession object to write to
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * Writes a formatted crlf-terminated line to @session. If an error
+ * occurs, mn_client_session_error() will be called on @session.
+ *
+ * Return value: %MN_CLIENT_SESSION_RESULT_CONTINUE on success, or the
+ * return value of mn_client_session_error() on failure
+ **/
 int
 mn_client_session_write (MNClientSession *session,
 			 const char *format,
@@ -740,7 +808,7 @@ mn_client_session_write (MNClientSession *session,
 	  chunk_len = MIN(len, session->sasl_maxoutbuf);
 	  if (sasl_encode(session->sasl_conn, full + start, chunk_len, &out, &outlen) != SASL_OK)
 	    {
-	      result = mn_client_session_error(session, _("unable to encode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
+	      result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode data using SASL: %s"), sasl_errdetail(session->sasl_conn));
 	      goto end;
 	    }
 	  
@@ -771,14 +839,14 @@ mn_client_session_write (MNClientSession *session,
     {
 #ifdef WITH_SSL
       if (session->ssl)
-	result = mn_client_session_error(session, _("unable to write to server: %s"), mn_ssl_get_error());
+	result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to write to server: %s"), mn_ssl_get_error());
       else
 #endif /* WITH_SSL */
 	{
 	  if (bytes_written == 0)
-	    result = mn_client_session_error(session, _("unable to write to server: EOF"));
+	    result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to write to server: EOF"));
 	  else
-	    result = mn_client_session_error(session, _("unable to write to server: %s"), g_strerror(errno));
+	    result = mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST, _("unable to write to server: %s"), g_strerror(errno));
 	}
     }
 
@@ -797,18 +865,17 @@ mn_client_session_write_base64 (MNClientSession *session,
 				const char *buf,
 				unsigned int len)
 {
-  unsigned int buf64len = len * 2; /* Base64 is 33% larger than the data it encodes */
-  char buf64[buf64len];
+  char buf64[len * 2];		/* Base64 is 33% larger than the data it encodes */
   unsigned int outlen;
-  char *str;
   int result;
+  char *str;
 
   g_return_val_if_fail(session != NULL, 0);
   g_return_val_if_fail(buf != NULL, 0);
   
-  result = sasl_encode64(buf, len, buf64, buf64len, &outlen);
+  result = sasl_encode64(buf, len, buf64, sizeof(buf64), &outlen);
   if (result != SASL_OK)
-    return mn_client_session_error(session, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
+    return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
   
   str = g_strndup(buf64, outlen);
   result = mn_client_session_write(session, "%s", str);
@@ -823,11 +890,43 @@ mn_client_session_sasl_fill_interact (MNClientSession *session,
 				      const char *unknown_warning)
 {
   sasl_interact_t *i;
+  gboolean need_username = FALSE;
+  gboolean need_password = FALSE;
+  const char *username = NULL;
+  const char *password = NULL;
 
   g_return_val_if_fail(session != NULL, FALSE);
   g_return_val_if_fail(interact != NULL, FALSE);
 
   for (i = interact; i->id; i++)
+    switch (i->id)
+      {
+      case SASL_CB_USER:
+      case SASL_CB_AUTHNAME:
+	need_username = TRUE;
+	break;
+	
+      case SASL_CB_PASS:
+	need_password = TRUE;
+	break;
+
+      default:
+	mn_client_session_warning(session, unknown_warning);
+	return FALSE;
+      };
+
+  if (need_username || need_password)
+    {
+      session->callbacks->sasl_get_credentials(session,
+					       session->private,
+					       need_username ? &username : NULL,
+					       need_password ? &password : NULL);
+
+      if ((need_username && ! username) || (need_password && ! password))
+	return FALSE;
+    }
+  
+  for (i = interact; i->id; i++)
     {
       const char *data;
 
@@ -835,25 +934,21 @@ mn_client_session_sasl_fill_interact (MNClientSession *session,
 	{
 	case SASL_CB_USER:
 	case SASL_CB_AUTHNAME:
-	  data = session->callbacks->sasl_get_username(session, session->private);
+	  data = username;
 	  break;
 	  
 	case SASL_CB_PASS:
-	  data = session->callbacks->sasl_get_password(session, session->private);
+	  data = password;
 	  break;
 
 	default:
-	  data = NULL;
-	  mn_client_session_warning(session, unknown_warning);
+	  g_return_val_if_reached(FALSE);
 	};
 
-      if (data)
-	{
-	  i->result = data;
-	  i->len = strlen(data);
-	}
-      else
-	return FALSE;
+      g_return_val_if_fail(data != NULL, FALSE);
+
+      i->result = data;
+      i->len = strlen(data);
     }
 
   return TRUE;
@@ -895,13 +990,52 @@ mn_client_session_sasl_get_ip_port (const struct sockaddr *addr)
   return g_strdup_printf("%s;%i", buf, port);
 }
 
+/**
+ * mn_client_session_sasl_authentication_start:
+ * @session: a #MNClientSession
+ * @service: the SASL service identifier (normally "pop" or "imap")
+ * @mechanisms: the list of available mechanisms, or %NULL
+ * @forced_mechanism: a mechanism to force usage of, or %NULL
+ * @used_mechanism: a location to store the name of the mechanism that was
+ *                  selected by the SASL library
+ * @initial_clientout: a location to store the initial client response,
+ *                     or %NULL
+ * @initial_clientoutlen: a location to store the length of the initial
+ *                        client response, or %NULL
+ *
+ * Starts a SASL authentication exchange. @initial_clientout and
+ * @initial_clientoutlen must be both set or both %NULL.
+ *
+ * If @forced_mechanism is provided, authentication is attempted using
+ * that mechanism only. Otherwise, @mechanisms must point to a
+ * non-empty list of available mechanism names, and the SASL library
+ * will select an appropriate mechanism automatically.
+ *
+ * On success, the selected mechanism is stored at @used_mechanism.
+ *
+ * On failure, if a mechanism could be selected, it is stored at
+ * @used_mechanism (the caller might want to remove that mechanism
+ * from the list and try again). Otherwise, %NULL is stored at
+ * @used_mechanism.
+ *
+ * On success, if @initial_clientout and @initial_clientoutlen were
+ * set, they point to the initial client response (which is not
+ * necessarily NUL-terminated) and its length, respectively. If there
+ * is no initial client response, they point to %NULL and 0,
+ * respectively.
+ *
+ * The function may be called multiple times.
+ *
+ * Return value: %TRUE on success
+ **/
 gboolean
 mn_client_session_sasl_authentication_start (MNClientSession *session,
 					     const char *service,
 					     GSList *mechanisms,
 					     const char *forced_mechanism,
 					     const char **used_mechanism,
-					     gboolean initial_response)
+					     const char **initial_clientout,
+					     unsigned int *initial_clientoutlen)
 {
   GError *err = NULL;
   int result;
@@ -910,20 +1044,23 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
   char *local_ip_port = NULL;
   char *remote_ip_port = NULL;
 
-  g_return_val_if_fail(session != NULL, 0);
-  g_return_val_if_fail(session->callbacks->sasl_get_username != NULL, FALSE);
-  g_return_val_if_fail(session->callbacks->sasl_get_password != NULL, FALSE);
-  g_return_val_if_fail(service != NULL, 0);
-  g_return_val_if_fail(mechanisms != NULL || forced_mechanism != NULL, 0);
+  g_return_val_if_fail(session != NULL, FALSE);
+  g_return_val_if_fail(session->callbacks->sasl_get_credentials != NULL, FALSE);
+  g_return_val_if_fail(service != NULL, FALSE);
+  g_return_val_if_fail(mechanisms != NULL || forced_mechanism != NULL, FALSE);
+  g_return_val_if_fail((initial_clientout == NULL && initial_clientoutlen == NULL)
+		       || (initial_clientout != NULL && initial_clientoutlen != NULL), FALSE);
 
-  session->sasl_available = mn_sasl_use(&err);
-  if (! session->sasl_available)
+  if (! mn_sasl_init(&err))
     {
       mn_client_session_warning(session, _("unable to initialize the SASL library: %s"), err->message);
       g_error_free(err);
       return FALSE;
     }
   
+  /* make sure we do not leak the previous sasl_conn if any */
+  mn_client_session_sasl_dispose(session);
+  
   namelen = sizeof(name);
   if (getsockname(session->s, &name, &namelen) >= 0)
     local_ip_port = mn_client_session_sasl_get_ip_port(&name);
@@ -986,8 +1123,8 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
 	  result = sasl_client_start(session->sasl_conn,
 				     mechanisms_string->str,
 				     &interact,
-				     initial_response ? &session->sasl_initial_clientout : NULL,
-				     initial_response ? &session->sasl_initial_clientoutlen : NULL,
+				     initial_clientout,
+				     initial_clientoutlen,
 				     used_mechanism);
 
 	  if (result == SASL_INTERACT)
@@ -1020,91 +1157,95 @@ mn_client_session_sasl_authentication_start (MNClientSession *session,
   return FALSE;
 }
 
+/**
+ * mn_client_session_sasl_authentication_step:
+ * @session: a #MNClientSession
+ * @input: the last server challenge received
+ *
+ * Continues a SASL authentication exchange successfully initiated
+ * with mn_client_session_sasl_authentication_start().
+ *
+ * Return value: the state to switch to
+ **/
 int
 mn_client_session_sasl_authentication_step (MNClientSession *session,
 					    const char *input)
 {
   g_return_val_if_fail(session != NULL, 0);
+  g_return_val_if_fail(session->sasl_conn != NULL, 0);
   g_return_val_if_fail(input != NULL, 0);
   
-  if (*input)
-    {
-      if (! session->sasl_initial_clientout)
-	{
-	  unsigned int inlen = strlen(input);
-	  char buf[inlen];
-	  unsigned int outlen;
-	  int result;
+  {
+    unsigned int inlen = strlen(input);
+    char buf[inlen];
+    unsigned int outlen;
+    int result;
 	  
-	  result = sasl_decode64(input, inlen, buf, inlen, &outlen);
-	  if (result == SASL_OK)
-	    {
-	      sasl_interact_t *interact = NULL;
+    result = sasl_decode64(input, inlen, buf, inlen, &outlen);
+    if (result == SASL_OK)
+      {
+	sasl_interact_t *interact = NULL;
+	const char *clientout;
+	unsigned int clientoutlen;
 	      
-	      do 
-		{
-		  result = sasl_client_step(session->sasl_conn,
-					    buf,
-					    outlen,
-					    &interact,
-					    &session->sasl_clientout,
-					    &session->sasl_clientoutlen);
+	do 
+	  {
+	    result = sasl_client_step(session->sasl_conn,
+				      buf,
+				      outlen,
+				      &interact,
+				      &clientout,
+				      &clientoutlen);
 		  
-		  if (result == SASL_INTERACT)
-		    {
-		      if (! mn_client_session_sasl_fill_interact(session, interact, _("SASL asked for something we did not know, aborting SASL authentication")))
-			break;
-		    }
-		}
-	      while (result == SASL_INTERACT);
+	    if (result == SASL_INTERACT)
+	      {
+		if (! mn_client_session_sasl_fill_interact(session, interact, _("SASL asked for something we did not know, aborting SASL authentication")))
+		  break;
+	      }
+	  }
+	while (result == SASL_INTERACT);
 	      
-	      switch (result)
-		{
-		case SASL_OK:
-		case SASL_CONTINUE:
-		  return mn_client_session_write_base64(session, session->sasl_clientout, session->sasl_clientoutlen);
-		  
-		case SASL_INTERACT:
-		  /* could not fill interaction, abort */
-		  return mn_client_session_write(session, "*");
-		  
-		default:
-		  mn_client_session_warning(session, _("%s, aborting SASL authentication"), sasl_errdetail(session->sasl_conn));
-		  return mn_client_session_write(session, "*");
-		}
-	    }
-	  else			/* compliance error */
-	    return mn_client_session_error(session, _("unable to decode Base64 input from server: %s"), sasl_errstring(result, NULL, NULL));
-	}
-      else
-	return mn_client_session_error(session, _("the server sent a SASL challenge, but there was a pending initial SASL client response"));
-    }
-  else
-    {
-      if (session->sasl_initial_clientout)
-	{
-	  int result;
-	  
-	  result = mn_client_session_write_base64(session, session->sasl_initial_clientout, session->sasl_initial_clientoutlen);
-	  session->sasl_initial_clientout = NULL;
-	  session->sasl_initial_clientoutlen = 0;
-	  return result;
-	}
-      else
-	return mn_client_session_error(session, _("the server did not send a SASL challenge, but there was no pending initial SASL client response"));
-    }
+	switch (result)
+	  {
+	  case SASL_OK:
+	  case SASL_CONTINUE:
+	    return mn_client_session_write_base64(session, clientout, clientoutlen);
+	      
+	  case SASL_INTERACT:
+	    /* could not fill interaction, abort */
+	    return mn_client_session_write(session, "*");
+	      
+	  default:
+	    mn_client_session_warning(session, _("%s, aborting SASL authentication"), sasl_errdetail(session->sasl_conn));
+	    return mn_client_session_write(session, "*");
+	  }
+      }
+    else			/* compliance error */
+      return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to decode Base64 input from server: %s"), sasl_errstring(result, NULL, NULL));
+  }
 }
 
+/**
+ * mn_client_session_sasl_authentication_done:
+ * @session: a #MNClientSession
+ *
+ * Completes a successful SASL authentication exchange. Must only be
+ * used if the server has terminated the exchange with a positive
+ * response.
+ *
+ * Return value: %TRUE on success
+ **/
 gboolean
 mn_client_session_sasl_authentication_done (MNClientSession *session)
 {
   gconstpointer ptr;
 
   g_return_val_if_fail(session != NULL, FALSE);
+  g_return_val_if_fail(session->sasl_conn != NULL, 0);
 
   if (sasl_getprop(session->sasl_conn, SASL_SSF, &ptr) == SASL_OK)
     {
-      const int *ssf = ptr;
+      const sasl_ssf_t *ssf = ptr;
 
       if (*ssf)
 	{
@@ -1121,7 +1262,7 @@ mn_client_session_sasl_authentication_done (MNClientSession *session)
 	  else
 	    {
 	      /* a security layer is active but we can't retrieve maxoutbuf -> fatal */
-	      mn_client_session_error(session, _("unable to get SASL_MAXOUTBUF property: %s"), sasl_errdetail(session->sasl_conn));
+	      mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to get SASL_MAXOUTBUF property: %s"), sasl_errdetail(session->sasl_conn));
 	      return FALSE;
 	    }
 	}
@@ -1132,15 +1273,61 @@ mn_client_session_sasl_authentication_done (MNClientSession *session)
   return TRUE;
 }
 
-int
+/**
+ * mn_client_session_sasl_dispose:
+ * @session: a #MNClientSession
+ *
+ * Destroys the SASL connection of @session, or, if no SASL connection
+ * is active, does nothing.
+ *
+ * Since the SASL connection is always destroyed before
+ * mn_client_session_run() returns, omitting to call this function
+ * will not leak the object away. However, in some situations (eg. if
+ * SASL authentication fails but the session continues nevertheless)
+ * it might be desirable to get rid of the object, in order to free
+ * memory for the rest of the session duration.
+ **/
+void
+mn_client_session_sasl_dispose (MNClientSession *session)
+{
+  g_return_if_fail(session != NULL);
+
+  if (session->sasl_conn)
+    {
+      sasl_dispose(&session->sasl_conn);
+      session->sasl_conn = NULL;
+    }
+}
+
+/**
+ * mn_client_session_sasl_get_ssf:
+ * @session: a #MNClientSession
+ *
+ * Gets the SASL security strength factor. Must not be used unless
+ * mn_client_session_sasl_authentication_done() has returned %TRUE.
+ *
+ * Return value: 0 if no security layer is active, or an approximation
+ * of the encryption key length otherwise
+ **/
+sasl_ssf_t
 mn_client_session_sasl_get_ssf (MNClientSession *session)
 {
-  g_return_val_if_fail(session != NULL, FALSE);
+  g_return_val_if_fail(session != NULL, 0);
+  g_return_val_if_fail(session->sasl_conn != NULL, 0);
 
   return session->sasl_ssf;
 }
 #endif /* WITH_SASL */
 
+/**
+ * mn_client_session_notice:
+ * @session: a #MNClientSession
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * If the notice callback of @session is defined, calls it with the
+ * given message as argument. Otherwise, does nothing.
+ **/
 void
 mn_client_session_notice (MNClientSession *session,
 			  const char *format,
@@ -1152,17 +1339,26 @@ mn_client_session_notice (MNClientSession *session,
   if (session->callbacks->notice)
     {
       va_list args;
-      char *str;
+      char *message;
 
       va_start(args, format);
-      str = g_strdup_vprintf(format, args);
+      message = g_strdup_vprintf(format, args);
       va_end(args);
 
-      session->callbacks->notice(session, str, session->private);
-      g_free(str);
+      session->callbacks->notice(session, message, session->private);
+      g_free(message);
     }
 }
 
+/**
+ * mn_client_session_warning:
+ * @session: a #MNClientSession
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * If the warning callback of @session is defined, calls it with the
+ * given message as argument. Otherwise, does nothing.
+ **/
 void
 mn_client_session_warning (MNClientSession *session,
 			   const char *format,
@@ -1174,19 +1370,32 @@ mn_client_session_warning (MNClientSession *session,
   if (session->callbacks->warning)
     {
       va_list args;
-      char *str;
+      char *message;
 
       va_start(args, format);
-      str = g_strdup_vprintf(format, args);
+      message = g_strdup_vprintf(format, args);
       va_end(args);
 
-      session->callbacks->warning(session, str, session->private);
-      g_free(str);
+      session->callbacks->warning(session, message, session->private);
+      g_free(message);
     }
 }
 
+/**
+ * mn_client_session_error:
+ * @session: a #MNClientSession
+ * @code: a #MNClientSessionError code
+ * @format: a printf() format string
+ * @...: the arguments to the format string
+ *
+ * If @session has no error yet, sets the given error. Otherwise, does
+ * nothing.
+ *
+ * Return value: %MN_CLIENT_SESSION_RESULT_DISCONNECT
+ **/
 int
 mn_client_session_error (MNClientSession *session,
+			 int code,
 			 const char *format,
 			 ...)
 {
@@ -1196,11 +1405,21 @@ mn_client_session_error (MNClientSession *session,
   if (! session->error)
     {
       va_list args;
+      char *message;
 
       va_start(args, format);
-      session->error = g_strdup_vprintf(format, args);
+      message = g_strdup_vprintf(format, args);
       va_end(args);
+
+      session->error = g_error_new_literal(MN_CLIENT_SESSION_ERROR, code, message);
+      g_free(message);
     }
 
-  return MN_CLIENT_SESSION_RESULT_END;
+  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+}
+
+GQuark
+mn_client_session_error_quark (void)
+{
+  return g_quark_from_static_string("mn-client-session-error");
 }
diff --git a/src/mn-client-session.h b/src/mn-client-session.h
@@ -21,62 +21,154 @@
 
 #include "config.h"
 #include <glib.h>
+#ifdef WITH_SASL
+#include <sasl/sasl.h>
+#endif
 
 typedef struct _MNClientSession MNClientSession;
 typedef struct _MNClientSessionPrivate MNClientSessionPrivate;
 typedef struct _MNClientSessionResponse MNClientSessionResponse;
 
+#define MN_CLIENT_SESSION_ERROR		(mn_client_session_error_quark())
+
+typedef enum
+{
+  MN_CLIENT_SESSION_ERROR_OTHER,
+  MN_CLIENT_SESSION_ERROR_CONNECTION_LOST
+} MNClientSessionError;
+
 enum
 {
-  MN_CLIENT_SESSION_RESULT_CONTINUE			= -1001,
-  MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT	= -1002,
-  MN_CLIENT_SESSION_RESULT_END				= -1003,
+  /* read the next input line */
+  MN_CLIENT_SESSION_RESULT_CONTINUE			= -1,
+  /* signal an uncompliant response and disconnect */
+  MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT	= -2,
+  /* disconnect */
+  MN_CLIENT_SESSION_RESULT_DISCONNECT			= -3,
 };
     
+/*
+ * In all the session callbacks below, @session is the session which
+ * is being run, and @private is the opaque data pointer which was
+ * passed to mn_client_session_run().
+ */
+
 typedef struct
 {
+  /*
+   * The state ID, which must be a positive non-zero integer.
+   */
   unsigned int	id;
+
+  /*
+   * enter_cb (optional):
+   *
+   * Enters the state. If set to %NULL, does nothing and returns
+   * %MN_CLIENT_SESSION_RESULT_CONTINUE.
+   *
+   * Return value: must return a state ID to switch to, or one of the
+   * MN_CLIENT_SESSION_RESULT_ codes above.
+   */
   int		(*enter_cb)	(MNClientSession	  *session,
 				 MNClientSessionPrivate	  *private);
+
+  /*
+   * handle_cb (required):
+   * @response: the #MNClientSessionResponse returned by the response_new()
+   *            callback.
+   *
+   * Handles a response received while the state is active.
+   *
+   * Return value: must return a state ID to switch to, or one of the
+   * MN_CLIENT_SESSION_RESULT_ codes above.
+   */
   int		(*handle_cb)	(MNClientSession	  *session,
 				 MNClientSessionResponse  *response,
 				 MNClientSessionPrivate	  *private);
 } MNClientSessionState;
 
+/* the state to enter after connecting */
 #define MN_CLIENT_SESSION_INITIAL_STATE		1
+/* the MNClientSessionState array canary */
 #define MN_CLIENT_SESSION_STATES_END		{ 0, NULL, NULL }
 
 typedef struct
 {
+  /*
+   * notice (optional):
+   * @message: the notice message
+   *
+   * Handles a notice.
+   */
   void      (*notice)		(MNClientSession	  *session,
-				 const char		  *str,
+				 const char		  *message,
 				 MNClientSessionPrivate	  *private);
+
+  /*
+   * warning (optional):
+   * @message: the warning message
+   *
+   * Handles a warning.
+   */
   void      (*warning)		(MNClientSession	  *session,
-				 const char		  *str,
+				 const char		  *message,
 				 MNClientSessionPrivate	  *private);
 
+  /*
+   * response_new (required):
+   * @input: an input line received from the server
+   *
+   * Parses server input.
+   *
+   * Return value: must return an opaque data pointer on success, or
+   * %NULL on failure.
+   */
   MNClientSessionResponse *(*response_new) (MNClientSession         *session,
 					    const char              *input,
 					    MNClientSessionPrivate  *private);
-  void      (*response_free)	(MNClientSession	  *session,
-				 MNClientSessionResponse  *response,
-				 MNClientSessionPrivate   *private);
 
-  int       (*custom_handler)	(MNClientSession	  *session,
+  /*
+   * response_free (optional):
+   * @response: a response that was returned by response_new()
+   *
+   * Releases all the memory associated with @response.
+   */
+  void      (*response_free)	(MNClientSession	  *session,
 				 MNClientSessionResponse  *response,
-				 int			  result,
 				 MNClientSessionPrivate   *private);
 
+  /*
+   * pre_read (optional):
+   *
+   * Called before calling read() or one of its variants.
+   */
   void      (*pre_read)		(MNClientSession          *session,
 				 MNClientSessionPrivate   *private);
+
+  /*
+   * post_read (optional):
+   *
+   * Called after calling read() or one of its variants.
+   */
   void      (*post_read)	(MNClientSession          *session,
 				 MNClientSessionPrivate   *private);
 
 #ifdef WITH_SASL
-  const char *	(*sasl_get_username)	(MNClientSession	*session,
-					 MNClientSessionPrivate	*priv);
-  const char *	(*sasl_get_password)	(MNClientSession	*session,
-					 MNClientSessionPrivate	*priv);
+  /*
+   * sasl_get_credentials (required if
+   * mn_client_session_sasl_authentication_start() is needed, optional
+   * otherwise):
+   * @username: a pointer to store the username, or %NULL
+   * @password: a pointer to store the password, or %NULL
+   *
+   * Fills in the requested credentials. If a requested credential
+   * cannot be provided, it must be set to %NULL. In such case, the
+   * SASL authentication exchange will be aborted.
+   */
+  void      (*sasl_get_credentials)	(MNClientSession	*session,
+					 MNClientSessionPrivate	*priv,
+					 const char		**username,
+					 const char		**password);
 #endif /* WITH_SASL */
 } MNClientSessionCallbacks;
 
@@ -107,11 +199,14 @@ gboolean mn_client_session_sasl_authentication_start (MNClientSession *session,
 						      GSList *mechanisms,
 						      const char *forced_mechanism,
 						      const char **used_mechanism,
-						      gboolean initial_response);
+						      const char **initial_clientout,
+						      unsigned int *initial_clientoutlen);
 int mn_client_session_sasl_authentication_step (MNClientSession *session,
 						const char *input);
 gboolean mn_client_session_sasl_authentication_done (MNClientSession *session);
-int mn_client_session_sasl_get_ssf (MNClientSession *session);
+
+void mn_client_session_sasl_dispose (MNClientSession *session);
+sasl_ssf_t mn_client_session_sasl_get_ssf (MNClientSession *session);
 #endif /* WITH_SASL */
 
 void mn_client_session_notice (MNClientSession *session,
@@ -121,7 +216,10 @@ void mn_client_session_warning (MNClientSession *session,
 				const char *format,
 				...);
 int mn_client_session_error (MNClientSession *session,
+			     int code,
 			     const char *format,
-			     ...) G_GNUC_PRINTF(2, 3);
+			     ...) G_GNUC_PRINTF(3, 4);
+
+GQuark mn_client_session_error_quark (void);
 
 #endif /* _MN_CLIENT_SESSION_H */
diff --git a/src/mn-conf.c b/src/mn-conf.c
@@ -69,6 +69,8 @@
   MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_NAMESPACE "/enabled"
 #define MN_CONF_OBSOLETE_DOUBLE_CLICK_ACTION \
   MN_CONF_NAMESPACE "/double-click-action"
+#define MN_CONF_OBSOLETE_ALREADY_RUN \
+  MN_CONF_NAMESPACE "/already-run"
 
 #define BLOCK(info) \
   g_signal_handler_block((info)->object, (info)->handler_id)
@@ -220,7 +222,7 @@ static void mn_conf_notification_add_weak_notify_cb (gpointer data,
 void
 mn_conf_init (void)
 {
-  g_return_if_fail(mn_conf_dot_dir == NULL);
+  g_assert(mn_conf_dot_dir == NULL);
 
   /* create our dot dir if it does not already exist */
 
@@ -263,7 +265,7 @@ mn_conf_init (void)
 
       enum_class = g_type_class_ref(MN_TYPE_ASPECT_SOURCE);
       enum_value = g_enum_get_value(enum_class, MN_ASPECT_SOURCE_CUSTOM);
-      g_return_if_fail(enum_value != NULL);
+      g_assert(enum_value != NULL);
       
       eel_gconf_set_string(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, enum_value->value_nick);
       g_type_class_unref(enum_class);
@@ -304,7 +306,9 @@ mn_conf_unset_obsolete (void)
     MN_CONF_OBSOLETE_MAIL_SUMMARY_POPUP_FONTS_TITLE_ENABLED,
     MN_CONF_OBSOLETE_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_ENABLED,
     MN_CONF_OBSOLETE_SUMMARY_DIALOG,
-    MN_CONF_OBSOLETE_DOUBLE_CLICK_ACTION
+    MN_CONF_OBSOLETE_DOUBLE_CLICK_ACTION,
+    MN_CONF_OBSOLETE_MAILBOXES,
+    MN_CONF_OBSOLETE_ALREADY_RUN
   };
   int i;
       
@@ -329,7 +333,7 @@ mn_conf_recursive_unset (const char *key, GConfUnsetFlags flags)
   g_return_if_fail(key != NULL);
 
   client = eel_gconf_client_get_global();
-  g_return_if_fail(client != NULL);
+  g_assert(client != NULL);
 
   gconf_client_recursive_unset(client, key, flags, &err);
   eel_gconf_handle_error(&err);
@@ -346,7 +350,7 @@ mn_conf_is_set (const char *key)
   g_return_val_if_fail(key != NULL, FALSE);
 
   client = eel_gconf_client_get_global();
-  g_return_val_if_fail(client != NULL, FALSE);
+  g_assert(client != NULL);
 
   value = gconf_client_get_without_default(client, key, &err);
   if (value)
@@ -371,7 +375,7 @@ mn_conf_set_value (const char *key, const GConfValue *value)
   g_return_if_fail(value != NULL);
   
   client = eel_gconf_client_get_global();
-  g_return_if_fail(client != NULL);
+  g_assert(client != NULL);
 
   gconf_client_set(client, key, value, &err);
   eel_gconf_handle_error(&err);
@@ -635,6 +639,8 @@ mn_conf_link_radio_group_to_enum (GType enum_type,
     }
 
   va_end(args);
+
+  g_type_class_unref(enum_class);
 }
 
 static void
@@ -1159,6 +1165,30 @@ mn_conf_notification_add_weak_notify_cb (gpointer data, GObject *former_object)
   eel_gconf_notification_remove(notification_id);
 }
 
+void
+mn_conf_notifications_add (gpointer object, ...)
+{
+  va_list args;
+  const char *key;
+
+  g_return_if_fail(G_IS_OBJECT(object));
+
+  va_start(args, object);
+  while ((key = va_arg(args, const char *)))
+    {
+      GConfClientNotifyFunc callback;
+      gpointer user_data;
+
+      callback = va_arg(args, GConfClientNotifyFunc);
+      g_return_if_fail(callback != NULL);
+
+      user_data = va_arg(args, gpointer);
+
+      mn_conf_notification_add(object, key, callback, user_data);
+    }
+  va_end(args);
+}
+
 gboolean
 mn_conf_has_command (const char *namespace)
 {
diff --git a/src/mn-conf.h b/src/mn-conf.h
@@ -51,8 +51,6 @@
   MN_CONF_COMMANDS_MAIL_READER_NAMESPACE "/enabled"
 #define MN_CONF_COMMANDS_MAIL_READER_COMMAND \
   MN_CONF_COMMANDS_MAIL_READER_NAMESPACE "/command"
-#define MN_CONF_MAILBOXES \
-  MN_CONF_NAMESPACE "/mailboxes"
 #define MN_CONF_UI_NAMESPACE \
   MN_CONF_NAMESPACE "/ui"
 #define MN_CONF_PROPERTIES_DIALOG \
@@ -73,8 +71,6 @@
   MN_CONF_MAIN_WINDOW_NAMESPACE "/toolbars-style"
 #define MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG \
   MN_CONF_MAIN_WINDOW_NAMESPACE "/edit-toolbars-dialog"
-#define MN_CONF_ALREADY_RUN \
-  MN_CONF_NAMESPACE "/already-run"
 #define MN_CONF_BLINK_ON_ERRORS \
   MN_CONF_NAMESPACE "/blink-on-errors"
 #define MN_CONF_TRUSTED_X509_CERTIFICATES \
@@ -120,6 +116,10 @@
 #define MN_CONF_SUMMARY_TOOLTIP \
   MN_CONF_NAMESPACE "/summary-tooltip"
 
+/* obsolete keys */
+#define MN_CONF_OBSOLETE_MAILBOXES \
+  MN_CONF_NAMESPACE "/mailboxes"
+
 extern const char *mn_conf_dot_dir;
 
 void		mn_conf_init		(void);
@@ -152,6 +152,8 @@ void		mn_conf_notification_add (gpointer		object,
 					  const char		*key,
 					  GConfClientNotifyFunc	callback,
 					  gpointer		user_data);
+void		mn_conf_notifications_add (gpointer		object,
+					   ...);
 
 gboolean	mn_conf_has_command	(const char	*namespace);
 
diff --git a/src/mn-corba-object-private.h b/src/mn-corba-object-private.h
@@ -0,0 +1,26 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_CORBA_OBJECT_PRIVATE_H__
+#define __MN_CORBA_OBJECT_PRIVATE_H__
+
+#include "mn-corba-object.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNCORBAObjectPrivate {
+#line 31 "mn-corba-object.gob"
+	CORBA_Object object;
+#line 52 "mn-corba-object.gob"
+	char * iid;
+#line 55 "mn-corba-object.gob"
+	unsigned int monitor_id;
+#line 20 "mn-corba-object-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-corba-object.c b/src/mn-corba-object.c
@@ -0,0 +1,406 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-corba-object.h"
+
+#include "mn-corba-object-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-corba-object.gob"
+
+#include <gtk/gtk.h>
+
+#line 31 "mn-corba-object.c"
+/* self casting macros */
+#define SELF(x) MN_CORBA_OBJECT(x)
+#define SELF_CONST(x) MN_CORBA_OBJECT_CONST(x)
+#define IS_SELF(x) MN_IS_CORBA_OBJECT(x)
+#define TYPE_SELF MN_TYPE_CORBA_OBJECT
+#define SELF_CLASS(x) MN_CORBA_OBJECT_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_CORBA_OBJECT_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNCORBAObject Self;
+typedef MNCORBAObjectClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_corba_object_init (MNCORBAObject * o) G_GNUC_UNUSED;
+static void mn_corba_object_class_init (MNCORBAObjectClass * c) G_GNUC_UNUSED;
+static GObject * ___3_mn_corba_object_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___4_mn_corba_object_finalize (GObject * object) G_GNUC_UNUSED;
+static gboolean mn_corba_object_monitor_cb (gpointer data) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_OBJECT,
+	PROP_IID
+};
+
+/* pointer to the class of our parent */
+static GObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_get_object mn_corba_object_get_object
+#define self_set_object mn_corba_object_set_object
+#define self_monitor_cb mn_corba_object_monitor_cb
+#define self_new mn_corba_object_new
+GType
+mn_corba_object_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNCORBAObjectClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_corba_object_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNCORBAObject),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_corba_object_init,
+			NULL
+		};
+
+		type = g_type_register_static (G_TYPE_OBJECT, "MNCORBAObject", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNCORBAObject *)g_object_new(mn_corba_object_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNCORBAObject * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNCORBAObject *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNCORBAObject *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNCORBAObject *)g_object_new_valist (mn_corba_object_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::finalize"
+	MNCORBAObject *self G_GNUC_UNUSED = MN_CORBA_OBJECT (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 76 "mn-corba-object.gob"
+	___4_mn_corba_object_finalize(obj_self);
+#line 119 "mn-corba-object.c"
+#define object (self->_priv->object)
+#define VAR object
+	{
+#line 32 "mn-corba-object.gob"
+	 if (VAR) CORBA_Object_release(VAR, NULL); }
+#line 125 "mn-corba-object.c"
+	memset(&object, 0, sizeof(object));
+#undef VAR
+#undef object
+#line 52 "mn-corba-object.gob"
+	if(self->_priv->iid) { g_free ((gpointer) self->_priv->iid); self->_priv->iid = NULL; }
+#line 131 "mn-corba-object.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_corba_object_init (MNCORBAObject * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_CORBA_OBJECT,MNCORBAObjectPrivate);
+#line 25 "mn-corba-object.gob"
+	o->_priv->object = CORBA_OBJECT_NIL;
+#line 142 "mn-corba-object.c"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_corba_object_class_init (MNCORBAObjectClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+	g_type_class_add_private(c,sizeof(MNCORBAObjectPrivate));
+
+	parent_class = g_type_class_ref (G_TYPE_OBJECT);
+
+#line 57 "mn-corba-object.gob"
+	g_object_class->constructor = ___3_mn_corba_object_constructor;
+#line 76 "mn-corba-object.gob"
+	g_object_class->finalize = ___finalize;
+#line 159 "mn-corba-object.c"
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_pointer
+		("object" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
+	g_object_class_install_property (g_object_class,
+		PROP_OBJECT,
+		param_spec);
+	param_spec = g_param_spec_string
+		("iid" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+	g_object_class_install_property (g_object_class,
+		PROP_IID,
+		param_spec);
+    }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:CORBA:Object::set_property"
+{
+	MNCORBAObject *self G_GNUC_UNUSED;
+
+	self = MN_CORBA_OBJECT (object);
+
+	switch (property_id) {
+	case PROP_OBJECT:
+		{
+#line 35 "mn-corba-object.gob"
+
+      if (selfp->object != CORBA_OBJECT_NIL)
+	CORBA_Object_release(selfp->object, NULL);
+
+      selfp->object = g_value_get_pointer(VAL);
+
+      if (selfp->object != CORBA_OBJECT_NIL)
+	CORBA_Object_duplicate(selfp->object, NULL);
+    
+#line 210 "mn-corba-object.c"
+		}
+		break;
+	case PROP_IID:
+		{
+#line 53 "mn-corba-object.gob"
+{ char *old = self->_priv->iid; self->_priv->iid = g_value_dup_string (VAL); g_free (old); }
+#line 217 "mn-corba-object.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:CORBA:Object::get_property"
+{
+	MNCORBAObject *self G_GNUC_UNUSED;
+
+	self = MN_CORBA_OBJECT (object);
+
+	switch (property_id) {
+	case PROP_OBJECT:
+		{
+#line 45 "mn-corba-object.gob"
+
+      if (selfp->object != CORBA_OBJECT_NIL)
+	CORBA_Object_duplicate(selfp->object, NULL);
+
+      g_value_set_pointer(VAL, selfp->object);
+    
+#line 253 "mn-corba-object.c"
+		}
+		break;
+	case PROP_IID:
+		{
+#line 53 "mn-corba-object.gob"
+g_value_set_string (VAL, self->_priv->iid);
+#line 260 "mn-corba-object.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 45 "mn-corba-object.gob"
+CORBA_Object 
+mn_corba_object_get_object (MNCORBAObject * self)
+#line 280 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::get_object"
+{
+#line 33 "mn-corba-object.gob"
+		CORBA_Object val; g_object_get (G_OBJECT (self), "object", &val, NULL); return val;
+}}
+#line 287 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+
+#line 35 "mn-corba-object.gob"
+void 
+mn_corba_object_set_object (MNCORBAObject * self, CORBA_Object val)
+#line 293 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::set_object"
+{
+#line 33 "mn-corba-object.gob"
+		g_object_set (G_OBJECT (self), "object", val, NULL);
+}}
+#line 300 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+
+#line 57 "mn-corba-object.gob"
+static GObject * 
+___3_mn_corba_object_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 306 "mn-corba-object.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+	((G_OBJECT_CLASS(parent_class)->constructor)? \
+		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+		((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::constructor"
+{
+#line 59 "mn-corba-object.gob"
+	
+    GObject *object;
+    Self *self;
+    CORBA_Object corba_object;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+
+    corba_object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+    if (corba_object != CORBA_OBJECT_NIL)
+      self_set_object(self, corba_object);
+
+    selfp->monitor_id = g_timeout_add(1000, self_monitor_cb, self);
+
+    return object;
+  }}
+#line 331 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 76 "mn-corba-object.gob"
+static void 
+___4_mn_corba_object_finalize (GObject * object G_GNUC_UNUSED)
+#line 338 "mn-corba-object.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::finalize"
+{
+#line 78 "mn-corba-object.gob"
+	
+    Self *self = SELF(object);
+
+    g_source_remove(selfp->monitor_id);
+
+    PARENT_HANDLER(object);
+  }}
+#line 353 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 86 "mn-corba-object.gob"
+static gboolean 
+mn_corba_object_monitor_cb (gpointer data)
+#line 360 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::monitor_cb"
+{
+#line 88 "mn-corba-object.gob"
+	
+    Self *self = data;
+
+    if (selfp->object != CORBA_OBJECT_NIL)
+      {
+	if (! bonobo_unknown_ping(selfp->object, NULL))
+	  {
+	    GDK_THREADS_ENTER();
+	    self_set_object(self, CORBA_OBJECT_NIL);
+	    GDK_THREADS_LEAVE();
+	  }
+      }
+    else
+      {
+	CORBA_Object object;
+
+	object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+	if (object != CORBA_OBJECT_NIL)
+	  {
+	    GDK_THREADS_ENTER();
+	    self_set_object(self, object);
+	    GDK_THREADS_LEAVE();
+	  }
+      }
+
+    return TRUE;		/* keep source */
+  }}
+#line 392 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
+
+#line 116 "mn-corba-object.gob"
+MNCORBAObject * 
+mn_corba_object_new (const char * iid)
+#line 398 "mn-corba-object.c"
+{
+#define __GOB_FUNCTION__ "MN:CORBA:Object::new"
+{
+#line 118 "mn-corba-object.gob"
+	
+    return GET_NEW_VARG(MN_CORBA_OBJECT_PROP_IID((char *) iid), NULL);
+  }}
+#line 406 "mn-corba-object.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-corba-object.gob b/src/mn-corba-object.gob
@@ -0,0 +1,121 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <libbonobo.h>
+%}
+
+%{
+#include <gtk/gtk.h>
+%}
+
+class MN:CORBA:Object from G:Object
+{
+  private CORBA_Object object = CORBA_OBJECT_NIL
+    destroy { if (VAR) CORBA_Object_release(VAR, NULL); };
+  property POINTER object (export, type = CORBA_Object)
+    set
+    {
+      if (selfp->object != CORBA_OBJECT_NIL)
+	CORBA_Object_release(selfp->object, NULL);
+
+      selfp->object = g_value_get_pointer(VAL);
+
+      if (selfp->object != CORBA_OBJECT_NIL)
+	CORBA_Object_duplicate(selfp->object, NULL);
+    }
+    get
+    {
+      if (selfp->object != CORBA_OBJECT_NIL)
+	CORBA_Object_duplicate(selfp->object, NULL);
+
+      g_value_set_pointer(VAL, selfp->object);
+    };
+  
+  private char *iid destroywith g_free;
+  property STRING iid (link, flags = CONSTRUCT_ONLY);
+
+  private unsigned int monitor_id;
+
+  override (G:Object) GObject *
+    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  {
+    GObject *object;
+    Self *self;
+    CORBA_Object corba_object;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+
+    corba_object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+    if (corba_object != CORBA_OBJECT_NIL)
+      self_set_object(self, corba_object);
+
+    selfp->monitor_id = g_timeout_add(1000, self_monitor_cb, self);
+
+    return object;
+  }
+
+  override (G:Object) void
+    finalize (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    g_source_remove(selfp->monitor_id);
+
+    PARENT_HANDLER(object);
+  }
+
+  private gboolean
+    monitor_cb (gpointer data)
+  {
+    Self *self = data;
+
+    if (selfp->object != CORBA_OBJECT_NIL)
+      {
+	if (! bonobo_unknown_ping(selfp->object, NULL))
+	  {
+	    GDK_THREADS_ENTER();
+	    self_set_object(self, CORBA_OBJECT_NIL);
+	    GDK_THREADS_LEAVE();
+	  }
+      }
+    else
+      {
+	CORBA_Object object;
+
+	object = bonobo_activation_activate_from_id(selfp->iid, 0, NULL, NULL);
+	if (object != CORBA_OBJECT_NIL)
+	  {
+	    GDK_THREADS_ENTER();
+	    self_set_object(self, object);
+	    GDK_THREADS_LEAVE();
+	  }
+      }
+
+    return TRUE;		/* keep source */
+  }
+
+  public MNCORBAObject *
+    new (const char *iid)
+  {
+    return GET_NEW_VARG(MN_CORBA_OBJECT_PROP_IID((char *) iid), NULL);
+  }
+}
diff --git a/src/mn-corba-object.h b/src/mn-corba-object.h
@@ -0,0 +1,82 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <libbonobo.h>
+
+#ifndef __MN_CORBA_OBJECT_H__
+#define __MN_CORBA_OBJECT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_CORBA_OBJECT	(mn_corba_object_get_type())
+#define MN_CORBA_OBJECT(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_corba_object_get_type(), MNCORBAObject)
+#define MN_CORBA_OBJECT_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_corba_object_get_type(), MNCORBAObject const)
+#define MN_CORBA_OBJECT_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_corba_object_get_type(), MNCORBAObjectClass)
+#define MN_IS_CORBA_OBJECT(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_corba_object_get_type ())
+
+#define MN_CORBA_OBJECT_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_corba_object_get_type(), MNCORBAObjectClass)
+
+/* Private structure type */
+typedef struct _MNCORBAObjectPrivate MNCORBAObjectPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_CORBA_OBJECT__
+#define __TYPEDEF_MN_CORBA_OBJECT__
+typedef struct _MNCORBAObject MNCORBAObject;
+#endif
+struct _MNCORBAObject {
+	GObject __parent__;
+	/*< private >*/
+	MNCORBAObjectPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNCORBAObjectClass MNCORBAObjectClass;
+struct _MNCORBAObjectClass {
+	GObjectClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_corba_object_get_type	(void);
+CORBA_Object 	mn_corba_object_get_object	(MNCORBAObject * self);
+void 	mn_corba_object_set_object	(MNCORBAObject * self,
+					CORBA_Object val);
+MNCORBAObject * 	mn_corba_object_new	(const char * iid);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_CORBA_OBJECT_PROP_OBJECT(arg)    	"object", __extension__ ({CORBA_Object z = (arg); z;})
+#define MN_CORBA_OBJECT_GET_PROP_OBJECT(arg)	"object", __extension__ ({CORBA_Object *z = (arg); z;})
+#define MN_CORBA_OBJECT_PROP_IID(arg)    	"iid", __extension__ ({gchar *z = (arg); z;})
+#define MN_CORBA_OBJECT_GET_PROP_IID(arg)	"iid", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_CORBA_OBJECT_PROP_OBJECT(arg)    	"object",(CORBA_Object )(arg)
+#define MN_CORBA_OBJECT_GET_PROP_OBJECT(arg)	"object",(CORBA_Object *)(arg)
+#define MN_CORBA_OBJECT_PROP_IID(arg)    	"iid",(gchar *)(arg)
+#define MN_CORBA_OBJECT_GET_PROP_IID(arg)	"iid",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-custom-vfs-mailbox-private.h b/src/mn-custom-vfs-mailbox-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_CUSTOM_VFS_MAILBOX_PRIVATE_H__
+#define __MN_CUSTOM_VFS_MAILBOX_PRIVATE_H__
+
+#include "mn-custom-vfs-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-custom-vfs-mailbox.c b/src/mn-custom-vfs-mailbox.c
@@ -0,0 +1,308 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-custom-vfs-mailbox.h"
+
+#include "mn-custom-vfs-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-custom-vfs-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-stock.h"
+
+#line 34 "mn-custom-vfs-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_CUSTOM_VFS_MAILBOX(x)
+#define SELF_CONST(x) MN_CUSTOM_VFS_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_CUSTOM_VFS_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_CUSTOM_VFS_MAILBOX
+#define SELF_CLASS(x) MN_CUSTOM_VFS_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_CUSTOM_VFS_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNCustomVFSMailbox Self;
+typedef MNCustomVFSMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_custom_vfs_mailbox_init (MNCustomVFSMailbox * o) G_GNUC_UNUSED;
+static void mn_custom_vfs_mailbox_class_init (MNCustomVFSMailboxClass * class) G_GNUC_UNUSED;
+static void ___2_mn_custom_vfs_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___3_mn_custom_vfs_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
+static void ___4_mn_custom_vfs_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_URI
+};
+
+/* pointer to the class of our parent */
+static MNVFSMailboxClass *parent_class = NULL;
+
+GType
+mn_custom_vfs_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNCustomVFSMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_custom_vfs_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNCustomVFSMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_custom_vfs_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_VFS_MAILBOX, "MNCustomVFSMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNCustomVFSMailbox *)g_object_new(mn_custom_vfs_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNCustomVFSMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNCustomVFSMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNCustomVFSMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNCustomVFSMailbox *)g_object_new_valist (mn_custom_vfs_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::finalize"
+	MNCustomVFSMailbox *self G_GNUC_UNUSED = MN_CUSTOM_VFS_MAILBOX (obj_self);
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 34 "mn-custom-vfs-mailbox.gob"
+	if(self->uri) { g_free ((gpointer) self->uri); self->uri = NULL; }
+#line 117 "mn-custom-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_custom_vfs_mailbox_init (MNCustomVFSMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::init"
+}
+#undef __GOB_FUNCTION__
+#line 37 "mn-custom-vfs-mailbox.gob"
+static void 
+mn_custom_vfs_mailbox_class_init (MNCustomVFSMailboxClass * class G_GNUC_UNUSED)
+#line 130 "mn-custom-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+
+	parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX);
+
+#line 42 "mn-custom-vfs-mailbox.gob"
+	mn_mailbox_class->seal = ___2_mn_custom_vfs_mailbox_seal;
+#line 50 "mn-custom-vfs-mailbox.gob"
+	mn_mailbox_class->parse_uri = ___3_mn_custom_vfs_mailbox_parse_uri;
+#line 66 "mn-custom-vfs-mailbox.gob"
+	mn_mailbox_class->check = ___4_mn_custom_vfs_mailbox_check;
+#line 144 "mn-custom-vfs-mailbox.c"
+	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_string
+		("uri" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_URI,
+		param_spec);
+    }
+ {
+#line 38 "mn-custom-vfs-mailbox.gob"
+
+    MN_MAILBOX_CLASS(class)->type = "custom-vfs";
+  
+#line 166 "mn-custom-vfs-mailbox.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::set_property"
+{
+	MNCustomVFSMailbox *self G_GNUC_UNUSED;
+
+	self = MN_CUSTOM_VFS_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_URI:
+		{
+#line 35 "mn-custom-vfs-mailbox.gob"
+{ char *old = self->uri; self->uri = g_value_dup_string (VAL); g_free (old); }
+#line 187 "mn-custom-vfs-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::get_property"
+{
+	MNCustomVFSMailbox *self G_GNUC_UNUSED;
+
+	self = MN_CUSTOM_VFS_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_URI:
+		{
+#line 35 "mn-custom-vfs-mailbox.gob"
+g_value_set_string (VAL, self->uri);
+#line 218 "mn-custom-vfs-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 42 "mn-custom-vfs-mailbox.gob"
+static void 
+___2_mn_custom_vfs_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 238 "mn-custom-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::seal"
+{
+#line 44 "mn-custom-vfs-mailbox.gob"
+	
+    MN_VFS_MAILBOX(mailbox)->uri = gnome_vfs_make_uri_canonical(SELF(mailbox)->uri);
+    
+    PARENT_HANDLER(mailbox);
+  }}
+#line 251 "mn-custom-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 50 "mn-custom-vfs-mailbox.gob"
+static MNMailbox * 
+___3_mn_custom_vfs_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 258 "mn-custom-vfs-mailbox.c"
+#define PARENT_HANDLER(___dummy,___uri) \
+	((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+		(* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::parse_uri"
+{
+#line 52 "mn-custom-vfs-mailbox.gob"
+	
+    GnomeVFSURI *vfs_uri;
+    MNMailbox *mailbox = NULL;
+
+    vfs_uri = gnome_vfs_uri_new(uri);
+    if (vfs_uri)
+      {
+	mailbox = mn_mailbox_new("custom-vfs", "uri", uri, NULL);
+	gnome_vfs_uri_unref(vfs_uri);
+      }
+
+    return mailbox;
+  }}
+#line 280 "mn-custom-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 66 "mn-custom-vfs-mailbox.gob"
+static void 
+___4_mn_custom_vfs_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 287 "mn-custom-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->check) \
+		(* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Custom:VFS:Mailbox::check"
+{
+#line 68 "mn-custom-vfs-mailbox.gob"
+	
+    if (MN_VFS_MAILBOX(mailbox)->vfs_uri)
+      {
+	PARENT_HANDLER(mailbox);
+      }
+    else
+      {
+	mn_mailbox_set_stock_id(mailbox, MN_STOCK_UNKNOWN);
+	mn_mailbox_set_error(mailbox, _("invalid location"));
+	mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+      }
+  }}
+#line 307 "mn-custom-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-custom-vfs-mailbox.gob b/src/mn-custom-vfs-mailbox.gob
@@ -0,0 +1,80 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-stock.h"
+%}
+
+class MN:Custom:VFS:Mailbox from MN:VFS:Mailbox
+{
+  public char *uri destroywith g_free;
+  property STRING uri (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+  class_init (class)
+  {
+    MN_MAILBOX_CLASS(class)->type = "custom-vfs";
+  }
+
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
+  {
+    MN_VFS_MAILBOX(mailbox)->uri = gnome_vfs_make_uri_canonical(SELF(mailbox)->uri);
+    
+    PARENT_HANDLER(mailbox);
+  }
+
+  override (MN:Mailbox) MNMailbox *
+    parse_uri (MNMailbox *dummy, const char *uri)
+  {
+    GnomeVFSURI *vfs_uri;
+    MNMailbox *mailbox = NULL;
+
+    vfs_uri = gnome_vfs_uri_new(uri);
+    if (vfs_uri)
+      {
+	mailbox = mn_mailbox_new("custom-vfs", "uri", uri, NULL);
+	gnome_vfs_uri_unref(vfs_uri);
+      }
+
+    return mailbox;
+  }
+
+  override (MN:Mailbox) void
+    check (MNMailbox *mailbox)
+  {
+    if (MN_VFS_MAILBOX(mailbox)->vfs_uri)
+      {
+	PARENT_HANDLER(mailbox);
+      }
+    else
+      {
+	mn_mailbox_set_stock_id(mailbox, MN_STOCK_UNKNOWN);
+	mn_mailbox_set_error(mailbox, _("invalid location"));
+	mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+      }
+  }
+}
diff --git a/src/mn-custom-vfs-mailbox.h b/src/mn-custom-vfs-mailbox.h
@@ -0,0 +1,71 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox.h"
+
+#ifndef __MN_CUSTOM_VFS_MAILBOX_H__
+#define __MN_CUSTOM_VFS_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_CUSTOM_VFS_MAILBOX	(mn_custom_vfs_mailbox_get_type())
+#define MN_CUSTOM_VFS_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailbox)
+#define MN_CUSTOM_VFS_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailbox const)
+#define MN_CUSTOM_VFS_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailboxClass)
+#define MN_IS_CUSTOM_VFS_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_custom_vfs_mailbox_get_type ())
+
+#define MN_CUSTOM_VFS_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_custom_vfs_mailbox_get_type(), MNCustomVFSMailboxClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_CUSTOM_VFS_MAILBOX__
+#define __TYPEDEF_MN_CUSTOM_VFS_MAILBOX__
+typedef struct _MNCustomVFSMailbox MNCustomVFSMailbox;
+#endif
+struct _MNCustomVFSMailbox {
+	MNVFSMailbox __parent__;
+	/*< public >*/
+	char * uri;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNCustomVFSMailboxClass MNCustomVFSMailboxClass;
+struct _MNCustomVFSMailboxClass {
+	MNVFSMailboxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_custom_vfs_mailbox_get_type	(void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_CUSTOM_VFS_MAILBOX_PROP_URI(arg)    	"uri", __extension__ ({gchar *z = (arg); z;})
+#define MN_CUSTOM_VFS_MAILBOX_GET_PROP_URI(arg)	"uri", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_CUSTOM_VFS_MAILBOX_PROP_URI(arg)    	"uri",(gchar *)(arg)
+#define MN_CUSTOM_VFS_MAILBOX_GET_PROP_URI(arg)	"uri",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-dialog-private.h b/src/mn-dialog-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_DIALOG_PRIVATE_H__
+#define __MN_DIALOG_PRIVATE_H__
+
+#include "mn-dialog.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-dialog.c b/src/mn-dialog.c
@@ -0,0 +1,114 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-dialog.h"
+
+#include "mn-dialog-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+/* self casting macros */
+#define SELF(x) MN_DIALOG(x)
+#define SELF_CONST(x) MN_DIALOG_CONST(x)
+#define IS_SELF(x) MN_IS_DIALOG(x)
+#define TYPE_SELF MN_TYPE_DIALOG
+#define SELF_CLASS(x) MN_DIALOG_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_DIALOG_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNDialog Self;
+typedef MNDialogClass SelfClass;
+
+/* here are local prototypes */
+static void mn_dialog_class_init (MNDialogClass * c) G_GNUC_UNUSED;
+static void mn_dialog_init (MNDialog * self) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GtkDialogClass *parent_class = NULL;
+
+GType
+mn_dialog_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNDialogClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_dialog_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNDialog),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_dialog_init,
+			NULL
+		};
+
+		type = g_type_register_static (GTK_TYPE_DIALOG, "MNDialog", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNDialog *)g_object_new(mn_dialog_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNDialog *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNDialog *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNDialog *)g_object_new_valist (mn_dialog_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+static void 
+mn_dialog_class_init (MNDialogClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Dialog::class_init"
+
+	parent_class = g_type_class_ref (GTK_TYPE_DIALOG);
+
+}
+#undef __GOB_FUNCTION__
+#line 27 "mn-dialog.gob"
+static void 
+mn_dialog_init (MNDialog * self G_GNUC_UNUSED)
+#line 100 "mn-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Dialog::init"
+ {
+#line 28 "mn-dialog.gob"
+
+    gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+    gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+    gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
+  
+#line 110 "mn-dialog.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
diff --git a/src/mn-dialog.gob b/src/mn-dialog.gob
@@ -0,0 +1,33 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+class MN:Dialog from Gtk:Dialog
+{
+  init (self)
+  {
+    gtk_container_set_border_width(GTK_CONTAINER(self), 5);
+    gtk_dialog_set_has_separator(GTK_DIALOG(self), FALSE);
+    gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(self)->vbox), 2);
+  }
+}
diff --git a/src/mn-dialog.h b/src/mn-dialog.h
@@ -0,0 +1,57 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+
+#ifndef __MN_DIALOG_H__
+#define __MN_DIALOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_DIALOG	(mn_dialog_get_type())
+#define MN_DIALOG(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_dialog_get_type(), MNDialog)
+#define MN_DIALOG_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_dialog_get_type(), MNDialog const)
+#define MN_DIALOG_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_dialog_get_type(), MNDialogClass)
+#define MN_IS_DIALOG(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_dialog_get_type ())
+
+#define MN_DIALOG_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_dialog_get_type(), MNDialogClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_DIALOG__
+#define __TYPEDEF_MN_DIALOG__
+typedef struct _MNDialog MNDialog;
+#endif
+struct _MNDialog {
+	GtkDialog __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNDialogClass MNDialogClass;
+struct _MNDialogClass {
+	GtkDialogClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_dialog_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-folder-tree-control.c b/src/mn-evolution-folder-tree-control.c
@@ -0,0 +1,170 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <string.h>
+#include <libintl.h>
+#include <libbonoboui.h>
+
+/* headers from the Evolution source tree */
+#include "mail/mail-component.h"
+#include "mail/em-folder-tree.h"
+
+#include "mn-evolution.h"
+
+/*** types *******************************************************************/
+
+enum
+{
+  PROP_SELECTED_URI
+};
+
+/*** functions ***************************************************************/
+
+static void mn_evolution_folder_tree_control_get_property (BonoboPropertyBag *bag,
+							   BonoboArg *arg,
+							   unsigned int arg_id,
+							   CORBA_Environment *env,
+							   gpointer user_data);
+static void mn_evolution_folder_tree_control_set_property (BonoboPropertyBag *bag,
+							   const BonoboArg *arg,
+							   unsigned int arg_id,
+							   CORBA_Environment *env,
+							   gpointer user_data);
+
+static void mn_evolution_folder_tree_control_selected_h (EMFolderTree *tree,
+							 const char *full_name,
+							 const char *uri,
+							 guint32 flags,
+							 gpointer user_data);
+
+/*** implementation **********************************************************/
+
+BonoboObject *
+mn_evolution_folder_tree_control_factory_cb (BonoboGenericFactory *factory,
+					     const char *iid,
+					     gpointer closure)
+{
+  EMFolderTreeModel *model;
+  GtkWidget *tree;
+  BonoboControl *control;
+  BonoboPropertyBag *pb;
+
+  if (strcmp(iid, MN_EVOLUTION_FOLDER_TREE_CONTROL_IID) != 0)
+    return NULL;
+
+  model = mail_component_peek_tree_model(mail_component_peek());
+  tree = em_folder_tree_new_with_model(model);
+  gtk_widget_show(tree);
+  
+  control = bonobo_control_new(tree);
+
+  pb = bonobo_property_bag_new(mn_evolution_folder_tree_control_get_property,
+			       mn_evolution_folder_tree_control_set_property,
+			       tree);
+
+  bonobo_property_bag_add(pb,
+			  "selected-uri",
+			  PROP_SELECTED_URI,
+			  BONOBO_ARG_STRING,
+			  NULL,
+			  dgettext(GETTEXT_PACKAGE, "The currently selected URI"),
+			  0);
+
+  bonobo_control_set_properties(control, bonobo_object_corba_objref(BONOBO_OBJECT(pb)), NULL);
+
+  g_signal_connect_data(tree,
+			"folder-selected",
+			G_CALLBACK(mn_evolution_folder_tree_control_selected_h),
+			pb,
+			(GClosureNotify) bonobo_object_unref,
+			0);
+
+  return BONOBO_OBJECT(control);
+}
+
+static void
+mn_evolution_folder_tree_control_get_property (BonoboPropertyBag *bag,
+					       BonoboArg *arg,
+					       unsigned int arg_id,
+					       CORBA_Environment *env,
+					       gpointer user_data)
+{
+  EMFolderTree *tree = user_data;
+
+  switch (arg_id)
+    {
+    case PROP_SELECTED_URI:
+      {
+	char *selected_uri;
+
+	selected_uri = em_folder_tree_get_selected_uri(tree);
+	BONOBO_ARG_SET_STRING(arg, selected_uri);
+	g_free(selected_uri);
+      }
+      break;
+
+    default:
+      bonobo_exception_set(env, ex_Bonobo_PropertyBag_NotFound);
+      break;
+    }
+}
+
+static void
+mn_evolution_folder_tree_control_set_property (BonoboPropertyBag *bag,
+					       const BonoboArg *arg,
+					       unsigned int arg_id,
+					       CORBA_Environment *env,
+					       gpointer user_data)
+{
+  EMFolderTree *tree = user_data;
+
+  switch (arg_id)
+    {
+    case PROP_SELECTED_URI:
+      em_folder_tree_set_selected(tree, BONOBO_ARG_GET_STRING(arg));
+      break;
+
+    default:
+      bonobo_exception_set(env, ex_Bonobo_PropertyBag_NotFound);
+      break;
+    }
+}
+
+static void
+mn_evolution_folder_tree_control_selected_h (EMFolderTree *tree,
+					     const char *full_name,
+					     const char *uri,
+					     guint32 flags,
+					     gpointer user_data)
+{
+  BonoboPropertyBag *pb = user_data;
+  BonoboArg *arg;
+
+  arg = bonobo_arg_new(BONOBO_ARG_STRING);
+  BONOBO_ARG_SET_STRING(arg, uri);
+
+  bonobo_event_source_notify_listeners_full(pb->es,
+					    "Bonobo/Property",
+					    "change",
+					    "selected-uri",
+					    arg,
+					    NULL);
+
+  bonobo_arg_release(arg);
+}
diff --git a/src/mn-evolution-folder-tree-control.h b/src/mn-evolution-folder-tree-control.h
@@ -0,0 +1,28 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _MN_EVOLUTION_FOLDER_TREE_CONTROL_H
+#define _MN_EVOLUTION_FOLDER_TREE_CONTROL_H
+
+#include <libbonobo.h>
+
+BonoboObject *mn_evolution_folder_tree_control_factory_cb (BonoboGenericFactory *factory,
+							   const char *iid,
+							   gpointer closure);
+
+#endif /* _MN_EVOLUTION_FOLDER_TREE_CONTROL_H */
diff --git a/src/mn-evolution-glue-private.h b/src/mn-evolution-glue-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_EVOLUTION_GLUE_PRIVATE_H__
+#define __MN_EVOLUTION_GLUE_PRIVATE_H__
+
+#include "mn-evolution-glue.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-glue.c b/src/mn-evolution-glue.c
@@ -0,0 +1,238 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:55 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-evolution-glue.h"
+
+#include "mn-evolution-glue-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 26 "mn-evolution-glue.gob"
+
+#include <stdio.h>
+#include <camel/camel-folder.h>
+
+/* headers from the Evolution source tree */
+#include "mail/mail-tools.h"
+
+#line 35 "mn-evolution-glue.c"
+/* self casting macros */
+#define SELF(x) MN_EVOLUTION_GLUE(x)
+#define SELF_CONST(x) MN_EVOLUTION_GLUE_CONST(x)
+#define IS_SELF(x) MN_IS_EVOLUTION_GLUE(x)
+#define TYPE_SELF MN_TYPE_EVOLUTION_GLUE
+#define SELF_CLASS(x) MN_EVOLUTION_GLUE_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_EVOLUTION_GLUE_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNEvolutionGlue Self;
+typedef MNEvolutionGlueClass SelfClass;
+
+/* here are local prototypes */
+static void mn_evolution_glue_init (MNEvolutionGlue * o) G_GNUC_UNUSED;
+static void mn_evolution_glue_class_init (MNEvolutionGlueClass * c) G_GNUC_UNUSED;
+static GNOME_MailNotification_Evolution_MessageSeq * mn_evolution_glue_getUnseenMessages (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env) G_GNUC_UNUSED;
+static CORBA_string mn_evolution_glue_getFolderName (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static BonoboObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_getUnseenMessages mn_evolution_glue_getUnseenMessages
+#define self_getFolderName mn_evolution_glue_getFolderName
+#define self_new mn_evolution_glue_new
+GType
+mn_evolution_glue_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNEvolutionGlueClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_evolution_glue_class_init,
+			NULL, /* class_finalize */
+			NULL, /* class_data */
+			sizeof (MNEvolutionGlue),
+			0, /* n_preallocs */
+			(GInstanceInitFunc)  mn_evolution_glue_init,
+			NULL
+		};
+
+		type = bonobo_type_unique (
+			BONOBO_OBJECT_TYPE,
+			POA_GNOME_MailNotification_Evolution_Glue__init, NULL,
+			G_STRUCT_OFFSET (MNEvolutionGlueClass, _epv),
+			&info, "MNEvolutionGlue");
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNEvolutionGlue *)g_object_new(mn_evolution_glue_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNEvolutionGlue * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNEvolutionGlue *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNEvolutionGlue *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNEvolutionGlue *)g_object_new_valist (mn_evolution_glue_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+static void 
+mn_evolution_glue_init (MNEvolutionGlue * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::init"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_evolution_glue_class_init (MNEvolutionGlueClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::class_init"
+
+	parent_class = g_type_class_ref (BONOBO_TYPE_OBJECT);
+
+#line 36 "mn-evolution-glue.gob"
+	c->_epv.getUnseenMessages = self_getUnseenMessages;
+#line 100 "mn-evolution-glue.gob"
+	c->_epv.getFolderName = self_getFolderName;
+#line 125 "mn-evolution-glue.c"
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 36 "mn-evolution-glue.gob"
+static GNOME_MailNotification_Evolution_MessageSeq * 
+mn_evolution_glue_getUnseenMessages (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env)
+#line 134 "mn-evolution-glue.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::getUnseenMessages"
+{
+#line 40 "mn-evolution-glue.gob"
+	
+    CamelFolder *folder;
+    GPtrArray *summary;
+    int i;
+    GSList *infos = NULL;
+    GNOME_MailNotification_Evolution_MessageSeq *seq;
+
+    folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+    if (! folder)
+      {
+	bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+	return NULL;
+      }
+
+    summary = camel_folder_get_summary(folder);
+
+    for (i = 0; i < summary->len; i++)
+      {
+	CamelMessageInfo *info = summary->pdata[i];
+
+	if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+	  infos = g_slist_append(infos, info);
+      }
+
+    seq = GNOME_MailNotification_Evolution_MessageSeq__alloc();
+    seq->_length = g_slist_length(infos);
+
+    if (seq->_length > 0)
+      {
+	GSList *l;
+
+	seq->_buffer = CORBA_sequence_GNOME_MailNotification_Evolution_Message_allocbuf(seq->_length);
+	for (l = infos, i = 0; l != NULL; l = l->next, i++)
+	  {
+	    CamelMessageInfo *info = l->data;
+	    const CamelSummaryMessageID *id;
+	    char hexhash[sizeof(CamelSummaryMessageID) * 2 + 1];
+	    int j;
+
+	    id = camel_message_info_message_id(info);
+	    for (j = 0; j < sizeof(id->id.hash); j++)
+	      sprintf(hexhash + j * 2, "%.2x", id->id.hash[j]);
+	    
+	    seq->_buffer[i].sent_time = camel_message_info_date_sent(info);
+	    seq->_buffer[i].id = CORBA_string_dup(hexhash);
+	    seq->_buffer[i].from = CORBA_string_dup(camel_message_info_from(info));
+	    seq->_buffer[i].subject = CORBA_string_dup(camel_message_info_subject(info));
+	  }
+
+	CORBA_sequence_set_release(seq, CORBA_TRUE);
+
+	g_slist_free(infos);
+      }
+
+    camel_folder_free_summary(folder, summary);
+    camel_object_unref(folder);
+
+    return seq;
+  }}
+#line 198 "mn-evolution-glue.c"
+#undef __GOB_FUNCTION__
+
+#line 100 "mn-evolution-glue.gob"
+static CORBA_string 
+mn_evolution_glue_getFolderName (PortableServer_Servant servant, const CORBA_char * folder_uri, CORBA_Environment * env)
+#line 204 "mn-evolution-glue.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::getFolderName"
+{
+#line 104 "mn-evolution-glue.gob"
+	
+    CamelFolder *folder;
+    CORBA_string name = NULL;
+
+    folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+    if (folder)
+      {
+	name = CORBA_string_dup(camel_folder_get_name(folder));
+	camel_object_unref(folder);
+      }
+    else
+      bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+
+    return name;
+  }}
+#line 224 "mn-evolution-glue.c"
+#undef __GOB_FUNCTION__
+
+#line 120 "mn-evolution-glue.gob"
+MNEvolutionGlue * 
+mn_evolution_glue_new (void)
+#line 230 "mn-evolution-glue.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Glue::new"
+{
+#line 122 "mn-evolution-glue.gob"
+	
+    return GET_NEW;
+  }}
+#line 238 "mn-evolution-glue.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-evolution-glue.gob b/src/mn-evolution-glue.gob
@@ -0,0 +1,125 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <libbonobo.h>
+#include "GNOME_MailNotification_Evolution.h"
+%}
+
+%{
+#include <stdio.h>
+#include <camel/camel-folder.h>
+
+/* headers from the Evolution source tree */
+#include "mail/mail-tools.h"
+%}
+
+class MN:Evolution:Glue from Bonobo:Object (BonoboObject GNOME_MailNotification_Evolution_Glue)
+{
+  BonoboObject private GNOME_MailNotification_Evolution_MessageSeq *
+    getUnseenMessages (PortableServer_Servant servant,
+		       const CORBA_char *folder_uri,
+		       CORBA_Environment *env)
+  {
+    CamelFolder *folder;
+    GPtrArray *summary;
+    int i;
+    GSList *infos = NULL;
+    GNOME_MailNotification_Evolution_MessageSeq *seq;
+
+    folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+    if (! folder)
+      {
+	bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+	return NULL;
+      }
+
+    summary = camel_folder_get_summary(folder);
+
+    for (i = 0; i < summary->len; i++)
+      {
+	CamelMessageInfo *info = summary->pdata[i];
+
+	if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+	  infos = g_slist_append(infos, info);
+      }
+
+    seq = GNOME_MailNotification_Evolution_MessageSeq__alloc();
+    seq->_length = g_slist_length(infos);
+
+    if (seq->_length > 0)
+      {
+	GSList *l;
+
+	seq->_buffer = CORBA_sequence_GNOME_MailNotification_Evolution_Message_allocbuf(seq->_length);
+	for (l = infos, i = 0; l != NULL; l = l->next, i++)
+	  {
+	    CamelMessageInfo *info = l->data;
+	    const CamelSummaryMessageID *id;
+	    char hexhash[sizeof(CamelSummaryMessageID) * 2 + 1];
+	    int j;
+
+	    id = camel_message_info_message_id(info);
+	    for (j = 0; j < sizeof(id->id.hash); j++)
+	      sprintf(hexhash + j * 2, "%.2x", id->id.hash[j]);
+	    
+	    seq->_buffer[i].sent_time = camel_message_info_date_sent(info);
+	    seq->_buffer[i].id = CORBA_string_dup(hexhash);
+	    seq->_buffer[i].from = CORBA_string_dup(camel_message_info_from(info));
+	    seq->_buffer[i].subject = CORBA_string_dup(camel_message_info_subject(info));
+	  }
+
+	CORBA_sequence_set_release(seq, CORBA_TRUE);
+
+	g_slist_free(infos);
+      }
+
+    camel_folder_free_summary(folder, summary);
+    camel_object_unref(folder);
+
+    return seq;
+  }
+
+  BonoboObject private CORBA_string
+    getFolderName (PortableServer_Servant servant,
+		   const CORBA_char *folder_uri,
+		   CORBA_Environment *env)
+  {
+    CamelFolder *folder;
+    CORBA_string name = NULL;
+
+    folder = mail_tool_uri_to_folder(folder_uri, 0, NULL);
+    if (folder)
+      {
+	name = CORBA_string_dup(camel_folder_get_name(folder));
+	camel_object_unref(folder);
+      }
+    else
+      bonobo_exception_set(env, ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound);
+
+    return name;
+  }
+  
+  public MNEvolutionGlue *
+    new (void)
+  {
+    return GET_NEW;
+  }
+}
diff --git a/src/mn-evolution-glue.h b/src/mn-evolution-glue.h
@@ -0,0 +1,61 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <libbonobo.h>
+#include "GNOME_MailNotification_Evolution.h"
+
+#ifndef __MN_EVOLUTION_GLUE_H__
+#define __MN_EVOLUTION_GLUE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_EVOLUTION_GLUE	(mn_evolution_glue_get_type())
+#define MN_EVOLUTION_GLUE(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_glue_get_type(), MNEvolutionGlue)
+#define MN_EVOLUTION_GLUE_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_glue_get_type(), MNEvolutionGlue const)
+#define MN_EVOLUTION_GLUE_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_evolution_glue_get_type(), MNEvolutionGlueClass)
+#define MN_IS_EVOLUTION_GLUE(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_evolution_glue_get_type ())
+
+#define MN_EVOLUTION_GLUE_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_evolution_glue_get_type(), MNEvolutionGlueClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_EVOLUTION_GLUE__
+#define __TYPEDEF_MN_EVOLUTION_GLUE__
+typedef struct _MNEvolutionGlue MNEvolutionGlue;
+#endif
+struct _MNEvolutionGlue {
+	BonoboObject __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNEvolutionGlueClass MNEvolutionGlueClass;
+struct _MNEvolutionGlueClass {
+	BonoboObjectClass __parent__;
+	/* Bonobo object epv */
+	POA_GNOME_MailNotification_Evolution_Glue__epv _epv;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_evolution_glue_get_type	(void);
+MNEvolutionGlue * 	mn_evolution_glue_new	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox-private.h b/src/mn-evolution-mailbox-private.h
@@ -0,0 +1,31 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_EVOLUTION_MAILBOX_PRIVATE_H__
+#define __MN_EVOLUTION_MAILBOX_PRIVATE_H__
+
+#include "mn-evolution-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-evolution-mailbox.gob"
+
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+
+#line 19 "mn-evolution-mailbox-private.h"
+struct _MNEvolutionMailboxPrivate {
+#line 54 "mn-evolution-mailbox.gob"
+	MNCORBAObject * glue;
+#line 55 "mn-evolution-mailbox.gob"
+	Bonobo_Listener listener;
+#line 25 "mn-evolution-mailbox-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox-properties-private.h b/src/mn-evolution-mailbox-properties-private.h
@@ -0,0 +1,43 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_EVOLUTION_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_EVOLUTION_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-evolution-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-evolution-mailbox-properties.gob"
+
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+
+#line 19 "mn-evolution-mailbox-properties-private.h"
+struct _MNEvolutionMailboxPropertiesPrivate {
+#line 41 "mn-evolution-mailbox-properties.gob"
+	GtkWidget * child;
+#line 42 "mn-evolution-mailbox-properties.gob"
+	GtkWidget * tree;
+#line 44 "mn-evolution-mailbox-properties.gob"
+	char * uri;
+#line 45 "mn-evolution-mailbox-properties.gob"
+	char * name;
+#line 47 "mn-evolution-mailbox-properties.gob"
+	MNCORBAObject * glue;
+#line 48 "mn-evolution-mailbox-properties.gob"
+	MNCORBAObject * control;
+#line 50 "mn-evolution-mailbox-properties.gob"
+	Bonobo_PropertyBag pbag;
+#line 52 "mn-evolution-mailbox-properties.gob"
+	Bonobo_Listener listener;
+#line 37 "mn-evolution-mailbox-properties-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox-properties.c b/src/mn-evolution-mailbox-properties.c
@@ -0,0 +1,572 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-evolution-mailbox-properties.h"
+
+#include "mn-evolution-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 30 "mn-evolution-mailbox-properties.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonoboui.h>
+#include "mn-evolution.h"
+#include "mn-evolution-mailbox.h"
+#include "mn-stock.h"
+
+#line 36 "mn-evolution-mailbox-properties.c"
+/* self casting macros */
+#define SELF(x) MN_EVOLUTION_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_EVOLUTION_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_EVOLUTION_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_EVOLUTION_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_EVOLUTION_MAILBOX_PROPERTIES_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNEvolutionMailboxProperties Self;
+typedef MNEvolutionMailboxPropertiesClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_evolution_mailbox_properties_class_init (MNEvolutionMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_init (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void ___3_mn_evolution_mailbox_properties_dispose (GObject * object) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_update_contents (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_contact_error (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_set_widget (MNEvolutionMailboxProperties * self, GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_selected_uri_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_properties_sync (MNEvolutionMailboxProperties * self) G_GNUC_UNUSED;
+static void ___9_mn_evolution_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___a_mn_evolution_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_COMPLETE,
+	PROP_DEFAULT_NAME
+};
+
+/* pointer to the class of our parent */
+static MNMailboxPropertiesClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_update_contents mn_evolution_mailbox_properties_update_contents
+#define self_contact_error mn_evolution_mailbox_properties_contact_error
+#define self_set_widget mn_evolution_mailbox_properties_set_widget
+#define self_selected_uri_changed_cb mn_evolution_mailbox_properties_selected_uri_changed_cb
+#define self_sync mn_evolution_mailbox_properties_sync
+GType
+mn_evolution_mailbox_properties_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNEvolutionMailboxPropertiesClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_evolution_mailbox_properties_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNEvolutionMailboxProperties),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_evolution_mailbox_properties_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNEvolutionMailboxProperties", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNEvolutionMailboxProperties *)g_object_new(mn_evolution_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNEvolutionMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNEvolutionMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNEvolutionMailboxProperties *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNEvolutionMailboxProperties *)g_object_new_valist (mn_evolution_mailbox_properties_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::dispose"
+	MNEvolutionMailboxProperties *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX_PROPERTIES (obj_self);
+#line 81 "mn-evolution-mailbox-properties.gob"
+	___3_mn_evolution_mailbox_properties_dispose(obj_self);
+#line 128 "mn-evolution-mailbox-properties.c"
+#line 47 "mn-evolution-mailbox-properties.gob"
+	if(self->_priv->glue) { g_object_unref ((gpointer) self->_priv->glue); self->_priv->glue = NULL; }
+#line 131 "mn-evolution-mailbox-properties.c"
+#line 48 "mn-evolution-mailbox-properties.gob"
+	if(self->_priv->control) { g_object_unref ((gpointer) self->_priv->control); self->_priv->control = NULL; }
+#line 134 "mn-evolution-mailbox-properties.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::finalize"
+	MNEvolutionMailboxProperties *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX_PROPERTIES (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 44 "mn-evolution-mailbox-properties.gob"
+	if(self->_priv->uri) { g_free ((gpointer) self->_priv->uri); self->_priv->uri = NULL; }
+#line 149 "mn-evolution-mailbox-properties.c"
+#line 45 "mn-evolution-mailbox-properties.gob"
+	if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; }
+#line 152 "mn-evolution-mailbox-properties.c"
+#define pbag (self->_priv->pbag)
+#define VAR pbag
+	{
+#line 51 "mn-evolution-mailbox-properties.gob"
+	 CORBA_Object_release(VAR, NULL); }
+#line 158 "mn-evolution-mailbox-properties.c"
+	memset(&pbag, 0, sizeof(pbag));
+#undef VAR
+#undef pbag
+}
+#undef __GOB_FUNCTION__
+
+#line 60 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_class_init (MNEvolutionMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 168 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
+
+	g_type_class_add_private(class,sizeof(MNEvolutionMailboxPropertiesPrivate));
+
+	parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
+
+#line 81 "mn-evolution-mailbox-properties.gob"
+	g_object_class->dispose = ___dispose;
+#line 249 "mn-evolution-mailbox-properties.gob"
+	mn_mailbox_properties_class->set_mailbox = ___9_mn_evolution_mailbox_properties_set_mailbox;
+#line 265 "mn-evolution-mailbox-properties.gob"
+	mn_mailbox_properties_class->get_mailbox = ___a_mn_evolution_mailbox_properties_get_mailbox;
+#line 184 "mn-evolution-mailbox-properties.c"
+	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+    {
+	g_object_class_override_property (g_object_class,
+		PROP_COMPLETE,
+		"complete");
+	g_object_class_override_property (g_object_class,
+		PROP_DEFAULT_NAME,
+		"default_name");
+    }
+ {
+#line 61 "mn-evolution-mailbox-properties.gob"
+
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->type = "evolution";
+    p_class->stock_id = MN_STOCK_EVOLUTION_MAILBOX;
+    p_class->combo_label = "Evolution";
+    p_class->section_label = _("Folder");
+  
+#line 205 "mn-evolution-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 70 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_init (MNEvolutionMailboxProperties * self G_GNUC_UNUSED)
+#line 212 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES,MNEvolutionMailboxPropertiesPrivate);
+#line 30 "mn-evolution-mailbox-properties.gob"
+	self->_priv->pbag = CORBA_OBJECT_NIL;
+#line 218 "mn-evolution-mailbox-properties.c"
+#line 51 "mn-evolution-mailbox-properties.gob"
+	self->_priv->listener = CORBA_OBJECT_NIL;
+#line 221 "mn-evolution-mailbox-properties.c"
+ {
+#line 71 "mn-evolution-mailbox-properties.gob"
+
+    selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+    g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(self_update_contents), self);
+
+    selfp->control = mn_corba_object_new(MN_EVOLUTION_FOLDER_TREE_CONTROL_IID);
+    g_signal_connect_swapped(selfp->control, "notify::object", G_CALLBACK(self_update_contents), self);
+
+    self_update_contents(self);
+  
+#line 233 "mn-evolution-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::get_property"
+{
+	MNEvolutionMailboxProperties *self G_GNUC_UNUSED;
+
+	self = MN_EVOLUTION_MAILBOX_PROPERTIES (object);
+
+	switch (property_id) {
+	case PROP_COMPLETE:
+		{
+#line 55 "mn-evolution-mailbox-properties.gob"
+ g_value_set_boolean(VAL, selfp->tree != NULL && selfp->uri != NULL); 
+#line 254 "mn-evolution-mailbox-properties.c"
+		}
+		break;
+	case PROP_DEFAULT_NAME:
+		{
+#line 58 "mn-evolution-mailbox-properties.gob"
+ g_value_set_string(VAL, selfp->name); 
+#line 261 "mn-evolution-mailbox-properties.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 81 "mn-evolution-mailbox-properties.gob"
+static void 
+___3_mn_evolution_mailbox_properties_dispose (GObject * object G_GNUC_UNUSED)
+#line 281 "mn-evolution-mailbox-properties.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->dispose) \
+		(* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::dispose"
+{
+#line 83 "mn-evolution-mailbox-properties.gob"
+	
+    Self *self = SELF(object);
+
+    /*
+     * We are no longer operational after dispose (see unrefwith
+     * above), so we must remove our listener.
+     */
+    if (selfp->listener != CORBA_OBJECT_NIL)
+      {
+	g_assert(selfp->pbag != CORBA_OBJECT_NIL);
+
+	bonobo_event_source_client_remove_listener(selfp->pbag, selfp->listener, NULL);
+
+	CORBA_Object_release(selfp->listener, NULL);
+	selfp->listener = CORBA_OBJECT_NIL;
+      }
+
+    PARENT_HANDLER(object);
+  }}
+#line 308 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 103 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_update_contents (MNEvolutionMailboxProperties * self)
+#line 315 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::update_contents"
+#line 103 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 103 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 322 "mn-evolution-mailbox-properties.c"
+{
+#line 105 "mn-evolution-mailbox-properties.gob"
+	
+    GNOME_MailNotification_Evolution_Glue glue;
+    Bonobo_Control control;
+    GtkWidget *tree = NULL;
+
+    glue = mn_corba_object_get_object(selfp->glue);
+    control = mn_corba_object_get_object(selfp->control);
+
+    if (glue != CORBA_OBJECT_NIL && control != CORBA_OBJECT_NIL)
+      {
+	BonoboControlFrame *frame;
+
+	tree = bonobo_widget_new_control_from_objref(control, CORBA_OBJECT_NIL);
+
+	frame = bonobo_widget_get_control_frame(BONOBO_WIDGET(tree));
+
+	selfp->pbag = bonobo_control_frame_get_control_property_bag(frame, NULL);
+	if (selfp->pbag != CORBA_OBJECT_NIL)
+	  {
+	    selfp->listener = bonobo_event_source_client_add_listener_full(selfp->pbag,
+									   g_cclosure_new(G_CALLBACK(self_selected_uri_changed_cb), self, NULL),
+									   "Bonobo/Property:change:selected-uri",
+									   NULL);
+	    if (selfp->listener != CORBA_OBJECT_NIL)
+	      {
+		/* give the folder tree a decent height */
+		gtk_widget_set_size_request(tree, -1, 150);
+
+		self_set_widget(self, selfp->tree = tree);
+		self_sync(self);
+
+		goto end;	/* success */
+	      }
+	  }
+      }
+    
+    /* failure */
+
+    if (tree)
+      gtk_widget_destroy(tree);
+    self_contact_error(self);
+
+  end:
+    CORBA_Object_release(glue, NULL);
+    CORBA_Object_release(control, NULL);
+  }}
+#line 371 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 152 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_contact_error (MNEvolutionMailboxProperties * self)
+#line 377 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::contact_error"
+#line 152 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 152 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 384 "mn-evolution-mailbox-properties.c"
+{
+#line 154 "mn-evolution-mailbox-properties.gob"
+	
+    GtkWidget *label;
+
+    if (selfp->pbag != CORBA_OBJECT_NIL)
+      {
+	CORBA_Object_release(selfp->pbag, NULL);
+	selfp->pbag = CORBA_OBJECT_NIL;
+      }
+
+    if (selfp->listener != CORBA_OBJECT_NIL)
+      {
+	CORBA_Object_release(selfp->listener, NULL);
+	selfp->listener = CORBA_OBJECT_NIL;
+      }
+
+    label = gtk_label_new(_("Mail Notification can not contact Evolution. Make sure that Evolution is running and that the Evolution Mail Notification plugin is loaded."));
+
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+    gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+
+    self_set_widget(self, label);
+    selfp->tree = NULL;
+
+    g_object_notify(G_OBJECT(self), "complete");
+  }}
+#line 412 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 180 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_set_widget (MNEvolutionMailboxProperties * self, GtkWidget * widget)
+#line 418 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::set_widget"
+#line 180 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 180 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 180 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (widget != NULL);
+#line 180 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 429 "mn-evolution-mailbox-properties.c"
+{
+#line 182 "mn-evolution-mailbox-properties.gob"
+	
+    if (selfp->child)
+      gtk_widget_destroy(selfp->child);
+
+    gtk_widget_show(widget);
+    gtk_box_pack_start(GTK_BOX(self), widget, TRUE, TRUE, 0);
+
+    selfp->child = widget;
+  }}
+#line 441 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 192 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_selected_uri_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data)
+#line 447 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::selected_uri_changed_cb"
+{
+#line 198 "mn-evolution-mailbox-properties.gob"
+	
+    Self *self = user_data;
+    const char *uri;
+    CORBA_string name = NULL;
+
+    uri = BONOBO_ARG_GET_STRING(any);
+
+    if (uri && *uri)
+      {
+	GNOME_MailNotification_Evolution_Glue glue;
+	CORBA_Environment name_env;
+
+	glue = mn_corba_object_get_object(selfp->glue);
+	if (glue != CORBA_OBJECT_NIL)
+	  {
+	    CORBA_exception_init(&name_env);
+
+	    name = GNOME_MailNotification_Evolution_Glue_getFolderName(glue, uri, &name_env);
+	    if (BONOBO_EX(&name_env))
+	      name = NULL;
+
+	    CORBA_exception_free(&name_env);
+
+	    CORBA_Object_release(glue, NULL);
+	  }
+
+	if (! name)
+	  uri = NULL;
+      }
+
+    g_free(selfp->uri);
+    selfp->uri = g_strdup(uri);
+
+    g_free(selfp->name);
+    selfp->name = g_strdup(name);
+    
+    CORBA_free(name);
+
+    g_object_notify(G_OBJECT(self), "complete");
+    g_object_notify(G_OBJECT(self), "default-name");
+  }}
+#line 493 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 240 "mn-evolution-mailbox-properties.gob"
+static void 
+mn_evolution_mailbox_properties_sync (MNEvolutionMailboxProperties * self)
+#line 499 "mn-evolution-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::sync"
+#line 240 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 240 "mn-evolution-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_EVOLUTION_MAILBOX_PROPERTIES (self));
+#line 506 "mn-evolution-mailbox-properties.c"
+{
+#line 242 "mn-evolution-mailbox-properties.gob"
+	
+    g_return_if_fail(selfp->tree != NULL);
+
+    if (selfp->uri)
+      bonobo_widget_set_property(BONOBO_WIDGET(selfp->tree), "selected-uri", BONOBO_ARG_STRING, selfp->uri, NULL);
+  }}
+#line 515 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 249 "mn-evolution-mailbox-properties.gob"
+static void 
+___9_mn_evolution_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 521 "mn-evolution-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+	{ if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::set_mailbox"
+{
+#line 251 "mn-evolution-mailbox-properties.gob"
+	
+    Self *self = SELF(properties);
+    MNEvolutionMailbox *evolution_mailbox = MN_EVOLUTION_MAILBOX(mailbox);
+
+    g_free(selfp->uri);
+    selfp->uri = g_strdup(evolution_mailbox->uri);
+
+    g_free(selfp->name);
+    selfp->name = g_strdup(evolution_mailbox->folder_name);
+
+    if (selfp->tree)
+      self_sync(self);
+  }}
+#line 542 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 265 "mn-evolution-mailbox-properties.gob"
+static MNMailbox * 
+___a_mn_evolution_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 549 "mn-evolution-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+	((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox:Properties::get_mailbox"
+{
+#line 267 "mn-evolution-mailbox-properties.gob"
+	
+    Self *self = SELF(properties);
+    MNMailbox *mailbox;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    g_object_set(mailbox,
+		 "uri", selfp->uri,
+		 "folder-name", selfp->name,
+		 NULL);
+
+    return mailbox;
+  }}
+#line 571 "mn-evolution-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-evolution-mailbox-properties.gob b/src/mn-evolution-mailbox-properties.gob
@@ -0,0 +1,280 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-mailbox-properties.h"
+%}
+
+%privateheader{
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonoboui.h>
+#include "mn-evolution.h"
+#include "mn-evolution-mailbox.h"
+#include "mn-stock.h"
+%}
+
+class MN:Evolution:Mailbox:Properties from MN:Mailbox:Properties
+{
+  private GtkWidget *child;
+  private GtkWidget *tree;
+
+  private char *uri destroywith g_free;
+  private char *name destroywith g_free;
+
+  private MNCORBAObject *glue unrefwith g_object_unref;
+  private MNCORBAObject *control unrefwith g_object_unref;
+
+  private Bonobo_PropertyBag pbag = CORBA_OBJECT_NIL
+    destroy { CORBA_Object_release(VAR, NULL); };
+  private Bonobo_Listener listener = CORBA_OBJECT_NIL;
+
+  property BOOLEAN complete (override)
+    get { g_value_set_boolean(VAL, selfp->tree != NULL && selfp->uri != NULL); };
+
+  property STRING default_name (override)
+    get { g_value_set_string(VAL, selfp->name); };
+
+  class_init (class)
+  {
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->type = "evolution";
+    p_class->stock_id = MN_STOCK_EVOLUTION_MAILBOX;
+    p_class->combo_label = "Evolution";
+    p_class->section_label = _("Folder");
+  }
+
+  init (self)
+  {
+    selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+    g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(self_update_contents), self);
+
+    selfp->control = mn_corba_object_new(MN_EVOLUTION_FOLDER_TREE_CONTROL_IID);
+    g_signal_connect_swapped(selfp->control, "notify::object", G_CALLBACK(self_update_contents), self);
+
+    self_update_contents(self);
+  }
+
+  override (G:Object) void
+    dispose (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    /*
+     * We are no longer operational after dispose (see unrefwith
+     * above), so we must remove our listener.
+     */
+    if (selfp->listener != CORBA_OBJECT_NIL)
+      {
+	g_assert(selfp->pbag != CORBA_OBJECT_NIL);
+
+	bonobo_event_source_client_remove_listener(selfp->pbag, selfp->listener, NULL);
+
+	CORBA_Object_release(selfp->listener, NULL);
+	selfp->listener = CORBA_OBJECT_NIL;
+      }
+
+    PARENT_HANDLER(object);
+  }
+
+  private void
+    update_contents (self)
+  {
+    GNOME_MailNotification_Evolution_Glue glue;
+    Bonobo_Control control;
+    GtkWidget *tree = NULL;
+
+    glue = mn_corba_object_get_object(selfp->glue);
+    control = mn_corba_object_get_object(selfp->control);
+
+    if (glue != CORBA_OBJECT_NIL && control != CORBA_OBJECT_NIL)
+      {
+	BonoboControlFrame *frame;
+
+	tree = bonobo_widget_new_control_from_objref(control, CORBA_OBJECT_NIL);
+
+	frame = bonobo_widget_get_control_frame(BONOBO_WIDGET(tree));
+
+	selfp->pbag = bonobo_control_frame_get_control_property_bag(frame, NULL);
+	if (selfp->pbag != CORBA_OBJECT_NIL)
+	  {
+	    selfp->listener = bonobo_event_source_client_add_listener_full(selfp->pbag,
+									   g_cclosure_new(G_CALLBACK(self_selected_uri_changed_cb), self, NULL),
+									   "Bonobo/Property:change:selected-uri",
+									   NULL);
+	    if (selfp->listener != CORBA_OBJECT_NIL)
+	      {
+		/* give the folder tree a decent height */
+		gtk_widget_set_size_request(tree, -1, 150);
+
+		self_set_widget(self, selfp->tree = tree);
+		self_sync(self);
+
+		goto end;	/* success */
+	      }
+	  }
+      }
+    
+    /* failure */
+
+    if (tree)
+      gtk_widget_destroy(tree);
+    self_contact_error(self);
+
+  end:
+    CORBA_Object_release(glue, NULL);
+    CORBA_Object_release(control, NULL);
+  }
+  
+  private void
+    contact_error (self)
+  {
+    GtkWidget *label;
+
+    if (selfp->pbag != CORBA_OBJECT_NIL)
+      {
+	CORBA_Object_release(selfp->pbag, NULL);
+	selfp->pbag = CORBA_OBJECT_NIL;
+      }
+
+    if (selfp->listener != CORBA_OBJECT_NIL)
+      {
+	CORBA_Object_release(selfp->listener, NULL);
+	selfp->listener = CORBA_OBJECT_NIL;
+      }
+
+    label = gtk_label_new(_("Mail Notification can not contact Evolution. Make sure that Evolution is running and that the Evolution Mail Notification plugin is loaded."));
+
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+    gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+
+    self_set_widget(self, label);
+    selfp->tree = NULL;
+
+    g_object_notify(G_OBJECT(self), "complete");
+  }
+
+  private void
+    set_widget (self, Gtk:Widget *widget (check null type))
+  {
+    if (selfp->child)
+      gtk_widget_destroy(selfp->child);
+
+    gtk_widget_show(widget);
+    gtk_box_pack_start(GTK_BOX(self), widget, TRUE, TRUE, 0);
+
+    selfp->child = widget;
+  }
+
+  private void
+    selected_uri_changed_cb (BonoboListener *listener,
+			     const char *event_name,
+			     const CORBA_any *any,
+			     CORBA_Environment *env,
+			     gpointer user_data)
+  {
+    Self *self = user_data;
+    const char *uri;
+    CORBA_string name = NULL;
+
+    uri = BONOBO_ARG_GET_STRING(any);
+
+    if (uri && *uri)
+      {
+	GNOME_MailNotification_Evolution_Glue glue;
+	CORBA_Environment name_env;
+
+	glue = mn_corba_object_get_object(selfp->glue);
+	if (glue != CORBA_OBJECT_NIL)
+	  {
+	    CORBA_exception_init(&name_env);
+
+	    name = GNOME_MailNotification_Evolution_Glue_getFolderName(glue, uri, &name_env);
+	    if (BONOBO_EX(&name_env))
+	      name = NULL;
+
+	    CORBA_exception_free(&name_env);
+
+	    CORBA_Object_release(glue, NULL);
+	  }
+
+	if (! name)
+	  uri = NULL;
+      }
+
+    g_free(selfp->uri);
+    selfp->uri = g_strdup(uri);
+
+    g_free(selfp->name);
+    selfp->name = g_strdup(name);
+    
+    CORBA_free(name);
+
+    g_object_notify(G_OBJECT(self), "complete");
+    g_object_notify(G_OBJECT(self), "default-name");
+  }
+
+  private void
+    sync (self)
+  {
+    g_return_if_fail(selfp->tree != NULL);
+
+    if (selfp->uri)
+      bonobo_widget_set_property(BONOBO_WIDGET(selfp->tree), "selected-uri", BONOBO_ARG_STRING, selfp->uri, NULL);
+  }
+
+  override (MN:Mailbox:Properties) void
+    set_mailbox (MNMailboxProperties *properties, MNMailbox *mailbox)
+  {
+    Self *self = SELF(properties);
+    MNEvolutionMailbox *evolution_mailbox = MN_EVOLUTION_MAILBOX(mailbox);
+
+    g_free(selfp->uri);
+    selfp->uri = g_strdup(evolution_mailbox->uri);
+
+    g_free(selfp->name);
+    selfp->name = g_strdup(evolution_mailbox->folder_name);
+
+    if (selfp->tree)
+      self_sync(self);
+  }
+
+  override (MN:Mailbox:Properties) MNMailbox *
+    get_mailbox (MNMailboxProperties *properties)
+  {
+    Self *self = SELF(properties);
+    MNMailbox *mailbox;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    g_object_set(mailbox,
+		 "uri", selfp->uri,
+		 "folder-name", selfp->name,
+		 NULL);
+
+    return mailbox;
+  }
+}
diff --git a/src/mn-evolution-mailbox-properties.h b/src/mn-evolution-mailbox-properties.h
@@ -0,0 +1,74 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-mailbox-properties.h"
+
+#ifndef __MN_EVOLUTION_MAILBOX_PROPERTIES_H__
+#define __MN_EVOLUTION_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES	(mn_evolution_mailbox_properties_get_type())
+#define MN_EVOLUTION_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxProperties)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxProperties const)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxPropertiesClass)
+#define MN_IS_EVOLUTION_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_evolution_mailbox_properties_get_type ())
+
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_evolution_mailbox_properties_get_type(), MNEvolutionMailboxPropertiesClass)
+
+/* Private structure type */
+typedef struct _MNEvolutionMailboxPropertiesPrivate MNEvolutionMailboxPropertiesPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_EVOLUTION_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_EVOLUTION_MAILBOX_PROPERTIES__
+typedef struct _MNEvolutionMailboxProperties MNEvolutionMailboxProperties;
+#endif
+struct _MNEvolutionMailboxProperties {
+	MNMailboxProperties __parent__;
+	/*< private >*/
+	MNEvolutionMailboxPropertiesPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNEvolutionMailboxPropertiesClass MNEvolutionMailboxPropertiesClass;
+struct _MNEvolutionMailboxPropertiesClass {
+	MNMailboxPropertiesClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_evolution_mailbox_properties_get_type	(void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_EVOLUTION_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-mailbox.c b/src/mn-evolution-mailbox.c
@@ -0,0 +1,541 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-evolution-mailbox.h"
+
+#include "mn-evolution-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 30 "mn-evolution-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonobo.h>
+#include "mn-evolution.h"
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-message.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+
+#line 39 "mn-evolution-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_EVOLUTION_MAILBOX(x)
+#define SELF_CONST(x) MN_EVOLUTION_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_EVOLUTION_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_EVOLUTION_MAILBOX
+#define SELF_CLASS(x) MN_EVOLUTION_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_EVOLUTION_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNEvolutionMailbox Self;
+typedef MNEvolutionMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_evolution_mailbox_init (MNEvolutionMailbox * o) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_class_init (MNEvolutionMailboxClass * class) G_GNUC_UNUSED;
+static GObject * ___2_mn_evolution_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___3_mn_evolution_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_evolution_mailbox_dispose (GObject * object) G_GNUC_UNUSED;
+static void mn_evolution_mailbox_folder_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data) G_GNUC_UNUSED;
+static void ___6_mn_evolution_mailbox_impl_check (MNReentrantMailbox * mailbox, unsigned long check_id) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_URI,
+	PROP_FOLDER_NAME
+};
+
+/* pointer to the class of our parent */
+static MNReentrantMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_folder_changed_cb mn_evolution_mailbox_folder_changed_cb
+GType
+mn_evolution_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNEvolutionMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_evolution_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNEvolutionMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_evolution_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_REENTRANT_MAILBOX, "MNEvolutionMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNEvolutionMailbox *)g_object_new(mn_evolution_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNEvolutionMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNEvolutionMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNEvolutionMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNEvolutionMailbox *)g_object_new_valist (mn_evolution_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::dispose"
+	MNEvolutionMailbox *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX (obj_self);
+#line 89 "mn-evolution-mailbox.gob"
+	___4_mn_evolution_mailbox_dispose(obj_self);
+#line 125 "mn-evolution-mailbox.c"
+#line 54 "mn-evolution-mailbox.gob"
+	if(self->_priv->glue) { g_object_unref ((gpointer) self->_priv->glue); self->_priv->glue = NULL; }
+#line 128 "mn-evolution-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::finalize"
+	MNEvolutionMailbox *self G_GNUC_UNUSED = MN_EVOLUTION_MAILBOX (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 44 "mn-evolution-mailbox.gob"
+	if(self->uri) { g_free ((gpointer) self->uri); self->uri = NULL; }
+#line 143 "mn-evolution-mailbox.c"
+#line 51 "mn-evolution-mailbox.gob"
+	if(self->folder_name) { g_free ((gpointer) self->folder_name); self->folder_name = NULL; }
+#line 146 "mn-evolution-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_evolution_mailbox_init (MNEvolutionMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_EVOLUTION_MAILBOX,MNEvolutionMailboxPrivate);
+#line 30 "mn-evolution-mailbox.gob"
+	o->_priv->listener = CORBA_OBJECT_NIL;
+#line 157 "mn-evolution-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+#line 57 "mn-evolution-mailbox.gob"
+static void 
+mn_evolution_mailbox_class_init (MNEvolutionMailboxClass * class G_GNUC_UNUSED)
+#line 163 "mn-evolution-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNReentrantMailboxClass *mn_reentrant_mailbox_class = (MNReentrantMailboxClass *)class;
+
+	g_type_class_add_private(class,sizeof(MNEvolutionMailboxPrivate));
+
+	parent_class = g_type_class_ref (MN_TYPE_REENTRANT_MAILBOX);
+
+#line 64 "mn-evolution-mailbox.gob"
+	g_object_class->constructor = ___2_mn_evolution_mailbox_constructor;
+#line 80 "mn-evolution-mailbox.gob"
+	mn_mailbox_class->seal = ___3_mn_evolution_mailbox_seal;
+#line 89 "mn-evolution-mailbox.gob"
+	g_object_class->dispose = ___dispose;
+#line 133 "mn-evolution-mailbox.gob"
+	mn_reentrant_mailbox_class->impl_check = ___6_mn_evolution_mailbox_impl_check;
+#line 182 "mn-evolution-mailbox.c"
+	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_string
+		("uri" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_URI,
+		param_spec);
+	param_spec = g_param_spec_string
+		("folder_name" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_FOLDER_NAME,
+		param_spec);
+    }
+ {
+#line 58 "mn-evolution-mailbox.gob"
+
+    MN_MAILBOX_CLASS(class)->type = "evolution";
+
+    bonobo_exception_add_handler_str(ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound, _("folder not found"));
+  
+#line 215 "mn-evolution-mailbox.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::set_property"
+{
+	MNEvolutionMailbox *self G_GNUC_UNUSED;
+
+	self = MN_EVOLUTION_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_URI:
+		{
+#line 45 "mn-evolution-mailbox.gob"
+{ char *old = self->uri; self->uri = g_value_dup_string (VAL); g_free (old); }
+#line 236 "mn-evolution-mailbox.c"
+		}
+		break;
+	case PROP_FOLDER_NAME:
+		{
+#line 52 "mn-evolution-mailbox.gob"
+{ char *old = self->folder_name; self->folder_name = g_value_dup_string (VAL); g_free (old); }
+#line 243 "mn-evolution-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::get_property"
+{
+	MNEvolutionMailbox *self G_GNUC_UNUSED;
+
+	self = MN_EVOLUTION_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_URI:
+		{
+#line 45 "mn-evolution-mailbox.gob"
+g_value_set_string (VAL, self->uri);
+#line 274 "mn-evolution-mailbox.c"
+		}
+		break;
+	case PROP_FOLDER_NAME:
+		{
+#line 52 "mn-evolution-mailbox.gob"
+g_value_set_string (VAL, self->folder_name);
+#line 281 "mn-evolution-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 64 "mn-evolution-mailbox.gob"
+static GObject * 
+___2_mn_evolution_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 301 "mn-evolution-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): \
+		((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::constructor"
+{
+#line 66 "mn-evolution-mailbox.gob"
+	
+    GObject *object;
+    MNMailbox *mailbox;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    mailbox = MN_MAILBOX(object);
+
+    mn_mailbox_set_format(mailbox, "Evolution");
+    mn_mailbox_set_stock_id(mailbox, MN_STOCK_EVOLUTION_MAILBOX);
+    mn_mailbox_set_must_poll(mailbox, FALSE);
+
+    return object;
+  }}
+#line 323 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 80 "mn-evolution-mailbox.gob"
+static void 
+___3_mn_evolution_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 330 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::seal"
+{
+#line 82 "mn-evolution-mailbox.gob"
+	
+    PARENT_HANDLER(mailbox);
+
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = g_strdup(SELF(mailbox)->folder_name);
+  }}
+#line 344 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 89 "mn-evolution-mailbox.gob"
+static void 
+___4_mn_evolution_mailbox_dispose (GObject * object G_GNUC_UNUSED)
+#line 351 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->dispose) \
+		(* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::dispose"
+{
+#line 91 "mn-evolution-mailbox.gob"
+	
+    Self *self = SELF(object);
+
+    /*
+     * We are no longer operational after dispose (see unrefwith
+     * above), so we must remove our listener.
+     */
+    if (selfp->listener != CORBA_OBJECT_NIL)
+      {
+	GNOME_MailNotification_Evolution_Glue glue;
+
+	g_assert(selfp->glue != NULL);
+
+	glue = mn_corba_object_get_object(selfp->glue);
+	if (glue != CORBA_OBJECT_NIL)
+	  {
+	    bonobo_event_source_client_remove_listener(glue, selfp->listener, NULL);
+	    CORBA_Object_release(glue, NULL);
+	  }
+
+	CORBA_Object_release(selfp->listener, NULL);
+	selfp->listener = CORBA_OBJECT_NIL;
+      }
+
+    PARENT_HANDLER(object);
+  }}
+#line 385 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 118 "mn-evolution-mailbox.gob"
+static void 
+mn_evolution_mailbox_folder_changed_cb (BonoboListener * listener, const char * event_name, const CORBA_any * any, CORBA_Environment * env, gpointer user_data)
+#line 392 "mn-evolution-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::folder_changed_cb"
+{
+#line 124 "mn-evolution-mailbox.gob"
+	
+    Self *self = user_data;
+    const char *uri;
+
+    uri = BONOBO_ARG_GET_STRING(any);
+    if (! strcmp(uri, self->uri))
+      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+  }}
+#line 405 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 133 "mn-evolution-mailbox.gob"
+static void 
+___6_mn_evolution_mailbox_impl_check (MNReentrantMailbox * mailbox G_GNUC_UNUSED, unsigned long check_id)
+#line 411 "mn-evolution-mailbox.c"
+#define PARENT_HANDLER(___mailbox,___check_id) \
+	{ if(MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:Evolution:Mailbox::impl_check"
+{
+#line 135 "mn-evolution-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+    GNOME_MailNotification_Evolution_Glue glue;
+    CORBA_Environment env;
+    CORBA_sequence_GNOME_MailNotification_Evolution_Message *message_seq;
+
+    mn_reentrant_mailbox_lock(mailbox);
+
+    if (! selfp->glue)
+      {
+	selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+	g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(mn_reentrant_mailbox_queue_check), self);
+      }
+
+    glue = mn_corba_object_get_object(selfp->glue);
+
+    if (glue == CORBA_OBJECT_NIL)
+      {
+	if (selfp->listener != CORBA_OBJECT_NIL)
+	  {
+	    CORBA_Object_release(selfp->listener, NULL);
+	    selfp->listener = CORBA_OBJECT_NIL;
+	  }
+      }
+    else
+      {
+	if (selfp->listener == CORBA_OBJECT_NIL)
+	  selfp->listener = bonobo_event_source_client_add_listener_full(glue,
+									 g_cclosure_new(G_CALLBACK(self_folder_changed_cb), self, NULL),
+									 MN_EVOLUTION_EVENT_PREFIX ":" MN_EVOLUTION_EVENT_FOLDER_CHANGED,
+									 NULL);
+      }
+
+    if (selfp->listener == CORBA_OBJECT_NIL && glue != CORBA_OBJECT_NIL)
+      {
+	CORBA_Object_release(glue, NULL);
+	glue = CORBA_OBJECT_NIL;
+      }
+
+    mn_reentrant_mailbox_unlock(mailbox);
+
+    if (glue == CORBA_OBJECT_NIL)
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    mn_mailbox_set_error(MN_MAILBOX(self), _("unable to contact Evolution"));
+
+	    if (MN_MAILBOX(self)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+	  }
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	return;
+      }
+
+    CORBA_exception_init(&env);
+
+    message_seq = GNOME_MailNotification_Evolution_Glue_getUnseenMessages(glue, self->uri, &env);
+
+    if (BONOBO_EX(&env))
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    char *errmsg;
+		
+	    errmsg = bonobo_exception_get_text(&env);
+	    mn_mailbox_set_error(MN_MAILBOX(self), "%s", errmsg);
+	    g_free(errmsg);
+
+	    if (! MN_MAILBOX(self)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
+	  }
+	    
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+    else
+      {
+	int i;
+	GSList *messages = NULL;
+
+	for (i = 0; i < message_seq->_length; i++)
+	  {
+	    messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(mailbox),
+							       NULL,
+							       message_seq->_buffer[i].sent_time,
+							       message_seq->_buffer[i].id,
+							       message_seq->_buffer[i].from,
+							       message_seq->_buffer[i].subject));
+
+	    if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+	      break;
+	  }
+
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+
+	    if (MN_MAILBOX(self)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+	  }
+    
+	mn_g_object_slist_free(messages);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	CORBA_free(message_seq);
+      }
+
+    CORBA_exception_free(&env);
+    CORBA_Object_release(glue, NULL);
+  }}
+#line 540 "mn-evolution-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-evolution-mailbox.gob b/src/mn-evolution-mailbox.gob
@@ -0,0 +1,256 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-reentrant-mailbox.h"
+%}
+
+%privateheader{
+#include "GNOME_MailNotification_Evolution.h"
+#include "mn-corba-object.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libbonobo.h>
+#include "mn-evolution.h"
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-message.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+%}
+
+class MN:Evolution:Mailbox from MN:Reentrant:Mailbox
+{
+  public char *uri destroywith g_free;
+  property STRING uri (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+  /*
+   * Evolution might not be running when we instantiate the mailbox,
+   * so we cache the folder name.
+   */
+  public char *folder_name destroywith g_free;
+  property STRING folder_name (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+  private MNCORBAObject *glue unrefwith g_object_unref;
+  private Bonobo_Listener listener = CORBA_OBJECT_NIL;
+
+  class_init (class)
+  {
+    MN_MAILBOX_CLASS(class)->type = "evolution";
+
+    bonobo_exception_add_handler_str(ex_GNOME_MailNotification_Evolution_Glue_FolderNotFound, _("folder not found"));
+  }
+
+  override (G:Object) GObject *
+    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  {
+    GObject *object;
+    MNMailbox *mailbox;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    mailbox = MN_MAILBOX(object);
+
+    mn_mailbox_set_format(mailbox, "Evolution");
+    mn_mailbox_set_stock_id(mailbox, MN_STOCK_EVOLUTION_MAILBOX);
+    mn_mailbox_set_must_poll(mailbox, FALSE);
+
+    return object;
+  }
+
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
+  {
+    PARENT_HANDLER(mailbox);
+
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = g_strdup(SELF(mailbox)->folder_name);
+  }
+
+  override (G:Object) void
+    dispose (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    /*
+     * We are no longer operational after dispose (see unrefwith
+     * above), so we must remove our listener.
+     */
+    if (selfp->listener != CORBA_OBJECT_NIL)
+      {
+	GNOME_MailNotification_Evolution_Glue glue;
+
+	g_assert(selfp->glue != NULL);
+
+	glue = mn_corba_object_get_object(selfp->glue);
+	if (glue != CORBA_OBJECT_NIL)
+	  {
+	    bonobo_event_source_client_remove_listener(glue, selfp->listener, NULL);
+	    CORBA_Object_release(glue, NULL);
+	  }
+
+	CORBA_Object_release(selfp->listener, NULL);
+	selfp->listener = CORBA_OBJECT_NIL;
+      }
+
+    PARENT_HANDLER(object);
+  }
+
+  private void
+    folder_changed_cb (BonoboListener *listener,
+		       const char *event_name,
+		       const CORBA_any *any,
+		       CORBA_Environment *env,
+		       gpointer user_data)
+  {
+    Self *self = user_data;
+    const char *uri;
+
+    uri = BONOBO_ARG_GET_STRING(any);
+    if (! strcmp(uri, self->uri))
+      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+  }
+
+  override (MN:Reentrant:Mailbox) void
+    impl_check (MNReentrantMailbox *mailbox, unsigned long check_id)
+  {
+    Self *self = SELF(mailbox);
+    GNOME_MailNotification_Evolution_Glue glue;
+    CORBA_Environment env;
+    CORBA_sequence_GNOME_MailNotification_Evolution_Message *message_seq;
+
+    mn_reentrant_mailbox_lock(mailbox);
+
+    if (! selfp->glue)
+      {
+	selfp->glue = mn_corba_object_new(MN_EVOLUTION_GLUE_IID);
+	g_signal_connect_swapped(selfp->glue, "notify::object", G_CALLBACK(mn_reentrant_mailbox_queue_check), self);
+      }
+
+    glue = mn_corba_object_get_object(selfp->glue);
+
+    if (glue == CORBA_OBJECT_NIL)
+      {
+	if (selfp->listener != CORBA_OBJECT_NIL)
+	  {
+	    CORBA_Object_release(selfp->listener, NULL);
+	    selfp->listener = CORBA_OBJECT_NIL;
+	  }
+      }
+    else
+      {
+	if (selfp->listener == CORBA_OBJECT_NIL)
+	  selfp->listener = bonobo_event_source_client_add_listener_full(glue,
+									 g_cclosure_new(G_CALLBACK(self_folder_changed_cb), self, NULL),
+									 MN_EVOLUTION_EVENT_PREFIX ":" MN_EVOLUTION_EVENT_FOLDER_CHANGED,
+									 NULL);
+      }
+
+    if (selfp->listener == CORBA_OBJECT_NIL && glue != CORBA_OBJECT_NIL)
+      {
+	CORBA_Object_release(glue, NULL);
+	glue = CORBA_OBJECT_NIL;
+      }
+
+    mn_reentrant_mailbox_unlock(mailbox);
+
+    if (glue == CORBA_OBJECT_NIL)
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    mn_mailbox_set_error(MN_MAILBOX(self), _("unable to contact Evolution"));
+
+	    if (MN_MAILBOX(self)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+	  }
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	return;
+      }
+
+    CORBA_exception_init(&env);
+
+    message_seq = GNOME_MailNotification_Evolution_Glue_getUnseenMessages(glue, self->uri, &env);
+
+    if (BONOBO_EX(&env))
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    char *errmsg;
+		
+	    errmsg = bonobo_exception_get_text(&env);
+	    mn_mailbox_set_error(MN_MAILBOX(self), "%s", errmsg);
+	    g_free(errmsg);
+
+	    if (! MN_MAILBOX(self)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
+	  }
+	    
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+    else
+      {
+	int i;
+	GSList *messages = NULL;
+
+	for (i = 0; i < message_seq->_length; i++)
+	  {
+	    messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(mailbox),
+							       NULL,
+							       message_seq->_buffer[i].sent_time,
+							       message_seq->_buffer[i].id,
+							       message_seq->_buffer[i].from,
+							       message_seq->_buffer[i].subject));
+
+	    if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+	      break;
+	  }
+
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+
+	    if (MN_MAILBOX(self)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+	  }
+    
+	mn_g_object_slist_free(messages);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	CORBA_free(message_seq);
+      }
+
+    CORBA_exception_free(&env);
+    CORBA_Object_release(glue, NULL);
+  }
+}
diff --git a/src/mn-evolution-mailbox.h b/src/mn-evolution-mailbox.h
@@ -0,0 +1,81 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-reentrant-mailbox.h"
+
+#ifndef __MN_EVOLUTION_MAILBOX_H__
+#define __MN_EVOLUTION_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_EVOLUTION_MAILBOX	(mn_evolution_mailbox_get_type())
+#define MN_EVOLUTION_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_get_type(), MNEvolutionMailbox)
+#define MN_EVOLUTION_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_evolution_mailbox_get_type(), MNEvolutionMailbox const)
+#define MN_EVOLUTION_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_evolution_mailbox_get_type(), MNEvolutionMailboxClass)
+#define MN_IS_EVOLUTION_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_evolution_mailbox_get_type ())
+
+#define MN_EVOLUTION_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_evolution_mailbox_get_type(), MNEvolutionMailboxClass)
+
+/* Private structure type */
+typedef struct _MNEvolutionMailboxPrivate MNEvolutionMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_EVOLUTION_MAILBOX__
+#define __TYPEDEF_MN_EVOLUTION_MAILBOX__
+typedef struct _MNEvolutionMailbox MNEvolutionMailbox;
+#endif
+struct _MNEvolutionMailbox {
+	MNReentrantMailbox __parent__;
+	/*< public >*/
+	char * uri;
+	char * folder_name;
+	/*< private >*/
+	MNEvolutionMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNEvolutionMailboxClass MNEvolutionMailboxClass;
+struct _MNEvolutionMailboxClass {
+	MNReentrantMailboxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_evolution_mailbox_get_type	(void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_EVOLUTION_MAILBOX_PROP_URI(arg)    	"uri", __extension__ ({gchar *z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_GET_PROP_URI(arg)	"uri", __extension__ ({gchar **z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_PROP_FOLDER_NAME(arg)    	"folder_name", __extension__ ({gchar *z = (arg); z;})
+#define MN_EVOLUTION_MAILBOX_GET_PROP_FOLDER_NAME(arg)	"folder_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_EVOLUTION_MAILBOX_PROP_URI(arg)    	"uri",(gchar *)(arg)
+#define MN_EVOLUTION_MAILBOX_GET_PROP_URI(arg)	"uri",(gchar **)(arg)
+#define MN_EVOLUTION_MAILBOX_PROP_FOLDER_NAME(arg)    	"folder_name",(gchar *)(arg)
+#define MN_EVOLUTION_MAILBOX_GET_PROP_FOLDER_NAME(arg)	"folder_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-evolution-plugin.c b/src/mn-evolution-plugin.c
@@ -0,0 +1,191 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+#include <stdarg.h>
+#include <string.h>
+#include <libintl.h>
+#include <gtk/gtk.h>
+#include <libbonobo.h>
+#include <camel/camel-folder.h>
+
+/* headers from the Evolution source tree */
+#include "mail/em-event.h"
+
+#include "mn-evolution.h"
+#include "mn-evolution-glue.h"
+#include "mn-evolution-folder-tree-control.h"
+
+/*** cpp *********************************************************************/
+
+#define FACTORY			"_Factory"
+
+/*** variables ***************************************************************/
+
+static GSList *glue_event_sources = NULL;
+
+/*** functions ***************************************************************/
+
+static void mn_evolution_plugin_error_dialog (const char *primary,
+					      const char *format,
+					      ...);
+static BonoboObject *mn_evolution_plugin_glue_factory_cb (BonoboGenericFactory *factory,
+							  const char *iid,
+							  gpointer closure);
+static gboolean mn_evolution_plugin_factory_create (const char *factory_iid,
+						    BonoboFactoryCallback factory_cb,
+						    gpointer user_data);
+
+/*** implementation **********************************************************/
+
+static void
+mn_evolution_plugin_error_dialog (const char *primary, const char *format, ...)
+{
+  GtkWidget *dialog;
+  va_list args;
+  char *secondary;
+
+  g_return_if_fail(primary != NULL);
+  g_return_if_fail(format != NULL);
+
+  dialog = gtk_message_dialog_new(NULL,
+				  0,
+				  GTK_MESSAGE_ERROR,
+				  GTK_BUTTONS_OK,
+				  "%s",
+				  primary);
+
+  va_start(args, format);
+  secondary = g_strdup_vprintf(format, args);
+  va_end(args);
+
+  gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", secondary);
+  g_free(secondary);
+
+  gtk_window_set_title(GTK_WINDOW(dialog), ""); /* HIG */
+
+  g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
+  gtk_widget_show(dialog);
+}
+
+static BonoboObject *
+mn_evolution_plugin_glue_factory_cb (BonoboGenericFactory *factory,
+				     const char *iid,
+				     gpointer closure)
+{
+  BonoboObject *object;
+  BonoboEventSource *event_source;
+
+  if (strcmp(iid, MN_EVOLUTION_GLUE_IID) != 0)
+    return NULL;
+
+  object = BONOBO_OBJECT(mn_evolution_glue_new());
+  event_source = bonobo_event_source_new();
+
+  glue_event_sources = g_slist_append(glue_event_sources, event_source);
+  bonobo_object_add_interface(object, BONOBO_OBJECT(event_source));
+
+  return object;
+}
+
+static gboolean
+mn_evolution_plugin_factory_create (const char *factory_iid,
+				    BonoboFactoryCallback factory_cb,
+				    gpointer user_data)
+{
+  BonoboGenericFactory *factory;
+  GClosure *closure;
+  Bonobo_RegistrationResult result;
+  
+  g_return_val_if_fail(factory_iid != NULL, FALSE);
+  g_return_val_if_fail(factory_cb != NULL, FALSE);
+
+  factory = g_object_new(bonobo_generic_factory_get_type(), NULL);
+  closure = g_cclosure_new(G_CALLBACK(factory_cb), user_data, NULL);
+  bonobo_generic_factory_construct_noreg(factory, factory_iid, closure);
+  
+  result = bonobo_activation_register_active_server(factory_iid, BONOBO_OBJREF(factory), NULL);
+  switch (result)
+    {
+    case Bonobo_ACTIVATION_REG_ALREADY_ACTIVE:
+    case Bonobo_ACTIVATION_REG_SUCCESS:
+      return TRUE;
+
+    case Bonobo_ACTIVATION_REG_NOT_LISTED:
+      mn_evolution_plugin_error_dialog(dgettext(GETTEXT_PACKAGE, "Unable to activate the Mail Notification plugin"), dgettext(GETTEXT_PACKAGE, "Bonobo could not locate the %s server. Please check your Mail Notification installation."), factory_iid);
+      return FALSE;
+
+    case Bonobo_ACTIVATION_REG_ERROR:
+      mn_evolution_plugin_error_dialog(dgettext(GETTEXT_PACKAGE, "Unable to activate the Mail Notification plugin"), dgettext(GETTEXT_PACKAGE, "Bonobo was unable to register the %s server. Please check your Mail Notification installation."), factory_iid);
+      return FALSE;
+
+    default:
+      g_return_val_if_reached(FALSE);
+    }
+}
+
+int
+e_plugin_lib_enable (EPluginLib *ep, int enable)
+{
+  static gboolean enabled = FALSE;
+
+  if (! enable || enabled)
+    return 0;			/* success */
+
+  enabled = TRUE;
+
+  if (mn_evolution_plugin_factory_create(MN_EVOLUTION_GLUE_IID FACTORY, mn_evolution_plugin_glue_factory_cb, NULL)
+      && mn_evolution_plugin_factory_create(MN_EVOLUTION_FOLDER_TREE_CONTROL_IID FACTORY, mn_evolution_folder_tree_control_factory_cb, NULL))
+    return 0;			/* success */
+  else
+    {
+      GSList *l;
+
+      for (l = glue_event_sources; l != NULL; l = l->next)
+	bonobo_object_release_unref(BONOBO_OBJREF(l->data), NULL);
+
+      g_slist_free(glue_event_sources);
+      glue_event_sources = NULL;
+
+      return 1;			/* failure */
+    }
+}
+
+void
+org_gnome_mail_notification_folder_changed (EPlugin *plugin,
+					    EMEventTargetFolder *folder)
+{
+  if (glue_event_sources)
+    {
+      BonoboArg *arg;
+      GSList *l;
+
+      arg = bonobo_arg_new(BONOBO_ARG_STRING);
+      BONOBO_ARG_SET_STRING(arg, folder->uri);
+
+      for (l = glue_event_sources; l != NULL; l = l->next)
+	bonobo_event_source_notify_listeners_full(l->data,
+						  MN_EVOLUTION_EVENT_PREFIX,
+						  MN_EVOLUTION_EVENT_FOLDER_CHANGED,
+						  NULL,
+						  arg,
+						  NULL);
+
+      bonobo_arg_release(arg);
+    }
+}
diff --git a/src/mn-evolution.h b/src/mn-evolution.h
@@ -0,0 +1,28 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _MN_EVOLUTION_H
+#define _MN_EVOLUTION_H
+
+#define MN_EVOLUTION_GLUE_IID			"OAFIID:GNOME_MailNotification_Evolution_Glue"
+#define MN_EVOLUTION_FOLDER_TREE_CONTROL_IID	"OAFIID:GNOME_MailNotification_Evolution_FolderTree_Control"
+
+#define MN_EVOLUTION_EVENT_PREFIX		"GNOME/MailNotification/Evolution"
+#define MN_EVOLUTION_EVENT_FOLDER_CHANGED	"folder-changed"
+
+#endif /* _MN_EVOLUTION_H */
diff --git a/src/mn-gmail-mailbox-private.h b/src/mn-gmail-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_GMAIL_MAILBOX_PRIVATE_H__
 #define __MN_GMAIL_MAILBOX_PRIVATE_H__
@@ -12,15 +12,13 @@ extern "C" {
 
 #line 25 "mn-gmail-mailbox.gob"
 
-#include "mn-soup.h"
+#include <libgnomevfs/gnome-vfs.h>
 
 #line 18 "mn-gmail-mailbox-private.h"
 struct _MNGmailMailboxPrivate {
-#line 69 "mn-gmail-mailbox.gob"
-	GHashTable * cookies;
-#line 70 "mn-gmail-mailbox.gob"
-	gboolean logged_in;
-#line 24 "mn-gmail-mailbox-private.h"
+#line 59 "mn-gmail-mailbox.gob"
+	GnomeVFSURI * uri;
+#line 22 "mn-gmail-mailbox-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-gmail-mailbox-properties-private.h b/src/mn-gmail-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_GMAIL_MAILBOX_PROPERTIES_PRIVATE_H__
 #define __MN_GMAIL_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -10,13 +10,9 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNGmailMailboxPropertiesPrivate {
-#line 38 "mn-gmail-mailbox-properties.gob"
-	GtkSizeGroup * size_group;
-#line 51 "mn-gmail-mailbox-properties.gob"
-	GtkWidget * username_entry;
-#line 52 "mn-gmail-mailbox-properties.gob"
-	GtkWidget * password_entry;
-#line 20 "mn-gmail-mailbox-properties-private.h"
+#line 44 "mn-gmail-mailbox-properties.gob"
+	char * location;
+#line 16 "mn-gmail-mailbox-properties-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-gmail-mailbox-properties.c b/src/mn-gmail-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,16 +23,19 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-gmail-mailbox-properties.gob"
+#line 26 "mn-gmail-mailbox-properties.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
 #include "mn-util.h"
 #include "mn-properties-dialog.h"
+#include "mn-authenticated-mailbox.h"
+#include "mn-gmail-mailbox.h"
+#include "mn-stock.h"
 
-#line 36 "mn-gmail-mailbox-properties.c"
+#line 39 "mn-gmail-mailbox-properties.c"
 /* self casting macros */
 #define SELF(x) MN_GMAIL_MAILBOX_PROPERTIES(x)
 #define SELF_CONST(x) MN_GMAIL_MAILBOX_PROPERTIES_CONST(x)
@@ -47,40 +50,19 @@ typedef MNGmailMailboxProperties Self;
 typedef MNGmailMailboxPropertiesClass SelfClass;
 
 /* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * o) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_gmail_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_gmail_mailbox_properties_get_uri (MNMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * self) G_GNUC_UNUSED;
+static void ___3_mn_gmail_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_gmail_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
 
 enum {
 	PROP_0,
-	PROP_LABEL,
-	PROP_SIZE_GROUP,
-	PROP_COMPLETE
+	PROP_DEFAULT_NAME
 };
 
 /* pointer to the class of our parent */
-static GtkVBoxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_entry_changed_h mn_gmail_mailbox_properties_entry_changed_h
-#define self_set_uri mn_gmail_mailbox_properties_set_uri
-#define self_get_uri mn_gmail_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 97 "mn-gmail-mailbox-properties.gob"
-	iface->set_uri = self_set_uri;
-#line 112 "mn-gmail-mailbox-properties.gob"
-	iface->get_uri = self_get_uri;
-#line 83 "mn-gmail-mailbox-properties.c"
-}
+static MNAuthenticatedMailboxPropertiesClass *parent_class = NULL;
 
 GType
 mn_gmail_mailbox_properties_get_type (void)
@@ -101,16 +83,7 @@ mn_gmail_mailbox_properties_get_type (void)
 			NULL
 		};
 
-		static const GInterfaceInfo MN_Mailbox_Properties_info = {
-			(GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
-			NULL,
-			NULL
-		};
-
-		type = g_type_register_static (GTK_TYPE_VBOX, "MNGmailMailboxProperties", &info, (GTypeFlags)0);
-		g_type_add_interface_static (type,
-			MN_TYPE_MAILBOX_PROPERTIES,
-			&MN_Mailbox_Properties_info);
+		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES, "MNGmailMailboxProperties", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -135,20 +108,6 @@ GET_NEW_VARG (const char *first, ...)
 
 
 static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::dispose"
-	MNGmailMailboxProperties *self G_GNUC_UNUSED = MN_GMAIL_MAILBOX_PROPERTIES (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 38 "mn-gmail-mailbox-properties.gob"
-	if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
-#line 147 "mn-gmail-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
 ___finalize(GObject *obj_self)
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::finalize"
@@ -156,75 +115,75 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 44 "mn-gmail-mailbox-properties.gob"
+	if(self->_priv->location) { g_free ((gpointer) self->_priv->location); self->_priv->location = NULL; }
+#line 121 "mn-gmail-mailbox-properties.c"
 }
 #undef __GOB_FUNCTION__
 
+#line 56 "mn-gmail-mailbox-properties.gob"
 static void 
-mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPropertiesPrivate);
-}
-#undef __GOB_FUNCTION__
-static void 
-mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * c G_GNUC_UNUSED)
+mn_gmail_mailbox_properties_class_init (MNGmailMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 128 "mn-gmail-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
 
-	g_type_class_add_private(c,sizeof(MNGmailMailboxPropertiesPrivate));
+	g_type_class_add_private(class,sizeof(MNGmailMailboxPropertiesPrivate));
 
-	parent_class = g_type_class_ref (GTK_TYPE_VBOX);
+	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES);
 
-#line 54 "mn-gmail-mailbox-properties.gob"
-	g_object_class->constructor = ___1_mn_gmail_mailbox_properties_constructor;
-#line 182 "mn-gmail-mailbox-properties.c"
-	g_object_class->dispose = ___dispose;
+#line 81 "mn-gmail-mailbox-properties.gob"
+	mn_mailbox_properties_class->set_mailbox = ___3_mn_gmail_mailbox_properties_set_mailbox;
+#line 92 "mn-gmail-mailbox-properties.gob"
+	mn_mailbox_properties_class->get_mailbox = ___4_mn_gmail_mailbox_properties_get_mailbox;
+#line 142 "mn-gmail-mailbox-properties.c"
 	g_object_class->finalize = ___finalize;
 	g_object_class->get_property = ___object_get_property;
-	g_object_class->set_property = ___object_set_property;
     {
 	g_object_class_override_property (g_object_class,
-		PROP_LABEL,
-		"label");
-	g_object_class_override_property (g_object_class,
-		PROP_SIZE_GROUP,
-		"size_group");
-	g_object_class_override_property (g_object_class,
-		PROP_COMPLETE,
-		"complete");
+		PROP_DEFAULT_NAME,
+		"default_name");
     }
+ {
+#line 57 "mn-gmail-mailbox-properties.gob"
+
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->type = "gmail";
+    p_class->stock_id = MN_STOCK_GMAIL;
+    p_class->combo_label = "Gmail";
+  
+#line 159 "mn-gmail-mailbox-properties.c"
+ }
 }
 #undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
-	guint property_id,
-	const GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_property"
+#line 65 "mn-gmail-mailbox-properties.gob"
+static void 
+mn_gmail_mailbox_properties_init (MNGmailMailboxProperties * self G_GNUC_UNUSED)
+#line 166 "mn-gmail-mailbox-properties.c"
 {
-	MNGmailMailboxProperties *self G_GNUC_UNUSED;
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_GMAIL_MAILBOX_PROPERTIES,MNGmailMailboxPropertiesPrivate);
+ {
+#line 66 "mn-gmail-mailbox-properties.gob"
 
-	self = MN_GMAIL_MAILBOX_PROPERTIES (object);
+    MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+    MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
 
-	switch (property_id) {
-	case PROP_SIZE_GROUP:
-		{
-#line 39 "mn-gmail-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 217 "mn-gmail-mailbox-properties.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
+    gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
+
+    mn_mailbox_properties_add_entries(properties,
+				      GTK_ENTRY(auth->username_entry),
+				      GTK_ENTRY(auth->password_entry),
+				      NULL);
+
+    g_signal_connect(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
+  
+#line 186 "mn-gmail-mailbox-properties.c"
+ }
 }
 #undef __GOB_FUNCTION__
 
@@ -240,31 +199,17 @@ ___object_get_property (GObject *object,
 	self = MN_GMAIL_MAILBOX_PROPERTIES (object);
 
 	switch (property_id) {
-	case PROP_LABEL:
-		{
-#line 36 "mn-gmail-mailbox-properties.gob"
- g_value_set_string(VAL, "Gmail"); 
-#line 248 "mn-gmail-mailbox-properties.c"
-		}
-		break;
-	case PROP_SIZE_GROUP:
-		{
-#line 39 "mn-gmail-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 255 "mn-gmail-mailbox-properties.c"
-		}
-		break;
-	case PROP_COMPLETE:
+	case PROP_DEFAULT_NAME:
 		{
-#line 43 "mn-gmail-mailbox-properties.gob"
+#line 48 "mn-gmail-mailbox-properties.gob"
 
       const char *username;
 
-      username = gtk_entry_get_text(GTK_ENTRY(selfp->username_entry));
-      
-      g_value_set_boolean(VAL, *username != 0);
+      username = gtk_entry_get_text(GTK_ENTRY(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self)->username_entry));
+
+      g_value_take_string(VAL, mn_gmail_mailbox_build_name(*username ? username : NULL));
     
-#line 268 "mn-gmail-mailbox-properties.c"
+#line 213 "mn-gmail-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -281,128 +226,51 @@ g_value_set_object (VAL, (gpointer)self->_priv->size_group);
 
 
 
-#line 54 "mn-gmail-mailbox-properties.gob"
-static GObject * 
-___1_mn_gmail_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 288 "mn-gmail-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
-	((G_OBJECT_CLASS(parent_class)->constructor)? \
-		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
-		((GObject * )0))
+#line 81 "mn-gmail-mailbox-properties.gob"
+static void 
+___3_mn_gmail_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 233 "mn-gmail-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+	{ if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::constructor"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_mailbox"
 {
-#line 56 "mn-gmail-mailbox-properties.gob"
+#line 83 "mn-gmail-mailbox-properties.gob"
 	
-    GObject *object;
-    Self *self;
-    GtkWidget *label1;
-    GtkWidget *label2;
+    Self *self = SELF(properties);
+    MNGmailMailbox *gmail_mailbox = MN_GMAIL_MAILBOX(mailbox);
 
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
+    PARENT_HANDLER(properties, mailbox);
 
-    gtk_box_set_spacing(GTK_BOX(self), 6);
-
-    mn_mailbox_properties_credentials_new(GTK_VBOX(self),
-					  &label1,
-					  &selfp->username_entry,
-					  &label2,
-					  &selfp->password_entry);
-
-    gtk_size_group_add_widget(selfp->size_group, label1);
-    gtk_size_group_add_widget(selfp->size_group, label2);
-
-    mn_properties_dialog_set_tooltips(selfp->username_entry, _("Your Gmail username"),
-				      selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
-				      NULL);
-
-    mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
-				       GTK_ENTRY(selfp->password_entry),
-				       NULL);
-
-    g_signal_connect(selfp->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    
-    return object;
+    selfp->location = g_strdup(gmail_mailbox->location);
   }}
-#line 329 "mn-gmail-mailbox-properties.c"
+#line 249 "mn-gmail-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 89 "mn-gmail-mailbox-properties.gob"
-static void 
-mn_gmail_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 336 "mn-gmail-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::entry_changed_h"
-#line 89 "mn-gmail-mailbox-properties.gob"
-	g_return_if_fail (editable != NULL);
-#line 89 "mn-gmail-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 89 "mn-gmail-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 345 "mn-gmail-mailbox-properties.c"
-{
 #line 92 "mn-gmail-mailbox-properties.gob"
-	
-    Self *self = user_data;
-    g_object_notify(G_OBJECT(self), "complete");
-  }}
-#line 352 "mn-gmail-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 97 "mn-gmail-mailbox-properties.gob"
-static gboolean 
-mn_gmail_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 358 "mn-gmail-mailbox-properties.c"
+static MNMailbox * 
+___4_mn_gmail_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 256 "mn-gmail-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+	((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+		((MNMailbox * )0))
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::set_uri"
-#line 97 "mn-gmail-mailbox-properties.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 97 "mn-gmail-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 97 "mn-gmail-mailbox-properties.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 97 "mn-gmail-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 369 "mn-gmail-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::get_mailbox"
 {
-#line 100 "mn-gmail-mailbox-properties.gob"
+#line 94 "mn-gmail-mailbox-properties.gob"
 	
-    if (MN_URI_IS_GMAIL(uri))
-      {
-	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->username_entry), uri->username);
-	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), uri->password ? uri->password : "");
-
-	return TRUE;
-      }
-    else
-      return FALSE;
-  }}
-#line 383 "mn-gmail-mailbox-properties.c"
-#undef __GOB_FUNCTION__
+    Self *self = SELF(properties);
+    MNMailbox *mailbox;
 
-#line 112 "mn-gmail-mailbox-properties.gob"
-static MNURI * 
-mn_gmail_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 389 "mn-gmail-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox:Properties::get_uri"
-#line 112 "mn-gmail-mailbox-properties.gob"
-	g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 112 "mn-gmail-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 396 "mn-gmail-mailbox-properties.c"
-{
-#line 114 "mn-gmail-mailbox-properties.gob"
-	
-    const char *username;
-    const char *password;
+    mailbox = PARENT_HANDLER(properties);
 
-    username = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->username_entry));
-    password = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->password_entry));
+    g_object_set(mailbox, "location", selfp->location, NULL);
 
-    return mn_uri_new_gmail(username, *password ? password : NULL);
+    return mailbox;
   }}
-#line 408 "mn-gmail-mailbox-properties.c"
+#line 275 "mn-gmail-mailbox-properties.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-gmail-mailbox-properties.gob b/src/mn-gmail-mailbox-properties.gob
@@ -16,108 +16,89 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
 #include "mn-util.h"
 #include "mn-properties-dialog.h"
+#include "mn-authenticated-mailbox.h"
+#include "mn-gmail-mailbox.h"
+#include "mn-stock.h"
 %}
 
-class MN:Gmail:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
+class MN:Gmail:Mailbox:Properties from MN:Authenticated:Mailbox:Properties
 {
-  property STRING label (override)
-    get { g_value_set_string(VAL, "Gmail"); };
-
-  private GtkSizeGroup *size_group unrefwith g_object_unref;
-  property OBJECT size_group (override, link);
+  /*
+   * We do not provide a control for the atom feed location, because
+   * modifying it is probably unnecessary.
+   */
+  private char *location destroywith g_free;
 
-  property BOOLEAN complete (override)
+  property STRING default_name (override)
     get
     {
       const char *username;
 
-      username = gtk_entry_get_text(GTK_ENTRY(selfp->username_entry));
-      
-      g_value_set_boolean(VAL, *username != 0);
+      username = gtk_entry_get_text(GTK_ENTRY(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self)->username_entry));
+
+      g_value_take_string(VAL, mn_gmail_mailbox_build_name(*username ? username : NULL));
     };
-      
-  private GtkWidget *username_entry;
-  private GtkWidget *password_entry;
   
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  class_init (class)
   {
-    GObject *object;
-    Self *self;
-    GtkWidget *label1;
-    GtkWidget *label2;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-    gtk_box_set_spacing(GTK_BOX(self), 6);
+    p_class->type = "gmail";
+    p_class->stock_id = MN_STOCK_GMAIL;
+    p_class->combo_label = "Gmail";
+  }
 
-    mn_mailbox_properties_credentials_new(GTK_VBOX(self),
-					  &label1,
-					  &selfp->username_entry,
-					  &label2,
-					  &selfp->password_entry);
+  init (self)
+  {
+    MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+    MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
 
-    gtk_size_group_add_widget(selfp->size_group, label1);
-    gtk_size_group_add_widget(selfp->size_group, label2);
+    gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
 
-    mn_properties_dialog_set_tooltips(selfp->username_entry, _("Your Gmail username"),
-				      selfp->password_entry, _("Your Gmail password (if left blank, you will be prompted for the password when needed)"),
+    mn_mailbox_properties_add_entries(properties,
+				      GTK_ENTRY(auth->username_entry),
+				      GTK_ENTRY(auth->password_entry),
 				      NULL);
 
-    mn_mailbox_properties_link_entries(GTK_ENTRY(selfp->username_entry),
-				       GTK_ENTRY(selfp->password_entry),
-				       NULL);
-
-    g_signal_connect(selfp->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    
-    return object;
+    g_signal_connect(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
   }
 
-  private void
-    entry_changed_h (Gtk:Editable *editable (check null type),
-		     gpointer user_data (check null))
+  override (MN:Mailbox:Properties) void
+    set_mailbox (MNMailboxProperties *properties, MN:Mailbox *mailbox)
   {
-    Self *self = user_data;
-    g_object_notify(G_OBJECT(self), "complete");
-  }
-  
-  interface MN:Mailbox:Properties private gboolean
-    set_uri (MN:Mailbox:Properties *self (check null type),
-	     MN:URI *uri (check null type))
-  {
-    if (MN_URI_IS_GMAIL(uri))
-      {
-	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->username_entry), uri->username);
-	gtk_entry_set_text(GTK_ENTRY(SELF(self)->_priv->password_entry), uri->password ? uri->password : "");
-
-	return TRUE;
-      }
-    else
-      return FALSE;
+    Self *self = SELF(properties);
+    MNGmailMailbox *gmail_mailbox = MN_GMAIL_MAILBOX(mailbox);
+
+    PARENT_HANDLER(properties, mailbox);
+
+    selfp->location = g_strdup(gmail_mailbox->location);
   }
-  
-  interface MN:Mailbox:Properties private MNURI *
-    get_uri (MN:Mailbox:Properties *self (check null type))
+
+  override (MN:Mailbox:Properties) MNMailbox *
+    get_mailbox (MNMailboxProperties *properties)
   {
-    const char *username;
-    const char *password;
+    Self *self = SELF(properties);
+    MNMailbox *mailbox;
+
+    mailbox = PARENT_HANDLER(properties);
 
-    username = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->username_entry));
-    password = gtk_entry_get_text(GTK_ENTRY(SELF(self)->_priv->password_entry));
+    g_object_set(mailbox, "location", selfp->location, NULL);
 
-    return mn_uri_new_gmail(username, *password ? password : NULL);
+    return mailbox;
   }
 }
diff --git a/src/mn-gmail-mailbox-properties.h b/src/mn-gmail-mailbox-properties.h
@@ -1,10 +1,11 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
 #include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
 
 #ifndef __MN_GMAIL_MAILBOX_PROPERTIES_H__
 #define __MN_GMAIL_MAILBOX_PROPERTIES_H__
@@ -36,7 +37,7 @@ typedef struct _MNGmailMailboxPropertiesPrivate MNGmailMailboxPropertiesPrivate;
 typedef struct _MNGmailMailboxProperties MNGmailMailboxProperties;
 #endif
 struct _MNGmailMailboxProperties {
-	GtkVBox __parent__;
+	MNAuthenticatedMailboxProperties __parent__;
 	/*< private >*/
 	MNGmailMailboxPropertiesPrivate *_priv;
 };
@@ -46,7 +47,7 @@ struct _MNGmailMailboxProperties {
  */
 typedef struct _MNGmailMailboxPropertiesClass MNGmailMailboxPropertiesClass;
 struct _MNGmailMailboxPropertiesClass {
-	GtkVBoxClass __parent__;
+	MNAuthenticatedMailboxPropertiesClass __parent__;
 };
 
 
@@ -59,15 +60,9 @@ GType	mn_gmail_mailbox_properties_get_type	(void);
  * Argument wrapping macros
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label", __extension__ ({gchar **z = (arg); z;})
-#define MN_GMAIL_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group", __extension__ ({GObject **z = (arg); z;})
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
 #else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label",(gchar **)(arg)
-#define MN_GMAIL_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group",(GObject *)(arg)
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group",(GObject **)(arg)
-#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_GMAIL_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
 #endif /* __GNUC__ && !__STRICT_ANSI__ */
 
 
diff --git a/src/mn-gmail-mailbox.c b/src/mn-gmail-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -24,42 +24,27 @@
 #line 29 "mn-gmail-mailbox.gob"
 
 #include "config.h"
-#include <stdio.h>
 #include <string.h>
-#include <stdarg.h>
+#ifdef HAVE_TIMEGM
 #include <stdlib.h>
 #include <time.h>
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#endif /* TM_IN_SYS_TIME */
+#endif /* HAVE_TIMEGM */
 #include <glib/gi18n.h>
-#include <eel/eel.h>
-#ifdef WITH_GMAIL_TIMESTAMPS
-#include <unicode/uenum.h>
-#include <unicode/uloc.h>
-#include <unicode/ucal.h>
-#include "mn-icu.h"
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#include <libxml/parser.h>
+#include <libxml/tree.h>
 #include "mn-mailbox-private.h"
 #include "mn-authenticated-mailbox-private.h"
-#include "mn-util.h"
+#include "mn-vfs.h"
 #include "mn-stock.h"
-#include "mn-sgml-ref.h"
+#include "mn-message.h"
+#include "mn-util.h"
 
-  typedef enum
-  {
-    JS_ARG_STRING,
-    JS_ARG_LIST
-  } JSArgType;
-  
-  typedef struct
-  {
-    JSArgType type;
-    union 
-    {
-      char	*string;
-      GSList	*list;
-    } value;
-  } JSArg;
+#define DEFAULT_LOCATION	"https://mail.google.com/mail/feed/atom"
 
-#line 63 "mn-gmail-mailbox.c"
+#line 48 "mn-gmail-mailbox.c"
 /* self casting macros */
 #define SELF(x) MN_GMAIL_MAILBOX(x)
 #define SELF_CONST(x) MN_GMAIL_MAILBOX_CONST(x)
@@ -74,58 +59,30 @@ typedef MNGmailMailbox Self;
 typedef MNGmailMailboxClass SelfClass;
 
 /* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_gmail_mailbox_init (MNGmailMailbox * o) G_GNUC_UNUSED;
 static void mn_gmail_mailbox_class_init (MNGmailMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_gmail_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_gmail_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static SoupUri * mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_get_substring (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message) G_GNUC_UNUSED;
-static char * mn_gmail_mailbox_build_cookie (MNGmailMailbox * self) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_append_message (MNGmailMailbox * self, GSList ** messages, JSArg * arg, gboolean icu_available) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_js_get_arg_list (char ** str, GSList ** list) G_GNUC_UNUSED;
-static gboolean mn_gmail_mailbox_js_arg_list_scan (GSList * list, ...) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_js_arg_list_free (GSList * list) G_GNUC_UNUSED;
-static JSArg * mn_gmail_mailbox_js_arg_new_string (const char * string) G_GNUC_UNUSED;
-static JSArg * mn_gmail_mailbox_js_arg_new_list (GSList * list) G_GNUC_UNUSED;
-static void mn_gmail_mailbox_js_arg_free (JSArg * arg) G_GNUC_UNUSED;
-static time_t mn_gmail_mailbox_parse_date (MNGmailMailbox * self, const char * date) G_GNUC_UNUSED;
+static void ___3_mn_gmail_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_gmail_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_gmail_mailbox_parse_entry (xmlNode * node, time_t * sent_time, char ** id, char ** from, char ** subject) G_GNUC_UNUSED;
+static char * mn_gmail_mailbox_parse_author (xmlNode * node) G_GNUC_UNUSED;
+static time_t mn_gmail_mailbox_parse_date (const char * w3c_datetime) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_LOCATION
+};
 
 /* pointer to the class of our parent */
 static MNAuthenticatedMailboxClass *parent_class = NULL;
 
 /* Short form macros */
-#define self_soup_uri_new mn_gmail_mailbox_soup_uri_new
-#define self_get mn_gmail_mailbox_get
-#define self_get_from_uri mn_gmail_mailbox_get_from_uri
-#define self_dump_request mn_gmail_mailbox_dump_request
-#define self_dump_request_cb mn_gmail_mailbox_dump_request_cb
-#define self_dump_response mn_gmail_mailbox_dump_response
-#define self_dump_response_cb mn_gmail_mailbox_dump_response_cb
-#define self_get_substring mn_gmail_mailbox_get_substring
-#define self_login mn_gmail_mailbox_login
-#define self_update_cookies mn_gmail_mailbox_update_cookies
-#define self_build_cookie mn_gmail_mailbox_build_cookie
-#define self_build_cookie_cb mn_gmail_mailbox_build_cookie_cb
-#define self_check mn_gmail_mailbox_check
-#define self_append_message mn_gmail_mailbox_append_message
-#define self_js_get_arg_list mn_gmail_mailbox_js_get_arg_list
-#define self_js_arg_list_scan mn_gmail_mailbox_js_arg_list_scan
-#define self_js_arg_list_free mn_gmail_mailbox_js_arg_list_free
-#define self_js_arg_new_string mn_gmail_mailbox_js_arg_new_string
-#define self_js_arg_new_list mn_gmail_mailbox_js_arg_new_list
-#define self_js_arg_free mn_gmail_mailbox_js_arg_free
+#define self_parse_entry mn_gmail_mailbox_parse_entry
+#define self_parse_author mn_gmail_mailbox_parse_author
 #define self_parse_date mn_gmail_mailbox_parse_date
+#define self_build_name mn_gmail_mailbox_build_name
 GType
 mn_gmail_mailbox_get_type (void)
 {
@@ -170,6 +127,20 @@ GET_NEW_VARG (const char *first, ...)
 
 
 static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dispose"
+	MNGmailMailbox *self G_GNUC_UNUSED = MN_GMAIL_MAILBOX (obj_self);
+	if (G_OBJECT_CLASS (parent_class)->dispose) \
+		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 59 "mn-gmail-mailbox.gob"
+	if(self->_priv->uri) { gnome_vfs_uri_unref ((gpointer) self->_priv->uri); self->_priv->uri = NULL; }
+#line 139 "mn-gmail-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
 ___finalize(GObject *obj_self)
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::finalize"
@@ -177,9 +148,12 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 69 "mn-gmail-mailbox.gob"
-	if(self->_priv->cookies) { g_hash_table_destroy ((gpointer) self->_priv->cookies); self->_priv->cookies = NULL; }
-#line 183 "mn-gmail-mailbox.c"
+#line 54 "mn-gmail-mailbox.gob"
+	if(self->location) { g_free ((gpointer) self->location); self->location = NULL; }
+#line 154 "mn-gmail-mailbox.c"
+#line 57 "mn-gmail-mailbox.gob"
+	if(self->runtime_location) { g_free ((gpointer) self->runtime_location); self->runtime_location = NULL; }
+#line 157 "mn-gmail-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -187,47 +161,125 @@ static void
 mn_gmail_mailbox_init (MNGmailMailbox * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGmailMailboxPrivate);
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_GMAIL_MAILBOX,MNGmailMailboxPrivate);
 }
 #undef __GOB_FUNCTION__
-#line 72 "mn-gmail-mailbox.gob"
+#line 61 "mn-gmail-mailbox.gob"
 static void 
 mn_gmail_mailbox_class_init (MNGmailMailboxClass * class G_GNUC_UNUSED)
-#line 197 "mn-gmail-mailbox.c"
+#line 171 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
 	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
 
 	g_type_class_add_private(class,sizeof(MNGmailMailboxPrivate));
 
 	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
 
-#line 78 "mn-gmail-mailbox.gob"
+#line 66 "mn-gmail-mailbox.gob"
 	g_object_class->constructor = ___2_mn_gmail_mailbox_constructor;
-#line 91 "mn-gmail-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_gmail_mailbox_impl_is;
-#line 97 "mn-gmail-mailbox.gob"
-	mn_mailbox_class->impl_check = ___4_mn_gmail_mailbox_impl_check;
-#line 213 "mn-gmail-mailbox.c"
+#line 81 "mn-gmail-mailbox.gob"
+	mn_mailbox_class->seal = ___3_mn_gmail_mailbox_seal;
+#line 94 "mn-gmail-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_check = ___4_mn_gmail_mailbox_impl_check;
+#line 188 "mn-gmail-mailbox.c"
+	g_object_class->dispose = ___dispose;
 	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_string
+		("location" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_LOCATION,
+		param_spec);
+    }
  {
-#line 73 "mn-gmail-mailbox.gob"
+#line 62 "mn-gmail-mailbox.gob"
 
-    MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_GMAIL;
-    MN_MAILBOX_CLASS(class)->format = "Gmail";
+    MN_MAILBOX_CLASS(class)->type = "gmail";
   
-#line 221 "mn-gmail-mailbox.c"
+#line 211 "mn-gmail-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
 
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::set_property"
+{
+	MNGmailMailbox *self G_GNUC_UNUSED;
+
+	self = MN_GMAIL_MAILBOX (object);
 
+	switch (property_id) {
+	case PROP_LOCATION:
+		{
+#line 55 "mn-gmail-mailbox.gob"
+{ char *old = self->location; self->location = g_value_dup_string (VAL); g_free (old); }
+#line 232 "mn-gmail-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
 
-#line 78 "mn-gmail-mailbox.gob"
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_property"
+{
+	MNGmailMailbox *self G_GNUC_UNUSED;
+
+	self = MN_GMAIL_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_LOCATION:
+		{
+#line 55 "mn-gmail-mailbox.gob"
+g_value_set_string (VAL, self->location);
+#line 263 "mn-gmail-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 66 "mn-gmail-mailbox.gob"
 static GObject * 
 ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 231 "mn-gmail-mailbox.c"
+#line 283 "mn-gmail-mailbox.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -235,1214 +287,339 @@ ___2_mn_gmail_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_cons
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::constructor"
 {
-#line 80 "mn-gmail-mailbox.gob"
+#line 68 "mn-gmail-mailbox.gob"
 	
     GObject *object;
+    MNMailbox *mailbox;
 
     object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    
-    if (! soup_ssl_supported)
-      mn_mailbox_set_init_error(MN_MAILBOX(object), _("libsoup has not been compiled with SSL/TLS support"));
+    mailbox = MN_MAILBOX(object);
 
-    return object;
-  }}
-#line 250 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
+    mn_mailbox_set_format(mailbox, "Gmail");
+    mn_mailbox_set_stock_id(mailbox, MN_STOCK_GMAIL);
 
-#line 91 "mn-gmail-mailbox.gob"
-static gboolean 
-___3_mn_gmail_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 257 "mn-gmail-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_is"
-#line 91 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 91 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 268 "mn-gmail-mailbox.c"
-{
-#line 93 "mn-gmail-mailbox.gob"
-	
-    return MN_URI_IS_GMAIL(uri);
+    return object;
   }}
-#line 274 "mn-gmail-mailbox.c"
+#line 304 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 97 "mn-gmail-mailbox.gob"
+#line 81 "mn-gmail-mailbox.gob"
 static void 
-___4_mn_gmail_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 281 "mn-gmail-mailbox.c"
+___3_mn_gmail_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 311 "mn-gmail-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_check"
-#line 97 "mn-gmail-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 97 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 291 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::seal"
 {
-#line 99 "mn-gmail-mailbox.gob"
+#line 83 "mn-gmail-mailbox.gob"
 	
-    MNAuthenticatedMailbox *authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
     Self *self = SELF(mailbox);
-    SoupSession *session;
-    gboolean status = TRUE;
-    GError *err = NULL;
 
     PARENT_HANDLER(mailbox);
 
-    session = mn_soup_session_sync_new();
-
-    if (! selfp->logged_in)
-      while (TRUE)
-	{
-	  gboolean authentication_failed;
+    self->runtime_location = g_strdup(self->location ? self->location : DEFAULT_LOCATION);
 
-	  mn_authenticated_mailbox_fill_password(authenticated_mailbox);
-	  if (! authenticated_mailbox->password)
-	    break;
-	    
-	  if (self_login(self, session, &authentication_failed, &err))
-	    {
-	      selfp->logged_in = TRUE;
-	      break;
-	    }
-	  else
-	    {
-	      if (authentication_failed && ! mailbox->uri->password)
-		{
-		  mn_authenticated_mailbox_authentication_failed(authenticated_mailbox);
-		  g_clear_error(&err);
-		}
-	      else
-		{
-		  status = FALSE;
-		  break;
-		}
-	    }
-	}
-	    
-    if (selfp->logged_in && ! self_check(self, session, &err))
-      status = FALSE;
-    
-    g_object_unref(session);
-
-    GDK_THREADS_ENTER();
-
-    if (! status)
-      {
-	mn_mailbox_set_error(mailbox, "%s", err->message);
-	g_error_free(err);
-      }
-    mn_mailbox_end_check(mailbox);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username);
   }}
-#line 351 "mn-gmail-mailbox.c"
+#line 329 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 157 "mn-gmail-mailbox.gob"
-static SoupUri * 
-mn_gmail_mailbox_soup_uri_new (const char * text_uri, GError ** err)
-#line 358 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::soup_uri_new"
-#line 157 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (text_uri != NULL, (SoupUri * )0);
-#line 363 "mn-gmail-mailbox.c"
-{
-#line 159 "mn-gmail-mailbox.gob"
-	
-    SoupUri *uri;
-
-    uri = soup_uri_new(text_uri);
-    if (! uri)
-      g_set_error(err, 0, 0, _("unable to parse URI \"%s\""), text_uri);
-
-    return uri;
-  }}
-#line 375 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 169 "mn-gmail-mailbox.gob"
-static char * 
-mn_gmail_mailbox_get (MNGmailMailbox * self, SoupSession * session, const char * text_uri, GError ** err)
-#line 381 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get"
-#line 169 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
-#line 169 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (text_uri != NULL, (char * )0);
-#line 394 "mn-gmail-mailbox.c"
-{
-#line 174 "mn-gmail-mailbox.gob"
-	
-    SoupUri *uri;
-    char *body;
-
-    uri = self_soup_uri_new(text_uri, err);
-    if (! uri)
-      return NULL;
-
-    body = self_get_from_uri(self, session, uri, err);
-    soup_uri_free(uri);
-
-    return body;
-  }}
-#line 410 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 188 "mn-gmail-mailbox.gob"
-static char * 
-mn_gmail_mailbox_get_from_uri (MNGmailMailbox * self, SoupSession * session, SoupUri * uri, GError ** err)
-#line 416 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_from_uri"
-#line 188 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (SOUP_IS_SESSION (session), (char * )0);
-#line 188 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (char * )0);
-#line 429 "mn-gmail-mailbox.c"
-{
-#line 193 "mn-gmail-mailbox.gob"
-	
-    SoupMessage *message;
-    char *cookie;
-    char *body = NULL;
-
-    message = soup_message_new_from_uri(SOUP_METHOD_GET, uri);
-    soup_message_add_header(message->request_headers, "User-Agent", "Mail Notification");
-
-    cookie = self_build_cookie(self);
-    if (cookie)
-      {
-	soup_message_add_header(message->request_headers, "Cookie", cookie);
-	g_free(cookie);
-      }
-    
-    self_dump_request(self, message);
-    soup_session_send_message(session, message);
-
-    if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
-      {
-	const char *end;
-	
-	/* Gmail returns UTF-8, so we don't need to parse Content-Type */
-	if (! g_utf8_validate(message->response.body, message->response.length, &end))
-	  mn_mailbox_warning(MN_MAILBOX(self), _("received non-UTF-8 data from server"));
-	  
-	body = g_strndup(message->response.body, end - message->response.body);
-	self_dump_response(self, message, body);
-	self_update_cookies(self, message);
-      }
-    else
-      g_set_error(err, 0, 0, _("unable to transfer data: %s"), message->reason_phrase);
-
-    g_object_unref(message);
-    
-    return body;
-  }}
-#line 469 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 231 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_dump_request (MNGmailMailbox * self, SoupMessage * message)
-#line 475 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request"
-#line 231 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 231 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 231 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 231 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 486 "mn-gmail-mailbox.c"
-{
-#line 233 "mn-gmail-mailbox.gob"
-	
-    const SoupUri *suri;
-    char *uri;
-
-    suri = soup_message_get_uri(message);
-    uri = soup_uri_to_string(suri, FALSE);
-    mn_mailbox_notice(MN_MAILBOX(self), "> GET %s", uri);
-    g_free(uri);
-
-    soup_message_foreach_header(message->request_headers, self_dump_request_cb, self);
-  }}
-#line 500 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 245 "mn-gmail-mailbox.gob"
+#line 94 "mn-gmail-mailbox.gob"
 static void 
-mn_gmail_mailbox_dump_request_cb (gpointer key, gpointer value, gpointer user_data)
-#line 506 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_request_cb"
-#line 245 "mn-gmail-mailbox.gob"
-	g_return_if_fail (key != NULL);
-#line 245 "mn-gmail-mailbox.gob"
-	g_return_if_fail (value != NULL);
-#line 245 "mn-gmail-mailbox.gob"
-	g_return_if_fail (user_data != NULL);
-#line 515 "mn-gmail-mailbox.c"
-{
-#line 249 "mn-gmail-mailbox.gob"
-	
-    Self *self = user_data;
-    const char *header_name = key;
-    const char *header_value = value;
-
-    mn_mailbox_notice(MN_MAILBOX(self), "> %s: %s", header_name, header_value);
-  }}
-#line 525 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 257 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_dump_response (MNGmailMailbox * self, SoupMessage * message, const char * body)
-#line 531 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response"
-#line 257 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 257 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 257 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 257 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 257 "mn-gmail-mailbox.gob"
-	g_return_if_fail (body != NULL);
-#line 544 "mn-gmail-mailbox.c"
-{
-#line 261 "mn-gmail-mailbox.gob"
-	
-    char **lines;
-    int i;
-    
-    soup_message_foreach_header(message->response_headers, self_dump_response_cb, self);
-
-    lines = g_strsplit(body, "\n", 0);
-    for (i = 0; lines[i]; i++)
-      mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
-    g_strfreev(lines);
-  }}
-#line 558 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 273 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_dump_response_cb (gpointer key, gpointer value, gpointer user_data)
-#line 564 "mn-gmail-mailbox.c"
+___4_mn_gmail_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 336 "mn-gmail-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::dump_response_cb"
-#line 273 "mn-gmail-mailbox.gob"
-	g_return_if_fail (key != NULL);
-#line 273 "mn-gmail-mailbox.gob"
-	g_return_if_fail (value != NULL);
-#line 273 "mn-gmail-mailbox.gob"
-	g_return_if_fail (user_data != NULL);
-#line 573 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::impl_check"
 {
-#line 277 "mn-gmail-mailbox.gob"
+#line 96 "mn-gmail-mailbox.gob"
 	
-    Self *self = user_data;
-    const char *header_name = key;
-    const char *header_value = value;
-
-    mn_mailbox_notice(MN_MAILBOX(self), "< %s: %s", header_name, header_value);
-  }}
-#line 583 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+    Self *self = SELF(mailbox);
+    GnomeVFSResult result;
+    char *atom;
+    int atom_size;
+    xmlDoc *doc;
+    xmlNode *node;
 
-/**
- * mn_gmail_mailbox_get_substring:
- * @str: the string to search
- * @pre: the start of the substring
- * @post: the end of the substring
- * @include_pre: whether to include @pre in the result or not
- * @include_post: whether to include @post in the result or not
- *
- * Gets the first substring of @str included between @pre and @post.
- *
- * Return value: a newly allocated string containing the substring
- *               or %NULL if not found.
- **/
-#line 298 "mn-gmail-mailbox.gob"
-static char * 
-mn_gmail_mailbox_get_substring (const char * str, const char * pre, const char * post, gboolean include_pre, gboolean include_post)
-#line 602 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::get_substring"
-#line 298 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (str != NULL, (char * )0);
-#line 298 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (pre != NULL, (char * )0);
-#line 298 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (post != NULL, (char * )0);
-#line 611 "mn-gmail-mailbox.c"
-{
-#line 304 "mn-gmail-mailbox.gob"
-	
-    char *sub = NULL;
-    char *pre_loc;
-    
-    pre_loc = strstr(str, pre);
-    if (pre_loc)
+    if (! selfp->uri)
       {
-	char *after_pre_loc;
-	char *post_loc;
-	
-	after_pre_loc = pre_loc + strlen(pre);
-	post_loc = strstr(after_pre_loc, post);
-	if (post_loc)
+	selfp->uri = gnome_vfs_uri_new(self->runtime_location);
+	if (! selfp->uri)
 	  {
-	    char *start = include_pre ? pre_loc : after_pre_loc;
-	    char *end = include_post ? post_loc + strlen(post) : post_loc;
-	    
-	    sub = g_strndup(start, end - start);
-	  }
-      }
-    
-    return sub;
-  }}
-#line 637 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 328 "mn-gmail-mailbox.gob"
-static gboolean 
-mn_gmail_mailbox_login (MNGmailMailbox * self, SoupSession * session, gboolean * authentication_failed, GError ** err)
-#line 643 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::login"
-#line 328 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
-#line 328 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (authentication_failed != NULL, (gboolean )0);
-#line 656 "mn-gmail-mailbox.c"
-{
-#line 333 "mn-gmail-mailbox.gob"
-	
-    char *text_uri;
-    char *escaped_username;
-    char *escaped_password;
-    char *body;
-    char *next_location;
-    char *query;
-    SoupUri *uri;
-    gboolean success;
-
-    g_return_val_if_fail(selfp->logged_in == FALSE, FALSE);
-    
-    mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
-    *authentication_failed = FALSE;
-
-    if (selfp->cookies)
-      g_hash_table_destroy(selfp->cookies);
-    selfp->cookies = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+	    GDK_THREADS_ENTER();
 
-#define EXTRA_CHARS ";/?:@&=+$,"/* taken from RFC 2396 2.2 */
-    escaped_username = soup_uri_encode(MN_MAILBOX(self)->uri->username, EXTRA_CHARS);
-    escaped_password = soup_uri_encode(MN_AUTHENTICATED_MAILBOX(self)->password, EXTRA_CHARS);
-    text_uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
-    g_free(escaped_username);
-    g_free(escaped_password);
+	    mn_mailbox_set_error(MN_MAILBOX(self), _("invalid feed location"));
+	    /* error is not recoverable, disable the mailbox */
+	    mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
 
-    body = self_get(self, session, text_uri, err);
-    g_free(text_uri);
+	    gdk_flush();
+	    GDK_THREADS_LEAVE();
 
-    if (! body)
-      return FALSE;
-
-    next_location = self_get_substring(body, "top.location = \"", "\"", FALSE, FALSE);
-    g_free(body);
+	    return;
+	  }
 
-    if (! next_location)
-      {
-	*authentication_failed = TRUE;
-	goto failed;
+	gnome_vfs_uri_set_user_name(selfp->uri, mailbox->username);
+	gnome_vfs_uri_set_password(selfp->uri, mailbox->password);
       }
 
-    /*
-     * The following kludges work around
-     * http://bugzilla.ximian.com/show_bug.cgi?id=66516.
-     *
-     * FIXME: remove it and bump libsoup version requirement when the
-     * bug is fixed.
-     */
-
-    query = strchr(next_location, '?');
-    if (query)
-      *query = 0;
-
-    text_uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
-    g_free(next_location);
-
-    uri = self_soup_uri_new(text_uri, err);
-    g_free(text_uri);
+    mn_mailbox_notice(MN_MAILBOX(self), _("retrieving feed from %s"), self->runtime_location);
 
-    if (! uri)
-      return FALSE;
-
-    if (query)
+    result = mn_vfs_read_entire_file_uri(selfp->uri, &atom_size, &atom);
+    if (result != GNOME_VFS_OK)
       {
-	uri->query = g_strdup(query + 1);
-	uri->broken_encoding = TRUE;
-      }
-
-    body = self_get_from_uri(self, session, uri, err);
-    soup_uri_free(uri);
-
-    if (! body)
-      return FALSE;
-
-    next_location = self_get_substring(body, "location.replace(\"", "\")", FALSE, FALSE);
-    g_free(body);
-
-    if (! next_location)
-      goto failed;
+	GDK_THREADS_ENTER();
 
-    body = self_get(self, session, next_location, err);
-    g_free(next_location);
+	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to retrieve feed: %s"), gnome_vfs_result_to_string(result));
 
-    success = strstr(body, "frame name=js src=/gmail") != NULL;
-    g_free(body);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
 
-    if (success)
-      return TRUE;
+	return;
+      }
     
-  failed:
-    g_set_error(err, 0, 0, _("login failed"));
-    return FALSE;
-  }}
-#line 752 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+    doc = xmlParseMemory(atom, atom_size);
+    g_free(atom);
 
-#line 427 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_update_cookies (MNGmailMailbox * self, SoupMessage * message)
-#line 758 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::update_cookies"
-#line 427 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 427 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 427 "mn-gmail-mailbox.gob"
-	g_return_if_fail (message != NULL);
-#line 427 "mn-gmail-mailbox.gob"
-	g_return_if_fail (SOUP_IS_MESSAGE (message));
-#line 769 "mn-gmail-mailbox.c"
-{
-#line 429 "mn-gmail-mailbox.gob"
-	
-    const GSList *l;
-    
-    MN_LIST_FOREACH(l, soup_message_get_header_list(message->response_headers, "Set-Cookie"))
+    if (! doc)
       {
-	const char *value = l->data;
-	char *equal;
-
-	equal = strchr(value, '=');
-	if (equal && equal - value > 0)
-	  {
-	    char *end;
-	    char *cookie_name;
-	    char *cookie_value;
-
-	    end = strchr(equal, ';');
-
-	    cookie_name = g_strndup(value, equal - value);
-	    cookie_value = end
-	      ? g_strndup(equal + 1, end - equal - 1)
-	      : g_strdup(equal + 1);
-
-	    g_hash_table_insert(selfp->cookies, cookie_name, cookie_value);
-	  }
-      }
-  }}
-#line 798 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
+	GDK_THREADS_ENTER();
 
-#line 456 "mn-gmail-mailbox.gob"
-static char * 
-mn_gmail_mailbox_build_cookie (MNGmailMailbox * self)
-#line 804 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie"
-#line 456 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (char * )0);
-#line 456 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (char * )0);
-#line 811 "mn-gmail-mailbox.c"
-{
-#line 458 "mn-gmail-mailbox.gob"
-	
-    GString *cookie;
-    char *str;
+	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
 
-    cookie = g_string_new(NULL);
-    g_hash_table_foreach(selfp->cookies, self_build_cookie_cb, cookie);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
 
-    if (*cookie->str)
-      str = g_string_free(cookie, FALSE);
-    else
-      {
-	str = NULL;
-	g_string_free(cookie, TRUE);
+	return;
       }
 
-    return str;
-  }}
-#line 831 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 476 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
-#line 837 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_cookie_cb"
-{
-#line 478 "mn-gmail-mailbox.gob"
-	
-    GString *cookie = user_data;
-
-    if (*cookie->str)
-      g_string_append(cookie, "; ");
-
-    g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
-  }}
-#line 850 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 487 "mn-gmail-mailbox.gob"
-static gboolean 
-mn_gmail_mailbox_check (MNGmailMailbox * self, SoupSession * session, GError ** err)
-#line 856 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::check"
-#line 487 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 487 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (gboolean )0);
-#line 487 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (gboolean )0);
-#line 487 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (SOUP_IS_SESSION (session), (gboolean )0);
-#line 867 "mn-gmail-mailbox.c"
-{
-#line 489 "mn-gmail-mailbox.gob"
-	
-    char *body;
-    char *work;
-    gboolean status = FALSE;
-
-    g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
-
-    mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
-
-    body = self_get(self, session, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", err);
-    if (! body)
-      return FALSE;
-
-    work = strstr(body, "Search results for: is:unread\",\"");
-    if (work)
+    node = xmlDocGetRootElement(doc);
+    if (node && ! strcmp(node->name, "feed"))
       {
 	GSList *messages = NULL;
 
-	work += 32;
+	for (node = node->children; node != NULL; node = node->next)
+	  if (node->type == XML_ELEMENT_NODE && ! strcmp(node->name, "entry"))
+	    {
+	      time_t sent_time;
+	      char *id;
+	      char *from;
+	      char *subject;
+
+	      self_parse_entry(node, &sent_time, &id, &from, &subject);
+
+	      messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self),
+								 NULL,
+								 sent_time,
+								 id,
+								 from,
+								 subject));
+
+	      g_free(id);
+	      g_free(from);
+	      g_free(subject);
+	    }
 
-	while ((work = strstr(work, "D([")))
-	  {
-	    GSList *arg_list;
-
-	    work += 2;
-	    if (self_js_get_arg_list(&work, &arg_list) && arg_list)
-	      {
-		GSList *l;
-		gboolean icu_available = FALSE;
-
-#ifdef WITH_GMAIL_TIMESTAMPS
-		if (arg_list->next)
-		  {
-		    GError *err = NULL;
-
-		    icu_available = mn_icu_use(&err);
-		    if (! icu_available)
-		      {
-			mn_mailbox_warning(MN_MAILBOX(self), _("unable to initialize the ICU library"), err->message);
-			g_error_free(err);
-		      }
-		  }
-#endif /* WITH_GMAIL_TIMESTAMPS */
-		
-		MN_LIST_FOREACH(l, arg_list->next)
-		  self_append_message(self, &messages, l->data, icu_available);
-
-#ifdef WITH_GMAIL_TIMESTAMPS
-		if (icu_available)
-		  mn_icu_unuse();
-#endif /* WITH_GMAIL_TIMESTAMPS */
-
-		self_js_arg_list_free(arg_list);
-	      }
-	  }
-	
 	GDK_THREADS_ENTER();
+
 	mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+	mn_g_object_slist_free(messages);
+
 	gdk_flush();
 	GDK_THREADS_LEAVE();
-
-	mn_g_object_slist_free(messages);
-	status = TRUE;
       }
     else
-      g_set_error(err, 0, 0, _("unable to parse Gmail data"));
-
-    g_free(body);
-
-    return status;
-  }}
-#line 941 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 561 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_append_message (MNGmailMailbox * self, GSList ** messages, JSArg * arg, gboolean icu_available)
-#line 947 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::append_message"
-#line 561 "mn-gmail-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 561 "mn-gmail-mailbox.gob"
-	g_return_if_fail (MN_IS_GMAIL_MAILBOX (self));
-#line 561 "mn-gmail-mailbox.gob"
-	g_return_if_fail (messages != NULL);
-#line 561 "mn-gmail-mailbox.gob"
-	g_return_if_fail (arg != NULL);
-#line 958 "mn-gmail-mailbox.c"
-{
-#line 566 "mn-gmail-mailbox.gob"
-	
-    char *date_field;
-    char *sender_field;
-    char *subject_field;
-    GSList *labels_list;
-    GSList *l;
-    gboolean in_inbox = FALSE;
-
-    char *count_str;
-    char *sender_email;
-    char *sender_name;
-    char *subject;
-
-    int count = 1;
-    time_t sent_time = 0;
-    char *from = NULL;
-    char *expanded_subject = NULL;
-
-    int i;
-
-    if (arg->type != JS_ARG_LIST
-	|| ! self_js_arg_list_scan(arg->value.list,
-				   3, JS_ARG_STRING, &date_field,
-				   4, JS_ARG_STRING, &sender_field,
-				   6, JS_ARG_STRING, &subject_field,
-				   8, JS_ARG_LIST, &labels_list,
-				   -1))
-      return;
-				  
-    MN_LIST_FOREACH(l, labels_list)
       {
-	JSArg *label = l->data;
-
-	if (label->type == JS_ARG_STRING && ! strcmp(label->value.string, "^i"))
-	  {
-	    in_inbox = TRUE;
-	    break;
-	  }
-      }
+	GDK_THREADS_ENTER();
 
-    if (! in_inbox)
-      return;
-    
-#ifdef WITH_GMAIL_TIMESTAMPS
-    if (icu_available)
-      {
-	char *date;
+	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
 
-	date = self_get_substring(date_field, "<b>", "</b>", FALSE, FALSE);
-	if (date)
-	  {
-	    sent_time = self_parse_date(self, date);
-	    g_free(date);
-	  }
+	gdk_flush();
+	GDK_THREADS_LEAVE();
       }
-#endif /* WITH_GMAIL_TIMESTAMPS */
 
-    count_str = self_get_substring(sender_field, "</span> (", ")", FALSE, FALSE);
-    if (count_str)
-      {
-	if (mn_str_isnumeric(count_str))
-	  count = atoi(count_str);
-	g_free(count_str);
-      }
-    
-    sender_email = self_get_substring(sender_field, "<span id='_user_", "'", FALSE, FALSE);
-    sender_name = self_get_substring(sender_field, "'><b>", "</b>", FALSE, FALSE);
-		    
-    if (sender_name && sender_email)
-      {
-	char *tmp;
-	
-	tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
-	from = mn_sgml_ref_expand(tmp);
-	g_free(tmp);
-      }
-    else if (sender_name)
-      from = mn_sgml_ref_expand(sender_name);
-    else if (sender_email)
-      from = mn_sgml_ref_expand(sender_email);
-    
-    g_free(sender_email);
-    g_free(sender_name);
-    
-    subject = self_get_substring(subject_field, "<b>", "</b>", FALSE, FALSE);
-    if (subject)
-      {
-	if (strcmp(subject, "(no subject)"))
-	  expanded_subject = mn_sgml_ref_expand(subject);
-	g_free(subject);
-      }
-    
-    for (i = 0; i < count; i++)
-      *messages = g_slist_append(*messages, mn_message_new(MN_MAILBOX(self)->uri,
-							   NULL,
-							   sent_time,
-							   NULL,
-							   from,
-							   expanded_subject));
-    
-    g_free(from);
-    g_free(expanded_subject);
+    xmlFreeDoc(doc);
   }}
-#line 1064 "mn-gmail-mailbox.c"
+#line 450 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
 
-#line 670 "mn-gmail-mailbox.gob"
-static gboolean 
-mn_gmail_mailbox_js_get_arg_list (char ** str, GSList ** list)
-#line 1070 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_get_arg_list"
-#line 670 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (str != NULL, (gboolean )0);
-#line 670 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (list != NULL, (gboolean )0);
-#line 1077 "mn-gmail-mailbox.c"
-{
-#line 672 "mn-gmail-mailbox.gob"
+#line 203 "mn-gmail-mailbox.gob"
+static void 
+mn_gmail_mailbox_parse_entry (xmlNode * node, time_t * sent_time, char ** id, char ** from, char ** subject)
+#line 457 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_entry"
+#line 203 "mn-gmail-mailbox.gob"
+	g_return_if_fail (node != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+	g_return_if_fail (sent_time != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+	g_return_if_fail (id != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+	g_return_if_fail (from != NULL);
+#line 203 "mn-gmail-mailbox.gob"
+	g_return_if_fail (subject != NULL);
+#line 470 "mn-gmail-mailbox.c"
+{
+#line 209 "mn-gmail-mailbox.gob"
 	
-    GSList *our_list = NULL;
-    gboolean done = FALSE;
-    gboolean in_literal = FALSE;	/* a string enclosed in double quotes */
-    gboolean quoted = FALSE;		/* the next character is quoted with a backslash */
-    JSArg *arg = NULL;
-    GString *string;
-
-    g_return_val_if_fail(*str != NULL, FALSE);
-    g_return_val_if_fail(**str == '[', FALSE);
-
-    (*str)++;			/* skip the initial open bracket */
-    string = g_string_new(NULL);
-
-    while (**str && ! done)
-      {
-	gboolean next = TRUE;
+    *sent_time = 0;
+    *id = NULL;
+    *from = NULL;
+    *subject = NULL;
 
-	if (in_literal)
-	  switch (**str)
+    for (node = node->children; node != NULL; node = node->next)
+      if (node->type == XML_ELEMENT_NODE)
+	{
+	  if (! strcmp(node->name, "title"))
 	    {
-	    case '\\':
-	      quoted = TRUE;
-	      break;
-
-	    case '"':
-	      if (! quoted)
-		{
-		  in_literal = FALSE;
-		  break;
-		}
-	      /* else pass through */
-	      
-	    default:
-	      quoted = FALSE;
-	      g_string_append_c(string, **str);
+	      g_free(*subject);
+	      *subject = xmlNodeGetContent(node);
 	    }
-	else
-	  switch (**str)
+	  else if (! strcmp(node->name, "id"))
 	    {
-	    case '[':
-	      {
-		GSList *sub_list;
-
-		if (arg || ! self_js_get_arg_list(str, &sub_list))
-		  goto end;	/* parse error */
-
-		arg = self_js_arg_new_list(sub_list);
-		next = FALSE;
-		break;
-	      }
-
-	    case ']':
-	      done = TRUE;
-	      /* fall through */
-	    
-	    case ',':
-	      if (! arg)
-		arg = self_js_arg_new_string(string->str);
-	      
-	      our_list = g_slist_append(our_list, arg);
-
-	      g_string_truncate(string, 0);
-	      arg = NULL;
-	      break;
-
-	    case '"':
-	      in_literal = TRUE;
-	      break;
-	      
-	    default:
-	      g_string_append_c(string, **str);
+	      g_free(*id);
+	      *id = xmlNodeGetContent(node);
 	    }
-
-	if (next)
-	  (*str)++;
-      }
-
-  end:
-    if (arg)
-      self_js_arg_free(arg);
-    g_string_free(string, TRUE);
-
-    if (done)
-      {
-	*list = our_list;
-	return TRUE;
-      }
-    else
-      {
-	self_js_arg_list_free(our_list);
-	return FALSE;
-      }
-  }}
-#line 1174 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 767 "mn-gmail-mailbox.gob"
-static gboolean 
-mn_gmail_mailbox_js_arg_list_scan (GSList * list, ...)
-#line 1180 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_list_scan"
-{
-#line 769 "mn-gmail-mailbox.gob"
-	
-    va_list args;
-    int position;
-    gboolean status = TRUE;
-
-    va_start(args, list);
-
-    while ((position = va_arg(args, int)) != -1)
-      {
-	JSArgType type = va_arg(args, JSArgType);
-	JSArg *arg = g_slist_nth_data(list, position);
-	
-	if (! arg)
-	  {
-	    status = FALSE;
-	    break;
-	  }
-
-	switch (type)
-	  {
-	  case JS_ARG_STRING:
+	  else if (! strcmp(node->name, "author"))
 	    {
-	      char **str = va_arg(args, char **);
-	      g_return_val_if_fail(str != NULL, FALSE);
-
-	      *str = arg->value.string;
-	      break;
+	      g_free(*from);
+	      *from = self_parse_author(node);
 	    }
-
-	  case JS_ARG_LIST:
+#ifdef HAVE_TIMEGM
+	  else if (! strcmp(node->name, "issued"))
 	    {
-	      GSList **elem_list = va_arg(args, GSList **);
-	      g_return_val_if_fail(elem_list != NULL, FALSE);
+	      char *w3c_datetime;
 
-	      *elem_list = arg->value.list;
-	      break;
+	      w3c_datetime = xmlNodeGetContent(node);
+	      if (w3c_datetime)
+		{
+		  *sent_time = self_parse_date(w3c_datetime);
+		  g_free(w3c_datetime);
+		}
 	    }
-
-	  default:
-	    g_return_val_if_reached(FALSE);
-	  }
-      }
-
-    va_end(args);
-
-    return status;
-  }}
-#line 1232 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 817 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_js_arg_list_free (GSList * list)
-#line 1238 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_list_free"
-{
-#line 819 "mn-gmail-mailbox.gob"
-	
-    eel_g_slist_free_deep_custom(list, (GFunc) self_js_arg_free, NULL);
-  }}
-#line 1246 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 823 "mn-gmail-mailbox.gob"
-static JSArg * 
-mn_gmail_mailbox_js_arg_new_string (const char * string)
-#line 1252 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_new_string"
-#line 823 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (string != NULL, (JSArg * )0);
-#line 1257 "mn-gmail-mailbox.c"
-{
-#line 825 "mn-gmail-mailbox.gob"
-	
-    JSArg *arg;
-
-    arg = g_new(JSArg, 1);
-    arg->type = JS_ARG_STRING;
-    arg->value.string = g_strdup(string);
-
-    return arg;
-  }}
-#line 1269 "mn-gmail-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 835 "mn-gmail-mailbox.gob"
-static JSArg * 
-mn_gmail_mailbox_js_arg_new_list (GSList * list)
-#line 1275 "mn-gmail-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_new_list"
-{
-#line 837 "mn-gmail-mailbox.gob"
-	
-    JSArg *arg;
-
-    arg = g_new(JSArg, 1);
-    arg->type = JS_ARG_LIST;
-    arg->value.list = list;
-
-    return arg;
+#endif
+	}
   }}
-#line 1289 "mn-gmail-mailbox.c"
+#line 512 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 847 "mn-gmail-mailbox.gob"
-static void 
-mn_gmail_mailbox_js_arg_free (JSArg * arg)
-#line 1295 "mn-gmail-mailbox.c"
+#line 249 "mn-gmail-mailbox.gob"
+static char * 
+mn_gmail_mailbox_parse_author (xmlNode * node)
+#line 518 "mn-gmail-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::js_arg_free"
-#line 847 "mn-gmail-mailbox.gob"
-	g_return_if_fail (arg != NULL);
-#line 1300 "mn-gmail-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_author"
+#line 249 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (node != NULL, (char * )0);
+#line 523 "mn-gmail-mailbox.c"
 {
-#line 849 "mn-gmail-mailbox.gob"
+#line 251 "mn-gmail-mailbox.gob"
 	
-    switch (arg->type)
-      {
-      case JS_ARG_STRING:
-	g_free(arg->value.string);
-	break;
-
-      case JS_ARG_LIST:
-	self_js_arg_list_free(arg->value.list);
-	break;
+    char *from;
+    char *name = NULL;
+    char *email = NULL;
+	      
+    for (node = node->children; node != NULL; node = node->next)
+      if (node->type == XML_ELEMENT_NODE)
+	{
+	  if (! strcmp(node->name, "name"))
+	    {
+	      g_free(name);
+	      name = xmlNodeGetContent(node);
+	    }
+	  else if (! strcmp(node->name, "email"))
+	    {
+	      g_free(email);
+	      email = xmlNodeGetContent(node);
+	    }
+	}
 
-      default:
-	g_return_if_reached();
-      }
+    from = name && email
+      ? g_strdup_printf("%s <%s>", name, email)
+      : g_strdup(name ? name : email);
 
-    g_free(arg);
+    g_free(name);
+    g_free(email);
+    
+    return from;
   }}
-#line 1320 "mn-gmail-mailbox.c"
+#line 555 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 867 "mn-gmail-mailbox.gob"
+#line 281 "mn-gmail-mailbox.gob"
 static time_t 
-mn_gmail_mailbox_parse_date (MNGmailMailbox * self, const char * date)
-#line 1326 "mn-gmail-mailbox.c"
+mn_gmail_mailbox_parse_date (const char * w3c_datetime)
+#line 561 "mn-gmail-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Gmail:Mailbox::parse_date"
-#line 867 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (time_t )0);
-#line 867 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (MN_IS_GMAIL_MAILBOX (self), (time_t )0);
-#line 867 "mn-gmail-mailbox.gob"
-	g_return_val_if_fail (date != NULL, (time_t )0);
-#line 1335 "mn-gmail-mailbox.c"
+#line 281 "mn-gmail-mailbox.gob"
+	g_return_val_if_fail (w3c_datetime != NULL, (time_t )0);
+#line 566 "mn-gmail-mailbox.c"
 {
-#line 869 "mn-gmail-mailbox.gob"
+#line 283 "mn-gmail-mailbox.gob"
 	
-#ifdef WITH_GMAIL_TIMESTAMPS
+#ifdef HAVE_TIMEGM
     time_t t = 0;
-    UChar *zone_id;
-    UCalendar *cal;
-    UErrorCode status = U_ZERO_ERROR;
-    UDate ud;
-    int hour;
-    int minute;
-    char ampm[3];
-    char month_str[4];
-    int year;
-    int month;
-    int day;
-    gboolean valid = FALSE;
-    
-    zone_id = mn_icu_ustr_new("PST"); /* Gmail's timezone */
-    cal = ucal_open(zone_id, -1, NULL, UCAL_TRADITIONAL, &status);
-    g_free(zone_id);
-
-    if (! cal)
-      {
-	mn_mailbox_warning(MN_MAILBOX(self), _("unable to open calendar: %s"), u_errorName(status));
-	return 0;
-      }
-    
-    ud = ucal_getNow();
-    ucal_setMillis(cal, ud, &status);
-    if (U_FAILURE(status))
+    char year[5];
+    char month[3];
+    char day[3];
+    char hour[3];
+    char minute[3];
+    char second[3];
+
+    if (sscanf(w3c_datetime, "%4s-%2s-%2sT%2s:%2s:%2sZ", year, month, day, hour, minute, second) == 6
+	&& mn_str_isnumeric(year)
+	&& mn_str_isnumeric(month)
+	&& mn_str_isnumeric(day)
+	&& mn_str_isnumeric(hour)
+	&& mn_str_isnumeric(minute)
+	&& mn_str_isnumeric(second))
       {
-	mn_mailbox_warning(MN_MAILBOX(self), _("unable to set calendar time: %s"), u_errorName(status));
-	goto end;
+	struct tm tm = { 0 };
+
+	tm.tm_sec = atoi(second);
+	tm.tm_min = atoi(minute);
+	tm.tm_hour = atoi(hour);
+	tm.tm_mday = atoi(day);
+	tm.tm_mon = atoi(month) - 1;
+	tm.tm_year = atoi(year) - 1900;
+
+	t = timegm(&tm);
+	if (t == -1)
+	  t = 0;
       }
 
-    if (sscanf(date, "%d:%d%2s", &hour, &minute, ampm) == 3)
-      {
-	ucal_set(cal, UCAL_HOUR, hour);
-	ucal_set(cal, UCAL_MINUTE, minute);
-	ucal_set(cal, UCAL_SECOND, 0);
-	ucal_set(cal, UCAL_AM_PM, ampm[0] == 'p' ? 1 : 0);
-	valid = TRUE;
-      }
-    else if (sscanf(date, "%d/%d/%d", &month, &day, &year) == 3)
-      {
-	/*
-	 * Convert year from 2-digits to 4-digits, conforms to the
-	 * POSIX or X/Open standard.
-	 */
-	year += year >= 69 && year <= 99 ? 1900 : 2000;
-	
-	ucal_set(cal, UCAL_MONTH, month);
-	ucal_set(cal, UCAL_DATE, day);
-	ucal_set(cal, UCAL_YEAR, year);
-	ucal_set(cal, UCAL_HOUR, 0);
-	ucal_set(cal, UCAL_MINUTE, 0);
-	ucal_set(cal, UCAL_SECOND, 0);
-	valid = TRUE;
-      }
-    else if (sscanf(date, "%3s %d", month_str, &day) == 2)
-      {
-	const struct 
-	{
-	  const char	*name;
-	  int		value;
-	} months[] = {
-	  { "Jan",	UCAL_JANUARY	},
-	  { "Feb",	UCAL_FEBRUARY	},
-	  { "Mar",	UCAL_MARCH	},
-	  { "Apr",	UCAL_APRIL	},
-	  { "May",	UCAL_MAY	},
-	  { "Jun",	UCAL_JUNE	},
-	  { "Jul",	UCAL_JULY	},
-	  { "Aug",	UCAL_AUGUST	},
-	  { "Sep",	UCAL_SEPTEMBER	},
-	  { "Oct",	UCAL_OCTOBER	},
-	  { "Nov",	UCAL_NOVEMBER	},
-	  { "Dec",	UCAL_DECEMBER	}
-	};
-	int i;
-
-	for (i = 0; i < G_N_ELEMENTS(months); i++)
-	  if (! strcmp(month_str, months[i].name))
-	    {
-	      ucal_set(cal, UCAL_MONTH, months[i].value);
-	      ucal_set(cal, UCAL_DATE, day);
-	      ucal_set(cal, UCAL_HOUR, 0);
-	      ucal_set(cal, UCAL_MINUTE, 0);
-	      ucal_set(cal, UCAL_SECOND, 0);
-	      valid = TRUE;
-	      break;
-	    }
-      }
-    
-    if (valid)
-      {
-	ud = ucal_getMillis(cal, &status);
-	if (U_SUCCESS(status))
-	  t = ud / 1000;
-	else
-	  mn_mailbox_warning(MN_MAILBOX(self), _("unable to get calendar time: %s"), u_errorName(status));
-      }
-
-  end:
-    ucal_close(cal);
-
     return t;
 #else
     g_return_val_if_reached(0);
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#endif
+  }}
+#line 606 "mn-gmail-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 321 "mn-gmail-mailbox.gob"
+char * 
+mn_gmail_mailbox_build_name (const char * username)
+#line 612 "mn-gmail-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Gmail:Mailbox::build_name"
+{
+#line 323 "mn-gmail-mailbox.gob"
+	
+    if (username)
+      return g_str_has_suffix(username, "@gmail.com")
+	? g_strdup(username)
+	: g_strdup_printf("%s@gmail.com", username);
+    else
+      return g_strdup("gmail.com");
   }}
-#line 1448 "mn-gmail-mailbox.c"
+#line 625 "mn-gmail-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-gmail-mailbox.gob b/src/mn-gmail-mailbox.gob
@@ -16,964 +16,316 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include "mn-authenticated-mailbox.h"
 %}
 
 %privateheader{
-#include "mn-soup.h"
+#include <libgnomevfs/gnome-vfs.h>
 %}
 
 %{
 #include "config.h"
-#include <stdio.h>
 #include <string.h>
-#include <stdarg.h>
+#ifdef HAVE_TIMEGM
 #include <stdlib.h>
 #include <time.h>
+#ifdef TM_IN_SYS_TIME
+#include <sys/time.h>
+#endif /* TM_IN_SYS_TIME */
+#endif /* HAVE_TIMEGM */
 #include <glib/gi18n.h>
-#include <eel/eel.h>
-#ifdef WITH_GMAIL_TIMESTAMPS
-#include <unicode/uenum.h>
-#include <unicode/uloc.h>
-#include <unicode/ucal.h>
-#include "mn-icu.h"
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#include <libxml/parser.h>
+#include <libxml/tree.h>
 #include "mn-mailbox-private.h"
 #include "mn-authenticated-mailbox-private.h"
-#include "mn-util.h"
+#include "mn-vfs.h"
 #include "mn-stock.h"
-#include "mn-sgml-ref.h"
+#include "mn-message.h"
+#include "mn-util.h"
 
-  typedef enum
-  {
-    JS_ARG_STRING,
-    JS_ARG_LIST
-  } JSArgType;
-  
-  typedef struct
-  {
-    JSArgType type;
-    union 
-    {
-      char	*string;
-      GSList	*list;
-    } value;
-  } JSArg;
+#define DEFAULT_LOCATION	"https://mail.google.com/mail/feed/atom"
 %}
 
 class MN:Gmail:Mailbox from MN:Authenticated:Mailbox
 {
-  private GHashTable *cookies destroywith g_hash_table_destroy;
-  private gboolean logged_in;
+  public char *location destroywith g_free;
+  property STRING location (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+  public char *runtime_location destroywith g_free;
+
+  private GnomeVFSURI *uri unrefwith gnome_vfs_uri_unref;
 
   class_init (class)
   {
-    MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_GMAIL;
-    MN_MAILBOX_CLASS(class)->format = "Gmail";
+    MN_MAILBOX_CLASS(class)->type = "gmail";
   }
 
   override (G:Object) GObject *
     constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
   {
     GObject *object;
+    MNMailbox *mailbox;
 
     object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    
-    if (! soup_ssl_supported)
-      mn_mailbox_set_init_error(MN_MAILBOX(object), _("libsoup has not been compiled with SSL/TLS support"));
+    mailbox = MN_MAILBOX(object);
 
-    return object;
-  }
+    mn_mailbox_set_format(mailbox, "Gmail");
+    mn_mailbox_set_stock_id(mailbox, MN_STOCK_GMAIL);
 
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
-  {
-    return MN_URI_IS_GMAIL(uri);
+    return object;
   }
 
   override (MN:Mailbox) void
-    impl_check (MN:Mailbox *mailbox (check null type))
+    seal (MNMailbox *mailbox)
   {
-    MNAuthenticatedMailbox *authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
     Self *self = SELF(mailbox);
-    SoupSession *session;
-    gboolean status = TRUE;
-    GError *err = NULL;
 
     PARENT_HANDLER(mailbox);
 
-    session = mn_soup_session_sync_new();
-
-    if (! selfp->logged_in)
-      while (TRUE)
-	{
-	  gboolean authentication_failed;
-
-	  mn_authenticated_mailbox_fill_password(authenticated_mailbox);
-	  if (! authenticated_mailbox->password)
-	    break;
-	    
-	  if (self_login(self, session, &authentication_failed, &err))
-	    {
-	      selfp->logged_in = TRUE;
-	      break;
-	    }
-	  else
-	    {
-	      if (authentication_failed && ! mailbox->uri->password)
-		{
-		  mn_authenticated_mailbox_authentication_failed(authenticated_mailbox);
-		  g_clear_error(&err);
-		}
-	      else
-		{
-		  status = FALSE;
-		  break;
-		}
-	    }
-	}
-	    
-    if (selfp->logged_in && ! self_check(self, session, &err))
-      status = FALSE;
-    
-    g_object_unref(session);
-
-    GDK_THREADS_ENTER();
-
-    if (! status)
-      {
-	mn_mailbox_set_error(mailbox, "%s", err->message);
-	g_error_free(err);
-      }
-    mn_mailbox_end_check(mailbox);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-  }
-  
-  private SoupUri *
-    soup_uri_new (const char *text_uri (check null), GError **err)
-  {
-    SoupUri *uri;
-
-    uri = soup_uri_new(text_uri);
-    if (! uri)
-      g_set_error(err, 0, 0, _("unable to parse URI \"%s\""), text_uri);
-
-    return uri;
-  }
-  
-  private char *
-    get (self,
-	 Soup:Session *session (check null type),
-	 const char *text_uri (check null),
-	 GError **err)
-  {
-    SoupUri *uri;
-    char *body;
-
-    uri = self_soup_uri_new(text_uri, err);
-    if (! uri)
-      return NULL;
-
-    body = self_get_from_uri(self, session, uri, err);
-    soup_uri_free(uri);
-
-    return body;
-  }
-  
-  private char *
-    get_from_uri (self,
-		  Soup:Session *session (check null type),
-		  SoupUri *uri (check null),
-		  GError **err)
-  {
-    SoupMessage *message;
-    char *cookie;
-    char *body = NULL;
-
-    message = soup_message_new_from_uri(SOUP_METHOD_GET, uri);
-    soup_message_add_header(message->request_headers, "User-Agent", "Mail Notification");
-
-    cookie = self_build_cookie(self);
-    if (cookie)
-      {
-	soup_message_add_header(message->request_headers, "Cookie", cookie);
-	g_free(cookie);
-      }
-    
-    self_dump_request(self, message);
-    soup_session_send_message(session, message);
-
-    if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
-      {
-	const char *end;
-	
-	/* Gmail returns UTF-8, so we don't need to parse Content-Type */
-	if (! g_utf8_validate(message->response.body, message->response.length, &end))
-	  mn_mailbox_warning(MN_MAILBOX(self), _("received non-UTF-8 data from server"));
-	  
-	body = g_strndup(message->response.body, end - message->response.body);
-	self_dump_response(self, message, body);
-	self_update_cookies(self, message);
-      }
-    else
-      g_set_error(err, 0, 0, _("unable to transfer data: %s"), message->reason_phrase);
-
-    g_object_unref(message);
-    
-    return body;
-  }
-  
-  private void
-    dump_request (self, Soup:Message *message (check null type))
-  {
-    const SoupUri *suri;
-    char *uri;
-
-    suri = soup_message_get_uri(message);
-    uri = soup_uri_to_string(suri, FALSE);
-    mn_mailbox_notice(MN_MAILBOX(self), "> GET %s", uri);
-    g_free(uri);
-
-    soup_message_foreach_header(message->request_headers, self_dump_request_cb, self);
-  }
-
-  private void
-    dump_request_cb (gpointer key (check null),
-		     gpointer value (check null),
-		     gpointer user_data (check null))
-  {
-    Self *self = user_data;
-    const char *header_name = key;
-    const char *header_value = value;
-
-    mn_mailbox_notice(MN_MAILBOX(self), "> %s: %s", header_name, header_value);
-  }
-  
-  private void
-    dump_response (self,
-		   Soup:Message *message (check null type),
-		   const char *body (check null))
-  {
-    char **lines;
-    int i;
-    
-    soup_message_foreach_header(message->response_headers, self_dump_response_cb, self);
+    self->runtime_location = g_strdup(self->location ? self->location : DEFAULT_LOCATION);
 
-    lines = g_strsplit(body, "\n", 0);
-    for (i = 0; lines[i]; i++)
-      mn_mailbox_notice(MN_MAILBOX(self), "< %s", lines[i]);
-    g_strfreev(lines);
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username);
   }
 
-  private void
-    dump_response_cb (gpointer key (check null),
-		      gpointer value (check null),
-		      gpointer user_data (check null))
+  override (MN:Authenticated:Mailbox) void
+    impl_check (MNAuthenticatedMailbox *mailbox)
   {
-    Self *self = user_data;
-    const char *header_name = key;
-    const char *header_value = value;
-
-    mn_mailbox_notice(MN_MAILBOX(self), "< %s: %s", header_name, header_value);
-  }
+    Self *self = SELF(mailbox);
+    GnomeVFSResult result;
+    char *atom;
+    int atom_size;
+    xmlDoc *doc;
+    xmlNode *node;
 
-  /**
-   * get_substring:
-   * @str: the string to search
-   * @pre: the start of the substring
-   * @post: the end of the substring
-   * @include_pre: whether to include @pre in the result or not
-   * @include_post: whether to include @post in the result or not
-   *
-   * Gets the first substring of @str included between @pre and @post.
-   *
-   * Return value: a newly allocated string containing the substring
-   *               or %NULL if not found.
-   **/
-  private char *
-    get_substring (const char *str (check null),
-		   const char *pre (check null),
-		   const char *post (check null),
-		   gboolean include_pre,
-		   gboolean include_post)
-  {
-    char *sub = NULL;
-    char *pre_loc;
-    
-    pre_loc = strstr(str, pre);
-    if (pre_loc)
+    if (! selfp->uri)
       {
-	char *after_pre_loc;
-	char *post_loc;
-	
-	after_pre_loc = pre_loc + strlen(pre);
-	post_loc = strstr(after_pre_loc, post);
-	if (post_loc)
+	selfp->uri = gnome_vfs_uri_new(self->runtime_location);
+	if (! selfp->uri)
 	  {
-	    char *start = include_pre ? pre_loc : after_pre_loc;
-	    char *end = include_post ? post_loc + strlen(post) : post_loc;
-	    
-	    sub = g_strndup(start, end - start);
-	  }
-      }
-    
-    return sub;
-  }
+	    GDK_THREADS_ENTER();
 
-  private gboolean
-    login (self,
-	   Soup:Session *session (check null type),
-	   gboolean *authentication_failed (check null),
-	   GError **err)
-  {
-    char *text_uri;
-    char *escaped_username;
-    char *escaped_password;
-    char *body;
-    char *next_location;
-    char *query;
-    SoupUri *uri;
-    gboolean success;
-
-    g_return_val_if_fail(selfp->logged_in == FALSE, FALSE);
-    
-    mn_mailbox_notice(MN_MAILBOX(self), _("logging in"));
-    *authentication_failed = FALSE;
-
-    if (selfp->cookies)
-      g_hash_table_destroy(selfp->cookies);
-    selfp->cookies = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
-
-#define EXTRA_CHARS ";/?:@&=+$,"/* taken from RFC 2396 2.2 */
-    escaped_username = soup_uri_encode(MN_MAILBOX(self)->uri->username, EXTRA_CHARS);
-    escaped_password = soup_uri_encode(MN_AUTHENTICATED_MAILBOX(self)->password, EXTRA_CHARS);
-    text_uri = g_strdup_printf("https://www.google.com/accounts/ServiceLoginBoxAuth?service=mail&continue=http://gmail.google.com/gmail&Email=%s&Passwd=%s", escaped_username, escaped_password);
-    g_free(escaped_username);
-    g_free(escaped_password);
-
-    body = self_get(self, session, text_uri, err);
-    g_free(text_uri);
+	    mn_mailbox_set_error(MN_MAILBOX(self), _("invalid feed location"));
+	    /* error is not recoverable, disable the mailbox */
+	    mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
 
-    if (! body)
-      return FALSE;
+	    gdk_flush();
+	    GDK_THREADS_LEAVE();
 
-    next_location = self_get_substring(body, "top.location = \"", "\"", FALSE, FALSE);
-    g_free(body);
+	    return;
+	  }
 
-    if (! next_location)
-      {
-	*authentication_failed = TRUE;
-	goto failed;
+	gnome_vfs_uri_set_user_name(selfp->uri, mailbox->username);
+	gnome_vfs_uri_set_password(selfp->uri, mailbox->password);
       }
 
-    /*
-     * The following kludges work around
-     * http://bugzilla.ximian.com/show_bug.cgi?id=66516.
-     *
-     * FIXME: remove it and bump libsoup version requirement when the
-     * bug is fixed.
-     */
-
-    query = strchr(next_location, '?');
-    if (query)
-      *query = 0;
-
-    text_uri = g_strdup_printf("https://www.google.com/accounts/%s", next_location);
-    g_free(next_location);
+    mn_mailbox_notice(MN_MAILBOX(self), _("retrieving feed from %s"), self->runtime_location);
 
-    uri = self_soup_uri_new(text_uri, err);
-    g_free(text_uri);
-
-    if (! uri)
-      return FALSE;
-
-    if (query)
+    result = mn_vfs_read_entire_file_uri(selfp->uri, &atom_size, &atom);
+    if (result != GNOME_VFS_OK)
       {
-	uri->query = g_strdup(query + 1);
-	uri->broken_encoding = TRUE;
-      }
-
-    body = self_get_from_uri(self, session, uri, err);
-    soup_uri_free(uri);
-
-    if (! body)
-      return FALSE;
-
-    next_location = self_get_substring(body, "location.replace(\"", "\")", FALSE, FALSE);
-    g_free(body);
-
-    if (! next_location)
-      goto failed;
-
-    body = self_get(self, session, next_location, err);
-    g_free(next_location);
-
-    success = strstr(body, "frame name=js src=/gmail") != NULL;
-    g_free(body);
-
-    if (success)
-      return TRUE;
-    
-  failed:
-    g_set_error(err, 0, 0, _("login failed"));
-    return FALSE;
-  }
-  
-  private void
-    update_cookies (self, Soup:Message *message (check null type))
-  {
-    const GSList *l;
-    
-    MN_LIST_FOREACH(l, soup_message_get_header_list(message->response_headers, "Set-Cookie"))
-      {
-	const char *value = l->data;
-	char *equal;
-
-	equal = strchr(value, '=');
-	if (equal && equal - value > 0)
-	  {
-	    char *end;
-	    char *cookie_name;
-	    char *cookie_value;
+	GDK_THREADS_ENTER();
 
-	    end = strchr(equal, ';');
+	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to retrieve feed: %s"), gnome_vfs_result_to_string(result));
 
-	    cookie_name = g_strndup(value, equal - value);
-	    cookie_value = end
-	      ? g_strndup(equal + 1, end - equal - 1)
-	      : g_strdup(equal + 1);
+	gdk_flush();
+	GDK_THREADS_LEAVE();
 
-	    g_hash_table_insert(selfp->cookies, cookie_name, cookie_value);
-	  }
+	return;
       }
-  }
-
-  private char *
-    build_cookie (self)
-  {
-    GString *cookie;
-    char *str;
-
-    cookie = g_string_new(NULL);
-    g_hash_table_foreach(selfp->cookies, self_build_cookie_cb, cookie);
+    
+    doc = xmlParseMemory(atom, atom_size);
+    g_free(atom);
 
-    if (*cookie->str)
-      str = g_string_free(cookie, FALSE);
-    else
+    if (! doc)
       {
-	str = NULL;
-	g_string_free(cookie, TRUE);
-      }
-
-    return str;
-  }
-
-  private void
-    build_cookie_cb (gpointer key, gpointer value, gpointer user_data)
-  {
-    GString *cookie = user_data;
-
-    if (*cookie->str)
-      g_string_append(cookie, "; ");
-
-    g_string_append_printf(cookie, "%s=%s", (const char *) key, (const char *) value);
-  }
-  
-  private gboolean
-    check (self, Soup:Session *session (check null type), GError **err)
-  {
-    char *body;
-    char *work;
-    gboolean status = FALSE;
+	GDK_THREADS_ENTER();
 
-    g_return_val_if_fail(selfp->logged_in == TRUE, FALSE);
+	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
 
-    mn_mailbox_notice(MN_MAILBOX(self), _("searching for unread mail"));
+	gdk_flush();
+	GDK_THREADS_LEAVE();
 
-    body = self_get(self, session, "https://gmail.google.com/gmail?search=adv&as_subset=unread&view=tl&start=0", err);
-    if (! body)
-      return FALSE;
+	return;
+      }
 
-    work = strstr(body, "Search results for: is:unread\",\"");
-    if (work)
+    node = xmlDocGetRootElement(doc);
+    if (node && ! strcmp(node->name, "feed"))
       {
 	GSList *messages = NULL;
 
-	work += 32;
+	for (node = node->children; node != NULL; node = node->next)
+	  if (node->type == XML_ELEMENT_NODE && ! strcmp(node->name, "entry"))
+	    {
+	      time_t sent_time;
+	      char *id;
+	      char *from;
+	      char *subject;
+
+	      self_parse_entry(node, &sent_time, &id, &from, &subject);
+
+	      messages = g_slist_append(messages, mn_message_new(MN_MAILBOX(self),
+								 NULL,
+								 sent_time,
+								 id,
+								 from,
+								 subject));
+
+	      g_free(id);
+	      g_free(from);
+	      g_free(subject);
+	    }
 
-	while ((work = strstr(work, "D([")))
-	  {
-	    GSList *arg_list;
-
-	    work += 2;
-	    if (self_js_get_arg_list(&work, &arg_list) && arg_list)
-	      {
-		GSList *l;
-		gboolean icu_available = FALSE;
-
-#ifdef WITH_GMAIL_TIMESTAMPS
-		if (arg_list->next)
-		  {
-		    GError *err = NULL;
-
-		    icu_available = mn_icu_use(&err);
-		    if (! icu_available)
-		      {
-			mn_mailbox_warning(MN_MAILBOX(self), _("unable to initialize the ICU library"), err->message);
-			g_error_free(err);
-		      }
-		  }
-#endif /* WITH_GMAIL_TIMESTAMPS */
-		
-		MN_LIST_FOREACH(l, arg_list->next)
-		  self_append_message(self, &messages, l->data, icu_available);
-
-#ifdef WITH_GMAIL_TIMESTAMPS
-		if (icu_available)
-		  mn_icu_unuse();
-#endif /* WITH_GMAIL_TIMESTAMPS */
-
-		self_js_arg_list_free(arg_list);
-	      }
-	  }
-	
 	GDK_THREADS_ENTER();
+
 	mn_mailbox_set_messages(MN_MAILBOX(self), messages);
+	mn_g_object_slist_free(messages);
+
 	gdk_flush();
 	GDK_THREADS_LEAVE();
-
-	mn_g_object_slist_free(messages);
-	status = TRUE;
       }
     else
-      g_set_error(err, 0, 0, _("unable to parse Gmail data"));
-
-    g_free(body);
-
-    return status;
-  }
-
-  private void
-    append_message (self,
-		    GSList **messages (check null),
-		    JSArg *arg (check null),
-		    gboolean icu_available)
-  {
-    char *date_field;
-    char *sender_field;
-    char *subject_field;
-    GSList *labels_list;
-    GSList *l;
-    gboolean in_inbox = FALSE;
-
-    char *count_str;
-    char *sender_email;
-    char *sender_name;
-    char *subject;
-
-    int count = 1;
-    time_t sent_time = 0;
-    char *from = NULL;
-    char *expanded_subject = NULL;
-
-    int i;
-
-    if (arg->type != JS_ARG_LIST
-	|| ! self_js_arg_list_scan(arg->value.list,
-				   3, JS_ARG_STRING, &date_field,
-				   4, JS_ARG_STRING, &sender_field,
-				   6, JS_ARG_STRING, &subject_field,
-				   8, JS_ARG_LIST, &labels_list,
-				   -1))
-      return;
-				  
-    MN_LIST_FOREACH(l, labels_list)
       {
-	JSArg *label = l->data;
-
-	if (label->type == JS_ARG_STRING && ! strcmp(label->value.string, "^i"))
-	  {
-	    in_inbox = TRUE;
-	    break;
-	  }
-      }
+	GDK_THREADS_ENTER();
 
-    if (! in_inbox)
-      return;
-    
-#ifdef WITH_GMAIL_TIMESTAMPS
-    if (icu_available)
-      {
-	char *date;
+	mn_mailbox_set_error(MN_MAILBOX(self), _("unable to parse feed"));
 
-	date = self_get_substring(date_field, "<b>", "</b>", FALSE, FALSE);
-	if (date)
-	  {
-	    sent_time = self_parse_date(self, date);
-	    g_free(date);
-	  }
+	gdk_flush();
+	GDK_THREADS_LEAVE();
       }
-#endif /* WITH_GMAIL_TIMESTAMPS */
 
-    count_str = self_get_substring(sender_field, "</span> (", ")", FALSE, FALSE);
-    if (count_str)
-      {
-	if (mn_str_isnumeric(count_str))
-	  count = atoi(count_str);
-	g_free(count_str);
-      }
-    
-    sender_email = self_get_substring(sender_field, "<span id='_user_", "'", FALSE, FALSE);
-    sender_name = self_get_substring(sender_field, "'><b>", "</b>", FALSE, FALSE);
-		    
-    if (sender_name && sender_email)
-      {
-	char *tmp;
-	
-	tmp = g_strdup_printf("%s <%s>", sender_name, sender_email);
-	from = mn_sgml_ref_expand(tmp);
-	g_free(tmp);
-      }
-    else if (sender_name)
-      from = mn_sgml_ref_expand(sender_name);
-    else if (sender_email)
-      from = mn_sgml_ref_expand(sender_email);
-    
-    g_free(sender_email);
-    g_free(sender_name);
-    
-    subject = self_get_substring(subject_field, "<b>", "</b>", FALSE, FALSE);
-    if (subject)
-      {
-	if (strcmp(subject, "(no subject)"))
-	  expanded_subject = mn_sgml_ref_expand(subject);
-	g_free(subject);
-      }
-    
-    for (i = 0; i < count; i++)
-      *messages = g_slist_append(*messages, mn_message_new(MN_MAILBOX(self)->uri,
-							   NULL,
-							   sent_time,
-							   NULL,
-							   from,
-							   expanded_subject));
-    
-    g_free(from);
-    g_free(expanded_subject);
+    xmlFreeDoc(doc);
   }
   
-  private gboolean
-    js_get_arg_list (char **str (check null), GSList **list (check null))
+  private void
+    parse_entry (xmlNode *node (check null),
+		 time_t *sent_time (check null),
+		 char **id (check null),
+		 char **from (check null),
+		 char **subject (check null))
   {
-    GSList *our_list = NULL;
-    gboolean done = FALSE;
-    gboolean in_literal = FALSE;	/* a string enclosed in double quotes */
-    gboolean quoted = FALSE;		/* the next character is quoted with a backslash */
-    JSArg *arg = NULL;
-    GString *string;
-
-    g_return_val_if_fail(*str != NULL, FALSE);
-    g_return_val_if_fail(**str == '[', FALSE);
+    *sent_time = 0;
+    *id = NULL;
+    *from = NULL;
+    *subject = NULL;
 
-    (*str)++;			/* skip the initial open bracket */
-    string = g_string_new(NULL);
-
-    while (**str && ! done)
-      {
-	gboolean next = TRUE;
-
-	if (in_literal)
-	  switch (**str)
+    for (node = node->children; node != NULL; node = node->next)
+      if (node->type == XML_ELEMENT_NODE)
+	{
+	  if (! strcmp(node->name, "title"))
 	    {
-	    case '\\':
-	      quoted = TRUE;
-	      break;
-
-	    case '"':
-	      if (! quoted)
-		{
-		  in_literal = FALSE;
-		  break;
-		}
-	      /* else pass through */
-	      
-	    default:
-	      quoted = FALSE;
-	      g_string_append_c(string, **str);
+	      g_free(*subject);
+	      *subject = xmlNodeGetContent(node);
 	    }
-	else
-	  switch (**str)
+	  else if (! strcmp(node->name, "id"))
 	    {
-	    case '[':
-	      {
-		GSList *sub_list;
-
-		if (arg || ! self_js_get_arg_list(str, &sub_list))
-		  goto end;	/* parse error */
-
-		arg = self_js_arg_new_list(sub_list);
-		next = FALSE;
-		break;
-	      }
-
-	    case ']':
-	      done = TRUE;
-	      /* fall through */
-	    
-	    case ',':
-	      if (! arg)
-		arg = self_js_arg_new_string(string->str);
-	      
-	      our_list = g_slist_append(our_list, arg);
-
-	      g_string_truncate(string, 0);
-	      arg = NULL;
-	      break;
-
-	    case '"':
-	      in_literal = TRUE;
-	      break;
-	      
-	    default:
-	      g_string_append_c(string, **str);
+	      g_free(*id);
+	      *id = xmlNodeGetContent(node);
 	    }
-
-	if (next)
-	  (*str)++;
-      }
-
-  end:
-    if (arg)
-      self_js_arg_free(arg);
-    g_string_free(string, TRUE);
-
-    if (done)
-      {
-	*list = our_list;
-	return TRUE;
-      }
-    else
-      {
-	self_js_arg_list_free(our_list);
-	return FALSE;
-      }
-  }
-  
-  private gboolean
-    js_arg_list_scan (GSList *list, ...)
-  {
-    va_list args;
-    int position;
-    gboolean status = TRUE;
-
-    va_start(args, list);
-
-    while ((position = va_arg(args, int)) != -1)
-      {
-	JSArgType type = va_arg(args, JSArgType);
-	JSArg *arg = g_slist_nth_data(list, position);
-	
-	if (! arg)
-	  {
-	    status = FALSE;
-	    break;
-	  }
-
-	switch (type)
-	  {
-	  case JS_ARG_STRING:
+	  else if (! strcmp(node->name, "author"))
 	    {
-	      char **str = va_arg(args, char **);
-	      g_return_val_if_fail(str != NULL, FALSE);
-
-	      *str = arg->value.string;
-	      break;
+	      g_free(*from);
+	      *from = self_parse_author(node);
 	    }
-
-	  case JS_ARG_LIST:
+#ifdef HAVE_TIMEGM
+	  else if (! strcmp(node->name, "issued"))
 	    {
-	      GSList **elem_list = va_arg(args, GSList **);
-	      g_return_val_if_fail(elem_list != NULL, FALSE);
+	      char *w3c_datetime;
 
-	      *elem_list = arg->value.list;
-	      break;
+	      w3c_datetime = xmlNodeGetContent(node);
+	      if (w3c_datetime)
+		{
+		  *sent_time = self_parse_date(w3c_datetime);
+		  g_free(w3c_datetime);
+		}
 	    }
-
-	  default:
-	    g_return_val_if_reached(FALSE);
-	  }
-      }
-
-    va_end(args);
-
-    return status;
-  }
-  
-  private void
-    js_arg_list_free (GSList *list)
-  {
-    eel_g_slist_free_deep_custom(list, (GFunc) self_js_arg_free, NULL);
+#endif
+	}
   }
   
-  private JSArg *
-    js_arg_new_string (const char *string (check null))
-  {
-    JSArg *arg;
-
-    arg = g_new(JSArg, 1);
-    arg->type = JS_ARG_STRING;
-    arg->value.string = g_strdup(string);
-
-    return arg;
-  }
-
-  private JSArg *
-    js_arg_new_list (GSList *list)
-  {
-    JSArg *arg;
-
-    arg = g_new(JSArg, 1);
-    arg->type = JS_ARG_LIST;
-    arg->value.list = list;
-
-    return arg;
-  }
-
-  private void
-    js_arg_free (JSArg *arg (check null))
+  private char *
+    parse_author (xmlNode *node (check null))
   {
-    switch (arg->type)
-      {
-      case JS_ARG_STRING:
-	g_free(arg->value.string);
-	break;
-
-      case JS_ARG_LIST:
-	self_js_arg_list_free(arg->value.list);
-	break;
+    char *from;
+    char *name = NULL;
+    char *email = NULL;
+	      
+    for (node = node->children; node != NULL; node = node->next)
+      if (node->type == XML_ELEMENT_NODE)
+	{
+	  if (! strcmp(node->name, "name"))
+	    {
+	      g_free(name);
+	      name = xmlNodeGetContent(node);
+	    }
+	  else if (! strcmp(node->name, "email"))
+	    {
+	      g_free(email);
+	      email = xmlNodeGetContent(node);
+	    }
+	}
 
-      default:
-	g_return_if_reached();
-      }
+    from = name && email
+      ? g_strdup_printf("%s <%s>", name, email)
+      : g_strdup(name ? name : email);
 
-    g_free(arg);
+    g_free(name);
+    g_free(email);
+    
+    return from;
   }
   
   private time_t
-    parse_date (self, const char *date (check null))
+    parse_date (const char *w3c_datetime (check null))
   {
-#ifdef WITH_GMAIL_TIMESTAMPS
+#ifdef HAVE_TIMEGM
     time_t t = 0;
-    UChar *zone_id;
-    UCalendar *cal;
-    UErrorCode status = U_ZERO_ERROR;
-    UDate ud;
-    int hour;
-    int minute;
-    char ampm[3];
-    char month_str[4];
-    int year;
-    int month;
-    int day;
-    gboolean valid = FALSE;
-    
-    zone_id = mn_icu_ustr_new("PST"); /* Gmail's timezone */
-    cal = ucal_open(zone_id, -1, NULL, UCAL_TRADITIONAL, &status);
-    g_free(zone_id);
-
-    if (! cal)
-      {
-	mn_mailbox_warning(MN_MAILBOX(self), _("unable to open calendar: %s"), u_errorName(status));
-	return 0;
-      }
-    
-    ud = ucal_getNow();
-    ucal_setMillis(cal, ud, &status);
-    if (U_FAILURE(status))
+    char year[5];
+    char month[3];
+    char day[3];
+    char hour[3];
+    char minute[3];
+    char second[3];
+
+    if (sscanf(w3c_datetime, "%4s-%2s-%2sT%2s:%2s:%2sZ", year, month, day, hour, minute, second) == 6
+	&& mn_str_isnumeric(year)
+	&& mn_str_isnumeric(month)
+	&& mn_str_isnumeric(day)
+	&& mn_str_isnumeric(hour)
+	&& mn_str_isnumeric(minute)
+	&& mn_str_isnumeric(second))
       {
-	mn_mailbox_warning(MN_MAILBOX(self), _("unable to set calendar time: %s"), u_errorName(status));
-	goto end;
+	struct tm tm = { 0 };
+
+	tm.tm_sec = atoi(second);
+	tm.tm_min = atoi(minute);
+	tm.tm_hour = atoi(hour);
+	tm.tm_mday = atoi(day);
+	tm.tm_mon = atoi(month) - 1;
+	tm.tm_year = atoi(year) - 1900;
+
+	t = timegm(&tm);
+	if (t == -1)
+	  t = 0;
       }
 
-    if (sscanf(date, "%d:%d%2s", &hour, &minute, ampm) == 3)
-      {
-	ucal_set(cal, UCAL_HOUR, hour);
-	ucal_set(cal, UCAL_MINUTE, minute);
-	ucal_set(cal, UCAL_SECOND, 0);
-	ucal_set(cal, UCAL_AM_PM, ampm[0] == 'p' ? 1 : 0);
-	valid = TRUE;
-      }
-    else if (sscanf(date, "%d/%d/%d", &month, &day, &year) == 3)
-      {
-	/*
-	 * Convert year from 2-digits to 4-digits, conforms to the
-	 * POSIX or X/Open standard.
-	 */
-	year += year >= 69 && year <= 99 ? 1900 : 2000;
-	
-	ucal_set(cal, UCAL_MONTH, month);
-	ucal_set(cal, UCAL_DATE, day);
-	ucal_set(cal, UCAL_YEAR, year);
-	ucal_set(cal, UCAL_HOUR, 0);
-	ucal_set(cal, UCAL_MINUTE, 0);
-	ucal_set(cal, UCAL_SECOND, 0);
-	valid = TRUE;
-      }
-    else if (sscanf(date, "%3s %d", month_str, &day) == 2)
-      {
-	const struct 
-	{
-	  const char	*name;
-	  int		value;
-	} months[] = {
-	  { "Jan",	UCAL_JANUARY	},
-	  { "Feb",	UCAL_FEBRUARY	},
-	  { "Mar",	UCAL_MARCH	},
-	  { "Apr",	UCAL_APRIL	},
-	  { "May",	UCAL_MAY	},
-	  { "Jun",	UCAL_JUNE	},
-	  { "Jul",	UCAL_JULY	},
-	  { "Aug",	UCAL_AUGUST	},
-	  { "Sep",	UCAL_SEPTEMBER	},
-	  { "Oct",	UCAL_OCTOBER	},
-	  { "Nov",	UCAL_NOVEMBER	},
-	  { "Dec",	UCAL_DECEMBER	}
-	};
-	int i;
-
-	for (i = 0; i < G_N_ELEMENTS(months); i++)
-	  if (! strcmp(month_str, months[i].name))
-	    {
-	      ucal_set(cal, UCAL_MONTH, months[i].value);
-	      ucal_set(cal, UCAL_DATE, day);
-	      ucal_set(cal, UCAL_HOUR, 0);
-	      ucal_set(cal, UCAL_MINUTE, 0);
-	      ucal_set(cal, UCAL_SECOND, 0);
-	      valid = TRUE;
-	      break;
-	    }
-      }
-    
-    if (valid)
-      {
-	ud = ucal_getMillis(cal, &status);
-	if (U_SUCCESS(status))
-	  t = ud / 1000;
-	else
-	  mn_mailbox_warning(MN_MAILBOX(self), _("unable to get calendar time: %s"), u_errorName(status));
-      }
-
-  end:
-    ucal_close(cal);
-
     return t;
 #else
     g_return_val_if_reached(0);
-#endif /* WITH_GMAIL_TIMESTAMPS */
+#endif
+  }
+  
+  public char *
+    build_name (const char *username)
+  {
+    if (username)
+      return g_str_has_suffix(username, "@gmail.com")
+	? g_strdup(username)
+	: g_strdup_printf("%s@gmail.com", username);
+    else
+      return g_strdup("gmail.com");
   }
 }
diff --git a/src/mn-gmail-mailbox.h b/src/mn-gmail-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -37,6 +37,9 @@ typedef struct _MNGmailMailbox MNGmailMailbox;
 #endif
 struct _MNGmailMailbox {
 	MNAuthenticatedMailbox __parent__;
+	/*< public >*/
+	char * location;
+	char * runtime_location;
 	/*< private >*/
 	MNGmailMailboxPrivate *_priv;
 };
@@ -54,6 +57,19 @@ struct _MNGmailMailboxClass {
  * Public methods
  */
 GType	mn_gmail_mailbox_get_type	(void);
+char * 	mn_gmail_mailbox_build_name	(const char * username);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_GMAIL_MAILBOX_PROP_LOCATION(arg)    	"location", __extension__ ({gchar *z = (arg); z;})
+#define MN_GMAIL_MAILBOX_GET_PROP_LOCATION(arg)	"location", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_GMAIL_MAILBOX_PROP_LOCATION(arg)    	"location",(gchar *)(arg)
+#define MN_GMAIL_MAILBOX_GET_PROP_LOCATION(arg)	"location",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-gmime-stream-vfs-private.h b/src/mn-gmime-stream-vfs-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_GMIME_STREAM_VFS_PRIVATE_H__
 #define __MN_GMIME_STREAM_VFS_PRIVATE_H__
@@ -10,11 +10,11 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNGMimeStreamVFSPrivate {
-#line 62 "mn-gmime-stream-vfs.gob"
-	GnomeVFSHandle * handle;
 #line 63 "mn-gmime-stream-vfs.gob"
-	char * uri;
+	GnomeVFSHandle * handle;
 #line 64 "mn-gmime-stream-vfs.gob"
+	char * uri;
+#line 65 "mn-gmime-stream-vfs.gob"
 	gboolean eof;
 #line 20 "mn-gmime-stream-vfs-private.h"
 };
diff --git a/src/mn-gmime-stream-vfs.c b/src/mn-gmime-stream-vfs.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -27,6 +27,7 @@
 
 #include "config.h"
 #include <glib/gi18n.h>
+#include "mn-vfs.h"
 
 #define VFS_CALL(stream, expr, fail_format, fail_retval)		\
   {									\
@@ -57,7 +58,7 @@
 #define VFS_CLOSE(stream, fail_retval) \
   VFS_CALL((stream), gnome_vfs_close((stream)->_priv->handle), _("unable to close %s: %s"), (fail_retval))
 
-#line 61 "mn-gmime-stream-vfs.c"
+#line 62 "mn-gmime-stream-vfs.c"
 /* self casting macros */
 #define SELF(x) MN_GMIME_STREAM_VFS(x)
 #define SELF_CONST(x) MN_GMIME_STREAM_VFS_CONST(x)
@@ -141,9 +142,9 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 63 "mn-gmime-stream-vfs.gob"
+#line 64 "mn-gmime-stream-vfs.gob"
 	if(self->_priv->uri) { g_free ((gpointer) self->_priv->uri); self->_priv->uri = NULL; }
-#line 147 "mn-gmime-stream-vfs.c"
+#line 148 "mn-gmime-stream-vfs.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -151,7 +152,7 @@ static void
 mn_gmime_stream_vfs_init (MNGMimeStreamVFS * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNGMimeStreamVFSPrivate);
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_GMIME_STREAM_VFS,MNGMimeStreamVFSPrivate);
 }
 #undef __GOB_FUNCTION__
 static void 
@@ -165,52 +166,45 @@ mn_gmime_stream_vfs_class_init (MNGMimeStreamVFSClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (GMIME_TYPE_STREAM);
 
-#line 66 "mn-gmime-stream-vfs.gob"
+#line 67 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->read = ___1_mn_gmime_stream_vfs_read;
-#line 88 "mn-gmime-stream-vfs.gob"
+#line 87 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->write = ___2_mn_gmime_stream_vfs_write;
-#line 110 "mn-gmime-stream-vfs.gob"
+#line 107 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->flush = ___3_mn_gmime_stream_vfs_flush;
-#line 117 "mn-gmime-stream-vfs.gob"
+#line 114 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->close = ___4_mn_gmime_stream_vfs_close;
-#line 127 "mn-gmime-stream-vfs.gob"
+#line 124 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->eos = ___5_mn_gmime_stream_vfs_eos;
-#line 138 "mn-gmime-stream-vfs.gob"
+#line 135 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->reset = ___6_mn_gmime_stream_vfs_reset;
-#line 152 "mn-gmime-stream-vfs.gob"
+#line 149 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->seek = ___7_mn_gmime_stream_vfs_seek;
-#line 199 "mn-gmime-stream-vfs.gob"
+#line 194 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->tell = ___8_mn_gmime_stream_vfs_tell;
-#line 205 "mn-gmime-stream-vfs.gob"
+#line 200 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->length = ___9_mn_gmime_stream_vfs_length;
-#line 224 "mn-gmime-stream-vfs.gob"
+#line 219 "mn-gmime-stream-vfs.gob"
 	gmime_stream_class->substream = ___a_mn_gmime_stream_vfs_substream;
-#line 189 "mn-gmime-stream-vfs.c"
+#line 190 "mn-gmime-stream-vfs.c"
 	g_object_class->finalize = ___finalize;
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 66 "mn-gmime-stream-vfs.gob"
+#line 67 "mn-gmime-stream-vfs.gob"
 static ssize_t 
 ___1_mn_gmime_stream_vfs_read (GMimeStream * stream G_GNUC_UNUSED, char * buf, size_t len)
-#line 199 "mn-gmime-stream-vfs.c"
+#line 200 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream,___buf,___len) \
 	((GMIME_STREAM_CLASS(parent_class)->read)? \
 		(* GMIME_STREAM_CLASS(parent_class)->read)(___stream,___buf,___len): \
 		((ssize_t )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::read"
-#line 66 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (ssize_t )0);
-#line 66 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (ssize_t )0);
-#line 66 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (buf != NULL, (ssize_t )0);
-#line 212 "mn-gmime-stream-vfs.c"
 {
-#line 70 "mn-gmime-stream-vfs.gob"
+#line 69 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
     GnomeVFSFileSize bytes_read;
@@ -228,29 +222,22 @@ ___1_mn_gmime_stream_vfs_read (GMimeStream * stream G_GNUC_UNUSED, char * buf, s
     
     return bytes_read;
   }}
-#line 232 "mn-gmime-stream-vfs.c"
+#line 226 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 88 "mn-gmime-stream-vfs.gob"
+#line 87 "mn-gmime-stream-vfs.gob"
 static ssize_t 
 ___2_mn_gmime_stream_vfs_write (GMimeStream * stream G_GNUC_UNUSED, const char * buf, size_t len)
-#line 239 "mn-gmime-stream-vfs.c"
+#line 233 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream,___buf,___len) \
 	((GMIME_STREAM_CLASS(parent_class)->write)? \
 		(* GMIME_STREAM_CLASS(parent_class)->write)(___stream,___buf,___len): \
 		((ssize_t )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::write"
-#line 88 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (ssize_t )0);
-#line 88 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (ssize_t )0);
-#line 88 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (buf != NULL, (ssize_t )0);
-#line 252 "mn-gmime-stream-vfs.c"
 {
-#line 92 "mn-gmime-stream-vfs.gob"
+#line 89 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
     GnomeVFSFileSize bytes_written;
@@ -268,52 +255,42 @@ ___2_mn_gmime_stream_vfs_write (GMimeStream * stream G_GNUC_UNUSED, const char *
 
     return bytes_written;
   }}
-#line 272 "mn-gmime-stream-vfs.c"
+#line 259 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 110 "mn-gmime-stream-vfs.gob"
+#line 107 "mn-gmime-stream-vfs.gob"
 static int 
 ___3_mn_gmime_stream_vfs_flush (GMimeStream * stream G_GNUC_UNUSED)
-#line 279 "mn-gmime-stream-vfs.c"
+#line 266 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream) \
 	((GMIME_STREAM_CLASS(parent_class)->flush)? \
 		(* GMIME_STREAM_CLASS(parent_class)->flush)(___stream): \
 		((int )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::flush"
-#line 110 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (int )0);
-#line 110 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (int )0);
-#line 290 "mn-gmime-stream-vfs.c"
 {
-#line 112 "mn-gmime-stream-vfs.gob"
+#line 109 "mn-gmime-stream-vfs.gob"
 	
     /* nop */
     return 0;			/* success */
   }}
-#line 297 "mn-gmime-stream-vfs.c"
+#line 279 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 117 "mn-gmime-stream-vfs.gob"
+#line 114 "mn-gmime-stream-vfs.gob"
 static int 
 ___4_mn_gmime_stream_vfs_close (GMimeStream * stream G_GNUC_UNUSED)
-#line 304 "mn-gmime-stream-vfs.c"
+#line 286 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream) \
 	((GMIME_STREAM_CLASS(parent_class)->close)? \
 		(* GMIME_STREAM_CLASS(parent_class)->close)(___stream): \
 		((int )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::close"
-#line 117 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (int )0);
-#line 117 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (int )0);
-#line 315 "mn-gmime-stream-vfs.c"
 {
-#line 119 "mn-gmime-stream-vfs.gob"
+#line 116 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
 
@@ -321,27 +298,22 @@ ___4_mn_gmime_stream_vfs_close (GMimeStream * stream G_GNUC_UNUSED)
 
     return 0;			/* success */
   }}
-#line 325 "mn-gmime-stream-vfs.c"
+#line 302 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 127 "mn-gmime-stream-vfs.gob"
+#line 124 "mn-gmime-stream-vfs.gob"
 static gboolean 
 ___5_mn_gmime_stream_vfs_eos (GMimeStream * stream G_GNUC_UNUSED)
-#line 332 "mn-gmime-stream-vfs.c"
+#line 309 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream) \
 	((GMIME_STREAM_CLASS(parent_class)->eos)? \
 		(* GMIME_STREAM_CLASS(parent_class)->eos)(___stream): \
 		((gboolean )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::eos"
-#line 127 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (gboolean )0);
-#line 127 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (gboolean )0);
-#line 343 "mn-gmime-stream-vfs.c"
 {
-#line 129 "mn-gmime-stream-vfs.gob"
+#line 126 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
 
@@ -350,27 +322,22 @@ ___5_mn_gmime_stream_vfs_eos (GMimeStream * stream G_GNUC_UNUSED)
     else
       return stream->position >= stream->bound_end;
   }}
-#line 354 "mn-gmime-stream-vfs.c"
+#line 326 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 138 "mn-gmime-stream-vfs.gob"
+#line 135 "mn-gmime-stream-vfs.gob"
 static int 
 ___6_mn_gmime_stream_vfs_reset (GMimeStream * stream G_GNUC_UNUSED)
-#line 361 "mn-gmime-stream-vfs.c"
+#line 333 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream) \
 	((GMIME_STREAM_CLASS(parent_class)->reset)? \
 		(* GMIME_STREAM_CLASS(parent_class)->reset)(___stream): \
 		((int )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::reset"
-#line 138 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (int )0);
-#line 138 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (int )0);
-#line 372 "mn-gmime-stream-vfs.c"
 {
-#line 140 "mn-gmime-stream-vfs.gob"
+#line 137 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
 
@@ -382,27 +349,22 @@ ___6_mn_gmime_stream_vfs_reset (GMimeStream * stream G_GNUC_UNUSED)
 
     return 0;
   }}
-#line 386 "mn-gmime-stream-vfs.c"
+#line 353 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 152 "mn-gmime-stream-vfs.gob"
+#line 149 "mn-gmime-stream-vfs.gob"
 static off_t 
 ___7_mn_gmime_stream_vfs_seek (GMimeStream * stream G_GNUC_UNUSED, off_t offset, GMimeSeekWhence whence)
-#line 393 "mn-gmime-stream-vfs.c"
+#line 360 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream,___offset,___whence) \
 	((GMIME_STREAM_CLASS(parent_class)->seek)? \
 		(* GMIME_STREAM_CLASS(parent_class)->seek)(___stream,___offset,___whence): \
 		((off_t )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::seek"
-#line 152 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (off_t )0);
-#line 152 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (off_t )0);
-#line 404 "mn-gmime-stream-vfs.c"
 {
-#line 156 "mn-gmime-stream-vfs.gob"
+#line 151 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
     off_t real = stream->position;
@@ -445,51 +407,41 @@ ___7_mn_gmime_stream_vfs_seek (GMimeStream * stream G_GNUC_UNUSED, off_t offset,
 
     return real;
   }}
-#line 449 "mn-gmime-stream-vfs.c"
+#line 411 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 199 "mn-gmime-stream-vfs.gob"
+#line 194 "mn-gmime-stream-vfs.gob"
 static off_t 
 ___8_mn_gmime_stream_vfs_tell (GMimeStream * stream G_GNUC_UNUSED)
-#line 456 "mn-gmime-stream-vfs.c"
+#line 418 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream) \
 	((GMIME_STREAM_CLASS(parent_class)->tell)? \
 		(* GMIME_STREAM_CLASS(parent_class)->tell)(___stream): \
 		((off_t )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::tell"
-#line 199 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (off_t )0);
-#line 199 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (off_t )0);
-#line 467 "mn-gmime-stream-vfs.c"
 {
-#line 201 "mn-gmime-stream-vfs.gob"
+#line 196 "mn-gmime-stream-vfs.gob"
 	
     return stream->position;
   }}
-#line 473 "mn-gmime-stream-vfs.c"
+#line 430 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 205 "mn-gmime-stream-vfs.gob"
+#line 200 "mn-gmime-stream-vfs.gob"
 static ssize_t 
 ___9_mn_gmime_stream_vfs_length (GMimeStream * stream G_GNUC_UNUSED)
-#line 480 "mn-gmime-stream-vfs.c"
+#line 437 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream) \
 	((GMIME_STREAM_CLASS(parent_class)->length)? \
 		(* GMIME_STREAM_CLASS(parent_class)->length)(___stream): \
 		((ssize_t )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::length"
-#line 205 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (ssize_t )0);
-#line 205 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (ssize_t )0);
-#line 491 "mn-gmime-stream-vfs.c"
 {
-#line 207 "mn-gmime-stream-vfs.gob"
+#line 202 "mn-gmime-stream-vfs.gob"
 	
     Self *self = SELF(stream);
     GnomeVFSFileSize bound_end;
@@ -506,27 +458,22 @@ ___9_mn_gmime_stream_vfs_length (GMimeStream * stream G_GNUC_UNUSED)
     
     return bound_end - stream->bound_start;
   }}
-#line 510 "mn-gmime-stream-vfs.c"
+#line 462 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 224 "mn-gmime-stream-vfs.gob"
+#line 219 "mn-gmime-stream-vfs.gob"
 static GMimeStream * 
 ___a_mn_gmime_stream_vfs_substream (GMimeStream * stream G_GNUC_UNUSED, off_t start, off_t end)
-#line 517 "mn-gmime-stream-vfs.c"
+#line 469 "mn-gmime-stream-vfs.c"
 #define PARENT_HANDLER(___stream,___start,___end) \
 	((GMIME_STREAM_CLASS(parent_class)->substream)? \
 		(* GMIME_STREAM_CLASS(parent_class)->substream)(___stream,___start,___end): \
 		((GMimeStream * )0))
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::substream"
-#line 224 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (stream != NULL, (GMimeStream * )0);
-#line 224 "mn-gmime-stream-vfs.gob"
-	g_return_val_if_fail (GMIME_IS_STREAM (stream), (GMimeStream * )0);
-#line 528 "mn-gmime-stream-vfs.c"
 {
-#line 226 "mn-gmime-stream-vfs.gob"
+#line 221 "mn-gmime-stream-vfs.gob"
 	
     Self *self;
 
@@ -537,43 +484,67 @@ ___a_mn_gmime_stream_vfs_substream (GMimeStream * stream G_GNUC_UNUSED, off_t st
 
     return GMIME_STREAM(self);
   }}
-#line 541 "mn-gmime-stream-vfs.c"
+#line 488 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 237 "mn-gmime-stream-vfs.gob"
+#line 232 "mn-gmime-stream-vfs.gob"
 GMimeStream * 
-mn_gmime_stream_vfs_new (GnomeVFSHandle * handle, const char * uri)
-#line 548 "mn-gmime-stream-vfs.c"
+mn_gmime_stream_vfs_new (GnomeVFSHandle * handle, GnomeVFSURI * uri, GnomeVFSResult * result)
+#line 495 "mn-gmime-stream-vfs.c"
 {
 #define __GOB_FUNCTION__ "MN:GMime:Stream:VFS::new"
-#line 237 "mn-gmime-stream-vfs.gob"
+#line 232 "mn-gmime-stream-vfs.gob"
 	g_return_val_if_fail (handle != NULL, (GMimeStream * )0);
-#line 237 "mn-gmime-stream-vfs.gob"
+#line 232 "mn-gmime-stream-vfs.gob"
 	g_return_val_if_fail (uri != NULL, (GMimeStream * )0);
-#line 555 "mn-gmime-stream-vfs.c"
+#line 502 "mn-gmime-stream-vfs.c"
 {
-#line 239 "mn-gmime-stream-vfs.gob"
+#line 236 "mn-gmime-stream-vfs.gob"
 	
-    Self *self;
     GMimeStream *stream;
+    GnomeVFSResult _result;
     GnomeVFSFileSize current_position;
 
-    self = GET_NEW;
-    selfp->handle = handle;
-    selfp->uri = g_strdup(uri);
-    
-    if (gnome_vfs_tell(selfp->handle, &current_position) != GNOME_VFS_OK)
-      current_position = 0;
+    if (gnome_vfs_seek(handle, GNOME_VFS_SEEK_CURRENT, 0) != GNOME_VFS_OK
+	|| gnome_vfs_tell(handle, &current_position) != GNOME_VFS_OK)
+      {
+	char *buf;
+	int size;
+
+	/* unseekable or untellable file, use a GMimeStreamMem */
+
+	_result = mn_vfs_read_entire_file_uri(uri, &size, &buf);
+	if (_result == GNOME_VFS_OK)
+	  {
+	    stream = g_mime_stream_mem_new_with_buffer(buf, size);
+	    g_free(buf);
+	  }
+	else
+	  stream = NULL;
+      }
+    else
+      {
+	Self *self;
+
+	_result = GNOME_VFS_OK;
+
+	self = GET_NEW;
+	selfp->handle = handle;
+	selfp->uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
     
-    stream = GMIME_STREAM(self);
-    g_mime_stream_construct(stream, current_position, -1);
+	stream = GMIME_STREAM(self);
+	g_mime_stream_construct(stream, current_position, -1);
     
-    /* check for EOF */
-    if (g_mime_stream_length(stream) <= 0)
-      selfp->eof = TRUE;
+	/* check for EOF */
+	if (g_mime_stream_length(stream) <= 0)
+	  selfp->eof = TRUE;
+      }
+
+    if (result)
+      *result = _result;
 
     return stream;
   }}
-#line 579 "mn-gmime-stream-vfs.c"
+#line 550 "mn-gmime-stream-vfs.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-gmime-stream-vfs.gob b/src/mn-gmime-stream-vfs.gob
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <libgnomevfs/gnome-vfs.h>
@@ -26,6 +26,7 @@ requires 2.0.10
 %{
 #include "config.h"
 #include <glib/gi18n.h>
+#include "mn-vfs.h"
 
 #define VFS_CALL(stream, expr, fail_format, fail_retval)		\
   {									\
@@ -64,9 +65,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
   private gboolean eof;
 
   override (GMime:Stream) ssize_t
-    read (GMime:Stream *stream (check null type),
-	  char *buf (check null),
-	  size_t len)
+    read (GMimeStream *stream, char *buf, size_t len)
   {
     Self *self = SELF(stream);
     GnomeVFSFileSize bytes_read;
@@ -86,9 +85,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   override (GMime:Stream) ssize_t
-    write (GMime:Stream *stream (check null type),
-	   const char *buf (check null),
-	   size_t len)
+    write (GMimeStream *stream, const char *buf, size_t len)
   {
     Self *self = SELF(stream);
     GnomeVFSFileSize bytes_written;
@@ -108,14 +105,14 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   override (GMime:Stream) int
-    flush (GMime:Stream *stream (check null type))
+    flush (GMimeStream *stream)
   {
     /* nop */
     return 0;			/* success */
   }
   
   override (GMime:Stream) int
-    close (GMime:Stream *stream (check null type))
+    close (GMimeStream *stream)
   {
     Self *self = SELF(stream);
 
@@ -125,7 +122,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   override (GMime:Stream) gboolean
-    eos (GMime:Stream *stream (check null type))
+    eos (GMimeStream *stream)
   {
     Self *self = SELF(stream);
 
@@ -136,7 +133,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   override (GMime:Stream) int
-    reset (GMime:Stream *stream (check null type))
+    reset (GMimeStream *stream)
   {
     Self *self = SELF(stream);
 
@@ -150,9 +147,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   override (GMime:Stream) off_t
-    seek (GMime:Stream *stream (check null type),
-	  off_t offset,
-	  GMimeSeekWhence whence)
+    seek (GMimeStream *stream, off_t offset, GMimeSeekWhence whence)
   {
     Self *self = SELF(stream);
     off_t real = stream->position;
@@ -197,13 +192,13 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
   
   override (GMime:Stream) off_t
-    tell (GMime:Stream *stream (check null type))
+    tell (GMimeStream *stream)
   {
     return stream->position;
   }
   
   override (GMime:Stream) ssize_t
-    length (GMime:Stream *stream (check null type))
+    length (GMimeStream *stream)
   {
     Self *self = SELF(stream);
     GnomeVFSFileSize bound_end;
@@ -222,7 +217,7 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   override (GMime:Stream) GMimeStream *
-    substream (GMime:Stream *stream (check null type), off_t start, off_t end)
+    substream (GMimeStream *stream, off_t start, off_t end)
   {
     Self *self;
 
@@ -235,25 +230,51 @@ class MN:GMime:Stream:VFS from GMime:Stream
   }
 
   public GMimeStream *
-    new (GnomeVFSHandle *handle (check null), const char *uri (check null))
+    new (GnomeVFSHandle *handle (check null),
+	 GnomeVFSURI *uri (check null),
+	 GnomeVFSResult *result)
   {
-    Self *self;
     GMimeStream *stream;
+    GnomeVFSResult _result;
     GnomeVFSFileSize current_position;
 
-    self = GET_NEW;
-    selfp->handle = handle;
-    selfp->uri = g_strdup(uri);
-    
-    if (gnome_vfs_tell(selfp->handle, &current_position) != GNOME_VFS_OK)
-      current_position = 0;
+    if (gnome_vfs_seek(handle, GNOME_VFS_SEEK_CURRENT, 0) != GNOME_VFS_OK
+	|| gnome_vfs_tell(handle, &current_position) != GNOME_VFS_OK)
+      {
+	char *buf;
+	int size;
+
+	/* unseekable or untellable file, use a GMimeStreamMem */
+
+	_result = mn_vfs_read_entire_file_uri(uri, &size, &buf);
+	if (_result == GNOME_VFS_OK)
+	  {
+	    stream = g_mime_stream_mem_new_with_buffer(buf, size);
+	    g_free(buf);
+	  }
+	else
+	  stream = NULL;
+      }
+    else
+      {
+	Self *self;
+
+	_result = GNOME_VFS_OK;
+
+	self = GET_NEW;
+	selfp->handle = handle;
+	selfp->uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
     
-    stream = GMIME_STREAM(self);
-    g_mime_stream_construct(stream, current_position, -1);
+	stream = GMIME_STREAM(self);
+	g_mime_stream_construct(stream, current_position, -1);
     
-    /* check for EOF */
-    if (g_mime_stream_length(stream) <= 0)
-      selfp->eof = TRUE;
+	/* check for EOF */
+	if (g_mime_stream_length(stream) <= 0)
+	  selfp->eof = TRUE;
+      }
+
+    if (result)
+      *result = _result;
 
     return stream;
   }
diff --git a/src/mn-gmime-stream-vfs.h b/src/mn-gmime-stream-vfs.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -56,7 +56,8 @@ struct _MNGMimeStreamVFSClass {
  */
 GType	mn_gmime_stream_vfs_get_type	(void);
 GMimeStream * 	mn_gmime_stream_vfs_new	(GnomeVFSHandle * handle,
-					const char * uri);
+					GnomeVFSURI * uri,
+					GnomeVFSResult * result);
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-icu.c b/src/mn-icu.c
@@ -1,83 +0,0 @@
-/* 
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <string.h>
-#include <glib.h>
-#include <unicode/uclean.h>
-#include <unicode/utypes.h>
-#include <unicode/putil.h>
-#include <unicode/uiter.h>
-#include <unicode/ustring.h>
-
-/*** variables ***************************************************************/
-
-static int use_count = 0;
-G_LOCK_DEFINE_STATIC(use_count);
-
-/*** implementation **********************************************************/
-
-gboolean
-mn_icu_use (GError **err)
-{
-  gboolean success;
-  UErrorCode status = U_ZERO_ERROR;
-
-  G_LOCK(use_count);
-
-  /* u_init() must be called in every thread, so we always call it */
-
-  u_init(&status);
-  if (U_SUCCESS(status))
-    {
-      use_count++;
-      success = TRUE;
-    }
-  else
-    {
-      g_set_error(err, 0, 0, "%s", u_errorName(status));
-      success = FALSE;
-    }
-
-  G_UNLOCK(use_count);
-
-  return success;
-}
-
-void
-mn_icu_unuse (void)
-{
-  G_LOCK(use_count);
-  g_return_if_fail(use_count > 0);
-  if (--use_count == 0)
-    u_cleanup();
-  G_UNLOCK(use_count);
-}
-
-UChar *
-mn_icu_ustr_new (const char *str)
-{
-  UChar *ustr;
-
-  g_return_val_if_fail(str != NULL, NULL);
-
-  ustr = g_new(UChar, sizeof(UChar) * (strlen(str) + 1));
-  u_uastrcpy(ustr, str);
-  
-  return ustr;
-}
diff --git a/src/mn-icu.h b/src/mn-icu.h
@@ -1,30 +0,0 @@
-/* 
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_ICU_H
-#define _MN_ICU_H
-
-#include <glib.h>
-#include <unicode/utypes.h>
-
-gboolean mn_icu_use (GError **err);
-void mn_icu_unuse (void);
-
-UChar *mn_icu_ustr_new (const char *str);
-
-#endif /* _MN_ICU_H */
diff --git a/src/mn-imap-mailbox-private.h b/src/mn-imap-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_IMAP_MAILBOX_PRIVATE_H__
 #define __MN_IMAP_MAILBOX_PRIVATE_H__
@@ -10,17 +10,17 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-#line 32 "mn-imap-mailbox.gob"
+#line 39 "mn-imap-mailbox.gob"
 
 #include "mn-client-session.h"
 
 #line 18 "mn-imap-mailbox-private.h"
 struct _MNIMAPMailboxPrivate {
-#line 135 "mn-imap-mailbox.gob"
+#line 153 "mn-imap-mailbox.gob"
 	int removed;
-#line 137 "mn-imap-mailbox.gob"
+#line 155 "mn-imap-mailbox.gob"
 	MNClientSessionPrivate * idle_session;
-#line 138 "mn-imap-mailbox.gob"
+#line 156 "mn-imap-mailbox.gob"
 	GMutex * idle_session_mutex;
 #line 26 "mn-imap-mailbox-private.h"
 };
diff --git a/src/mn-imap-mailbox-properties-private.h b/src/mn-imap-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_IMAP_MAILBOX_PROPERTIES_PRIVATE_H__
 #define __MN_IMAP_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -9,16 +9,22 @@
 extern "C" {
 #endif /* __cplusplus */
 
+
+#line 25 "mn-imap-mailbox-properties.gob"
+
+#include "mn-imap-mailbox.h"
+
+#line 18 "mn-imap-mailbox-properties-private.h"
 struct _MNIMAPMailboxPropertiesPrivate {
-#line 68 "mn-imap-mailbox-properties.gob"
+#line 43 "mn-imap-mailbox-properties.gob"
 	GtkWidget * inbox_radio;
-#line 69 "mn-imap-mailbox-properties.gob"
+#line 44 "mn-imap-mailbox-properties.gob"
 	GtkWidget * other_radio;
-#line 70 "mn-imap-mailbox-properties.gob"
+#line 45 "mn-imap-mailbox-properties.gob"
 	GtkWidget * mailbox_entry;
-#line 71 "mn-imap-mailbox-properties.gob"
-	GtkWidget * idle_check;
-#line 22 "mn-imap-mailbox-properties-private.h"
+#line 46 "mn-imap-mailbox-properties.gob"
+	GtkWidget * use_idle_radio[MN_IMAP_MAILBOX_N_USE_IDLE];
+#line 28 "mn-imap-mailbox-properties-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-imap-mailbox-properties.c b/src/mn-imap-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,18 +23,19 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-imap-mailbox-properties.gob"
+#line 29 "mn-imap-mailbox-properties.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
 #include "mn-pi-mailbox-properties-private.h"
 #include "mn-auth-combo-box.h"
 #include "mn-util.h"
 #include "mn-properties-dialog.h"
 
-#line 38 "mn-imap-mailbox-properties.c"
+#line 39 "mn-imap-mailbox-properties.c"
 /* self casting macros */
 #define SELF(x) MN_IMAP_MAILBOX_PROPERTIES(x)
 #define SELF_CONST(x) MN_IMAP_MAILBOX_PROPERTIES_CONST(x)
@@ -50,37 +51,25 @@ typedef MNIMAPMailboxPropertiesClass SelfClass;
 
 /* here are local prototypes */
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * o) G_GNUC_UNUSED;
 static void mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_imap_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_imap_mailbox_properties_add_idle_usage (MNIMAPMailboxProperties * self, MNIMAPMailboxUseIDLE usage, const char * mnemonic) G_GNUC_UNUSED;
 static void mn_imap_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_imap_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_imap_mailbox_properties_get_uri (MNMailboxProperties * properties) G_GNUC_UNUSED;
+static void ___5_mn_imap_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___6_mn_imap_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
 
 enum {
 	PROP_0,
-	PROP_COMPLETE
+	PROP_COMPLETE,
+	PROP_DEFAULT_NAME
 };
 
 /* pointer to the class of our parent */
 static MNPIMailboxPropertiesClass *parent_class = NULL;
 
 /* Short form macros */
+#define self_add_idle_usage mn_imap_mailbox_properties_add_idle_usage
 #define self_radio_toggled_h mn_imap_mailbox_properties_radio_toggled_h
-#define self_set_uri mn_imap_mailbox_properties_set_uri
-#define self_get_uri mn_imap_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 155 "mn-imap-mailbox-properties.gob"
-	iface->set_uri = self_set_uri;
-#line 187 "mn-imap-mailbox-properties.gob"
-	iface->get_uri = self_get_uri;
-#line 82 "mn-imap-mailbox-properties.c"
-}
-
 GType
 mn_imap_mailbox_properties_get_type (void)
 {
@@ -100,16 +89,7 @@ mn_imap_mailbox_properties_get_type (void)
 			NULL
 		};
 
-		static const GInterfaceInfo MN_Mailbox_Properties_info = {
-			(GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
-			NULL,
-			NULL
-		};
-
 		type = g_type_register_static (MN_TYPE_PI_MAILBOX_PROPERTIES, "MNIMAPMailboxProperties", &info, (GTypeFlags)0);
-		g_type_add_interface_static (type,
-			MN_TYPE_MAILBOX_PROPERTIES,
-			&MN_Mailbox_Properties_info);
 	}
 
 	return type;
@@ -144,45 +124,110 @@ ___finalize(GObject *obj_self)
 }
 #undef __GOB_FUNCTION__
 
-static void 
-mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNIMAPMailboxPropertiesPrivate);
-}
-#undef __GOB_FUNCTION__
-#line 73 "mn-imap-mailbox-properties.gob"
+#line 98 "mn-imap-mailbox-properties.gob"
 static void 
 mn_imap_mailbox_properties_class_init (MNIMAPMailboxPropertiesClass * class G_GNUC_UNUSED)
-#line 158 "mn-imap-mailbox-properties.c"
+#line 131 "mn-imap-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
 
 	g_type_class_add_private(class,sizeof(MNIMAPMailboxPropertiesPrivate));
 
 	parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
 
-#line 82 "mn-imap-mailbox-properties.gob"
-	g_object_class->constructor = ___2_mn_imap_mailbox_properties_constructor;
-#line 169 "mn-imap-mailbox-properties.c"
+#line 205 "mn-imap-mailbox-properties.gob"
+	mn_mailbox_properties_class->set_mailbox = ___5_mn_imap_mailbox_properties_set_mailbox;
+#line 224 "mn-imap-mailbox-properties.gob"
+	mn_mailbox_properties_class->get_mailbox = ___6_mn_imap_mailbox_properties_get_mailbox;
+#line 145 "mn-imap-mailbox-properties.c"
 	g_object_class->finalize = ___finalize;
 	g_object_class->get_property = ___object_get_property;
     {
 	g_object_class_override_property (g_object_class,
 		PROP_COMPLETE,
 		"complete");
+	g_object_class_override_property (g_object_class,
+		PROP_DEFAULT_NAME,
+		"default_name");
     }
  {
-#line 74 "mn-imap-mailbox-properties.gob"
+#line 99 "mn-imap-mailbox-properties.gob"
 
-    MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-    pi_class->label = "IMAP";
-    pi_class->default_port[0] = mn_uri_get_default_port("imap");
-    pi_class->default_port[1] = mn_uri_get_default_port("imaps");
+    p_class->type = "imap";
+    p_class->combo_label = "IMAP";
   
-#line 186 "mn-imap-mailbox-properties.c"
+#line 164 "mn-imap-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 106 "mn-imap-mailbox-properties.gob"
+static void 
+mn_imap_mailbox_properties_init (MNIMAPMailboxProperties * self G_GNUC_UNUSED)
+#line 171 "mn-imap-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_IMAP_MAILBOX_PROPERTIES,MNIMAPMailboxPropertiesPrivate);
+ {
+#line 107 "mn-imap-mailbox-properties.gob"
+
+    MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+    GtkWidget *hbox;
+    GtkWidget *label;
+    int i;
+    
+    label = gtk_label_new(_("Mailbox:"));
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+    gtk_size_group_add_widget(pi->details_size_group, label);
+
+    selfp->inbox_radio = gtk_radio_button_new_with_mnemonic(NULL, _("in_box"));
+    
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), selfp->inbox_radio, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+
+    label = gtk_label_new(NULL);
+    gtk_size_group_add_widget(pi->details_size_group, label);
+
+    selfp->other_radio = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->inbox_radio), _("oth_er:"));
+    selfp->mailbox_entry = gtk_entry_new();
+    gtk_widget_set_sensitive(selfp->mailbox_entry, FALSE);
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), selfp->other_radio, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), selfp->mailbox_entry, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+    
+    self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_NEVER, _("ne_ver"));
+    self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT, _("au_todetect"));
+    self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_ALWAYS, _("al_ways"));
+    
+    /* by default, autodetect is enabled */
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT]), TRUE);
+
+    mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
+
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+      gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_imap_mailbox_default_ports[i]);
+
+    mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->mailbox_entry));
+
+    g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
+    g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
+
+    g_object_connect(selfp->mailbox_entry,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+		     NULL);
+  
+#line 231 "mn-imap-mailbox-properties.c"
  }
 }
 #undef __GOB_FUNCTION__
@@ -201,11 +246,10 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_COMPLETE:
 		{
-#line 39 "mn-imap-mailbox-properties.gob"
+#line 50 "mn-imap-mailbox-properties.gob"
 
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
-      const char *username;
       const char *hostname;
       gboolean other_active;
       const char *mailbox;
@@ -213,24 +257,47 @@ ___object_get_property (GObject *object,
       mn_pi_mailbox_properties_get_contents(pi,
 					    NULL,
 					    NULL,
-					    &username,
-					    NULL,
-					    NULL,
 					    &hostname,
 					    NULL);
       
       other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
       mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
 
-      complete = *username && *hostname && (! other_active || *mailbox);
+      complete = *hostname && (! other_active || *mailbox);
 #ifndef WITH_SSL
       if (complete)
-	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
 #endif /* WITH_SSL */
 
       g_value_set_boolean(VAL, complete);
     
-#line 234 "mn-imap-mailbox-properties.c"
+#line 275 "mn-imap-mailbox-properties.c"
+		}
+		break;
+	case PROP_DEFAULT_NAME:
+		{
+#line 77 "mn-imap-mailbox-properties.gob"
+
+      const char *username;
+      const char *hostname;
+      gboolean other_active;
+      const char *mailbox;
+
+      mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+						       &username,
+						       NULL);
+      mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+					    NULL,
+					    NULL,
+					    &hostname,
+					    NULL);
+
+      other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
+      mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
+
+      g_value_take_string(VAL, mn_imap_mailbox_build_name(username, hostname, other_active ? mailbox : NULL));
+    
+#line 301 "mn-imap-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -247,198 +314,131 @@ ___object_get_property (GObject *object,
 
 
 
-#line 82 "mn-imap-mailbox-properties.gob"
-static GObject * 
-___2_mn_imap_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 254 "mn-imap-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
-	((G_OBJECT_CLASS(parent_class)->constructor)? \
-		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
-		((GObject * )0))
+#line 162 "mn-imap-mailbox-properties.gob"
+static void 
+mn_imap_mailbox_properties_add_idle_usage (MNIMAPMailboxProperties * self, MNIMAPMailboxUseIDLE usage, const char * mnemonic)
+#line 321 "mn-imap-mailbox-properties.c"
 {
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::constructor"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::add_idle_usage"
+#line 162 "mn-imap-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 162 "mn-imap-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_IMAP_MAILBOX_PROPERTIES (self));
+#line 162 "mn-imap-mailbox-properties.gob"
+	g_return_if_fail (mnemonic != NULL);
+#line 330 "mn-imap-mailbox-properties.c"
 {
-#line 84 "mn-imap-mailbox-properties.gob"
+#line 166 "mn-imap-mailbox-properties.gob"
 	
-    GObject *object;
-    Self *self;
-    MNPIMailboxProperties *pi;
-    GtkWidget *hbox;
+    MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
     GtkWidget *label;
-    
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-    pi = MN_PI_MAILBOX_PROPERTIES(object);
-
-    label = gtk_label_new(_("Mailbox:"));
-    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
-    gtk_size_group_add_widget(pi->details_size_group, label);
+    GtkWidget *hbox;
 
-    selfp->inbox_radio = gtk_radio_button_new_with_mnemonic(NULL, _("in_box"));
-    
-    hbox = gtk_hbox_new(FALSE, 12);
-    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), selfp->inbox_radio, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
-    gtk_widget_show_all(hbox);
+    if (usage == 0)
+      {
+	label = gtk_label_new(_("Use the <span style=\"italic\">IDLE</span> extension:"));
+	gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+      }
+    else
+      label = gtk_label_new(NULL);
 
-    label = gtk_label_new(NULL);
-    gtk_size_group_add_widget(pi->details_size_group, label);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
 
-    selfp->other_radio = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->inbox_radio), _("oth_er:"));
-    selfp->mailbox_entry = gtk_entry_new();
-    gtk_widget_set_sensitive(selfp->mailbox_entry, FALSE);
-    gtk_entry_set_activates_default(GTK_ENTRY(selfp->mailbox_entry), TRUE);
+    selfp->use_idle_radio[usage] = usage == 0
+      ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+      : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->use_idle_radio[0]), mnemonic);
 
     hbox = gtk_hbox_new(FALSE, 12);
     gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), selfp->other_radio, FALSE, FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), selfp->mailbox_entry, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), selfp->use_idle_radio[usage], TRUE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
     gtk_widget_show_all(hbox);
-    
-    selfp->idle_check = gtk_check_button_new_with_mnemonic(_("U_se idle mode if possible"));
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), TRUE);
-    gtk_box_pack_start(GTK_BOX(pi->details_vbox), selfp->idle_check, FALSE, FALSE, 0);
-    gtk_widget_show(selfp->idle_check);
-
-    mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
 
-    mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
-				      pi->username_entry, _("Your username on the IMAP server"),
-				      pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
-				      pi->port_spin[0], _("The port number of the IMAP server"),
-				      pi->port_spin[1], _("The port number of the IMAP server"),
-				      selfp->mailbox_entry, _("The mailbox name"),
-				      selfp->idle_check, _("If possible, whether to use idle mode or not"),
-				      NULL);
-
-    g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
-    g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
-    g_signal_connect(selfp->mailbox_entry, "changed", G_CALLBACK(mn_pi_mailbox_properties_entry_changed_h), self);
-    
-    return object;
+    gtk_size_group_add_widget(pi->details_size_group, label);
   }}
-#line 323 "mn-imap-mailbox-properties.c"
+#line 360 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
 
-#line 145 "mn-imap-mailbox-properties.gob"
+#line 194 "mn-imap-mailbox-properties.gob"
 static void 
 mn_imap_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data)
-#line 330 "mn-imap-mailbox-properties.c"
+#line 366 "mn-imap-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::radio_toggled_h"
-#line 145 "mn-imap-mailbox-properties.gob"
-	g_return_if_fail (togglebutton != NULL);
-#line 145 "mn-imap-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_TOGGLE_BUTTON (togglebutton));
-#line 145 "mn-imap-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 339 "mn-imap-mailbox-properties.c"
 {
-#line 148 "mn-imap-mailbox-properties.gob"
+#line 196 "mn-imap-mailbox-properties.gob"
 	
     Self *self = user_data;
 
     gtk_widget_set_sensitive(selfp->mailbox_entry, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)));
+
     g_object_notify(G_OBJECT(self), "complete");
+    g_object_notify(G_OBJECT(self), "default-name");
   }}
-#line 348 "mn-imap-mailbox-properties.c"
+#line 379 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 155 "mn-imap-mailbox-properties.gob"
-static gboolean 
-mn_imap_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 354 "mn-imap-mailbox-properties.c"
+#line 205 "mn-imap-mailbox-properties.gob"
+static void 
+___5_mn_imap_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 385 "mn-imap-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+	{ if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::set_uri"
-#line 155 "mn-imap-mailbox-properties.gob"
-	g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 155 "mn-imap-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 155 "mn-imap-mailbox-properties.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 155 "mn-imap-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 365 "mn-imap-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::set_mailbox"
 {
-#line 158 "mn-imap-mailbox-properties.gob"
+#line 207 "mn-imap-mailbox-properties.gob"
 	
     Self *self = SELF(properties);
-    
-    if (MN_URI_IS_IMAP(uri))
+    MNIMAPMailbox *imap_mailbox = MN_IMAP_MAILBOX(mailbox);
+
+    PARENT_HANDLER(properties, mailbox);
+
+    if (! mn_utf8_strcasecmp(imap_mailbox->runtime_mailbox, "INBOX"))
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
+    else
       {
-	mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					      MN_URI_IS_SSL(uri),
-					      MN_URI_IS_INBAND_SSL(uri),
-					      uri->username,
-					      uri->password,
-					      uri->authmech,
-					      uri->hostname,
-					      uri->port);
-	
-	if (! strcmp(uri->path, "INBOX"))
-	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
-	else
-	  {
-	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
-	    gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), uri->path);
-	  }
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), ! mn_uri_has_query(uri, "noidle"));
-
-	return TRUE;
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
+	gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), imap_mailbox->runtime_mailbox);
       }
-    else
-      return FALSE;
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[imap_mailbox->use_idle_extension]), TRUE);
   }}
-#line 396 "mn-imap-mailbox-properties.c"
+#line 409 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
 
-#line 187 "mn-imap-mailbox-properties.gob"
-static MNURI * 
-mn_imap_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 402 "mn-imap-mailbox-properties.c"
+#line 224 "mn-imap-mailbox-properties.gob"
+static MNMailbox * 
+___6_mn_imap_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 416 "mn-imap-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+	((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+		((MNMailbox * )0))
 {
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::get_uri"
-#line 187 "mn-imap-mailbox-properties.gob"
-	g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 187 "mn-imap-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 409 "mn-imap-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox:Properties::get_mailbox"
 {
-#line 189 "mn-imap-mailbox-properties.gob"
+#line 226 "mn-imap-mailbox-properties.gob"
 	
     Self *self = SELF(properties);
-    gboolean ssl;
-    gboolean inband_ssl;
-    const char *username;
-    const char *password;
-    char *authmech;
-    const char *hostname;
-    int port;
-    const char *mailbox = NULL;
-    gboolean noidle;
-    MNURI *uri;
-
-    mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					  &ssl,
-					  &inband_ssl,
-					  &username,
-					  &password,
-					  &authmech,
-					  &hostname,
-					  &port);
-
-    mailbox = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio))
-      ? "INBOX"
-      : gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
-    noidle = ! gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->idle_check));
-
-    uri = mn_uri_new_imap(ssl, inband_ssl, username, password, authmech, hostname, port, mailbox, noidle);
-    g_free(authmech);
-
-    return uri;
+    MNIMAPMailboxUseIDLE use_idle;
+    MNMailbox *mailbox;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    for (use_idle = 0; use_idle < MN_IMAP_MAILBOX_N_USE_IDLE; use_idle++)
+      if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[use_idle])))
+	break;
+    
+    g_object_set(mailbox, "use-idle-extension", use_idle, NULL);
+
+    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)))
+      g_object_set(mailbox, "mailbox", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry)), NULL);
+
+    return mailbox;
   }}
-#line 444 "mn-imap-mailbox-properties.c"
+#line 443 "mn-imap-mailbox-properties.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-imap-mailbox-properties.gob b/src/mn-imap-mailbox-properties.gob
@@ -16,30 +16,40 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include "mn-pi-mailbox-properties.h"
 %}
+
+%privateheader{
+#include "mn-imap-mailbox.h"
+%}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
 #include "mn-pi-mailbox-properties-private.h"
 #include "mn-auth-combo-box.h"
 #include "mn-util.h"
 #include "mn-properties-dialog.h"
 %}
 
-class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mailbox:Properties)
+class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties
 {
+  private GtkWidget *inbox_radio;
+  private GtkWidget *other_radio;
+  private GtkWidget *mailbox_entry;
+  private GtkWidget *use_idle_radio[MN_IMAP_MAILBOX_N_USE_IDLE];
+
   property BOOLEAN complete (override)
     get
     {
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
-      const char *username;
       const char *hostname;
       gboolean other_active;
       const char *mailbox;
@@ -47,51 +57,59 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
       mn_pi_mailbox_properties_get_contents(pi,
 					    NULL,
 					    NULL,
-					    &username,
-					    NULL,
-					    NULL,
 					    &hostname,
 					    NULL);
       
       other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
       mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
 
-      complete = *username && *hostname && (! other_active || *mailbox);
+      complete = *hostname && (! other_active || *mailbox);
 #ifndef WITH_SSL
       if (complete)
-	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
 #endif /* WITH_SSL */
 
       g_value_set_boolean(VAL, complete);
     };
   
-  private GtkWidget *inbox_radio;
-  private GtkWidget *other_radio;
-  private GtkWidget *mailbox_entry;
-  private GtkWidget *idle_check;
+  property STRING default_name (override)
+    get
+    {
+      const char *username;
+      const char *hostname;
+      gboolean other_active;
+      const char *mailbox;
+
+      mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+						       &username,
+						       NULL);
+      mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+					    NULL,
+					    NULL,
+					    &hostname,
+					    NULL);
+
+      other_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio));
+      mailbox = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
+
+      g_value_take_string(VAL, mn_imap_mailbox_build_name(username, hostname, other_active ? mailbox : NULL));
+    };
 
   class_init (class)
   {
-    MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-    pi_class->label = "IMAP";
-    pi_class->default_port[0] = mn_uri_get_default_port("imap");
-    pi_class->default_port[1] = mn_uri_get_default_port("imaps");
+    p_class->type = "imap";
+    p_class->combo_label = "IMAP";
   }
 
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  init (self)
   {
-    GObject *object;
-    Self *self;
-    MNPIMailboxProperties *pi;
+    MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
     GtkWidget *hbox;
     GtkWidget *label;
+    int i;
     
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-    pi = MN_PI_MAILBOX_PROPERTIES(object);
-
     label = gtk_label_new(_("Mailbox:"));
     gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
     gtk_size_group_add_widget(pi->details_size_group, label);
@@ -110,7 +128,6 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
     selfp->other_radio = gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->inbox_radio), _("oth_er:"));
     selfp->mailbox_entry = gtk_entry_new();
     gtk_widget_set_sensitive(selfp->mailbox_entry, FALSE);
-    gtk_entry_set_activates_default(GTK_ENTRY(selfp->mailbox_entry), TRUE);
 
     hbox = gtk_hbox_new(FALSE, 12);
     gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
@@ -119,103 +136,109 @@ class MN:IMAP:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mai
     gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
     gtk_widget_show_all(hbox);
     
-    selfp->idle_check = gtk_check_button_new_with_mnemonic(_("U_se idle mode if possible"));
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), TRUE);
-    gtk_box_pack_start(GTK_BOX(pi->details_vbox), selfp->idle_check, FALSE, FALSE, 0);
-    gtk_widget_show(selfp->idle_check);
+    self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_NEVER, _("ne_ver"));
+    self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT, _("au_todetect"));
+    self_add_idle_usage(self, MN_IMAP_MAILBOX_USE_IDLE_ALWAYS, _("al_ways"));
+    
+    /* by default, autodetect is enabled */
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT]), TRUE);
 
     mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+LOGIN", "IMAP LOGIN");
 
-    mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the IMAP server"),
-				      pi->username_entry, _("Your username on the IMAP server"),
-				      pi->password_entry, _("Your password on the IMAP server (if left blank, you will be prompted for the password when needed)"),
-				      pi->port_spin[0], _("The port number of the IMAP server"),
-				      pi->port_spin[1], _("The port number of the IMAP server"),
-				      selfp->mailbox_entry, _("The mailbox name"),
-				      selfp->idle_check, _("If possible, whether to use idle mode or not"),
-				      NULL);
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+      gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_imap_mailbox_default_ports[i]);
+
+    mn_mailbox_properties_add_entry(MN_MAILBOX_PROPERTIES(self), GTK_ENTRY(selfp->mailbox_entry));
 
     g_signal_connect(selfp->inbox_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
     g_signal_connect(selfp->other_radio, "toggled", G_CALLBACK(self_radio_toggled_h), self);
-    g_signal_connect(selfp->mailbox_entry, "changed", G_CALLBACK(mn_pi_mailbox_properties_entry_changed_h), self);
-    
-    return object;
+
+    g_object_connect(selfp->mailbox_entry,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+		     NULL);
   }
   
   private void
-    radio_toggled_h (Gtk:Toggle:Button *togglebutton (check null type),
-		     gpointer user_data (check null))
+    add_idle_usage (self,
+		    MNIMAPMailboxUseIDLE usage,
+		    const char *mnemonic (check null))
+  {
+    MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+    GtkWidget *label;
+    GtkWidget *hbox;
+
+    if (usage == 0)
+      {
+	label = gtk_label_new(_("Use the <span style=\"italic\">IDLE</span> extension:"));
+	gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
+      }
+    else
+      label = gtk_label_new(NULL);
+
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    selfp->use_idle_radio[usage] = usage == 0
+      ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+      : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(selfp->use_idle_radio[0]), mnemonic);
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), selfp->use_idle_radio[usage], TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(pi->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(pi->details_size_group, label);
+  }
+  
+  private void
+    radio_toggled_h (GtkToggleButton *togglebutton, gpointer user_data)
   {
     Self *self = user_data;
 
     gtk_widget_set_sensitive(selfp->mailbox_entry, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)));
+
     g_object_notify(G_OBJECT(self), "complete");
+    g_object_notify(G_OBJECT(self), "default-name");
   }
   
-  interface MN:Mailbox:Properties private gboolean
-    set_uri (MN:Mailbox:Properties *properties (check null type),
-	     MN:URI *uri (check null type))
+  override (MN:Mailbox:Properties) void
+    set_mailbox (MNMailboxProperties *properties, MN:Mailbox *mailbox)
   {
     Self *self = SELF(properties);
-    
-    if (MN_URI_IS_IMAP(uri))
+    MNIMAPMailbox *imap_mailbox = MN_IMAP_MAILBOX(mailbox);
+
+    PARENT_HANDLER(properties, mailbox);
+
+    if (! mn_utf8_strcasecmp(imap_mailbox->runtime_mailbox, "INBOX"))
+      gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
+    else
       {
-	mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					      MN_URI_IS_SSL(uri),
-					      MN_URI_IS_INBAND_SSL(uri),
-					      uri->username,
-					      uri->password,
-					      uri->authmech,
-					      uri->hostname,
-					      uri->port);
-	
-	if (! strcmp(uri->path, "INBOX"))
-	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio), TRUE);
-	else
-	  {
-	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
-	    gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), uri->path);
-	  }
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->idle_check), ! mn_uri_has_query(uri, "noidle"));
-
-	return TRUE;
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->other_radio), TRUE);
+	gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_entry), imap_mailbox->runtime_mailbox);
       }
-    else
-      return FALSE;
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[imap_mailbox->use_idle_extension]), TRUE);
   }
 
-  interface MN:Mailbox:Properties private MNURI *
-    get_uri (MN:Mailbox:Properties *properties (check null type))
+  override (MN:Mailbox:Properties) MNMailbox *
+    get_mailbox (MNMailboxProperties *properties)
   {
     Self *self = SELF(properties);
-    gboolean ssl;
-    gboolean inband_ssl;
-    const char *username;
-    const char *password;
-    char *authmech;
-    const char *hostname;
-    int port;
-    const char *mailbox = NULL;
-    gboolean noidle;
-    MNURI *uri;
-
-    mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					  &ssl,
-					  &inband_ssl,
-					  &username,
-					  &password,
-					  &authmech,
-					  &hostname,
-					  &port);
-
-    mailbox = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->inbox_radio))
-      ? "INBOX"
-      : gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry));
-    noidle = ! gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->idle_check));
-
-    uri = mn_uri_new_imap(ssl, inband_ssl, username, password, authmech, hostname, port, mailbox, noidle);
-    g_free(authmech);
-
-    return uri;
+    MNIMAPMailboxUseIDLE use_idle;
+    MNMailbox *mailbox;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    for (use_idle = 0; use_idle < MN_IMAP_MAILBOX_N_USE_IDLE; use_idle++)
+      if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->use_idle_radio[use_idle])))
+	break;
+    
+    g_object_set(mailbox, "use-idle-extension", use_idle, NULL);
+
+    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->other_radio)))
+      g_object_set(mailbox, "mailbox", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_entry)), NULL);
+
+    return mailbox;
   }
 }
diff --git a/src/mn-imap-mailbox-properties.h b/src/mn-imap-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -60,8 +60,10 @@ GType	mn_imap_mailbox_properties_get_type	(void);
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
 #define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
 #else /* __GNUC__ && !__STRICT_ANSI__ */
 #define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_IMAP_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
 #endif /* __GNUC__ && !__STRICT_ANSI__ */
 
 
diff --git a/src/mn-imap-mailbox.c b/src/mn-imap-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -21,7 +21,7 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 36 "mn-imap-mailbox.gob"
+#line 43 "mn-imap-mailbox.gob"
 
 #include "config.h"
 #include <stdio.h>
@@ -33,6 +33,7 @@
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
 #include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
 #include "mn-util.h"
 #include "mn-message-mime.h"
 
@@ -45,80 +46,99 @@
 
 #define REMOVED(self)			(g_atomic_int_get(&(self)->_priv->removed))
 
-  enum
-  {
-    STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
-    STATE_CAPABILITY,
+enum
+{
+  STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+  STATE_CAPABILITY,
 #ifdef WITH_SSL
-    STATE_STARTTLS,
+  STATE_STARTTLS,
 #endif
 #ifdef WITH_SASL
-    STATE_AUTHENTICATE,
+  STATE_AUTHENTICATE,
 #endif
-    STATE_LOGIN,
-    STATE_EXAMINE,
-    STATE_SEARCH,
-    STATE_FETCH,
-    STATE_IDLE,
-    STATE_LOGOUT
-  };
+  STATE_LOGIN,
+  STATE_EXAMINE,
+  STATE_SEARCH,
+  STATE_FETCH,
+  STATE_IDLE,
+  STATE_LOGOUT
+};
+  
+typedef enum
+{
+  IDLE_STATE_NORMAL,
+  IDLE_STATE_IDLING,
+  IDLE_STATE_WAS_IDLING
+} IdleState;
+
+struct _MNClientSessionPrivate
+{
+  MNMailbox			*mailbox;
+  MNAuthenticatedMailbox	*authenticated_mailbox;
+  MNPIMailbox			*pi_mailbox;
+  MNIMAPMailbox			*self;
+  MNClientSession		*session;
+
+  const char			*server_software;
+  gboolean			server_software_supports_idle;
   
-  enum
-  {
-    RESULT_ERROR_LOGOUT		= -1, /* server reported an error, logout normally */
-    RESULT_ERROR_END		= -2, /* server reported an error, close the connection */
-    RESULT_DEFAULT_HANDLER	= -3  /* invoke the default response handler */
-  };
-
-  typedef enum
-  {
-    IDLE_STATE_NORMAL,
-    IDLE_STATE_IDLING,
-    IDLE_STATE_WAS_IDLING
-  } IdleState;
-
-  struct _MNClientSessionPrivate
-  {
-    MNMailbox			*mailbox;
-    MNAuthenticatedMailbox	*authenticated_mailbox;
-    MNIMAPMailbox		*self;
-    MNClientSession		*session;
-
-    int				numeric_tag;
-    char			tag[5];
-
-    char			**capabilities;
-    GSList			*auth_mechanisms;
-    gboolean			authenticated;
-
-    gboolean			search_received;
-    GSList			*fetch_numbers;
-    char			*fetch_set;
-
-    GSList			*received_numbers;
-    GSList			*messages;
+  int				numeric_tag;
+  char				tag[5];
+
+  char				**capabilities;
+  GSList			*auth_mechanisms;
+  gboolean			authenticated;
+  
+  gboolean			search_received;
+  GSList			*fetch_numbers;
+  char				*fetch_set;
+  
+  GSList			*received_numbers;
+  GSList			*messages;
 
 #ifdef WITH_SSL
-    gboolean			starttls_completed;
+  gboolean			starttls_completed;
 #endif
 #ifdef WITH_SASL
-    const char			*sasl_mechanism;
+  GSList			*sasl_remaining_mechanisms;
+  const char			*sasl_mechanism;
 #endif
 
-    IdleState			idle_state;
-    gboolean			could_idle;	/* could idle at least once */
-  };
+  IdleState			idle_state;
+  gboolean			could_idle;	/* could idle at least once */
+};
   
-  struct _MNClientSessionResponse
-  {
-    char		*continuation;
-    char		*tag;
-    char		*response;
-    char		*code;
-    char		*arguments;
-  };
-
-#line 122 "mn-imap-mailbox.c"
+struct _MNClientSessionResponse
+{
+  char		*continuation;
+  char		*tag;
+  char		*response;
+  char		*code;
+  char		*arguments;
+};
+
+int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 143, 143, 993 };
+
+/* variable taken from Evolution (camel-utf8.c) */
+static char *utf7_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
+
+#line 126 "mn-imap-mailbox.c"
+static const GEnumValue _mn_imap_mailbox_use_idle_values[] = {
+	{ MN_IMAP_MAILBOX_USE_IDLE_NEVER, (char *)"MN_IMAP_MAILBOX_USE_IDLE_NEVER", (char *)"never" },
+	{ MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT, (char *)"MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT", (char *)"autodetect" },
+	{ MN_IMAP_MAILBOX_USE_IDLE_ALWAYS, (char *)"MN_IMAP_MAILBOX_USE_IDLE_ALWAYS", (char *)"always" },
+	{ 0, NULL, NULL }
+};
+
+GType
+mn_imap_mailbox_use_idle_get_type (void)
+{
+	static GType type = 0;
+	if ___GOB_UNLIKELY(type == 0)
+		type = g_enum_register_static ("MNIMAPMailboxUseIDLE", _mn_imap_mailbox_use_idle_values);
+	return type;
+}
+
 /* self casting macros */
 #define SELF(x) MN_IMAP_MAILBOX(x)
 #define SELF_CONST(x) MN_IMAP_MAILBOX_CONST(x)
@@ -133,18 +153,21 @@ typedef MNIMAPMailbox Self;
 typedef MNIMAPMailboxClass SelfClass;
 
 /* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_imap_mailbox_init (MNIMAPMailbox * o) G_GNUC_UNUSED;
 static void mn_imap_mailbox_class_init (MNIMAPMailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_imap_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_imap_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_imap_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_imap_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_imap_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
+static gboolean mn_imap_mailbox_split_uri_location (const char * location, int maxlen, char * hostport, char * path, gboolean * has_path) G_GNUC_UNUSED;
+static void ___6_mn_imap_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
 static int mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_imap_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_imap_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_imap_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password) G_GNUC_UNUSED;
 static int mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -159,15 +182,15 @@ static int mn_imap_mailbox_enter_idle_cb (MNClientSession * session, MNClientSes
 static int mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void ___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_imap_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void ___1b_mn_imap_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_imap_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_imap_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static MNClientSessionResponse * mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static void mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_imap_mailbox_default_handler (MNClientSessionResponse * response, MNClientSessionPrivate * priv, int error_code_when_bye) G_GNUC_UNUSED;
 static void mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static void mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
+static void mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response) G_GNUC_UNUSED;
 static int mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...) G_GNUC_UNUSED;
 static gboolean mn_imap_mailbox_handle_capability_code (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
 static void mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities) G_GNUC_UNUSED;
@@ -175,19 +198,28 @@ static gboolean mn_imap_mailbox_session_has_capability (MNClientSessionPrivate *
 static int mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv) 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, gboolean tried_login) G_GNUC_UNUSED;
+static void mn_imap_mailbox_session_detect_imapd (MNClientSession * session, MNClientSessionResponse * greeting_response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static char * mn_imap_mailbox_quote (const char * str) G_GNUC_UNUSED;
+static char * mn_imap_mailbox_utf8_to_imap_utf7 (const char * str) G_GNUC_UNUSED;
+static void mn_imap_mailbox_imap_utf7_closeb64 (GString * out, guint32 v, guint32 i) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_MAILBOX,
+	PROP_USE_IDLE_EXTENSION
+};
 
 /* pointer to the class of our parent */
-static MNAuthenticatedMailboxClass *parent_class = NULL;
+static MNPIMailboxClass *parent_class = NULL;
 
 /* Short form macros */
+#define self_split_uri_location mn_imap_mailbox_split_uri_location
 #define self_handle_greeting_cb mn_imap_mailbox_handle_greeting_cb
 #define self_enter_capability_cb mn_imap_mailbox_enter_capability_cb
 #define self_handle_capability_cb mn_imap_mailbox_handle_capability_cb
 #define self_enter_starttls_cb mn_imap_mailbox_enter_starttls_cb
 #define self_handle_starttls_cb mn_imap_mailbox_handle_starttls_cb
-#define self_sasl_get_username_cb mn_imap_mailbox_sasl_get_username_cb
-#define self_sasl_get_password_cb mn_imap_mailbox_sasl_get_password_cb
+#define self_sasl_get_credentials_cb mn_imap_mailbox_sasl_get_credentials_cb
 #define self_enter_authenticate_cb mn_imap_mailbox_enter_authenticate_cb
 #define self_handle_authenticate_cb mn_imap_mailbox_handle_authenticate_cb
 #define self_enter_login_cb mn_imap_mailbox_enter_login_cb
@@ -206,7 +238,7 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
 #define self_warning_cb mn_imap_mailbox_warning_cb
 #define self_response_new_cb mn_imap_mailbox_response_new_cb
 #define self_response_free_cb mn_imap_mailbox_response_free_cb
-#define self_custom_handler_cb mn_imap_mailbox_custom_handler_cb
+#define self_default_handler mn_imap_mailbox_default_handler
 #define self_pre_read_cb mn_imap_mailbox_pre_read_cb
 #define self_post_read_cb mn_imap_mailbox_post_read_cb
 #define self_session_set_error_from_arguments mn_imap_mailbox_session_set_error_from_arguments
@@ -217,7 +249,11 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
 #define self_session_after_capability mn_imap_mailbox_session_after_capability
 #define self_session_authenticate mn_imap_mailbox_session_authenticate
 #define self_session_authenticate_fallback mn_imap_mailbox_session_authenticate_fallback
+#define self_session_detect_imapd mn_imap_mailbox_session_detect_imapd
 #define self_quote mn_imap_mailbox_quote
+#define self_utf8_to_imap_utf7 mn_imap_mailbox_utf8_to_imap_utf7
+#define self_imap_utf7_closeb64 mn_imap_mailbox_imap_utf7_closeb64
+#define self_build_name mn_imap_mailbox_build_name
 GType
 mn_imap_mailbox_get_type (void)
 {
@@ -237,7 +273,7 @@ mn_imap_mailbox_get_type (void)
 			NULL
 		};
 
-		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNIMAPMailbox", &info, (GTypeFlags)0);
+		type = g_type_register_static (MN_TYPE_PI_MAILBOX, "MNIMAPMailbox", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -269,9 +305,15 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 138 "mn-imap-mailbox.gob"
+#line 156 "mn-imap-mailbox.gob"
 	if(self->_priv->idle_session_mutex) { g_mutex_free ((gpointer) self->_priv->idle_session_mutex); self->_priv->idle_session_mutex = NULL; }
-#line 275 "mn-imap-mailbox.c"
+#line 311 "mn-imap-mailbox.c"
+#line 158 "mn-imap-mailbox.gob"
+	if(self->mailbox) { g_free ((gpointer) self->mailbox); self->mailbox = NULL; }
+#line 314 "mn-imap-mailbox.c"
+#line 165 "mn-imap-mailbox.gob"
+	if(self->runtime_mailbox) { g_free ((gpointer) self->runtime_mailbox); self->runtime_mailbox = NULL; }
+#line 317 "mn-imap-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -279,51 +321,156 @@ static void
 mn_imap_mailbox_init (MNIMAPMailbox * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNIMAPMailboxPrivate);
-#line 138 "mn-imap-mailbox.gob"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_IMAP_MAILBOX,MNIMAPMailboxPrivate);
+#line 156 "mn-imap-mailbox.gob"
 	o->_priv->idle_session_mutex = g_mutex_new();
-#line 286 "mn-imap-mailbox.c"
+#line 328 "mn-imap-mailbox.c"
 }
 #undef __GOB_FUNCTION__
-#line 140 "mn-imap-mailbox.gob"
+#line 174 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_class_init (MNIMAPMailboxClass * class G_GNUC_UNUSED)
-#line 292 "mn-imap-mailbox.c"
+#line 334 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
 	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
 
 	g_type_class_add_private(class,sizeof(MNIMAPMailboxPrivate));
 
-	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
+	parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX);
 
-#line 145 "mn-imap-mailbox.gob"
+#line 180 "mn-imap-mailbox.gob"
 	g_object_class->constructor = ___2_mn_imap_mailbox_constructor;
-#line 162 "mn-imap-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_imap_mailbox_impl_is;
-#line 168 "mn-imap-mailbox.gob"
-	mn_mailbox_class->removed = ___4_mn_imap_mailbox_removed;
-#line 778 "mn-imap-mailbox.gob"
-	mn_mailbox_class->impl_check = ___1a_mn_imap_mailbox_impl_check;
-#line 310 "mn-imap-mailbox.c"
+#line 194 "mn-imap-mailbox.gob"
+	mn_mailbox_class->seal = ___3_mn_imap_mailbox_seal;
+#line 216 "mn-imap-mailbox.gob"
+	mn_mailbox_class->parse_uri = ___4_mn_imap_mailbox_parse_uri;
+#line 317 "mn-imap-mailbox.gob"
+	mn_mailbox_class->removed = ___6_mn_imap_mailbox_removed;
+#line 1012 "mn-imap-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_check = ___1b_mn_imap_mailbox_impl_check;
+#line 355 "mn-imap-mailbox.c"
 	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_string
+		("mailbox" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 "INBOX" /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_IGNORE_CASE | MN_MAILBOX_PARAM_PERMANENT | G_PARAM_CONSTRUCT));
+	g_object_class_install_property (g_object_class,
+		PROP_MAILBOX,
+		param_spec);
+	param_spec = g_param_spec_enum
+		("use_idle_extension" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 MN_TYPE_IMAP_MAILBOX_USE_IDLE /* enum_type */,
+		 MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT | G_PARAM_CONSTRUCT));
+	g_object_class_install_property (g_object_class,
+		PROP_USE_IDLE_EXTENSION,
+		param_spec);
+    }
  {
-#line 141 "mn-imap-mailbox.gob"
+#line 175 "mn-imap-mailbox.gob"
 
-    MN_MAILBOX_CLASS(class)->format = "IMAP";
+    MN_MAILBOX_CLASS(class)->type = "imap";
+    MN_PI_MAILBOX_CLASS(class)->default_ports = mn_imap_mailbox_default_ports;
   
-#line 317 "mn-imap-mailbox.c"
+#line 388 "mn-imap-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
 
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::set_property"
+{
+	MNIMAPMailbox *self G_GNUC_UNUSED;
+
+	self = MN_IMAP_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_MAILBOX:
+		{
+#line 159 "mn-imap-mailbox.gob"
+{ char *old = self->mailbox; self->mailbox = g_value_dup_string (VAL); g_free (old); }
+#line 409 "mn-imap-mailbox.c"
+		}
+		break;
+	case PROP_USE_IDLE_EXTENSION:
+		{
+#line 168 "mn-imap-mailbox.gob"
+self->use_idle_extension = g_value_get_enum (VAL);
+#line 416 "mn-imap-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::get_property"
+{
+	MNIMAPMailbox *self G_GNUC_UNUSED;
+
+	self = MN_IMAP_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_MAILBOX:
+		{
+#line 159 "mn-imap-mailbox.gob"
+g_value_set_string (VAL, self->mailbox);
+#line 447 "mn-imap-mailbox.c"
+		}
+		break;
+	case PROP_USE_IDLE_EXTENSION:
+		{
+#line 168 "mn-imap-mailbox.gob"
+g_value_set_enum (VAL, self->use_idle_extension);
+#line 454 "mn-imap-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
 
 
-#line 145 "mn-imap-mailbox.gob"
+#line 180 "mn-imap-mailbox.gob"
 static GObject * 
 ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 327 "mn-imap-mailbox.c"
+#line 474 "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): \
@@ -331,65 +478,187 @@ ___2_mn_imap_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::constructor"
 {
-#line 147 "mn-imap-mailbox.gob"
+#line 182 "mn-imap-mailbox.gob"
 	
     GObject *object;
     MNMailbox *mailbox;
 
     object = PARENT_HANDLER(type, n_construct_properties, construct_params);
     mailbox = MN_MAILBOX(object);
-
-#ifndef WITH_SSL
-    if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
-      mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
+    
+    mn_mailbox_set_format(mailbox, "IMAP");
 
     return object;
   }}
-#line 350 "mn-imap-mailbox.c"
+#line 494 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 162 "mn-imap-mailbox.gob"
-static gboolean 
-___3_mn_imap_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 357 "mn-imap-mailbox.c"
+#line 194 "mn-imap-mailbox.gob"
+static void 
+___3_mn_imap_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 501 "mn-imap-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::seal"
+{
+#line 196 "mn-imap-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+
+    PARENT_HANDLER(mailbox);
+
+    self->runtime_mailbox = g_strdup(self->mailbox ? self->mailbox : "INBOX");
+
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+					      MN_PI_MAILBOX(mailbox)->hostname,
+					      self->runtime_mailbox);
+  }}
+#line 521 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 216 "mn-imap-mailbox.gob"
+static MNMailbox * 
+___4_mn_imap_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 528 "mn-imap-mailbox.c"
 #define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_is"
-#line 162 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 162 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 368 "mn-imap-mailbox.c"
-{
-#line 164 "mn-imap-mailbox.gob"
+	((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+		(* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::parse_uri"
+{
+#line 218 "mn-imap-mailbox.gob"
 	
-    return MN_URI_IS_IMAP(uri);
+    int len;
+    int buflen;
+    char *username = NULL;
+    char *authmech = NULL;
+    char *hostname;
+    char *path = NULL;
+    int port;
+    MNMailbox *mailbox;
+
+    len = strlen(uri);
+    buflen = len + 1;
+    
+    {
+      char scheme_buf[buflen];
+      char auth_buf[buflen];
+      char location_buf[buflen];
+      char hostport_buf[buflen];
+      char path_buf[buflen];
+      char username_buf[buflen];
+      char authmech_buf[buflen];
+      char hostname_buf[buflen];
+      gboolean has_auth;
+      gboolean has_path;
+      gboolean has_username = FALSE;
+      gboolean has_authmech = FALSE;
+
+      if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+	return NULL;
+
+      if (strcmp(scheme_buf, "imap"))
+	return NULL;
+
+      if (! self_split_uri_location(location_buf, len, hostport_buf, path_buf, &has_path))
+	return NULL;
+
+      if (has_auth)
+	{
+	  if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+	    return NULL;
+
+	  if (has_authmech && ! strcmp(authmech_buf, "*"))
+	    has_authmech = FALSE;
+	}
+
+      mn_pi_mailbox_split_uri_hostport(hostport_buf, len, hostname_buf, &port);
+
+      if (has_username)
+	username = gnome_vfs_unescape_string(username_buf, NULL);
+      if (has_authmech)
+	authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+      hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+      if (has_path)
+	path = gnome_vfs_unescape_string(path_buf, NULL);
+    }
+
+    mailbox = mn_mailbox_new("imap",
+			     "username", username,
+			     "authmech", authmech,
+			     "hostname", hostname,
+			     "port", port,
+			     "mailbox", path,
+			     NULL);
+
+    g_free(username);
+    g_free(authmech);
+    g_free(hostname);
+    g_free(path);
+
+    return mailbox;
   }}
-#line 374 "mn-imap-mailbox.c"
+#line 608 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 168 "mn-imap-mailbox.gob"
+#line 290 "mn-imap-mailbox.gob"
+static gboolean 
+mn_imap_mailbox_split_uri_location (const char * location, int maxlen, char * hostport, char * path, gboolean * has_path)
+#line 615 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::split_uri_location"
+#line 290 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (location != NULL, (gboolean )0);
+#line 290 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (hostport != NULL, (gboolean )0);
+#line 290 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (path != NULL, (gboolean )0);
+#line 290 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (has_path != NULL, (gboolean )0);
+#line 626 "mn-imap-mailbox.c"
+{
+#line 296 "mn-imap-mailbox.gob"
+	
+    char *pat;
+    int n;
+
+    pat = g_strdup_printf("%%%i[^/]/%%%is", maxlen, maxlen);
+    n = sscanf(location, pat, hostport, path);
+    g_free(pat);
+    
+    g_return_val_if_fail(n >= 1, FALSE);
+
+    *has_path = n == 2;
+    if (*has_path)
+      {
+	/* we only handle enc_mailbox (see the RFC 2192 ABNF) */
+	if (strspn(path, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*'(),%&=~:@/") != strlen(path))
+	  return FALSE;		/* more than enc_mailbox, unhandled */
+      }
+
+    return TRUE;
+  }}
+#line 649 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 317 "mn-imap-mailbox.gob"
 static void 
-___4_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 381 "mn-imap-mailbox.c"
+___6_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 655 "mn-imap-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
 	{ if(MN_MAILBOX_CLASS(parent_class)->removed) \
 		(* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::removed"
-#line 168 "mn-imap-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 168 "mn-imap-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 391 "mn-imap-mailbox.c"
 {
-#line 170 "mn-imap-mailbox.gob"
+#line 319 "mn-imap-mailbox.gob"
 	
     Self *self = SELF(mailbox);
 
@@ -405,25 +674,18 @@ ___4_mn_imap_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
 
     PARENT_HANDLER(mailbox);
   }}
-#line 409 "mn-imap-mailbox.c"
+#line 678 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 186 "mn-imap-mailbox.gob"
+#line 335 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 416 "mn-imap-mailbox.c"
+#line 685 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_greeting_cb"
-#line 186 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 186 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 186 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 425 "mn-imap-mailbox.c"
 {
-#line 190 "mn-imap-mailbox.gob"
+#line 339 "mn-imap-mailbox.gob"
 	
     priv->session = session;
 
@@ -431,6 +693,7 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
     else if (! response->tag && IS_OK(response))
       {
+	self_session_detect_imapd(session, response, priv);
 	return self_handle_capability_code(priv, response)
 	  ? self_session_after_capability(priv)
 	  : STATE_CAPABILITY;
@@ -438,52 +701,44 @@ mn_imap_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
     else if (! response->tag && IS(response, "PREAUTH"))
       {
 	priv->authenticated = TRUE;
+	self_session_detect_imapd(session, response, priv);
 	return self_handle_capability_code(priv, response)
 	  ? self_session_after_capability(priv)
 	  : STATE_CAPABILITY;
       }
     else if (! response->tag && IS_BYE(response))
-      return RESULT_ERROR_END;
+      {
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+      }
     else
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
   }}
-#line 451 "mn-imap-mailbox.c"
+#line 718 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 214 "mn-imap-mailbox.gob"
+#line 368 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_capability_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 457 "mn-imap-mailbox.c"
+#line 724 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_capability_cb"
-#line 214 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 214 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 464 "mn-imap-mailbox.c"
 {
-#line 217 "mn-imap-mailbox.gob"
+#line 371 "mn-imap-mailbox.gob"
 	
     return self_session_write(priv, "CAPABILITY");
   }}
-#line 470 "mn-imap-mailbox.c"
+#line 732 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 221 "mn-imap-mailbox.gob"
+#line 375 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 476 "mn-imap-mailbox.c"
+#line 738 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_cb"
-#line 221 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 221 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 221 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 485 "mn-imap-mailbox.c"
 {
-#line 225 "mn-imap-mailbox.gob"
+#line 379 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -495,10 +750,13 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
 	      {
 		return priv->capabilities
 		  ? self_session_after_capability(priv)
-		  : mn_client_session_error(session, _("server did not send capabilities"));
+		  : mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send capabilities"));
 	      }
 	    else if (IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -509,24 +767,19 @@ mn_imap_mailbox_handle_capability_cb (MNClientSession * session, MNClientSession
 	return MN_CLIENT_SESSION_RESULT_CONTINUE;
       }
     
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }}
-#line 515 "mn-imap-mailbox.c"
+#line 773 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 253 "mn-imap-mailbox.gob"
+#line 410 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 521 "mn-imap-mailbox.c"
+#line 779 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_starttls_cb"
-#line 253 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 253 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 528 "mn-imap-mailbox.c"
 {
-#line 256 "mn-imap-mailbox.gob"
+#line 413 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SSL
     return self_session_write(priv, "STARTTLS");
@@ -534,24 +787,17 @@ mn_imap_mailbox_enter_starttls_cb (MNClientSession * session, MNClientSessionPri
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 538 "mn-imap-mailbox.c"
+#line 791 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 264 "mn-imap-mailbox.gob"
+#line 421 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 544 "mn-imap-mailbox.c"
+#line 797 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_starttls_cb"
-#line 264 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 264 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 264 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 553 "mn-imap-mailbox.c"
 {
-#line 268 "mn-imap-mailbox.gob"
+#line 425 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SSL
     if (response->continuation)
@@ -565,7 +811,7 @@ mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionRe
 		priv->starttls_completed = TRUE;
 		return mn_client_session_enable_ssl(session)
 		  ? STATE_CAPABILITY
-		  : RESULT_ERROR_END;
+		  : MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	      }
 	    else if (IS_BAD(response))
 	      return self_session_authenticate(priv);
@@ -574,83 +820,65 @@ mn_imap_mailbox_handle_starttls_cb (MNClientSession * session, MNClientSessionRe
 	  }
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
 #else
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 583 "mn-imap-mailbox.c"
+#line 829 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 296 "mn-imap-mailbox.gob"
-static const char * 
-mn_imap_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 589 "mn-imap-mailbox.c"
+#line 453 "mn-imap-mailbox.gob"
+static void 
+mn_imap_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password)
+#line 835 "mn-imap-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::sasl_get_username_cb"
-#line 296 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (const char * )0);
-#line 296 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 596 "mn-imap-mailbox.c"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::sasl_get_credentials_cb"
 {
-#line 299 "mn-imap-mailbox.gob"
+#line 458 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SASL
-    return priv->mailbox->uri->username;
-#else
-    g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
-  }}
-#line 606 "mn-imap-mailbox.c"
-#undef __GOB_FUNCTION__
+    g_return_if_fail(username != NULL || password != NULL);
 
-#line 307 "mn-imap-mailbox.gob"
-static const char * 
-mn_imap_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 612 "mn-imap-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::sasl_get_password_cb"
-#line 307 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (const char * )0);
-#line 307 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 619 "mn-imap-mailbox.c"
-{
-#line 310 "mn-imap-mailbox.gob"
-	
-#ifdef WITH_SASL
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    return priv->authenticated_mailbox->password;
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+					      username != NULL,
+					      password != NULL);
+
+    if (username)
+      *username = priv->authenticated_mailbox->runtime_username;
+
+    if (password)
+      *password = priv->authenticated_mailbox->runtime_password;
 #else
-    g_return_val_if_reached(NULL);
+    g_return_if_reached();
 #endif /* WITH_SASL */
   }}
-#line 630 "mn-imap-mailbox.c"
+#line 857 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 319 "mn-imap-mailbox.gob"
+#line 476 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 636 "mn-imap-mailbox.c"
+#line 863 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_authenticate_cb"
-#line 319 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 319 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 643 "mn-imap-mailbox.c"
 {
-#line 322 "mn-imap-mailbox.gob"
+#line 479 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SASL
+    priv->sasl_mechanism = NULL;
+
     if (mn_client_session_sasl_authentication_start(priv->session,
 						    "imap",
-						    priv->auth_mechanisms,
-						    priv->mailbox->uri->authmech,
+						    priv->sasl_remaining_mechanisms,
+						    priv->pi_mailbox->authmech,
 						    &priv->sasl_mechanism,
-						    FALSE /* [1] */))
-      return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+						    NULL,	/* [1] */
+						    NULL))	/* [1] */
+      {
+	g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+	return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+      }
     else
       return priv->authenticated_mailbox->cancelled
 	? STATE_LOGOUT
@@ -664,24 +892,17 @@ mn_imap_mailbox_enter_authenticate_cb (MNClientSession * session, MNClientSessio
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 668 "mn-imap-mailbox.c"
+#line 896 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 345 "mn-imap-mailbox.gob"
+#line 508 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 674 "mn-imap-mailbox.c"
+#line 902 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_authenticate_cb"
-#line 345 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 345 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 345 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 683 "mn-imap-mailbox.c"
 {
-#line 349 "mn-imap-mailbox.gob"
+#line 512 "mn-imap-mailbox.gob"
 	
 #ifdef WITH_SASL
     if (response->tag)
@@ -716,12 +937,14 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
 		      : STATE_CAPABILITY;
 		  }
 		else
-		  return MN_CLIENT_SESSION_RESULT_END;
+		  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	      }
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return priv->authenticated_mailbox->cancelled
-		? STATE_LOGOUT
-		: self_session_authenticate_fallback(priv, FALSE);
+	      {
+		return priv->authenticated_mailbox->cancelled
+		  ? STATE_LOGOUT
+		  : self_session_authenticate_fallback(priv, FALSE);
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -729,32 +952,27 @@ mn_imap_mailbox_handle_authenticate_cb (MNClientSession * session, MNClientSessi
     else if (response->continuation)
       return mn_client_session_sasl_authentication_step(session, response->continuation);
     
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
 #else
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 738 "mn-imap-mailbox.c"
+#line 961 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 402 "mn-imap-mailbox.gob"
+#line 567 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 744 "mn-imap-mailbox.c"
+#line 967 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_login_cb"
-#line 402 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 402 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 751 "mn-imap-mailbox.c"
 {
-#line 405 "mn-imap-mailbox.gob"
+#line 570 "mn-imap-mailbox.gob"
 	
     if (self_session_has_capability(priv, "LOGINDISABLED"))
       {
 	mn_client_session_notice(session, _("server advertised LOGINDISABLED, not using LOGIN authentication"));
-	mn_client_session_error(session, _("unable to login"));
+	mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to login"));
 	return STATE_LOGOUT;
       }
     else
@@ -763,12 +981,14 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
 	char *quoted_password;
 	int result;
 
-	mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-	if (! priv->authenticated_mailbox->password)
+	mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+
+	if (! priv->authenticated_mailbox->runtime_username
+	    || ! priv->authenticated_mailbox->runtime_password)
 	  return STATE_LOGOUT;
 
-	quoted_username = self_quote(priv->mailbox->uri->username);
-	quoted_password = self_quote(priv->authenticated_mailbox->password);
+	quoted_username = self_quote(priv->authenticated_mailbox->runtime_username);
+	quoted_password = self_quote(priv->authenticated_mailbox->runtime_password);
 	result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
 	g_free(quoted_username);
 	g_free(quoted_password);
@@ -776,24 +996,17 @@ mn_imap_mailbox_enter_login_cb (MNClientSession * session, MNClientSessionPrivat
 	return result;
       }
   }}
-#line 780 "mn-imap-mailbox.c"
+#line 1000 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 432 "mn-imap-mailbox.gob"
+#line 599 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 786 "mn-imap-mailbox.c"
+#line 1006 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_login_cb"
-#line 432 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 432 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 432 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 795 "mn-imap-mailbox.c"
 {
-#line 436 "mn-imap-mailbox.gob"
+#line 603 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -815,52 +1028,44 @@ mn_imap_mailbox_handle_login_cb (MNClientSession * session, MNClientSessionRespo
 	  }
       }
     
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }}
-#line 821 "mn-imap-mailbox.c"
+#line 1034 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 460 "mn-imap-mailbox.gob"
+#line 627 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_examine_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 827 "mn-imap-mailbox.c"
+#line 1040 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_examine_cb"
-#line 460 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 460 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 834 "mn-imap-mailbox.c"
 {
-#line 463 "mn-imap-mailbox.gob"
+#line 630 "mn-imap-mailbox.gob"
 	
+    char *utf7_mailbox;
     char *quoted_mailbox;
     int result;
 
-    quoted_mailbox = self_quote(priv->mailbox->uri->path);
+    utf7_mailbox = self_utf8_to_imap_utf7(priv->self->runtime_mailbox);
+    quoted_mailbox = self_quote(utf7_mailbox);
+    g_free(utf7_mailbox);
+    
     result = self_session_write(priv, "EXAMINE %s", quoted_mailbox);
     g_free(quoted_mailbox);
 
     return result;
   }}
-#line 847 "mn-imap-mailbox.c"
+#line 1059 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 474 "mn-imap-mailbox.gob"
+#line 645 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 853 "mn-imap-mailbox.c"
+#line 1065 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_examine_cb"
-#line 474 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 474 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 474 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 862 "mn-imap-mailbox.c"
 {
-#line 478 "mn-imap-mailbox.gob"
+#line 649 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -871,30 +1076,28 @@ mn_imap_mailbox_handle_examine_cb (MNClientSession * session, MNClientSessionRes
 	    if (IS_OK(response))
 	      return STATE_SEARCH;
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }}
-#line 883 "mn-imap-mailbox.c"
+#line 1091 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 497 "mn-imap-mailbox.gob"
+#line 671 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 889 "mn-imap-mailbox.c"
+#line 1097 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_search_cb"
-#line 497 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 497 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 896 "mn-imap-mailbox.c"
 {
-#line 500 "mn-imap-mailbox.gob"
+#line 674 "mn-imap-mailbox.gob"
 	
     priv->search_received = FALSE;
 
@@ -906,24 +1109,17 @@ mn_imap_mailbox_enter_search_cb (MNClientSession * session, MNClientSessionPriva
     
     return self_session_write(priv, "SEARCH UNSEEN");
   }}
-#line 910 "mn-imap-mailbox.c"
+#line 1113 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 512 "mn-imap-mailbox.gob"
+#line 686 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 916 "mn-imap-mailbox.c"
+#line 1119 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_search_cb"
-#line 512 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 512 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 512 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 925 "mn-imap-mailbox.c"
 {
-#line 516 "mn-imap-mailbox.gob"
+#line 690 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -944,16 +1140,17 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
 			gdk_flush();
 			GDK_THREADS_LEAVE();
 
-			return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
-			  ? STATE_IDLE
-			  : STATE_LOGOUT;
+			return STATE_IDLE;
 		      }
 		  }
 		else		/* compliance error */
-		  return mn_client_session_error(session, _("server did not send search results"));
+		  return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send search results"));
 	      }
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -989,24 +1186,19 @@ mn_imap_mailbox_handle_search_cb (MNClientSession * session, MNClientSessionResp
 	return MN_CLIENT_SESSION_RESULT_CONTINUE;
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }}
-#line 995 "mn-imap-mailbox.c"
+#line 1192 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 584 "mn-imap-mailbox.gob"
+#line 759 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1001 "mn-imap-mailbox.c"
+#line 1198 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_fetch_cb"
-#line 584 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 584 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1008 "mn-imap-mailbox.c"
 {
-#line 587 "mn-imap-mailbox.gob"
+#line 762 "mn-imap-mailbox.gob"
 	
     g_return_val_if_fail(priv->fetch_set != NULL, 0);
 
@@ -1018,24 +1210,17 @@ mn_imap_mailbox_enter_fetch_cb (MNClientSession * session, MNClientSessionPrivat
 
     return self_session_write(priv, "FETCH %s BODY[HEADER]", priv->fetch_set);
   }}
-#line 1022 "mn-imap-mailbox.c"
+#line 1214 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 599 "mn-imap-mailbox.gob"
+#line 774 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1028 "mn-imap-mailbox.c"
+#line 1220 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_fetch_cb"
-#line 599 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 599 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 599 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1037 "mn-imap-mailbox.c"
 {
-#line 603 "mn-imap-mailbox.gob"
+#line 778 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -1050,19 +1235,32 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
 		MN_LIST_FOREACH(l, priv->fetch_numbers)
 		  if (! g_slist_find(priv->received_numbers, l->data))
 		    /* compliance error */
-		    return mn_client_session_error(session, _("server did not send all the messages we requested"));
+		    return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send all the messages we requested"));
 		    
 		GDK_THREADS_ENTER();
+
 		mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+		/*
+		 * In impl_check(), we do not hold the GDK lock while
+		 * unreffing the message list. We have just exposed
+		 * the list to other threads through our
+		 * mn_mailbox_set_messages() call, so unref it here,
+		 * while we hold the GDK lock.
+		 */
+		mn_g_object_slist_free(priv->messages);
+		priv->messages = NULL;
+
 		gdk_flush();
 		GDK_THREADS_LEAVE();
 		
-		return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
-		  ? STATE_IDLE
-		  : STATE_LOGOUT;
+		return STATE_IDLE;
 	      }
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -1095,74 +1293,105 @@ mn_imap_mailbox_handle_fetch_cb (MNClientSession * session, MNClientSessionRespo
 		
 		buf = mn_client_session_read(session, len);
 		if (! buf)
-		  return MN_CLIENT_SESSION_RESULT_END;
+		  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 		
-		priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox->uri, buf, len));
+		priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox, buf, len));
 		
 		/* read end of line (after literal) */
 		if (! mn_client_session_read_line(session))
-		  return MN_CLIENT_SESSION_RESULT_END;
+		  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	      }
 	    else
-	      priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox->uri, _("unable to fetch message")));
+	      priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox, _("unable to fetch message")));
 
 	    return MN_CLIENT_SESSION_RESULT_CONTINUE;
 	  }
       }
 	
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }}
-#line 1116 "mn-imap-mailbox.c"
+#line 1314 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 680 "mn-imap-mailbox.gob"
+#line 868 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_idle_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1122 "mn-imap-mailbox.c"
+#line 1320 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_idle_cb"
-#line 680 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 680 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1129 "mn-imap-mailbox.c"
 {
-#line 683 "mn-imap-mailbox.gob"
+#line 871 "mn-imap-mailbox.gob"
 	
+    if (! REMOVED(priv->self))
+      {
+	if (priv->self->use_idle_extension == MN_IMAP_MAILBOX_USE_IDLE_NEVER)
+	  mn_client_session_notice(session, _("\"Use the IDLE extension\" set to \"never\" in the mailbox properties, logging out"));
+	else
+	  {
+	    if (self_session_has_capability(priv, "IDLE"))
+	      {
+		switch (priv->self->use_idle_extension)
+		  {
+		  case MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT:
+		    if (priv->server_software_supports_idle)
+		      goto idle;
+		    else
+		      mn_client_session_notice(session, _("the remote server runs %s, not using the IDLE extension"), priv->server_software);
+		    break;
+		    
+		  case MN_IMAP_MAILBOX_USE_IDLE_ALWAYS:
+		    if (! priv->server_software_supports_idle)
+		      mn_client_session_warning(session, _("the remote server runs %s, the IDLE extension might not function properly"), priv->server_software);
+		    goto idle;
+		    break;
+		    
+		  default:
+		    g_return_val_if_reached(0);
+		  }
+	      }
+	    else
+	      mn_client_session_notice(session, _("the remote server does not support the IDLE extension, logging out"));
+	  }
+      }
+
+    return STATE_LOGOUT;
+
+  idle:
     priv->idle_state = IDLE_STATE_NORMAL;
-    return REMOVED(priv->self) ? STATE_LOGOUT : self_session_write(priv, "IDLE");
+    return self_session_write(priv, "IDLE");
   }}
-#line 1136 "mn-imap-mailbox.c"
+#line 1364 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 688 "mn-imap-mailbox.gob"
+#line 911 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1142 "mn-imap-mailbox.c"
+#line 1370 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_idle_cb"
-#line 688 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 688 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 688 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1151 "mn-imap-mailbox.c"
 {
-#line 692 "mn-imap-mailbox.gob"
+#line 915 "mn-imap-mailbox.gob"
 	
     if (priv->idle_state == IDLE_STATE_IDLING)
       {
 	if (response->continuation || response->tag)
 	  return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 
-	priv->idle_state = IDLE_STATE_WAS_IDLING;
-
 	if (IS_BYE(response))
-	  return MN_CLIENT_SESSION_RESULT_END; /* we'll reconnect */
-	else
-	  /* any other response wakes us up */
-	  return mn_client_session_write(session, "DONE");
+	  {
+	    priv->idle_state = IDLE_STATE_WAS_IDLING;
+	    return MN_CLIENT_SESSION_RESULT_DISCONNECT; /* we'll reconnect */
+	  }
+	else if (response->arguments
+		 && mn_str_isnumeric(response->response)
+		 && (! g_ascii_strcasecmp(response->arguments, "EXISTS")
+		     || ! g_ascii_strcasecmp(response->arguments, "RECENT")
+		     || ! g_ascii_strcasecmp(response->arguments, "EXPUNGE")
+		     || mn_ascii_str_case_has_prefix(response->arguments, "FETCH ")))
+	  {
+	    priv->idle_state = IDLE_STATE_WAS_IDLING;
+	    return mn_client_session_write(session, "DONE"); /* wake up */
+	  }
       }
     else
       {
@@ -1206,79 +1435,65 @@ mn_imap_mailbox_handle_idle_cb (MNClientSession * session, MNClientSessionRespon
 	  }
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }}
-#line 1212 "mn-imap-mailbox.c"
+#line 1441 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 751 "mn-imap-mailbox.gob"
+#line 982 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_enter_logout_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1218 "mn-imap-mailbox.c"
+#line 1447 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::enter_logout_cb"
-#line 751 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 751 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1225 "mn-imap-mailbox.c"
 {
-#line 754 "mn-imap-mailbox.gob"
+#line 985 "mn-imap-mailbox.gob"
 	
     return self_session_write(priv, "LOGOUT");
   }}
-#line 1231 "mn-imap-mailbox.c"
+#line 1455 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 758 "mn-imap-mailbox.gob"
+#line 989 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_handle_logout_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1237 "mn-imap-mailbox.c"
+#line 1461 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_logout_cb"
-#line 758 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 758 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 758 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1246 "mn-imap-mailbox.c"
 {
-#line 762 "mn-imap-mailbox.gob"
+#line 993 "mn-imap-mailbox.gob"
 	
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
     else if (response->tag && HAS_CURRENT_TAG(response, priv))
       {
 	if (IS_OK(response))
-	  return MN_CLIENT_SESSION_RESULT_END;
+	  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	else if (IS_BAD(response))
-	  return RESULT_ERROR_END;
+	  {
+	    self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	    return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+	  }
 	else
 	  return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
     else
       return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }}
-#line 1264 "mn-imap-mailbox.c"
+#line 1484 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 778 "mn-imap-mailbox.gob"
+#line 1012 "mn-imap-mailbox.gob"
 static void 
-___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 1270 "mn-imap-mailbox.c"
+___1b_mn_imap_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 1490 "mn-imap-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+	{ if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::impl_check"
-#line 778 "mn-imap-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 778 "mn-imap-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 1280 "mn-imap-mailbox.c"
 {
-#line 780 "mn-imap-mailbox.gob"
+#line 1014 "mn-imap-mailbox.gob"
 	
     Self *self = SELF(mailbox);
     MNClientSessionState states[] = {
@@ -1304,34 +1519,42 @@ ___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
       self_warning_cb,
       self_response_new_cb,
       self_response_free_cb,
-      self_custom_handler_cb,
       self_pre_read_cb,
       self_post_read_cb,
 #ifdef WITH_SASL
-      self_sasl_get_username_cb,
-      self_sasl_get_password_cb,
+      self_sasl_get_credentials_cb,
 #endif
     };
     MNClientSessionPrivate priv;
     gboolean status;
     GError *err = NULL;
+    gboolean again;
 
     PARENT_HANDLER(mailbox);
 
+    /* check if the parent handler has disabled the mailbox */
+    if (! MN_MAILBOX(self)->must_poll)
+      return;
+
     do
       {
+	g_clear_error(&err);
+	again = FALSE;
+
 	memset(&priv, 0, sizeof(priv));
-	priv.mailbox = mailbox;
-	priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+	priv.mailbox = MN_MAILBOX(self);
+	priv.authenticated_mailbox = mailbox;
+	priv.pi_mailbox = MN_PI_MAILBOX(self);
 	priv.self = self;
+	priv.server_software_supports_idle = TRUE; /* assume it does */
     
 	status = mn_client_session_run(states,
 				       &callbacks,
 #ifdef WITH_SSL
-				       MN_URI_IS_SSL(mailbox->uri),
+				       priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
 #endif
-				       mailbox->uri->hostname,
-				       mailbox->uri->port,
+				       priv.pi_mailbox->hostname,
+				       priv.pi_mailbox->runtime_port,
 				       &priv,
 				       &err);
     
@@ -1343,83 +1566,77 @@ ___1a_mn_imap_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
 
 	g_slist_free(priv.received_numbers);
 	mn_g_object_slist_free(priv.messages);
+
+#ifdef WITH_SASL
+	g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
+
+	if (priv.could_idle && ! REMOVED(self))
+	  {
+	    if (status)
+	      again = TRUE;
+	    /* some servers abruptly disconnect for inactivity */
+	    else if (g_error_matches(err, MN_CLIENT_SESSION_ERROR, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST))
+	      {
+		mn_mailbox_notice(priv.mailbox, "%s", err->message);
+		again = TRUE;
+	      }
+	  }
       }
-    while (status && priv.could_idle && ! REMOVED(self));
+    while (again);
 
     GDK_THREADS_ENTER();
 
-    mn_mailbox_set_must_poll(mailbox, TRUE);
+    mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
     if (! status)
       {
-	mn_mailbox_set_error(mailbox, "%s", err->message);
+	mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
 	g_error_free(err);
       }
-    mn_mailbox_end_check(mailbox);
 
     gdk_flush();
     GDK_THREADS_LEAVE();
   }}
-#line 1363 "mn-imap-mailbox.c"
+#line 1601 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 861 "mn-imap-mailbox.gob"
+#line 1118 "mn-imap-mailbox.gob"
 static void 
-mn_imap_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1370 "mn-imap-mailbox.c"
+mn_imap_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1608 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::notice_cb"
-#line 861 "mn-imap-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 861 "mn-imap-mailbox.gob"
-	g_return_if_fail (str != NULL);
-#line 861 "mn-imap-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1379 "mn-imap-mailbox.c"
 {
-#line 865 "mn-imap-mailbox.gob"
+#line 1122 "mn-imap-mailbox.gob"
 	
-    mn_mailbox_notice(priv->mailbox, "%s", str);
+    mn_mailbox_notice(priv->mailbox, "%s", message);
   }}
-#line 1385 "mn-imap-mailbox.c"
+#line 1616 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 869 "mn-imap-mailbox.gob"
+#line 1126 "mn-imap-mailbox.gob"
 static void 
-mn_imap_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1391 "mn-imap-mailbox.c"
+mn_imap_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1622 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::warning_cb"
-#line 869 "mn-imap-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 869 "mn-imap-mailbox.gob"
-	g_return_if_fail (str != NULL);
-#line 869 "mn-imap-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1400 "mn-imap-mailbox.c"
 {
-#line 873 "mn-imap-mailbox.gob"
+#line 1130 "mn-imap-mailbox.gob"
 	
-    mn_mailbox_warning(priv->mailbox, "%s", str);
+    mn_mailbox_warning(priv->mailbox, "%s", message);
   }}
-#line 1406 "mn-imap-mailbox.c"
+#line 1630 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 877 "mn-imap-mailbox.gob"
+#line 1134 "mn-imap-mailbox.gob"
 static MNClientSessionResponse * 
 mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1412 "mn-imap-mailbox.c"
+#line 1636 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_new_cb"
-#line 877 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 877 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 877 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1421 "mn-imap-mailbox.c"
-{
-#line 881 "mn-imap-mailbox.gob"
+{
+#line 1138 "mn-imap-mailbox.gob"
 	
     MNClientSessionResponse *response = NULL;
 
@@ -1473,24 +1690,17 @@ mn_imap_mailbox_response_new_cb (MNClientSession * session, const char * input, 
 	
     return response;
   }}
-#line 1477 "mn-imap-mailbox.c"
+#line 1694 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 935 "mn-imap-mailbox.gob"
+#line 1192 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1483 "mn-imap-mailbox.c"
+#line 1700 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::response_free_cb"
-#line 935 "mn-imap-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 935 "mn-imap-mailbox.gob"
-	g_return_if_fail (response != NULL);
-#line 935 "mn-imap-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1492 "mn-imap-mailbox.c"
 {
-#line 939 "mn-imap-mailbox.gob"
+#line 1196 "mn-imap-mailbox.gob"
 	
     g_free(response->continuation);
     g_free(response->tag);
@@ -1499,61 +1709,42 @@ mn_imap_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResp
     g_free(response->arguments);
     g_free(response);
   }}
-#line 1503 "mn-imap-mailbox.c"
+#line 1713 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 948 "mn-imap-mailbox.gob"
+#line 1205 "mn-imap-mailbox.gob"
 static int 
-mn_imap_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1509 "mn-imap-mailbox.c"
+mn_imap_mailbox_default_handler (MNClientSessionResponse * response, MNClientSessionPrivate * priv, int error_code_when_bye)
+#line 1719 "mn-imap-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::custom_handler_cb"
-#line 948 "mn-imap-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 948 "mn-imap-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::default_handler"
+#line 1205 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 948 "mn-imap-mailbox.gob"
+#line 1205 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1518 "mn-imap-mailbox.c"
+#line 1726 "mn-imap-mailbox.c"
 {
-#line 953 "mn-imap-mailbox.gob"
+#line 1209 "mn-imap-mailbox.gob"
 	
-    switch (result)
+    if (! response->tag && IS_BYE(response))
       {
-      case RESULT_ERROR_LOGOUT:
-	self_session_set_error_from_arguments(priv, response);
-	return STATE_LOGOUT;
-
-      case RESULT_ERROR_END:
-	self_session_set_error_from_arguments(priv, response);
-	return MN_CLIENT_SESSION_RESULT_END;
-
-      case RESULT_DEFAULT_HANDLER:
-	if (! response->tag && IS_BYE(response))
-	  return RESULT_ERROR_END;
-	else
-	  return MN_CLIENT_SESSION_RESULT_CONTINUE;
-	
-      default:
-	g_return_val_if_reached(0);
+	self_session_set_error_from_arguments(priv, error_code_when_bye, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
       }
+    else
+      return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }}
-#line 1542 "mn-imap-mailbox.c"
+#line 1738 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 975 "mn-imap-mailbox.gob"
+#line 1219 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1548 "mn-imap-mailbox.c"
+#line 1744 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::pre_read_cb"
-#line 975 "mn-imap-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 975 "mn-imap-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1555 "mn-imap-mailbox.c"
 {
-#line 978 "mn-imap-mailbox.gob"
+#line 1222 "mn-imap-mailbox.gob"
 	
     if (priv->idle_state == IDLE_STATE_IDLING)
       {
@@ -1562,22 +1753,17 @@ mn_imap_mailbox_pre_read_cb (MNClientSession * session, MNClientSessionPrivate *
 	g_mutex_unlock(priv->self->_priv->idle_session_mutex);
       }
   }}
-#line 1566 "mn-imap-mailbox.c"
+#line 1757 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 987 "mn-imap-mailbox.gob"
+#line 1231 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1572 "mn-imap-mailbox.c"
+#line 1763 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::post_read_cb"
-#line 987 "mn-imap-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 987 "mn-imap-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1579 "mn-imap-mailbox.c"
 {
-#line 990 "mn-imap-mailbox.gob"
+#line 1234 "mn-imap-mailbox.gob"
 	
     if (priv->idle_state == IDLE_STATE_IDLING)
       {
@@ -1586,44 +1772,44 @@ mn_imap_mailbox_post_read_cb (MNClientSession * session, MNClientSessionPrivate 
 	g_mutex_unlock(priv->self->_priv->idle_session_mutex);
       }
   }}
-#line 1590 "mn-imap-mailbox.c"
+#line 1776 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 999 "mn-imap-mailbox.gob"
+#line 1243 "mn-imap-mailbox.gob"
 static void 
-mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1596 "mn-imap-mailbox.c"
+mn_imap_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response)
+#line 1782 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_set_error_from_arguments"
-#line 999 "mn-imap-mailbox.gob"
+#line 1243 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 999 "mn-imap-mailbox.gob"
+#line 1243 "mn-imap-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 1603 "mn-imap-mailbox.c"
+#line 1789 "mn-imap-mailbox.c"
 {
-#line 1002 "mn-imap-mailbox.gob"
+#line 1247 "mn-imap-mailbox.gob"
 	
     if (response->arguments)
-      mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+      mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
     else
-      mn_client_session_error(priv->session, _("unknown server error"));
+      mn_client_session_error(priv->session, code, _("unknown server error"));
   }}
-#line 1612 "mn-imap-mailbox.c"
+#line 1798 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1009 "mn-imap-mailbox.gob"
+#line 1254 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * format, ...)
-#line 1618 "mn-imap-mailbox.c"
+#line 1804 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_write"
-#line 1009 "mn-imap-mailbox.gob"
+#line 1254 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1009 "mn-imap-mailbox.gob"
+#line 1254 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (format != NULL, (int )0);
-#line 1625 "mn-imap-mailbox.c"
+#line 1811 "mn-imap-mailbox.c"
 {
-#line 1013 "mn-imap-mailbox.gob"
+#line 1258 "mn-imap-mailbox.gob"
 	
     va_list args;
     char *command;
@@ -1642,22 +1828,22 @@ mn_imap_mailbox_session_write (MNClientSessionPrivate * priv, const char * forma
 
     return result;
   }}
-#line 1646 "mn-imap-mailbox.c"
+#line 1832 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1032 "mn-imap-mailbox.gob"
+#line 1277 "mn-imap-mailbox.gob"
 static gboolean 
 mn_imap_mailbox_handle_capability_code (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1652 "mn-imap-mailbox.c"
+#line 1838 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::handle_capability_code"
-#line 1032 "mn-imap-mailbox.gob"
+#line 1277 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (gboolean )0);
-#line 1032 "mn-imap-mailbox.gob"
+#line 1277 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (gboolean )0);
-#line 1659 "mn-imap-mailbox.c"
+#line 1845 "mn-imap-mailbox.c"
 {
-#line 1035 "mn-imap-mailbox.gob"
+#line 1280 "mn-imap-mailbox.gob"
 	
     if (response->code)
       {
@@ -1675,20 +1861,20 @@ mn_imap_mailbox_handle_capability_code (MNClientSessionPrivate * priv, MNClientS
 
     return FALSE;
   }}
-#line 1679 "mn-imap-mailbox.c"
+#line 1865 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1053 "mn-imap-mailbox.gob"
+#line 1298 "mn-imap-mailbox.gob"
 static void 
 mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const char * capabilities)
-#line 1685 "mn-imap-mailbox.c"
+#line 1871 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_parse_capabilities"
-#line 1053 "mn-imap-mailbox.gob"
+#line 1298 "mn-imap-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 1690 "mn-imap-mailbox.c"
+#line 1876 "mn-imap-mailbox.c"
 {
-#line 1056 "mn-imap-mailbox.gob"
+#line 1301 "mn-imap-mailbox.gob"
 	
     g_strfreev(priv->capabilities);
     priv->capabilities = NULL;
@@ -1696,6 +1882,11 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
     eel_g_slist_free_deep(priv->auth_mechanisms);
     priv->auth_mechanisms = NULL;
 
+#ifdef WITH_SASL
+    g_slist_free(priv->sasl_remaining_mechanisms);
+    priv->sasl_remaining_mechanisms = NULL;
+#endif
+
     if (capabilities)
       {
 	int i;
@@ -1709,22 +1900,22 @@ mn_imap_mailbox_session_parse_capabilities (MNClientSessionPrivate * priv, const
     else
       priv->capabilities = g_new0(char *, 1);
   }}
-#line 1713 "mn-imap-mailbox.c"
+#line 1904 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1077 "mn-imap-mailbox.gob"
+#line 1327 "mn-imap-mailbox.gob"
 static gboolean 
 mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const char * capability)
-#line 1719 "mn-imap-mailbox.c"
+#line 1910 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_has_capability"
-#line 1077 "mn-imap-mailbox.gob"
+#line 1327 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (gboolean )0);
-#line 1077 "mn-imap-mailbox.gob"
+#line 1327 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (capability != NULL, (gboolean )0);
-#line 1726 "mn-imap-mailbox.c"
+#line 1917 "mn-imap-mailbox.c"
 {
-#line 1080 "mn-imap-mailbox.gob"
+#line 1330 "mn-imap-mailbox.gob"
 	
     int i;
 
@@ -1736,35 +1927,34 @@ mn_imap_mailbox_session_has_capability (MNClientSessionPrivate * priv, const cha
     
     return FALSE;
   }}
-#line 1740 "mn-imap-mailbox.c"
+#line 1931 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1092 "mn-imap-mailbox.gob"
+#line 1342 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
-#line 1746 "mn-imap-mailbox.c"
+#line 1937 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_after_capability"
-#line 1092 "mn-imap-mailbox.gob"
+#line 1342 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1751 "mn-imap-mailbox.c"
+#line 1942 "mn-imap-mailbox.c"
 {
-#line 1094 "mn-imap-mailbox.gob"
+#line 1344 "mn-imap-mailbox.gob"
 	
     if (priv->authenticated)
       return STATE_EXAMINE;
     else
       {
 #ifdef WITH_SSL
-	if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
-	    && ! MN_URI_IS_SSL(priv->mailbox->uri)
+	if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
 	    && ! priv->starttls_completed)
 	  {
 	    if (self_session_has_capability(priv, "STARTTLS"))
 	      return STATE_STARTTLS;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
 		return STATE_LOGOUT;
 	      }
 	  }
@@ -1772,39 +1962,44 @@ mn_imap_mailbox_session_after_capability (MNClientSessionPrivate * priv)
 	return self_session_authenticate(priv);
       }
   }}
-#line 1776 "mn-imap-mailbox.c"
+#line 1966 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1117 "mn-imap-mailbox.gob"
+#line 1366 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1782 "mn-imap-mailbox.c"
+#line 1972 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate"
-#line 1117 "mn-imap-mailbox.gob"
+#line 1366 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1787 "mn-imap-mailbox.c"
+#line 1977 "mn-imap-mailbox.c"
 {
-#line 1119 "mn-imap-mailbox.gob"
+#line 1368 "mn-imap-mailbox.gob"
 	
-    if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+    g_slist_free(priv->sasl_remaining_mechanisms);
+    priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+    if (priv->pi_mailbox->authmech)
       {
-	if (*priv->mailbox->uri->authmech != '+')
+	if (*priv->pi_mailbox->authmech != '+')
 	  {
 #ifdef WITH_SASL
 	    return STATE_AUTHENTICATE;
 #else
-	    mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+	    mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
 	    return STATE_LOGOUT;
 #endif /* WITH_SASL */
 	  }
 	else
 	  {
-	    if (! strcmp(priv->mailbox->uri->authmech, "+LOGIN"))
+	    if (! strcmp(priv->pi_mailbox->authmech, "+LOGIN"))
 	      return STATE_LOGIN;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
 		return STATE_LOGOUT;
 	      }
 	  }
@@ -1812,29 +2007,50 @@ mn_imap_mailbox_session_authenticate (MNClientSessionPrivate * priv)
     else
       {
 #ifdef WITH_SASL
-	if (priv->auth_mechanisms)
+	if (priv->sasl_remaining_mechanisms)
 	  return STATE_AUTHENTICATE;
 #endif /* WITH_SASL */
 	return STATE_LOGIN;
       }
   }}
-#line 1822 "mn-imap-mailbox.c"
+#line 2017 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 1152 "mn-imap-mailbox.gob"
+#line 1406 "mn-imap-mailbox.gob"
 static int 
 mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_login)
-#line 1828 "mn-imap-mailbox.c"
+#line 2023 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_authenticate_fallback"
-#line 1152 "mn-imap-mailbox.gob"
+#line 1406 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1833 "mn-imap-mailbox.c"
+#line 2028 "mn-imap-mailbox.c"
 {
-#line 1155 "mn-imap-mailbox.gob"
+#line 1409 "mn-imap-mailbox.gob"
 	
-    if (! priv->mailbox->uri->authmech)
+    if (! priv->pi_mailbox->authmech)
       {
+#ifdef WITH_SASL
+	if (priv->sasl_mechanism)
+	  {
+	    GSList *elem;
+
+	    elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+	    if (elem)
+	      {
+		priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+		if (priv->sasl_remaining_mechanisms)
+		  {
+		    mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+		    return STATE_AUTHENTICATE;
+		  }
+	      }
+	  }
+
+	/* SASL is not needed anymore, save some memory */
+	mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
 	if (! tried_login)
 	  {
 	    mn_client_session_notice(priv->session, _("falling back to IMAP LOGIN authentication"));
@@ -1842,18 +2058,55 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
 	  }
       }
 
-    if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+    if (priv->authenticated_mailbox->prompted)
       {
 	mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
 	return self_session_authenticate(priv);
       }
     else
       {
-	mn_client_session_error(priv->session, _("authentication failed"));
+	mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
 	return STATE_LOGOUT;
       }
   }}
-#line 1857 "mn-imap-mailbox.c"
+#line 2073 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1452 "mn-imap-mailbox.gob"
+static void 
+mn_imap_mailbox_session_detect_imapd (MNClientSession * session, MNClientSessionResponse * greeting_response, MNClientSessionPrivate * priv)
+#line 2079 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::session_detect_imapd"
+#line 1452 "mn-imap-mailbox.gob"
+	g_return_if_fail (session != NULL);
+#line 1452 "mn-imap-mailbox.gob"
+	g_return_if_fail (greeting_response != NULL);
+#line 1452 "mn-imap-mailbox.gob"
+	g_return_if_fail (priv != NULL);
+#line 2088 "mn-imap-mailbox.c"
+{
+#line 1456 "mn-imap-mailbox.gob"
+	
+    if (greeting_response->arguments)
+      {
+	char *str;
+
+	/*
+	 * Try to detect UW imapd by looking for " IMAP4rev1 YEAR."
+	 */
+	
+	if ((str = mn_strstr_span(greeting_response->arguments, " IMAP4rev1 "))
+	    && strspn(str, "0123456789") == 4
+	    && str[4] == '.')
+	  {
+	    priv->server_software = "UW imapd";
+	    priv->server_software_supports_idle = FALSE;
+	    return;
+	  }
+      }
+  }}
+#line 2110 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
 
 /**
@@ -1864,17 +2117,17 @@ mn_imap_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
  *
  * Return value: the quoted string.
  **/
-#line 1185 "mn-imap-mailbox.gob"
+#line 1484 "mn-imap-mailbox.gob"
 static char * 
 mn_imap_mailbox_quote (const char * str)
-#line 1871 "mn-imap-mailbox.c"
+#line 2124 "mn-imap-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:IMAP:Mailbox::quote"
-#line 1185 "mn-imap-mailbox.gob"
+#line 1484 "mn-imap-mailbox.gob"
 	g_return_val_if_fail (str != NULL, (char * )0);
-#line 1876 "mn-imap-mailbox.c"
+#line 2129 "mn-imap-mailbox.c"
 {
-#line 1187 "mn-imap-mailbox.gob"
+#line 1486 "mn-imap-mailbox.gob"
 	
     GString *quoted;
     int i;
@@ -1889,5 +2142,142 @@ mn_imap_mailbox_quote (const char * str)
 
     return g_string_free(quoted, FALSE);
   }}
-#line 1893 "mn-imap-mailbox.c"
+#line 2146 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+/**
+ * mn_imap_mailbox_utf8_to_imap_utf7:
+ * @str: the UTF-8 string to convert to modified UTF-7
+ *
+ * Converts a string from UTF-8 to modified UTF-7 as defined by RFC 3501.
+ *
+ * Return value: the string converted to modified UTF-7.
+ **/
+#line 1509 "mn-imap-mailbox.gob"
+static char * 
+mn_imap_mailbox_utf8_to_imap_utf7 (const char * str)
+#line 2160 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::utf8_to_imap_utf7"
+#line 1509 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (str != NULL, (char * )0);
+#line 2165 "mn-imap-mailbox.c"
+{
+#line 1511 "mn-imap-mailbox.gob"
+	
+    gunichar c;
+    guint32 x, v = 0;
+    int state = 0;
+    GString *out;
+    int i = 0;
+
+    /*
+     * Taken from the Ximian Evolution sources (camel-utf8.c) and
+     * edited for tyle.
+     */
+
+    out = g_string_new(NULL);
+
+    while ((c = g_utf8_get_char(str)))
+      {
+	if (c >= 0x20 && c <= 0x7e)
+	  {
+	    if (state == 1)
+	      {
+		self_imap_utf7_closeb64(out, v, i);
+		state = 0;
+		i = 0;
+	      }
+	    if (c == '&')
+	      g_string_append(out, "&-");
+	    else
+	      g_string_append_c(out, c);
+	  }
+	else
+	  {
+	    if (state == 0)
+	      {
+		g_string_append_c(out, '&');
+		state = 1;
+	      }
+
+	    v = (v << 16) | c;
+	    i += 16;
+
+	    while (i >= 6)
+	      {
+		x = (v >> (i - 6)) & 0x3f;
+		g_string_append_c(out, utf7_alphabet[x]);
+		i -= 6;
+	      }
+	  }
+
+	str = g_utf8_next_char(str);
+      }
+
+    if (state == 1)
+      self_imap_utf7_closeb64(out, v, i);
+
+    return g_string_free(out, FALSE);
+  }}
+#line 2224 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1568 "mn-imap-mailbox.gob"
+static void 
+mn_imap_mailbox_imap_utf7_closeb64 (GString * out, guint32 v, guint32 i)
+#line 2230 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::imap_utf7_closeb64"
+#line 1568 "mn-imap-mailbox.gob"
+	g_return_if_fail (out != NULL);
+#line 2235 "mn-imap-mailbox.c"
+{
+#line 1570 "mn-imap-mailbox.gob"
+	
+    /*
+     * Taken from the Ximian Evolution sources (camel-utf8.c) and
+     * edited for tyle.
+     */
+
+    if (i > 0)
+      {
+	guint32 x;
+
+	x = (v << (6 - i)) & 0x3f;
+	g_string_append_c(out, utf7_alphabet[x]);
+      }
+
+    g_string_append_c(out, '-');
+  }}
+#line 2254 "mn-imap-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1587 "mn-imap-mailbox.gob"
+char * 
+mn_imap_mailbox_build_name (const char * username, const char * hostname, const char * mailbox)
+#line 2260 "mn-imap-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:IMAP:Mailbox::build_name"
+#line 1587 "mn-imap-mailbox.gob"
+	g_return_val_if_fail (hostname != NULL, (char * )0);
+#line 2265 "mn-imap-mailbox.c"
+{
+#line 1591 "mn-imap-mailbox.gob"
+	
+    GString *name;
+
+    name = g_string_new(NULL);
+
+    if (username)
+      g_string_append_printf(name, "%s@", username);
+    
+    g_string_append(name, hostname);
+
+    if (mailbox && mn_utf8_strcasecmp(mailbox, "INBOX"))
+      g_string_append_printf(name, "/%s", mailbox);
+
+    return g_string_free(name, FALSE);
+  }}
+#line 2283 "mn-imap-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-imap-mailbox.gob b/src/mn-imap-mailbox.gob
@@ -5,6 +5,7 @@
  *
  *	- RFC 3501
  *	- RFC 2177
+ *	- RFC 2192 (subset)
  *
  * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
@@ -23,10 +24,16 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
+%}
+
+%h{
+#define MN_IMAP_MAILBOX_N_USE_IDLE	3
+
+extern int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
 %}
 
 %privateheader{
@@ -44,6 +51,7 @@ requires 2.0.10
 #include <eel/eel.h>
 #include "mn-mailbox-private.h"
 #include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
 #include "mn-util.h"
 #include "mn-message-mime.h"
 
@@ -56,90 +64,117 @@ requires 2.0.10
 
 #define REMOVED(self)			(g_atomic_int_get(&(self)->_priv->removed))
 
-  enum
-  {
-    STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
-    STATE_CAPABILITY,
+enum
+{
+  STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+  STATE_CAPABILITY,
 #ifdef WITH_SSL
-    STATE_STARTTLS,
+  STATE_STARTTLS,
 #endif
 #ifdef WITH_SASL
-    STATE_AUTHENTICATE,
+  STATE_AUTHENTICATE,
 #endif
-    STATE_LOGIN,
-    STATE_EXAMINE,
-    STATE_SEARCH,
-    STATE_FETCH,
-    STATE_IDLE,
-    STATE_LOGOUT
-  };
+  STATE_LOGIN,
+  STATE_EXAMINE,
+  STATE_SEARCH,
+  STATE_FETCH,
+  STATE_IDLE,
+  STATE_LOGOUT
+};
   
-  enum
-  {
-    RESULT_ERROR_LOGOUT		= -1, /* server reported an error, logout normally */
-    RESULT_ERROR_END		= -2, /* server reported an error, close the connection */
-    RESULT_DEFAULT_HANDLER	= -3  /* invoke the default response handler */
-  };
-
-  typedef enum
-  {
-    IDLE_STATE_NORMAL,
-    IDLE_STATE_IDLING,
-    IDLE_STATE_WAS_IDLING
-  } IdleState;
-
-  struct _MNClientSessionPrivate
-  {
-    MNMailbox			*mailbox;
-    MNAuthenticatedMailbox	*authenticated_mailbox;
-    MNIMAPMailbox		*self;
-    MNClientSession		*session;
-
-    int				numeric_tag;
-    char			tag[5];
-
-    char			**capabilities;
-    GSList			*auth_mechanisms;
-    gboolean			authenticated;
+typedef enum
+{
+  IDLE_STATE_NORMAL,
+  IDLE_STATE_IDLING,
+  IDLE_STATE_WAS_IDLING
+} IdleState;
 
-    gboolean			search_received;
-    GSList			*fetch_numbers;
-    char			*fetch_set;
+struct _MNClientSessionPrivate
+{
+  MNMailbox			*mailbox;
+  MNAuthenticatedMailbox	*authenticated_mailbox;
+  MNPIMailbox			*pi_mailbox;
+  MNIMAPMailbox			*self;
+  MNClientSession		*session;
+
+  const char			*server_software;
+  gboolean			server_software_supports_idle;
+  
+  int				numeric_tag;
+  char				tag[5];
 
-    GSList			*received_numbers;
-    GSList			*messages;
+  char				**capabilities;
+  GSList			*auth_mechanisms;
+  gboolean			authenticated;
+  
+  gboolean			search_received;
+  GSList			*fetch_numbers;
+  char				*fetch_set;
+  
+  GSList			*received_numbers;
+  GSList			*messages;
 
 #ifdef WITH_SSL
-    gboolean			starttls_completed;
+  gboolean			starttls_completed;
 #endif
 #ifdef WITH_SASL
-    const char			*sasl_mechanism;
+  GSList			*sasl_remaining_mechanisms;
+  const char			*sasl_mechanism;
 #endif
 
-    IdleState			idle_state;
-    gboolean			could_idle;	/* could idle at least once */
-  };
+  IdleState			idle_state;
+  gboolean			could_idle;	/* could idle at least once */
+};
   
-  struct _MNClientSessionResponse
-  {
-    char		*continuation;
-    char		*tag;
-    char		*response;
-    char		*code;
-    char		*arguments;
-  };
+struct _MNClientSessionResponse
+{
+  char		*continuation;
+  char		*tag;
+  char		*response;
+  char		*code;
+  char		*arguments;
+};
+
+int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 143, 143, 993 };
+
+/* variable taken from Evolution (camel-utf8.c) */
+static char *utf7_alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
 %}
 
-class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
+enum MN_IMAP_MAILBOX_USE_IDLE
+{
+  NEVER,
+  AUTODETECT,
+  ALWAYS
+} MN:IMAP:Mailbox:Use:IDLE;
+
+class MN:IMAP:Mailbox from MN:PI:Mailbox
 {
   private int removed;		/* boolean, access with g_atomic_int_ API */
 
   private MNClientSessionPrivate *idle_session;
   private GMutex *idle_session_mutex = {g_mutex_new()} destroywith g_mutex_free;
   
+  public char *mailbox destroywith g_free;
+  property STRING mailbox (link,
+			   flags = CONSTRUCT
+			   | MN_MAILBOX_PARAM_PERMANENT
+			   | MN_MAILBOX_PARAM_IGNORE_CASE,
+			   default_value = "INBOX");
+
+  public char *runtime_mailbox destroywith g_free;
+
+  public MNIMAPMailboxUseIDLE use_idle_extension;
+  property ENUM use_idle_extension (link,
+				    enum_type = MN:IMAP:Mailbox:Use:IDLE,
+				    flags = CONSTRUCT
+				    | MN_MAILBOX_PARAM_PERMANENT,
+				    default_value = MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT);
+
   class_init (class)
   {
-    MN_MAILBOX_CLASS(class)->format = "IMAP";
+    MN_MAILBOX_CLASS(class)->type = "imap";
+    MN_PI_MAILBOX_CLASS(class)->default_ports = mn_imap_mailbox_default_ports;
   }
 
   override (G:Object) GObject *
@@ -150,23 +185,137 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 
     object = PARENT_HANDLER(type, n_construct_properties, construct_params);
     mailbox = MN_MAILBOX(object);
-
-#ifndef WITH_SSL
-    if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
-      mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
+    
+    mn_mailbox_set_format(mailbox, "IMAP");
 
     return object;
   }
 
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
   {
-    return MN_URI_IS_IMAP(uri);
+    Self *self = SELF(mailbox);
+
+    PARENT_HANDLER(mailbox);
+
+    self->runtime_mailbox = g_strdup(self->mailbox ? self->mailbox : "INBOX");
+
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+					      MN_PI_MAILBOX(mailbox)->hostname,
+					      self->runtime_mailbox);
+  }
+  
+  /*
+   * Parses a RFC 2192 IMAP URL.
+   *
+   * Note: we only handle a subset of the RFC 2192 specification,
+   * since mailbox lists, message lists and message parts have no
+   * meaning in Mail Notification.
+   */
+  override (MN:Mailbox) MNMailbox *
+    parse_uri (MNMailbox *dummy, const char *uri)
+  {
+    int len;
+    int buflen;
+    char *username = NULL;
+    char *authmech = NULL;
+    char *hostname;
+    char *path = NULL;
+    int port;
+    MNMailbox *mailbox;
+
+    len = strlen(uri);
+    buflen = len + 1;
+    
+    {
+      char scheme_buf[buflen];
+      char auth_buf[buflen];
+      char location_buf[buflen];
+      char hostport_buf[buflen];
+      char path_buf[buflen];
+      char username_buf[buflen];
+      char authmech_buf[buflen];
+      char hostname_buf[buflen];
+      gboolean has_auth;
+      gboolean has_path;
+      gboolean has_username = FALSE;
+      gboolean has_authmech = FALSE;
+
+      if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+	return NULL;
+
+      if (strcmp(scheme_buf, "imap"))
+	return NULL;
+
+      if (! self_split_uri_location(location_buf, len, hostport_buf, path_buf, &has_path))
+	return NULL;
+
+      if (has_auth)
+	{
+	  if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+	    return NULL;
+
+	  if (has_authmech && ! strcmp(authmech_buf, "*"))
+	    has_authmech = FALSE;
+	}
+
+      mn_pi_mailbox_split_uri_hostport(hostport_buf, len, hostname_buf, &port);
+
+      if (has_username)
+	username = gnome_vfs_unescape_string(username_buf, NULL);
+      if (has_authmech)
+	authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+      hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+      if (has_path)
+	path = gnome_vfs_unescape_string(path_buf, NULL);
+    }
+
+    mailbox = mn_mailbox_new("imap",
+			     "username", username,
+			     "authmech", authmech,
+			     "hostname", hostname,
+			     "port", port,
+			     "mailbox", path,
+			     NULL);
+
+    g_free(username);
+    g_free(authmech);
+    g_free(hostname);
+    g_free(path);
+
+    return mailbox;
   }
+  
+  private gboolean
+    split_uri_location (const char *location (check null),
+			int maxlen,
+			char *hostport (check null),
+			char *path (check null),
+			gboolean *has_path (check null))
+  {
+    char *pat;
+    int n;
 
+    pat = g_strdup_printf("%%%i[^/]/%%%is", maxlen, maxlen);
+    n = sscanf(location, pat, hostport, path);
+    g_free(pat);
+    
+    g_return_val_if_fail(n >= 1, FALSE);
+
+    *has_path = n == 2;
+    if (*has_path)
+      {
+	/* we only handle enc_mailbox (see the RFC 2192 ABNF) */
+	if (strspn(path, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*'(),%&=~:@/") != strlen(path))
+	  return FALSE;		/* more than enc_mailbox, unhandled */
+      }
+
+    return TRUE;
+  }
+  
   override (MN:Mailbox) void
-    removed (MN:Mailbox *mailbox (check null type))
+    removed (MNMailbox *mailbox)
   {
     Self *self = SELF(mailbox);
 
@@ -184,9 +333,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
 
   private int
-    handle_greeting_cb (MNClientSession *session (check null),
-			MNClientSessionResponse *response (check null),
-			MNClientSessionPrivate *priv (check null))
+    handle_greeting_cb (MNClientSession *session,
+			MNClientSessionResponse *response,
+			MNClientSessionPrivate *priv)
   {
     priv->session = session;
 
@@ -194,6 +343,7 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
     else if (! response->tag && IS_OK(response))
       {
+	self_session_detect_imapd(session, response, priv);
 	return self_handle_capability_code(priv, response)
 	  ? self_session_after_capability(priv)
 	  : STATE_CAPABILITY;
@@ -201,27 +351,31 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
     else if (! response->tag && IS(response, "PREAUTH"))
       {
 	priv->authenticated = TRUE;
+	self_session_detect_imapd(session, response, priv);
 	return self_handle_capability_code(priv, response)
 	  ? self_session_after_capability(priv)
 	  : STATE_CAPABILITY;
       }
     else if (! response->tag && IS_BYE(response))
-      return RESULT_ERROR_END;
+      {
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+      }
     else
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
   }
 
   private int
-    enter_capability_cb (MNClientSession *session (check null),
-			 MNClientSessionPrivate *priv (check null))
+    enter_capability_cb (MNClientSession *session,
+			 MNClientSessionPrivate *priv)
   {
     return self_session_write(priv, "CAPABILITY");
   }
 
   private int
-    handle_capability_cb (MNClientSession *session (check null),
-			  MNClientSessionResponse *response (check null),
-			  MNClientSessionPrivate *priv (check null))
+    handle_capability_cb (MNClientSession *session,
+			  MNClientSessionResponse *response,
+			  MNClientSessionPrivate *priv)
   {
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -233,10 +387,13 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	      {
 		return priv->capabilities
 		  ? self_session_after_capability(priv)
-		  : mn_client_session_error(session, _("server did not send capabilities"));
+		  : mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send capabilities"));
 	      }
 	    else if (IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -247,12 +404,12 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	return MN_CLIENT_SESSION_RESULT_CONTINUE;
       }
     
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }
   
   private int
-    enter_starttls_cb (MNClientSession *session (check null),
-		       MNClientSessionPrivate *priv (check null))
+    enter_starttls_cb (MNClientSession *session,
+		       MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SSL
     return self_session_write(priv, "STARTTLS");
@@ -262,9 +419,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_starttls_cb (MNClientSession *session (check null),
-			MNClientSessionResponse *response (check null),
-			MNClientSessionPrivate *priv (check null))
+    handle_starttls_cb (MNClientSession *session,
+			MNClientSessionResponse *response,
+			MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SSL
     if (response->continuation)
@@ -278,7 +435,7 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 		priv->starttls_completed = TRUE;
 		return mn_client_session_enable_ssl(session)
 		  ? STATE_CAPABILITY
-		  : RESULT_ERROR_END;
+		  : MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	      }
 	    else if (IS_BAD(response))
 	      return self_session_authenticate(priv);
@@ -287,47 +444,53 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	  }
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
 #else
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }
   
-  private const char *
-    sasl_get_username_cb (MNClientSession *session (check null),
-			  MNClientSessionPrivate *priv (check null))
+  private void
+    sasl_get_credentials_cb (MNClientSession *session,
+			     MNClientSessionPrivate *priv,
+			     const char **username,
+			     const char **password)
   {
 #ifdef WITH_SASL
-    return priv->mailbox->uri->username;
-#else
-    g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
-  }
+    g_return_if_fail(username != NULL || password != NULL);
 
-  private const char *
-    sasl_get_password_cb (MNClientSession *session (check null),
-			  MNClientSessionPrivate *priv (check null))
-  {
-#ifdef WITH_SASL
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    return priv->authenticated_mailbox->password;
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+					      username != NULL,
+					      password != NULL);
+
+    if (username)
+      *username = priv->authenticated_mailbox->runtime_username;
+
+    if (password)
+      *password = priv->authenticated_mailbox->runtime_password;
 #else
-    g_return_val_if_reached(NULL);
+    g_return_if_reached();
 #endif /* WITH_SASL */
   }
 
   private int
-    enter_authenticate_cb (MNClientSession *session (check null),
-			   MNClientSessionPrivate *priv (check null))
+    enter_authenticate_cb (MNClientSession *session,
+			   MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SASL
+    priv->sasl_mechanism = NULL;
+
     if (mn_client_session_sasl_authentication_start(priv->session,
 						    "imap",
-						    priv->auth_mechanisms,
-						    priv->mailbox->uri->authmech,
+						    priv->sasl_remaining_mechanisms,
+						    priv->pi_mailbox->authmech,
 						    &priv->sasl_mechanism,
-						    FALSE /* [1] */))
-      return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+						    NULL,	/* [1] */
+						    NULL))	/* [1] */
+      {
+	g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+	return self_session_write(priv, "AUTHENTICATE %s", priv->sasl_mechanism);
+      }
     else
       return priv->authenticated_mailbox->cancelled
 	? STATE_LOGOUT
@@ -343,9 +506,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_authenticate_cb (MNClientSession *session (check null),
-			    MNClientSessionResponse *response (check null),
-			    MNClientSessionPrivate *priv (check null))
+    handle_authenticate_cb (MNClientSession *session,
+			    MNClientSessionResponse *response,
+			    MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SASL
     if (response->tag)
@@ -380,12 +543,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 		      : STATE_CAPABILITY;
 		  }
 		else
-		  return MN_CLIENT_SESSION_RESULT_END;
+		  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	      }
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return priv->authenticated_mailbox->cancelled
-		? STATE_LOGOUT
-		: self_session_authenticate_fallback(priv, FALSE);
+	      {
+		return priv->authenticated_mailbox->cancelled
+		  ? STATE_LOGOUT
+		  : self_session_authenticate_fallback(priv, FALSE);
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -393,20 +558,20 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
     else if (response->continuation)
       return mn_client_session_sasl_authentication_step(session, response->continuation);
     
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
 #else
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }
   
   private int
-    enter_login_cb (MNClientSession *session (check null),
-		    MNClientSessionPrivate *priv (check null))
+    enter_login_cb (MNClientSession *session,
+		    MNClientSessionPrivate *priv)
   {
     if (self_session_has_capability(priv, "LOGINDISABLED"))
       {
 	mn_client_session_notice(session, _("server advertised LOGINDISABLED, not using LOGIN authentication"));
-	mn_client_session_error(session, _("unable to login"));
+	mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to login"));
 	return STATE_LOGOUT;
       }
     else
@@ -415,12 +580,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	char *quoted_password;
 	int result;
 
-	mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-	if (! priv->authenticated_mailbox->password)
+	mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+
+	if (! priv->authenticated_mailbox->runtime_username
+	    || ! priv->authenticated_mailbox->runtime_password)
 	  return STATE_LOGOUT;
 
-	quoted_username = self_quote(priv->mailbox->uri->username);
-	quoted_password = self_quote(priv->authenticated_mailbox->password);
+	quoted_username = self_quote(priv->authenticated_mailbox->runtime_username);
+	quoted_password = self_quote(priv->authenticated_mailbox->runtime_password);
 	result = self_session_write(priv, "LOGIN %s %s", quoted_username, quoted_password);
 	g_free(quoted_username);
 	g_free(quoted_password);
@@ -430,9 +597,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_login_cb (MNClientSession *session (check null),
-		     MNClientSessionResponse *response (check null),
-		     MNClientSessionPrivate *priv (check null))
+    handle_login_cb (MNClientSession *session,
+		     MNClientSessionResponse *response,
+		     MNClientSessionPrivate *priv)
   {
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -454,17 +621,21 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	  }
       }
     
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }
   
   private int
-    enter_examine_cb (MNClientSession *session (check null),
-		      MNClientSessionPrivate *priv (check null))
+    enter_examine_cb (MNClientSession *session,
+		      MNClientSessionPrivate *priv)
   {
+    char *utf7_mailbox;
     char *quoted_mailbox;
     int result;
 
-    quoted_mailbox = self_quote(priv->mailbox->uri->path);
+    utf7_mailbox = self_utf8_to_imap_utf7(priv->self->runtime_mailbox);
+    quoted_mailbox = self_quote(utf7_mailbox);
+    g_free(utf7_mailbox);
+    
     result = self_session_write(priv, "EXAMINE %s", quoted_mailbox);
     g_free(quoted_mailbox);
 
@@ -472,9 +643,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_examine_cb (MNClientSession *session (check null),
-		       MNClientSessionResponse *response (check null),
-		       MNClientSessionPrivate *priv (check null))
+    handle_examine_cb (MNClientSession *session,
+		       MNClientSessionResponse *response,
+		       MNClientSessionPrivate *priv)
   {
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -485,18 +656,21 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	    if (IS_OK(response))
 	      return STATE_SEARCH;
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }
   
   private int
-    enter_search_cb (MNClientSession *session (check null),
-		     MNClientSessionPrivate *priv (check null))
+    enter_search_cb (MNClientSession *session,
+		     MNClientSessionPrivate *priv)
   {
     priv->search_received = FALSE;
 
@@ -510,9 +684,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_search_cb (MNClientSession *session (check null),
-		      MNClientSessionResponse *response (check null),
-		      MNClientSessionPrivate *priv (check null))
+    handle_search_cb (MNClientSession *session,
+		      MNClientSessionResponse *response,
+		      MNClientSessionPrivate *priv)
   {
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -533,16 +707,17 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 			gdk_flush();
 			GDK_THREADS_LEAVE();
 
-			return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
-			  ? STATE_IDLE
-			  : STATE_LOGOUT;
+			return STATE_IDLE;
 		      }
 		  }
 		else		/* compliance error */
-		  return mn_client_session_error(session, _("server did not send search results"));
+		  return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send search results"));
 	      }
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -578,12 +753,12 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	return MN_CLIENT_SESSION_RESULT_CONTINUE;
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }
   
   private int
-    enter_fetch_cb (MNClientSession *session (check null),
-		    MNClientSessionPrivate *priv (check null))
+    enter_fetch_cb (MNClientSession *session,
+		    MNClientSessionPrivate *priv)
   {
     g_return_val_if_fail(priv->fetch_set != NULL, 0);
 
@@ -597,9 +772,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_fetch_cb (MNClientSession *session (check null),
-		     MNClientSessionResponse *response (check null),
-		     MNClientSessionPrivate *priv (check null))
+    handle_fetch_cb (MNClientSession *session,
+		     MNClientSessionResponse *response,
+		     MNClientSessionPrivate *priv)
   {
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -614,19 +789,32 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 		MN_LIST_FOREACH(l, priv->fetch_numbers)
 		  if (! g_slist_find(priv->received_numbers, l->data))
 		    /* compliance error */
-		    return mn_client_session_error(session, _("server did not send all the messages we requested"));
+		    return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("server did not send all the messages we requested"));
 		    
 		GDK_THREADS_ENTER();
+
 		mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+		/*
+		 * In impl_check(), we do not hold the GDK lock while
+		 * unreffing the message list. We have just exposed
+		 * the list to other threads through our
+		 * mn_mailbox_set_messages() call, so unref it here,
+		 * while we hold the GDK lock.
+		 */
+		mn_g_object_slist_free(priv->messages);
+		priv->messages = NULL;
+
 		gdk_flush();
 		GDK_THREADS_LEAVE();
 		
-		return self_session_has_capability(priv, "IDLE") && ! mn_uri_has_query(priv->mailbox->uri, "noidle")
-		  ? STATE_IDLE
-		  : STATE_LOGOUT;
+		return STATE_IDLE;
 	      }
 	    else if (IS_NO(response) || IS_BAD(response))
-	      return RESULT_ERROR_LOGOUT;
+	      {
+		self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+		return STATE_LOGOUT;
+	      }
 	    else
 	      return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 	  }
@@ -659,49 +847,92 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 		
 		buf = mn_client_session_read(session, len);
 		if (! buf)
-		  return MN_CLIENT_SESSION_RESULT_END;
+		  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 		
-		priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox->uri, buf, len));
+		priv->messages = g_slist_append(priv->messages, mn_message_new_from_buffer(priv->mailbox, buf, len));
 		
 		/* read end of line (after literal) */
 		if (! mn_client_session_read_line(session))
-		  return MN_CLIENT_SESSION_RESULT_END;
+		  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	      }
 	    else
-	      priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox->uri, _("unable to fetch message")));
+	      priv->messages = g_slist_append(priv->messages, mn_message_new_from_error(priv->mailbox, _("unable to fetch message")));
 
 	    return MN_CLIENT_SESSION_RESULT_CONTINUE;
 	  }
       }
 	
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }
   
   private int
-    enter_idle_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_idle_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
+    if (! REMOVED(priv->self))
+      {
+	if (priv->self->use_idle_extension == MN_IMAP_MAILBOX_USE_IDLE_NEVER)
+	  mn_client_session_notice(session, _("\"Use the IDLE extension\" set to \"never\" in the mailbox properties, logging out"));
+	else
+	  {
+	    if (self_session_has_capability(priv, "IDLE"))
+	      {
+		switch (priv->self->use_idle_extension)
+		  {
+		  case MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT:
+		    if (priv->server_software_supports_idle)
+		      goto idle;
+		    else
+		      mn_client_session_notice(session, _("the remote server runs %s, not using the IDLE extension"), priv->server_software);
+		    break;
+		    
+		  case MN_IMAP_MAILBOX_USE_IDLE_ALWAYS:
+		    if (! priv->server_software_supports_idle)
+		      mn_client_session_warning(session, _("the remote server runs %s, the IDLE extension might not function properly"), priv->server_software);
+		    goto idle;
+		    break;
+		    
+		  default:
+		    g_return_val_if_reached(0);
+		  }
+	      }
+	    else
+	      mn_client_session_notice(session, _("the remote server does not support the IDLE extension, logging out"));
+	  }
+      }
+
+    return STATE_LOGOUT;
+
+  idle:
     priv->idle_state = IDLE_STATE_NORMAL;
-    return REMOVED(priv->self) ? STATE_LOGOUT : self_session_write(priv, "IDLE");
+    return self_session_write(priv, "IDLE");
   }
   
   private int
-    handle_idle_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_idle_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
     if (priv->idle_state == IDLE_STATE_IDLING)
       {
 	if (response->continuation || response->tag)
 	  return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
 
-	priv->idle_state = IDLE_STATE_WAS_IDLING;
-
 	if (IS_BYE(response))
-	  return MN_CLIENT_SESSION_RESULT_END; /* we'll reconnect */
-	else
-	  /* any other response wakes us up */
-	  return mn_client_session_write(session, "DONE");
+	  {
+	    priv->idle_state = IDLE_STATE_WAS_IDLING;
+	    return MN_CLIENT_SESSION_RESULT_DISCONNECT; /* we'll reconnect */
+	  }
+	else if (response->arguments
+		 && mn_str_isnumeric(response->response)
+		 && (! g_ascii_strcasecmp(response->arguments, "EXISTS")
+		     || ! g_ascii_strcasecmp(response->arguments, "RECENT")
+		     || ! g_ascii_strcasecmp(response->arguments, "EXPUNGE")
+		     || mn_ascii_str_case_has_prefix(response->arguments, "FETCH ")))
+	  {
+	    priv->idle_state = IDLE_STATE_WAS_IDLING;
+	    return mn_client_session_write(session, "DONE"); /* wake up */
+	  }
       }
     else
       {
@@ -745,29 +976,32 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	  }
       }
 
-    return RESULT_DEFAULT_HANDLER;
+    return self_default_handler(response, priv, MN_CLIENT_SESSION_ERROR_OTHER);
   }
 
   private int
-    enter_logout_cb (MNClientSession *session (check null),
-		     MNClientSessionPrivate *priv (check null))
+    enter_logout_cb (MNClientSession *session,
+		     MNClientSessionPrivate *priv)
   {
     return self_session_write(priv, "LOGOUT");
   }
 
   private int
-    handle_logout_cb (MNClientSession *session (check null),
-		      MNClientSessionResponse *response (check null),
-		      MNClientSessionPrivate *priv (check null))
+    handle_logout_cb (MNClientSession *session,
+		      MNClientSessionResponse *response,
+		      MNClientSessionPrivate *priv)
   {
     if (response->continuation)
       return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
     else if (response->tag && HAS_CURRENT_TAG(response, priv))
       {
 	if (IS_OK(response))
-	  return MN_CLIENT_SESSION_RESULT_END;
+	  return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	else if (IS_BAD(response))
-	  return RESULT_ERROR_END;
+	  {
+	    self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	    return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+	  }
 	else
 	  return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
@@ -775,8 +1009,8 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
       return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }
   
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *mailbox (check null type))
+  override (MN:Authenticated:Mailbox) void
+    impl_check (MNAuthenticatedMailbox *mailbox)
   {
     Self *self = SELF(mailbox);
     MNClientSessionState states[] = {
@@ -802,34 +1036,42 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
       self_warning_cb,
       self_response_new_cb,
       self_response_free_cb,
-      self_custom_handler_cb,
       self_pre_read_cb,
       self_post_read_cb,
 #ifdef WITH_SASL
-      self_sasl_get_username_cb,
-      self_sasl_get_password_cb,
+      self_sasl_get_credentials_cb,
 #endif
     };
     MNClientSessionPrivate priv;
     gboolean status;
     GError *err = NULL;
+    gboolean again;
 
     PARENT_HANDLER(mailbox);
 
+    /* check if the parent handler has disabled the mailbox */
+    if (! MN_MAILBOX(self)->must_poll)
+      return;
+
     do
       {
+	g_clear_error(&err);
+	again = FALSE;
+
 	memset(&priv, 0, sizeof(priv));
-	priv.mailbox = mailbox;
-	priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+	priv.mailbox = MN_MAILBOX(self);
+	priv.authenticated_mailbox = mailbox;
+	priv.pi_mailbox = MN_PI_MAILBOX(self);
 	priv.self = self;
+	priv.server_software_supports_idle = TRUE; /* assume it does */
     
 	status = mn_client_session_run(states,
 				       &callbacks,
 #ifdef WITH_SSL
-				       MN_URI_IS_SSL(mailbox->uri),
+				       priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
 #endif
-				       mailbox->uri->hostname,
-				       mailbox->uri->port,
+				       priv.pi_mailbox->hostname,
+				       priv.pi_mailbox->runtime_port,
 				       &priv,
 				       &err);
     
@@ -841,43 +1083,58 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 
 	g_slist_free(priv.received_numbers);
 	mn_g_object_slist_free(priv.messages);
+
+#ifdef WITH_SASL
+	g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
+
+	if (priv.could_idle && ! REMOVED(self))
+	  {
+	    if (status)
+	      again = TRUE;
+	    /* some servers abruptly disconnect for inactivity */
+	    else if (g_error_matches(err, MN_CLIENT_SESSION_ERROR, MN_CLIENT_SESSION_ERROR_CONNECTION_LOST))
+	      {
+		mn_mailbox_notice(priv.mailbox, "%s", err->message);
+		again = TRUE;
+	      }
+	  }
       }
-    while (status && priv.could_idle && ! REMOVED(self));
+    while (again);
 
     GDK_THREADS_ENTER();
 
-    mn_mailbox_set_must_poll(mailbox, TRUE);
+    mn_mailbox_set_must_poll(MN_MAILBOX(self), TRUE);
     if (! status)
       {
-	mn_mailbox_set_error(mailbox, "%s", err->message);
+	mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
 	g_error_free(err);
       }
-    mn_mailbox_end_check(mailbox);
 
     gdk_flush();
     GDK_THREADS_LEAVE();
   }
   
   private void
-    notice_cb (MNClientSession *session (check null),
-	       const char *str (check null),
-	       MNClientSessionPrivate *priv (check null))
+    notice_cb (MNClientSession *session,
+	       const char *message,
+	       MNClientSessionPrivate *priv)
   {
-    mn_mailbox_notice(priv->mailbox, "%s", str);
+    mn_mailbox_notice(priv->mailbox, "%s", message);
   }
   
   private void
-    warning_cb (MNClientSession *session (check null),
-		const char *str (check null),
-		MNClientSessionPrivate *priv (check null))
+    warning_cb (MNClientSession *session,
+		const char *message,
+		MNClientSessionPrivate *priv)
   {
-    mn_mailbox_warning(priv->mailbox, "%s", str);
+    mn_mailbox_warning(priv->mailbox, "%s", message);
   }
 
   private MNClientSessionResponse *
-    response_new_cb (MNClientSession *session (check null),
-		     const char *input (check null),
-		     MNClientSessionPrivate *priv (check null))
+    response_new_cb (MNClientSession *session,
+		     const char *input,
+		     MNClientSessionPrivate *priv)
   {
     MNClientSessionResponse *response = NULL;
 
@@ -933,9 +1190,9 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
 
   private void
-    response_free_cb (MNClientSession *session (check null),
-		      MNClientSessionResponse *response (check null),
-		      MNClientSessionPrivate *priv (check null))
+    response_free_cb (MNClientSession *session,
+		      MNClientSessionResponse *response,
+		      MNClientSessionPrivate *priv)
   {
     g_free(response->continuation);
     g_free(response->tag);
@@ -946,35 +1203,22 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    custom_handler_cb (MNClientSession *session (check null),
-		       MNClientSessionResponse *response (check null),
-		       int result,
-		       MNClientSessionPrivate *priv (check null))
+    default_handler (MNClientSessionResponse *response (check null),
+		     MNClientSessionPrivate *priv (check null),
+		     int error_code_when_bye)
   {
-    switch (result)
+    if (! response->tag && IS_BYE(response))
       {
-      case RESULT_ERROR_LOGOUT:
-	self_session_set_error_from_arguments(priv, response);
-	return STATE_LOGOUT;
-
-      case RESULT_ERROR_END:
-	self_session_set_error_from_arguments(priv, response);
-	return MN_CLIENT_SESSION_RESULT_END;
-
-      case RESULT_DEFAULT_HANDLER:
-	if (! response->tag && IS_BYE(response))
-	  return RESULT_ERROR_END;
-	else
-	  return MN_CLIENT_SESSION_RESULT_CONTINUE;
-	
-      default:
-	g_return_val_if_reached(0);
+	self_session_set_error_from_arguments(priv, error_code_when_bye, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
       }
+    else
+      return MN_CLIENT_SESSION_RESULT_CONTINUE;
   }
-
+  
   private void
-    pre_read_cb (MNClientSession *session (check null),
-		 MNClientSessionPrivate *priv (check null))
+    pre_read_cb (MNClientSession *session,
+		 MNClientSessionPrivate *priv)
   {
     if (priv->idle_state == IDLE_STATE_IDLING)
       {
@@ -985,8 +1229,8 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   }
 
   private void
-    post_read_cb (MNClientSession *session (check null),
-		  MNClientSessionPrivate *priv (check null))
+    post_read_cb (MNClientSession *session,
+		  MNClientSessionPrivate *priv)
   {
     if (priv->idle_state == IDLE_STATE_IDLING)
       {
@@ -998,12 +1242,13 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   
   private void
     session_set_error_from_arguments (MNClientSessionPrivate *priv (check null),
+				      int code,
 				      MNClientSessionResponse *response (check null))
   {
     if (response->arguments)
-      mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+      mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
     else
-      mn_client_session_error(priv->session, _("unknown server error"));
+      mn_client_session_error(priv->session, code, _("unknown server error"));
   }
 
   private int
@@ -1060,6 +1305,11 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
     eel_g_slist_free_deep(priv->auth_mechanisms);
     priv->auth_mechanisms = NULL;
 
+#ifdef WITH_SASL
+    g_slist_free(priv->sasl_remaining_mechanisms);
+    priv->sasl_remaining_mechanisms = NULL;
+#endif
+
     if (capabilities)
       {
 	int i;
@@ -1097,15 +1347,14 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
     else
       {
 #ifdef WITH_SSL
-	if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
-	    && ! MN_URI_IS_SSL(priv->mailbox->uri)
+	if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
 	    && ! priv->starttls_completed)
 	  {
 	    if (self_session_has_capability(priv, "STARTTLS"))
 	      return STATE_STARTTLS;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
 		return STATE_LOGOUT;
 	      }
 	  }
@@ -1117,24 +1366,29 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
   private int
     session_authenticate (MNClientSessionPrivate *priv (check null))
   {
-    if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+    g_slist_free(priv->sasl_remaining_mechanisms);
+    priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+    if (priv->pi_mailbox->authmech)
       {
-	if (*priv->mailbox->uri->authmech != '+')
+	if (*priv->pi_mailbox->authmech != '+')
 	  {
 #ifdef WITH_SASL
 	    return STATE_AUTHENTICATE;
 #else
-	    mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+	    mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
 	    return STATE_LOGOUT;
 #endif /* WITH_SASL */
 	  }
 	else
 	  {
-	    if (! strcmp(priv->mailbox->uri->authmech, "+LOGIN"))
+	    if (! strcmp(priv->pi_mailbox->authmech, "+LOGIN"))
 	      return STATE_LOGIN;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
 		return STATE_LOGOUT;
 	      }
 	  }
@@ -1142,7 +1396,7 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
     else
       {
 #ifdef WITH_SASL
-	if (priv->auth_mechanisms)
+	if (priv->sasl_remaining_mechanisms)
 	  return STATE_AUTHENTICATE;
 #endif /* WITH_SASL */
 	return STATE_LOGIN;
@@ -1153,8 +1407,29 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
     session_authenticate_fallback (MNClientSessionPrivate *priv (check null),
 				   gboolean tried_login)
   {
-    if (! priv->mailbox->uri->authmech)
+    if (! priv->pi_mailbox->authmech)
       {
+#ifdef WITH_SASL
+	if (priv->sasl_mechanism)
+	  {
+	    GSList *elem;
+
+	    elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+	    if (elem)
+	      {
+		priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+		if (priv->sasl_remaining_mechanisms)
+		  {
+		    mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+		    return STATE_AUTHENTICATE;
+		  }
+	      }
+	  }
+
+	/* SASL is not needed anymore, save some memory */
+	mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
 	if (! tried_login)
 	  {
 	    mn_client_session_notice(priv->session, _("falling back to IMAP LOGIN authentication"));
@@ -1162,18 +1437,42 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 	  }
       }
 
-    if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+    if (priv->authenticated_mailbox->prompted)
       {
 	mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
 	return self_session_authenticate(priv);
       }
     else
       {
-	mn_client_session_error(priv->session, _("authentication failed"));
+	mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
 	return STATE_LOGOUT;
       }
   }
 
+  private void
+    session_detect_imapd (MNClientSession *session (check null),
+			  MNClientSessionResponse *greeting_response (check null),
+			  MNClientSessionPrivate *priv (check null))
+  {
+    if (greeting_response->arguments)
+      {
+	char *str;
+
+	/*
+	 * Try to detect UW imapd by looking for " IMAP4rev1 YEAR."
+	 */
+	
+	if ((str = mn_strstr_span(greeting_response->arguments, " IMAP4rev1 "))
+	    && strspn(str, "0123456789") == 4
+	    && str[4] == '.')
+	  {
+	    priv->server_software = "UW imapd";
+	    priv->server_software_supports_idle = FALSE;
+	    return;
+	  }
+      }
+  }
+  
   /**
    * quote:
    * @str: the string to quote
@@ -1198,4 +1497,110 @@ class MN:IMAP:Mailbox from MN:Authenticated:Mailbox
 
     return g_string_free(quoted, FALSE);
   }
+
+  /**
+   * utf8_to_imap_utf7:
+   * @str: the UTF-8 string to convert to modified UTF-7
+   *
+   * Converts a string from UTF-8 to modified UTF-7 as defined by RFC 3501.
+   *
+   * Return value: the string converted to modified UTF-7.
+   **/
+  private char *
+    utf8_to_imap_utf7 (const char *str (check null))
+  {
+    gunichar c;
+    guint32 x, v = 0;
+    int state = 0;
+    GString *out;
+    int i = 0;
+
+    /*
+     * Taken from the Ximian Evolution sources (camel-utf8.c) and
+     * edited for tyle.
+     */
+
+    out = g_string_new(NULL);
+
+    while ((c = g_utf8_get_char(str)))
+      {
+	if (c >= 0x20 && c <= 0x7e)
+	  {
+	    if (state == 1)
+	      {
+		self_imap_utf7_closeb64(out, v, i);
+		state = 0;
+		i = 0;
+	      }
+	    if (c == '&')
+	      g_string_append(out, "&-");
+	    else
+	      g_string_append_c(out, c);
+	  }
+	else
+	  {
+	    if (state == 0)
+	      {
+		g_string_append_c(out, '&');
+		state = 1;
+	      }
+
+	    v = (v << 16) | c;
+	    i += 16;
+
+	    while (i >= 6)
+	      {
+		x = (v >> (i - 6)) & 0x3f;
+		g_string_append_c(out, utf7_alphabet[x]);
+		i -= 6;
+	      }
+	  }
+
+	str = g_utf8_next_char(str);
+      }
+
+    if (state == 1)
+      self_imap_utf7_closeb64(out, v, i);
+
+    return g_string_free(out, FALSE);
+  }
+  
+  private void
+    imap_utf7_closeb64 (GString *out (check null), guint32 v, guint32 i)
+  {
+    /*
+     * Taken from the Ximian Evolution sources (camel-utf8.c) and
+     * edited for tyle.
+     */
+
+    if (i > 0)
+      {
+	guint32 x;
+
+	x = (v << (6 - i)) & 0x3f;
+	g_string_append_c(out, utf7_alphabet[x]);
+      }
+
+    g_string_append_c(out, '-');
+  }
+  
+  public char *
+    build_name (const char *username,
+		const char *hostname (check null),
+		const char *mailbox)
+  {
+    GString *name;
+
+    name = g_string_new(NULL);
+
+    if (username)
+      g_string_append_printf(name, "%s@", username);
+    
+    g_string_append(name, hostname);
+
+    if (mailbox && mn_utf8_strcasecmp(mailbox, "INBOX"))
+      g_string_append_printf(name, "/%s", mailbox);
+
+    return g_string_free(name, FALSE);
+  }
 }
diff --git a/src/mn-imap-mailbox.h b/src/mn-imap-mailbox.h
@@ -1,10 +1,10 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
 
 #ifndef __MN_IMAP_MAILBOX_H__
 #define __MN_IMAP_MAILBOX_H__
@@ -14,6 +14,21 @@ extern "C" {
 #endif /* __cplusplus */
 
 
+
+#define MN_IMAP_MAILBOX_N_USE_IDLE	3
+
+extern int mn_imap_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+
+
+typedef enum {
+	MN_IMAP_MAILBOX_USE_IDLE_NEVER,
+	MN_IMAP_MAILBOX_USE_IDLE_AUTODETECT,
+	MN_IMAP_MAILBOX_USE_IDLE_ALWAYS
+} MNIMAPMailboxUseIDLE;
+#define MN_TYPE_IMAP_MAILBOX_USE_IDLE mn_imap_mailbox_use_idle_get_type()
+GType mn_imap_mailbox_use_idle_get_type (void);
+
+
 /*
  * Type checking and casting macros
  */
@@ -36,7 +51,11 @@ typedef struct _MNIMAPMailboxPrivate MNIMAPMailboxPrivate;
 typedef struct _MNIMAPMailbox MNIMAPMailbox;
 #endif
 struct _MNIMAPMailbox {
-	MNAuthenticatedMailbox __parent__;
+	MNPIMailbox __parent__;
+	/*< public >*/
+	char * mailbox;
+	char * runtime_mailbox;
+	MNIMAPMailboxUseIDLE use_idle_extension;
 	/*< private >*/
 	MNIMAPMailboxPrivate *_priv;
 };
@@ -46,7 +65,7 @@ struct _MNIMAPMailbox {
  */
 typedef struct _MNIMAPMailboxClass MNIMAPMailboxClass;
 struct _MNIMAPMailboxClass {
-	MNAuthenticatedMailboxClass __parent__;
+	MNPIMailboxClass __parent__;
 };
 
 
@@ -54,6 +73,25 @@ struct _MNIMAPMailboxClass {
  * Public methods
  */
 GType	mn_imap_mailbox_get_type	(void);
+char * 	mn_imap_mailbox_build_name	(const char * username,
+					const char * hostname,
+					const char * mailbox);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_IMAP_MAILBOX_PROP_MAILBOX(arg)    	"mailbox", __extension__ ({gchar *z = (arg); z;})
+#define MN_IMAP_MAILBOX_GET_PROP_MAILBOX(arg)	"mailbox", __extension__ ({gchar **z = (arg); z;})
+#define MN_IMAP_MAILBOX_PROP_USE_IDLE_EXTENSION(arg)    	"use_idle_extension", __extension__ ({gint z = (arg); z;})
+#define MN_IMAP_MAILBOX_GET_PROP_USE_IDLE_EXTENSION(arg)	"use_idle_extension", __extension__ ({gint *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_IMAP_MAILBOX_PROP_MAILBOX(arg)    	"mailbox",(gchar *)(arg)
+#define MN_IMAP_MAILBOX_GET_PROP_MAILBOX(arg)	"mailbox",(gchar **)(arg)
+#define MN_IMAP_MAILBOX_PROP_USE_IDLE_EXTENSION(arg)    	"use_idle_extension",(gint )(arg)
+#define MN_IMAP_MAILBOX_GET_PROP_USE_IDLE_EXTENSION(arg)	"use_idle_extension",(gint *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-mail-icon-private.h b/src/mn-mail-icon-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_MAIL_ICON_PRIVATE_H__
 #define __MN_MAIL_ICON_PRIVATE_H__
diff --git a/src/mn-mail-icon.c b/src/mn-mail-icon.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -26,8 +26,8 @@
 #line 31 "mn-mail-icon.gob"
 
 #include "config.h"
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
-#include <gnome.h>
 #include "mn-stock.h"
 #include "mn-util.h"
 
@@ -306,7 +306,7 @@ mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
 #line 307 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::init"
-	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailIconPrivate);
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAIL_ICON,MNMailIconPrivate);
 #line 41 "mn-mail-icon.gob"
 	self->_priv->tooltips = mn_tooltips_new();
 #line 313 "mn-mail-icon.c"
@@ -333,7 +333,7 @@ mn_mail_icon_init (MNMailIcon * self G_GNUC_UNUSED)
     mn_menu_shell_append(shell, NULL, NULL);
     properties_item = mn_menu_shell_append(shell, GTK_STOCK_PROPERTIES, NULL);
     help_item = mn_menu_shell_append(shell, GTK_STOCK_HELP, NULL);
-    about_item = mn_menu_shell_append(shell, GNOME_STOCK_ABOUT, NULL);
+    about_item = mn_menu_shell_append(shell, GTK_STOCK_ABOUT, NULL);
     mn_menu_shell_append(shell, NULL, NULL);
     remove_item = mn_menu_shell_append(shell, GTK_STOCK_REMOVE, _("R_emove From Notification Area"));
     
@@ -608,11 +608,6 @@ mn_mail_icon_show_help_h (GtkWidget * widget, GtkWidgetHelpType help_type, gpoin
 #line 609 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::show_help_h"
-#line 128 "mn-mail-icon.gob"
-	g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 128 "mn-mail-icon.gob"
-	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 616 "mn-mail-icon.c"
 {
 #line 132 "mn-mail-icon.gob"
 	
@@ -624,24 +619,15 @@ mn_mail_icon_show_help_h (GtkWidget * widget, GtkWidgetHelpType help_type, gpoin
     else
       return FALSE;
   }}
-#line 628 "mn-mail-icon.c"
+#line 623 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
 
 #line 142 "mn-mail-icon.gob"
 static gboolean 
 mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 634 "mn-mail-icon.c"
+#line 629 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::button_press_event_h"
-#line 142 "mn-mail-icon.gob"
-	g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 142 "mn-mail-icon.gob"
-	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 142 "mn-mail-icon.gob"
-	g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 142 "mn-mail-icon.gob"
-	g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 645 "mn-mail-icon.c"
 {
 #line 146 "mn-mail-icon.gob"
 	
@@ -657,24 +643,15 @@ mn_mail_icon_button_press_event_h (GtkWidget * widget, GdkEventButton * event, g
 
     return FALSE;		/* propagate event */
   }}
-#line 661 "mn-mail-icon.c"
+#line 647 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
 
 #line 160 "mn-mail-icon.gob"
 static gboolean 
 mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 667 "mn-mail-icon.c"
+#line 653 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::button_release_event_h"
-#line 160 "mn-mail-icon.gob"
-	g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 160 "mn-mail-icon.gob"
-	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 160 "mn-mail-icon.gob"
-	g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 160 "mn-mail-icon.gob"
-	g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 678 "mn-mail-icon.c"
 {
 #line 164 "mn-mail-icon.gob"
 	
@@ -688,24 +665,17 @@ mn_mail_icon_button_release_event_h (GtkWidget * widget, GdkEventButton * event,
     
     return FALSE;		/* propagate event */
   }}
-#line 692 "mn-mail-icon.c"
+#line 669 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
 
 #line 176 "mn-mail-icon.gob"
 static gboolean 
 mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_data)
-#line 698 "mn-mail-icon.c"
+#line 675 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::popup_menu_h"
-#line 176 "mn-mail-icon.gob"
-	g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 176 "mn-mail-icon.gob"
-	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 176 "mn-mail-icon.gob"
-	g_return_val_if_fail (user_data != NULL, (gboolean )0);
-#line 707 "mn-mail-icon.c"
 {
-#line 179 "mn-mail-icon.gob"
+#line 178 "mn-mail-icon.gob"
 	
     Self *self = user_data;
 
@@ -714,30 +684,17 @@ mn_mail_icon_popup_menu_h (GtkWidget * widget, gpointer user_data)
 
     return TRUE;		/* a menu was activated */
   }}
-#line 718 "mn-mail-icon.c"
+#line 688 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
 
-#line 188 "mn-mail-icon.gob"
+#line 187 "mn-mail-icon.gob"
 static void 
 mn_mail_icon_popup_menu_position_cb (GtkMenu * menu, int * x, int * y, gboolean * push_in, gpointer user_data)
-#line 724 "mn-mail-icon.c"
+#line 694 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::popup_menu_position_cb"
-#line 188 "mn-mail-icon.gob"
-	g_return_if_fail (menu != NULL);
-#line 188 "mn-mail-icon.gob"
-	g_return_if_fail (GTK_IS_MENU (menu));
-#line 188 "mn-mail-icon.gob"
-	g_return_if_fail (x != NULL);
-#line 188 "mn-mail-icon.gob"
-	g_return_if_fail (y != NULL);
-#line 188 "mn-mail-icon.gob"
-	g_return_if_fail (push_in != NULL);
-#line 188 "mn-mail-icon.gob"
-	g_return_if_fail (user_data != NULL);
-#line 739 "mn-mail-icon.c"
 {
-#line 194 "mn-mail-icon.gob"
+#line 193 "mn-mail-icon.gob"
 	
     GtkWidget *widget = user_data;
 
@@ -758,38 +715,38 @@ mn_mail_icon_popup_menu_position_cb (GtkMenu * menu, int * x, int * y, gboolean 
 
     *push_in = TRUE;
   }}
-#line 762 "mn-mail-icon.c"
+#line 719 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
 
-#line 215 "mn-mail-icon.gob"
+#line 214 "mn-mail-icon.gob"
 void 
 mn_mail_icon_set_tip_widget (MNMailIcon * self, GtkWidget * tip_widget)
-#line 768 "mn-mail-icon.c"
+#line 725 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::set_tip_widget"
-#line 215 "mn-mail-icon.gob"
+#line 214 "mn-mail-icon.gob"
 	g_return_if_fail (self != NULL);
-#line 215 "mn-mail-icon.gob"
+#line 214 "mn-mail-icon.gob"
 	g_return_if_fail (MN_IS_MAIL_ICON (self));
-#line 775 "mn-mail-icon.c"
+#line 732 "mn-mail-icon.c"
 {
-#line 217 "mn-mail-icon.gob"
+#line 216 "mn-mail-icon.gob"
 	
     mn_tooltips_set_tip_widget(selfp->tooltips, selfp->event_box, tip_widget);
   }}
-#line 781 "mn-mail-icon.c"
+#line 738 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
 
-#line 221 "mn-mail-icon.gob"
+#line 220 "mn-mail-icon.gob"
 GtkWidget * 
 mn_mail_icon_new (void)
-#line 787 "mn-mail-icon.c"
+#line 744 "mn-mail-icon.c"
 {
 #define __GOB_FUNCTION__ "MN:Mail:Icon::new"
 {
-#line 223 "mn-mail-icon.gob"
+#line 222 "mn-mail-icon.gob"
 	
     return GTK_WIDGET(GET_NEW_VARG("title", _("Mail Notification"), NULL));
   }}
-#line 795 "mn-mail-icon.c"
+#line 752 "mn-mail-icon.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-mail-icon.gob b/src/mn-mail-icon.gob
@@ -16,7 +16,7 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
@@ -30,8 +30,8 @@ requires 2.0.10
 
 %{
 #include "config.h"
+#include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
-#include <gnome.h>
 #include "mn-stock.h"
 #include "mn-util.h"
 %}
@@ -94,7 +94,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
     mn_menu_shell_append(shell, NULL, NULL);
     properties_item = mn_menu_shell_append(shell, GTK_STOCK_PROPERTIES, NULL);
     help_item = mn_menu_shell_append(shell, GTK_STOCK_HELP, NULL);
-    about_item = mn_menu_shell_append(shell, GNOME_STOCK_ABOUT, NULL);
+    about_item = mn_menu_shell_append(shell, GTK_STOCK_ABOUT, NULL);
     mn_menu_shell_append(shell, NULL, NULL);
     remove_item = mn_menu_shell_append(shell, GTK_STOCK_REMOVE, _("R_emove From Notification Area"));
     
@@ -126,7 +126,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
   }
 
   private gboolean
-    show_help_h (Gtk:Widget *widget (check null type),
+    show_help_h (GtkWidget *widget,
 		 GtkWidgetHelpType help_type,
 		 gpointer user_data)
   {
@@ -140,9 +140,9 @@ class MN:Mail:Icon from Egg:Tray:Icon
   }
   
   private gboolean
-    button_press_event_h (Gtk:Widget *widget (check null type),
-			  GdkEventButton *event (check null),
-			  gpointer user_data (check null))
+    button_press_event_h (GtkWidget *widget,
+			  GdkEventButton *event,
+			  gpointer user_data)
   {
     Self *self = user_data;
 
@@ -158,9 +158,9 @@ class MN:Mail:Icon from Egg:Tray:Icon
   }
 
   private gboolean
-    button_release_event_h (Gtk:Widget *widget (check null type),
-			    GdkEventButton *event (check null),
-			    gpointer user_data (check null))
+    button_release_event_h (GtkWidget *widget,
+			    GdkEventButton *event,
+			    gpointer user_data)
   {
     Self *self = user_data;
 
@@ -174,8 +174,7 @@ class MN:Mail:Icon from Egg:Tray:Icon
   }
   
   private gboolean
-    popup_menu_h (Gtk:Widget *widget (check null type),
-		  gpointer user_data (check null))
+    popup_menu_h (GtkWidget *widget, gpointer user_data)
   {
     Self *self = user_data;
 
@@ -186,11 +185,11 @@ class MN:Mail:Icon from Egg:Tray:Icon
   }
 
   private void
-    popup_menu_position_cb (Gtk:Menu *menu (check null type),
-			    int *x (check null),
-			    int *y (check null),
-			    gboolean *push_in (check null),
-			    gpointer user_data (check null))
+    popup_menu_position_cb (GtkMenu *menu,
+			    int *x,
+			    int *y,
+			    gboolean *push_in,
+			    gpointer user_data)
   {
     GtkWidget *widget = user_data;
 
diff --git a/src/mn-mail-icon.h b/src/mn-mail-icon.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/mn-mail-summary-popup-private.h b/src/mn-mail-summary-popup-private.h
@@ -0,0 +1,38 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MAIL_SUMMARY_POPUP_PRIVATE_H__
+#define __MN_MAIL_SUMMARY_POPUP_PRIVATE_H__
+
+#include "mn-mail-summary-popup.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-mail-summary-popup.gob"
+
+#include "mn-shell.h"
+
+#line 18 "mn-mail-summary-popup-private.h"
+struct _MNMailSummaryPopupPrivate {
+#line 41 "mn-mail-summary-popup.gob"
+	GtkWidget * image;
+#line 42 "mn-mail-summary-popup.gob"
+	GtkWidget * title;
+#line 43 "mn-mail-summary-popup.gob"
+	GtkWidget * message_view;
+#line 45 "mn-mail-summary-popup.gob"
+	GdkGravity gravity;
+#line 47 "mn-mail-summary-popup.gob"
+	unsigned int timeout_id;
+#line 30 "mn-mail-summary-popup-private.h"
+};
+gboolean 	mn_mail_summary_popup_button_press_event_h	(MNMailSummaryPopup * self, GdkEventButton * button, GtkWidget * widget);
+GtkWidget * 	mn_mail_summary_popup_message_view_new_cb	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mail-summary-popup.c b/src/mn-mail-summary-popup.c
@@ -0,0 +1,746 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mail-summary-popup.h"
+
+#include "mn-mail-summary-popup-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 29 "mn-mail-summary-popup.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-util.h"
+#include "mn-conf.h"
+#include "mn-stock.h"
+#include "mn-message-view.h"
+
+#line 37 "mn-mail-summary-popup.c"
+/* self casting macros */
+#define SELF(x) MN_MAIL_SUMMARY_POPUP(x)
+#define SELF_CONST(x) MN_MAIL_SUMMARY_POPUP_CONST(x)
+#define IS_SELF(x) MN_IS_MAIL_SUMMARY_POPUP(x)
+#define TYPE_SELF MN_TYPE_MAIL_SUMMARY_POPUP
+#define SELF_CLASS(x) MN_MAIL_SUMMARY_POPUP_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAIL_SUMMARY_POPUP_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMailSummaryPopup Self;
+typedef MNMailSummaryPopupClass SelfClass;
+
+/* here are local prototypes */
+static void mn_mail_summary_popup_class_init (MNMailSummaryPopupClass * c) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_init (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void ___2_mn_mail_summary_popup_finalize (GObject * object) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_realize_set_decorations_h (MNMailSummaryPopup * self, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_realize_set_geometry_h (MNMailSummaryPopup * self, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_autoclose_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_geometry_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_fonts_aspect_source_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_fonts_title_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_notify_fonts_contents_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_install_timeout (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static gboolean mn_mail_summary_popup_timeout_cb (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_geometry (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_title_font (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_contents_font (MNMailSummaryPopup * self) G_GNUC_UNUSED;
+static void mn_mail_summary_popup_set_font (MNMailSummaryPopup * self, GtkWidget * widget, const char * conf_key) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GtkWindowClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_realize_set_decorations_h mn_mail_summary_popup_realize_set_decorations_h
+#define self_realize_set_geometry_h mn_mail_summary_popup_realize_set_geometry_h
+#define self_notify_autoclose_cb mn_mail_summary_popup_notify_autoclose_cb
+#define self_notify_delay_cb mn_mail_summary_popup_notify_delay_cb
+#define self_notify_geometry_cb mn_mail_summary_popup_notify_geometry_cb
+#define self_notify_fonts_aspect_source_cb mn_mail_summary_popup_notify_fonts_aspect_source_cb
+#define self_notify_fonts_title_font_cb mn_mail_summary_popup_notify_fonts_title_font_cb
+#define self_notify_fonts_contents_font_cb mn_mail_summary_popup_notify_fonts_contents_font_cb
+#define self_install_timeout mn_mail_summary_popup_install_timeout
+#define self_timeout_cb mn_mail_summary_popup_timeout_cb
+#define self_set_geometry mn_mail_summary_popup_set_geometry
+#define self_set_title_font mn_mail_summary_popup_set_title_font
+#define self_set_contents_font mn_mail_summary_popup_set_contents_font
+#define self_set_font mn_mail_summary_popup_set_font
+#define self_set_messages mn_mail_summary_popup_set_messages
+#define self_reset_timeout mn_mail_summary_popup_reset_timeout
+#define self_new mn_mail_summary_popup_new
+#define self_button_press_event_h mn_mail_summary_popup_button_press_event_h
+#define self_message_view_new_cb mn_mail_summary_popup_message_view_new_cb
+GType
+mn_mail_summary_popup_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNMailSummaryPopupClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_mail_summary_popup_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNMailSummaryPopup),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_mail_summary_popup_init,
+			NULL
+		};
+
+		type = g_type_register_static (GTK_TYPE_WINDOW, "MNMailSummaryPopup", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMailSummaryPopup *)g_object_new(mn_mail_summary_popup_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMailSummaryPopup * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMailSummaryPopup *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNMailSummaryPopup *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNMailSummaryPopup *)g_object_new_valist (mn_mail_summary_popup_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::finalize"
+	MNMailSummaryPopup *self G_GNUC_UNUSED = MN_MAIL_SUMMARY_POPUP (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 116 "mn-mail-summary-popup.gob"
+	___2_mn_mail_summary_popup_finalize(obj_self);
+#line 144 "mn-mail-summary-popup.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_mail_summary_popup_class_init (MNMailSummaryPopupClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+	g_type_class_add_private(c,sizeof(MNMailSummaryPopupPrivate));
+
+	parent_class = g_type_class_ref (GTK_TYPE_WINDOW);
+
+#line 116 "mn-mail-summary-popup.gob"
+	g_object_class->finalize = ___finalize;
+#line 160 "mn-mail-summary-popup.c"
+}
+#undef __GOB_FUNCTION__
+#line 49 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_init (MNMailSummaryPopup * self G_GNUC_UNUSED)
+#line 166 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAIL_SUMMARY_POPUP,MNMailSummaryPopupPrivate);
+#line 29 "mn-mail-summary-popup.gob"
+	self->_priv->gravity = -1;
+#line 172 "mn-mail-summary-popup.c"
+ {
+#line 50 "mn-mail-summary-popup.gob"
+
+    mn_container_create_interface(GTK_CONTAINER(self),
+				  MN_INTERFACE_FILE("mail-summary-popup.glade"),
+				  "eventbox",
+				  "mn_mail_summary_popup_",
+				  "image", &selfp->image,
+				  "mn-mail-summary-popup-title", &selfp->title,
+				  "mn-message-view", &selfp->message_view,
+				  NULL);
+
+    gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-summary-popup");
+
+    /*
+     * The popup must:
+     *
+     *	- be sticky
+     *	- be kept above other windows
+     *	- not be focusable
+     *	- not be decorated
+     *	- not appear in the pager
+     *	- not appear in the taskbar
+     *
+     * An easy way to meet these requirements is to use a window of
+     * type GTK_WINDOW_POPUP, but unfortunately these are not hidden
+     * by xscreensaver
+     * (http://bugzilla.gnome.org/show_bug.cgi?id=154529).
+     *
+     * We therefore use a window of type GTK_WINDOW_TOPLEVEL along
+     * with appropriate properties (but a drawback is
+     * http://bugzilla.gnome.org/show_bug.cgi?id=154593).
+     */
+    
+    gtk_window_set_title(GTK_WINDOW(self), "");
+    gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+    gtk_window_set_keep_above(GTK_WINDOW(self), TRUE);
+    gtk_window_set_decorated(GTK_WINDOW(self), FALSE);
+    gtk_window_set_skip_taskbar_hint(GTK_WINDOW(self), TRUE);
+    gtk_window_set_skip_pager_hint(GTK_WINDOW(self), TRUE);
+    gtk_window_set_accept_focus(GTK_WINDOW(self), FALSE);
+    gtk_window_set_focus_on_map(GTK_WINDOW(self), FALSE);
+    gtk_window_stick(GTK_WINDOW(self));
+
+    gtk_image_set_from_stock(GTK_IMAGE(selfp->image), MN_STOCK_MAIL_SUMMARY, -1);
+
+    self_set_title_font(self);
+    self_set_contents_font(self);
+
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+      self_install_timeout(self);
+
+    mn_conf_notifications_add(self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, self_notify_autoclose_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_NAMESPACE, self_notify_delay_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_POSITION, self_notify_geometry_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE, self_notify_geometry_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, self_notify_fonts_aspect_source_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, self_notify_fonts_title_font_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, self_notify_fonts_contents_font_cb, self,
+			      NULL);
+
+    g_object_connect(self,
+		     "signal::realize", self_realize_set_decorations_h, NULL,
+		     "signal::realize", self_realize_set_geometry_h, NULL,
+		     NULL);
+  
+#line 240 "mn-mail-summary-popup.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 116 "mn-mail-summary-popup.gob"
+static void 
+___2_mn_mail_summary_popup_finalize (GObject * object G_GNUC_UNUSED)
+#line 250 "mn-mail-summary-popup.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::finalize"
+{
+#line 118 "mn-mail-summary-popup.gob"
+	
+    Self *self = SELF(object);
+
+    if (selfp->timeout_id)
+      g_source_remove(selfp->timeout_id);
+
+    PARENT_HANDLER(object);
+  }}
+#line 266 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 127 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_realize_set_decorations_h (MNMailSummaryPopup * self, gpointer user_data)
+#line 273 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::realize_set_decorations_h"
+#line 127 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 127 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 280 "mn-mail-summary-popup.c"
+{
+#line 129 "mn-mail-summary-popup.gob"
+	
+    /*
+     * gdk_window_set_decorations() needs the widget's GdkWindow, this
+     * is why we must call it after the widget is realized.
+     */
+    gdk_window_set_decorations(GTK_WIDGET(self)->window, GDK_DECOR_BORDER);
+  }}
+#line 290 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 137 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_realize_set_geometry_h (MNMailSummaryPopup * self, gpointer user_data)
+#line 296 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::realize_set_geometry_h"
+#line 137 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 137 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 303 "mn-mail-summary-popup.c"
+{
+#line 139 "mn-mail-summary-popup.gob"
+	
+    /* one shot */
+    g_signal_handlers_disconnect_by_func(self, self_realize_set_geometry_h, NULL);
+    self_set_geometry(self);
+  }}
+#line 311 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 145 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_notify_autoclose_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 317 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_autoclose_cb"
+{
+#line 150 "mn-mail-summary-popup.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+      {
+	if (! selfp->timeout_id)
+	  self_install_timeout(self);
+      }
+    else
+      mn_source_clear(&selfp->timeout_id);
+    
+    GDK_THREADS_LEAVE();
+  }}
+#line 337 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 166 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 343 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_delay_cb"
+{
+#line 171 "mn-mail-summary-popup.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_reset_timeout(self);
+    
+    GDK_THREADS_LEAVE();
+  }}
+#line 357 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 181 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_notify_geometry_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 363 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_geometry_cb"
+{
+#line 186 "mn-mail-summary-popup.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_geometry(self);
+
+    GDK_THREADS_LEAVE();
+  }}
+#line 377 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 196 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_notify_fonts_aspect_source_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 383 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_fonts_aspect_source_cb"
+{
+#line 201 "mn-mail-summary-popup.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_title_font(self);
+    self_set_contents_font(self);
+
+    GDK_THREADS_LEAVE();
+  }}
+#line 398 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 212 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_notify_fonts_title_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 404 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_fonts_title_font_cb"
+{
+#line 217 "mn-mail-summary-popup.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_title_font(self);
+
+    GDK_THREADS_LEAVE();
+  }}
+#line 418 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 227 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_notify_fonts_contents_font_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 424 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::notify_fonts_contents_font_cb"
+{
+#line 232 "mn-mail-summary-popup.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_contents_font(self);
+
+    GDK_THREADS_LEAVE();
+  }}
+#line 438 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 242 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_install_timeout (MNMailSummaryPopup * self)
+#line 444 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::install_timeout"
+#line 242 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 242 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 451 "mn-mail-summary-popup.c"
+{
+#line 244 "mn-mail-summary-popup.gob"
+	
+    g_return_if_fail(selfp->timeout_id == 0);
+
+    selfp->timeout_id = mn_timeout_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+				       MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+				       (GSourceFunc) self_timeout_cb,
+				       self);
+  }}
+#line 462 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 253 "mn-mail-summary-popup.gob"
+static gboolean 
+mn_mail_summary_popup_timeout_cb (MNMailSummaryPopup * self)
+#line 468 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::timeout_cb"
+#line 253 "mn-mail-summary-popup.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 253 "mn-mail-summary-popup.gob"
+	g_return_val_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self), (gboolean )0);
+#line 475 "mn-mail-summary-popup.c"
+{
+#line 255 "mn-mail-summary-popup.gob"
+	
+    GDK_THREADS_ENTER();
+    gtk_widget_destroy(GTK_WIDGET(self));
+    GDK_THREADS_LEAVE();
+  
+    return FALSE;		/* remove timeout */
+  }}
+#line 485 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 263 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_set_geometry (MNMailSummaryPopup * self)
+#line 491 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_geometry"
+#line 263 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 263 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 498 "mn-mail-summary-popup.c"
+{
+#line 265 "mn-mail-summary-popup.gob"
+	
+    MNPosition position;
+    int horizontal_offset;
+    int vertical_offset;
+    int popup_width;
+    int popup_height;
+    int screen_width;
+    int screen_height;
+    GdkGravity gravity_mapping[] = {
+      GDK_GRAVITY_NORTH_WEST,
+      GDK_GRAVITY_NORTH_EAST,
+      GDK_GRAVITY_SOUTH_WEST,
+      GDK_GRAVITY_SOUTH_EAST
+    };
+    GdkGravity gravity;
+    int x;
+    int y;
+    gboolean reshow = FALSE;
+
+    position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+    horizontal_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET);
+    vertical_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET);
+
+    gtk_window_get_size(GTK_WINDOW(self), &popup_width, &popup_height);
+    screen_width = gdk_screen_width();
+    screen_height = gdk_screen_height();
+
+    g_return_if_fail(position >= 0 && position < G_N_ELEMENTS(gravity_mapping));
+    gravity = gravity_mapping[position];
+
+    x = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_SOUTH_WEST)
+      ? horizontal_offset
+      : screen_width - popup_width - horizontal_offset;
+    y = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_NORTH_EAST)
+      ? vertical_offset
+      : screen_height - popup_height - vertical_offset;
+
+    /*
+     * If the gravity changes, the gtk_window_move() call will misplace
+     * the window (probably a Metacity bug).
+     *
+     * A workaround is to reshow the window.
+     */
+    if (gravity != selfp->gravity)
+      {
+	if (selfp->gravity != -1)
+	  reshow = TRUE;
+
+	selfp->gravity = gravity;
+      }
+
+    if (reshow)
+      {
+	gtk_widget_hide(GTK_WIDGET(self));
+
+	/*
+	 * If we do not unrealize the window, it will appear in the
+	 * task bar the next time we show it.
+	 */
+	gtk_widget_unrealize(GTK_WIDGET(self));
+      }
+
+    gtk_window_set_gravity(GTK_WINDOW(self), gravity);
+    gtk_window_move(GTK_WINDOW(self), x, y);
+
+    if (reshow)
+      gtk_widget_show(GTK_WIDGET(self));
+  }}
+#line 569 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 334 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_set_title_font (MNMailSummaryPopup * self)
+#line 575 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_title_font"
+#line 334 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 334 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 582 "mn-mail-summary-popup.c"
+{
+#line 336 "mn-mail-summary-popup.gob"
+	
+    self_set_font(self, selfp->title, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT);
+  }}
+#line 588 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 340 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_set_contents_font (MNMailSummaryPopup * self)
+#line 594 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_contents_font"
+#line 340 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 340 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 601 "mn-mail-summary-popup.c"
+{
+#line 342 "mn-mail-summary-popup.gob"
+	
+    self_set_font(self, selfp->message_view, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT);
+  }}
+#line 607 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 346 "mn-mail-summary-popup.gob"
+static void 
+mn_mail_summary_popup_set_font (MNMailSummaryPopup * self, GtkWidget * widget, const char * conf_key)
+#line 613 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_font"
+#line 346 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 346 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 346 "mn-mail-summary-popup.gob"
+	g_return_if_fail (widget != NULL);
+#line 346 "mn-mail-summary-popup.gob"
+	g_return_if_fail (GTK_IS_WIDGET (widget));
+#line 346 "mn-mail-summary-popup.gob"
+	g_return_if_fail (conf_key != NULL);
+#line 626 "mn-mail-summary-popup.c"
+{
+#line 350 "mn-mail-summary-popup.gob"
+	
+    PangoFontDescription *font_desc = NULL;
+
+    if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
+      {
+	char *str;
+	
+	str = eel_gconf_get_string(conf_key);
+	if (str)
+	  {
+	    font_desc = pango_font_description_from_string(str);
+	    g_free(str);
+	  }
+      }
+    
+    gtk_widget_modify_font(widget, font_desc);
+    if (font_desc)
+      pango_font_description_free(font_desc);
+  }}
+#line 648 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 370 "mn-mail-summary-popup.gob"
+void 
+mn_mail_summary_popup_set_messages (MNMailSummaryPopup * self, GSList * messages)
+#line 654 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::set_messages"
+#line 370 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 370 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 370 "mn-mail-summary-popup.gob"
+	g_return_if_fail (messages != NULL);
+#line 663 "mn-mail-summary-popup.c"
+{
+#line 372 "mn-mail-summary-popup.gob"
+	
+    mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+  }}
+#line 669 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 376 "mn-mail-summary-popup.gob"
+void 
+mn_mail_summary_popup_reset_timeout (MNMailSummaryPopup * self)
+#line 675 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::reset_timeout"
+#line 376 "mn-mail-summary-popup.gob"
+	g_return_if_fail (self != NULL);
+#line 376 "mn-mail-summary-popup.gob"
+	g_return_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self));
+#line 682 "mn-mail-summary-popup.c"
+{
+#line 378 "mn-mail-summary-popup.gob"
+	
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+      {
+	mn_source_clear(&selfp->timeout_id);
+	self_install_timeout(self);
+      }
+  }}
+#line 692 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 386 "mn-mail-summary-popup.gob"
+GtkWidget * 
+mn_mail_summary_popup_new (void)
+#line 698 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::new"
+{
+#line 388 "mn-mail-summary-popup.gob"
+	
+    return GTK_WIDGET(GET_NEW);
+  }}
+#line 706 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 394 "mn-mail-summary-popup.gob"
+gboolean 
+mn_mail_summary_popup_button_press_event_h (MNMailSummaryPopup * self, GdkEventButton * button, GtkWidget * widget)
+#line 712 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::button_press_event_h"
+#line 394 "mn-mail-summary-popup.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 394 "mn-mail-summary-popup.gob"
+	g_return_val_if_fail (MN_IS_MAIL_SUMMARY_POPUP (self), (gboolean )0);
+#line 719 "mn-mail-summary-popup.c"
+{
+#line 396 "mn-mail-summary-popup.gob"
+	
+    gtk_widget_destroy(GTK_WIDGET(self));
+
+    return TRUE;		/* do not propagate event */
+  }}
+#line 727 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
+
+#line 402 "mn-mail-summary-popup.gob"
+GtkWidget * 
+mn_mail_summary_popup_message_view_new_cb (void)
+#line 733 "mn-mail-summary-popup.c"
+{
+#define __GOB_FUNCTION__ "MN:Mail:Summary:Popup::message_view_new_cb"
+{
+#line 404 "mn-mail-summary-popup.gob"
+	
+    GtkWidget *view;
+
+    view = mn_message_view_new(TRUE, FALSE);
+    gtk_widget_show(view);
+
+    return view;
+  }}
+#line 746 "mn-mail-summary-popup.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-mail-summary-popup.gob b/src/mn-mail-summary-popup.gob
@@ -0,0 +1,412 @@
+/* 
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+%privateheader{
+#include "mn-shell.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-util.h"
+#include "mn-conf.h"
+#include "mn-stock.h"
+#include "mn-message-view.h"
+%}
+
+class MN:Mail:Summary:Popup from Gtk:Window
+{
+  private GtkWidget *image;
+  private GtkWidget *title;
+  private GtkWidget *message_view;
+
+  private GdkGravity gravity = -1;
+
+  private unsigned int timeout_id;
+
+  init (self)
+  {
+    mn_container_create_interface(GTK_CONTAINER(self),
+				  MN_INTERFACE_FILE("mail-summary-popup.glade"),
+				  "eventbox",
+				  "mn_mail_summary_popup_",
+				  "image", &selfp->image,
+				  "mn-mail-summary-popup-title", &selfp->title,
+				  "mn-message-view", &selfp->message_view,
+				  NULL);
+
+    gtk_widget_set_name(GTK_WIDGET(self), "mn-mail-summary-popup");
+
+    /*
+     * The popup must:
+     *
+     *	- be sticky
+     *	- be kept above other windows
+     *	- not be focusable
+     *	- not be decorated
+     *	- not appear in the pager
+     *	- not appear in the taskbar
+     *
+     * An easy way to meet these requirements is to use a window of
+     * type GTK_WINDOW_POPUP, but unfortunately these are not hidden
+     * by xscreensaver
+     * (http://bugzilla.gnome.org/show_bug.cgi?id=154529).
+     *
+     * We therefore use a window of type GTK_WINDOW_TOPLEVEL along
+     * with appropriate properties (but a drawback is
+     * http://bugzilla.gnome.org/show_bug.cgi?id=154593).
+     */
+    
+    gtk_window_set_title(GTK_WINDOW(self), "");
+    gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+    gtk_window_set_keep_above(GTK_WINDOW(self), TRUE);
+    gtk_window_set_decorated(GTK_WINDOW(self), FALSE);
+    gtk_window_set_skip_taskbar_hint(GTK_WINDOW(self), TRUE);
+    gtk_window_set_skip_pager_hint(GTK_WINDOW(self), TRUE);
+    gtk_window_set_accept_focus(GTK_WINDOW(self), FALSE);
+    gtk_window_set_focus_on_map(GTK_WINDOW(self), FALSE);
+    gtk_window_stick(GTK_WINDOW(self));
+
+    gtk_image_set_from_stock(GTK_IMAGE(selfp->image), MN_STOCK_MAIL_SUMMARY, -1);
+
+    self_set_title_font(self);
+    self_set_contents_font(self);
+
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+      self_install_timeout(self);
+
+    mn_conf_notifications_add(self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, self_notify_autoclose_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_NAMESPACE, self_notify_delay_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_POSITION, self_notify_geometry_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE, self_notify_geometry_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, self_notify_fonts_aspect_source_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, self_notify_fonts_title_font_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, self_notify_fonts_contents_font_cb, self,
+			      NULL);
+
+    g_object_connect(self,
+		     "signal::realize", self_realize_set_decorations_h, NULL,
+		     "signal::realize", self_realize_set_geometry_h, NULL,
+		     NULL);
+  }
+
+  override (G:Object) void
+    finalize (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    if (selfp->timeout_id)
+      g_source_remove(selfp->timeout_id);
+
+    PARENT_HANDLER(object);
+  }
+
+  private void
+    realize_set_decorations_h (self, gpointer user_data)
+  {
+    /*
+     * gdk_window_set_decorations() needs the widget's GdkWindow, this
+     * is why we must call it after the widget is realized.
+     */
+    gdk_window_set_decorations(GTK_WIDGET(self)->window, GDK_DECOR_BORDER);
+  }
+
+  private void
+    realize_set_geometry_h (self, gpointer user_data)
+  {
+    /* one shot */
+    g_signal_handlers_disconnect_by_func(self, self_realize_set_geometry_h, NULL);
+    self_set_geometry(self);
+  }
+  
+  private void
+    notify_autoclose_cb (GConfClient *client,
+			 unsigned int cnxn_id,
+			 GConfEntry *entry,
+			 gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+      {
+	if (! selfp->timeout_id)
+	  self_install_timeout(self);
+      }
+    else
+      mn_source_clear(&selfp->timeout_id);
+    
+    GDK_THREADS_LEAVE();
+  }
+  
+  private void
+    notify_delay_cb (GConfClient *client,
+		     unsigned int cnxn_id,
+		     GConfEntry *entry,
+		     gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_reset_timeout(self);
+    
+    GDK_THREADS_LEAVE();
+  }
+
+  private void
+    notify_geometry_cb (GConfClient *client,
+			unsigned int cnxn_id,
+			GConfEntry *entry,
+			gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_geometry(self);
+
+    GDK_THREADS_LEAVE();
+  }
+
+  private void
+    notify_fonts_aspect_source_cb (GConfClient *client,
+				   unsigned int cnxn_id,
+				   GConfEntry *entry,
+				   gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_title_font(self);
+    self_set_contents_font(self);
+
+    GDK_THREADS_LEAVE();
+  }
+
+  private void
+    notify_fonts_title_font_cb (GConfClient *client,
+				unsigned int cnxn_id,
+				GConfEntry *entry,
+				gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_title_font(self);
+
+    GDK_THREADS_LEAVE();
+  }
+  
+  private void
+    notify_fonts_contents_font_cb (GConfClient *client,
+				   unsigned int cnxn_id,
+				   GConfEntry *entry,
+				   gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    self_set_contents_font(self);
+
+    GDK_THREADS_LEAVE();
+  }
+
+  private void
+    install_timeout (self)
+  {
+    g_return_if_fail(selfp->timeout_id == 0);
+
+    selfp->timeout_id = mn_timeout_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+				       MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+				       (GSourceFunc) self_timeout_cb,
+				       self);
+  }
+
+  private gboolean
+    timeout_cb (self)
+  {
+    GDK_THREADS_ENTER();
+    gtk_widget_destroy(GTK_WIDGET(self));
+    GDK_THREADS_LEAVE();
+  
+    return FALSE;		/* remove timeout */
+  }
+
+  private void
+    set_geometry (self)
+  {
+    MNPosition position;
+    int horizontal_offset;
+    int vertical_offset;
+    int popup_width;
+    int popup_height;
+    int screen_width;
+    int screen_height;
+    GdkGravity gravity_mapping[] = {
+      GDK_GRAVITY_NORTH_WEST,
+      GDK_GRAVITY_NORTH_EAST,
+      GDK_GRAVITY_SOUTH_WEST,
+      GDK_GRAVITY_SOUTH_EAST
+    };
+    GdkGravity gravity;
+    int x;
+    int y;
+    gboolean reshow = FALSE;
+
+    position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+    horizontal_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET);
+    vertical_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET);
+
+    gtk_window_get_size(GTK_WINDOW(self), &popup_width, &popup_height);
+    screen_width = gdk_screen_width();
+    screen_height = gdk_screen_height();
+
+    g_return_if_fail(position >= 0 && position < G_N_ELEMENTS(gravity_mapping));
+    gravity = gravity_mapping[position];
+
+    x = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_SOUTH_WEST)
+      ? horizontal_offset
+      : screen_width - popup_width - horizontal_offset;
+    y = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_NORTH_EAST)
+      ? vertical_offset
+      : screen_height - popup_height - vertical_offset;
+
+    /*
+     * If the gravity changes, the gtk_window_move() call will misplace
+     * the window (probably a Metacity bug).
+     *
+     * A workaround is to reshow the window.
+     */
+    if (gravity != selfp->gravity)
+      {
+	if (selfp->gravity != -1)
+	  reshow = TRUE;
+
+	selfp->gravity = gravity;
+      }
+
+    if (reshow)
+      {
+	gtk_widget_hide(GTK_WIDGET(self));
+
+	/*
+	 * If we do not unrealize the window, it will appear in the
+	 * task bar the next time we show it.
+	 */
+	gtk_widget_unrealize(GTK_WIDGET(self));
+      }
+
+    gtk_window_set_gravity(GTK_WINDOW(self), gravity);
+    gtk_window_move(GTK_WINDOW(self), x, y);
+
+    if (reshow)
+      gtk_widget_show(GTK_WIDGET(self));
+  }
+
+  private void
+    set_title_font (self)
+  {
+    self_set_font(self, selfp->title, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT);
+  }
+
+  private void
+    set_contents_font (self)
+  {
+    self_set_font(self, selfp->message_view, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT);
+  }
+  
+  private void
+    set_font (self,
+	      Gtk:Widget *widget (check null type),
+	      const char *conf_key (check null))
+  {
+    PangoFontDescription *font_desc = NULL;
+
+    if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
+      {
+	char *str;
+	
+	str = eel_gconf_get_string(conf_key);
+	if (str)
+	  {
+	    font_desc = pango_font_description_from_string(str);
+	    g_free(str);
+	  }
+      }
+    
+    gtk_widget_modify_font(widget, font_desc);
+    if (font_desc)
+      pango_font_description_free(font_desc);
+  }
+  
+  public void
+    set_messages (self, GSList *messages (check null))
+  {
+    mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+  }
+
+  public void
+    reset_timeout (self)
+  {
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
+      {
+	mn_source_clear(&selfp->timeout_id);
+	self_install_timeout(self);
+      }
+  }
+
+  public GtkWidget *
+    new (void)
+  {
+    return GTK_WIDGET(GET_NEW);
+  }
+
+  /* libglade callbacks */
+
+  protected gboolean
+    button_press_event_h (self, GdkEventButton *button, GtkWidget *widget)
+  {
+    gtk_widget_destroy(GTK_WIDGET(self));
+
+    return TRUE;		/* do not propagate event */
+  }
+
+  protected GtkWidget *
+    message_view_new_cb (void)
+  {
+    GtkWidget *view;
+
+    view = mn_message_view_new(TRUE, FALSE);
+    gtk_widget_show(view);
+
+    return view;
+  }
+}
diff --git a/src/mn-mail-summary-popup.h b/src/mn-mail-summary-popup.h
@@ -0,0 +1,66 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+
+#ifndef __MN_MAIL_SUMMARY_POPUP_H__
+#define __MN_MAIL_SUMMARY_POPUP_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MAIL_SUMMARY_POPUP	(mn_mail_summary_popup_get_type())
+#define MN_MAIL_SUMMARY_POPUP(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mail_summary_popup_get_type(), MNMailSummaryPopup)
+#define MN_MAIL_SUMMARY_POPUP_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mail_summary_popup_get_type(), MNMailSummaryPopup const)
+#define MN_MAIL_SUMMARY_POPUP_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mail_summary_popup_get_type(), MNMailSummaryPopupClass)
+#define MN_IS_MAIL_SUMMARY_POPUP(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mail_summary_popup_get_type ())
+
+#define MN_MAIL_SUMMARY_POPUP_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mail_summary_popup_get_type(), MNMailSummaryPopupClass)
+
+/* Private structure type */
+typedef struct _MNMailSummaryPopupPrivate MNMailSummaryPopupPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAIL_SUMMARY_POPUP__
+#define __TYPEDEF_MN_MAIL_SUMMARY_POPUP__
+typedef struct _MNMailSummaryPopup MNMailSummaryPopup;
+#endif
+struct _MNMailSummaryPopup {
+	GtkWindow __parent__;
+	/*< private >*/
+	MNMailSummaryPopupPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMailSummaryPopupClass MNMailSummaryPopupClass;
+struct _MNMailSummaryPopupClass {
+	GtkWindowClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_mail_summary_popup_get_type	(void);
+void 	mn_mail_summary_popup_set_messages	(MNMailSummaryPopup * self,
+					GSList * messages);
+void 	mn_mail_summary_popup_reset_timeout	(MNMailSummaryPopup * self);
+GtkWidget * 	mn_mail_summary_popup_new	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mailbox-private.h b/src/mn-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_MAILBOX_PRIVATE_H__
 #define __MN_MAILBOX_PRIVATE_H__
@@ -10,46 +10,22 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-#line 28 "mn-mailbox.gob"
+#line 34 "mn-mailbox.gob"
 
-#include <libgnomevfs/gnome-vfs.h>
+typedef enum
+{
+  /* save to mailboxes.xml */
+  MN_MAILBOX_PARAM_PERMANENT	= 1 << (G_PARAM_USER_SHIFT + 0),
 
-  typedef enum
-  {
-    MN_MAILBOX_MONITOR_EVENT_CHANGED		= 1 << GNOME_VFS_MONITOR_EVENT_CHANGED,
-    MN_MAILBOX_MONITOR_EVENT_DELETED		= 1 << GNOME_VFS_MONITOR_EVENT_DELETED,
-    MN_MAILBOX_MONITOR_EVENT_STARTEXECUTING	= 1 << GNOME_VFS_MONITOR_EVENT_STARTEXECUTING,
-    MN_MAILBOX_MONITOR_EVENT_STOPEXECUTING	= 1 << GNOME_VFS_MONITOR_EVENT_STOPEXECUTING,
-    MN_MAILBOX_MONITOR_EVENT_CREATED		= 1 << GNOME_VFS_MONITOR_EVENT_CREATED,
-    MN_MAILBOX_MONITOR_EVENT_METADATA_CHANGED	= 1 << GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED
-  } MNMailboxMonitorEventType;
+  /* require a string property to be non-empty */
+  MN_MAILBOX_PARAM_REQUIRED	= 1 << (G_PARAM_USER_SHIFT + 1),
+
+  /* ignore the case of a string property when checking if it has the default value */
+  MN_MAILBOX_PARAM_IGNORE_CASE	= 1 << (G_PARAM_USER_SHIFT + 2)
+} MNMailboxParamFlags;
 
 #line 28 "mn-mailbox-private.h"
-struct _MNMailboxPrivate {
-#line 141 "mn-mailbox.gob"
-	char * name;
-#line 145 "mn-mailbox.gob"
-	gboolean must_poll;
-#line 151 "mn-mailbox.gob"
-	GSList * messages;
-#line 205 "mn-mailbox.gob"
-	char * error;
-#line 225 "mn-mailbox.gob"
-	GnomeVFSMonitorHandle * monitor_handle;
-#line 226 "mn-mailbox.gob"
-	char * monitor_uri;
-#line 227 "mn-mailbox.gob"
-	MNMailboxMonitorEventType monitor_events;
-#line 229 "mn-mailbox.gob"
-	gboolean checking;
-#line 360 "mn-mailbox.gob"
-	char * init_error;
-#line 48 "mn-mailbox-private.h"
-};
 void 	mn_mailbox_set_error	(MNMailbox * self, const char * format, ...);
-void 	mn_mailbox_set_init_error	(MNMailbox * self, const char * format, ...);
-void 	mn_mailbox_monitor	(MNMailbox * self, const char * uri, GnomeVFSMonitorType monitor_type, MNMailboxMonitorEventType events);
-void 	mn_mailbox_end_check	(MNMailbox * self);
 void 	mn_mailbox_notice	(MNMailbox * self, const char * format, ...);
 void 	mn_mailbox_warning	(MNMailbox * self, const char * format, ...);
 
diff --git a/src/mn-mailbox-properties-dialog-private.h b/src/mn-mailbox-properties-dialog-private.h
@@ -0,0 +1,52 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_H__
+#define __MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_H__
+
+#include "mn-mailbox-properties-dialog.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNMailboxPropertiesDialogPrivate {
+#line 63 "mn-mailbox-properties-dialog.gob"
+	GtkWindow * dialog_parent;
+#line 66 "mn-mailbox-properties-dialog.gob"
+	MNMailbox * mailbox;
+#line 98 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * mailbox_type_label;
+#line 99 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * mailbox_type_combo;
+#line 100 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * mailbox_name_label;
+#line 101 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * mailbox_name_entry;
+#line 102 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * mailbox_name_default_button;
+#line 104 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * type_section_label;
+#line 105 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * properties_event_box;
+#line 107 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * apply_button;
+#line 108 "mn-mailbox-properties-dialog.gob"
+	GtkWidget * accept_button;
+#line 110 "mn-mailbox-properties-dialog.gob"
+	GtkListStore * store;
+#line 112 "mn-mailbox-properties-dialog.gob"
+	char * default_name;
+#line 113 "mn-mailbox-properties-dialog.gob"
+	gboolean custom_name;
+#line 42 "mn-mailbox-properties-dialog-private.h"
+};
+void 	mn_mailbox_properties_dialog_type_changed_h	(MNMailboxPropertiesDialog * self, GtkComboBox * combobox);
+void 	mn_mailbox_properties_dialog_name_changed_h	(MNMailboxPropertiesDialog * self, GtkEditable * editable);
+void 	mn_mailbox_properties_dialog_name_default_button_clicked_h	(MNMailboxPropertiesDialog * self, GtkButton * button);
+void 	mn_mailbox_properties_dialog_entry_activate_h	(MNMailboxPropertiesDialog * self, GtkEntry * entry);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mailbox-properties-dialog.c b/src/mn-mailbox-properties-dialog.c
@@ -1,27 +1,37 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mailbox-properties-dialog.h"
+
+#include "mn-mailbox-properties-dialog-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 26 "mn-mailbox-properties-dialog.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
-#include "mn-mailbox-properties-dialog.h"
 #include "mn-mailbox-properties.h"
 #include "mn-autodetect-mailbox-properties.h"
-#include "mn-system-mailbox-properties.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox-properties.h"
+#endif
 #ifdef WITH_POP3
 #include "mn-pop3-mailbox-properties.h"
 #endif
@@ -31,439 +41,931 @@
 #ifdef WITH_GMAIL
 #include "mn-gmail-mailbox-properties.h"
 #endif
-#include "mn-conf.h"
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox-properties.h"
+#endif
 #include "mn-util.h"
-#include "mn-stock.h"
 #include "mn-mailboxes.h"
-
-/*** types *******************************************************************/
-
-typedef struct
-{
-  GtkWidget				*mailbox_type_label;
-  GtkWidget				*mailbox_type_combo;
-  GtkWidget				*properties_event_box;
-  
-  MNURI					*uri;
-  GtkWidget				*apply_button;
-  GtkWidget				*accept_button;
-  GtkListStore				*store;
-} Private;
+#include "mn-shell.h"
 
 enum {
   COLUMN_PROPERTIES,
-  COLUMN_TEXT,
+  COLUMN_STOCK_ID,
+  COLUMN_LABEL,
   N_COLUMNS
 };
-    
-/*** variables ***************************************************************/
 
 static GType selected_type = 0;
 
-/*** functions ***************************************************************/
-
-static void mn_mailbox_properties_dialog_private_free (Private *private);
-
-static void mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog *dialog,
-						   GType properties_type);
-
-static void mn_mailbox_properties_dialog_select_properties (MNMailboxPropertiesDialog *dialog);
-static void mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog *dialog, MNMailboxProperties *properties);
-static MNMailboxProperties *mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog *dialog);
-static MNMailboxProperties *mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog *dialog, GType type);
-
-static void mn_mailbox_properties_dialog_set_uri (MNMailboxPropertiesDialog *dialog, MNURI *uri);
-static void mn_mailbox_properties_dialog_set_contents (MNMailboxPropertiesDialog *dialog);
-
-static void mn_mailbox_properties_dialog_update_sensitivity (MNMailboxPropertiesDialog *dialog);
+#line 61 "mn-mailbox-properties-dialog.c"
+/* self casting macros */
+#define SELF(x) MN_MAILBOX_PROPERTIES_DIALOG(x)
+#define SELF_CONST(x) MN_MAILBOX_PROPERTIES_DIALOG_CONST(x)
+#define IS_SELF(x) MN_IS_MAILBOX_PROPERTIES_DIALOG(x)
+#define TYPE_SELF MN_TYPE_MAILBOX_PROPERTIES_DIALOG
+#define SELF_CLASS(x) MN_MAILBOX_PROPERTIES_DIALOG_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAILBOX_PROPERTIES_DIALOG_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMailboxPropertiesDialog Self;
+typedef MNMailboxPropertiesDialogClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_mailbox_properties_dialog_init (MNMailboxPropertiesDialog * o) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_class_init (MNMailboxPropertiesDialogClass * c) G_GNUC_UNUSED;
+static GObject * ___3_mn_mailbox_properties_dialog_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog * self, GType type) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog * self, MNMailboxProperties * properties) G_GNUC_UNUSED;
+static MNMailboxProperties * mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog * self) G_GNUC_UNUSED;
+static MNMailboxProperties * mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog * self, const char * type) G_GNUC_UNUSED;
+static MNMailboxProperties * mn_mailbox_properties_dialog_get_properties_by_g_type (MNMailboxPropertiesDialog * self, GType type) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_update_complete (MNMailboxPropertiesDialog * self) G_GNUC_UNUSED;
+static void mn_mailbox_properties_dialog_update_default_name (MNMailboxPropertiesDialog * self) G_GNUC_UNUSED;
 
-/*** implementation **********************************************************/
+enum {
+	PROP_0,
+	PROP_DIALOG_PARENT,
+	PROP_MAILBOX
+};
 
-GtkWidget *
-mn_mailbox_properties_dialog_new (GtkWindow *parent, MNURI *uri)
+/* pointer to the class of our parent */
+static MNDialogClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_get_mailbox mn_mailbox_properties_dialog_get_mailbox
+#define self_set_mailbox mn_mailbox_properties_dialog_set_mailbox
+#define self_add_type mn_mailbox_properties_dialog_add_type
+#define self_set_active_properties mn_mailbox_properties_dialog_set_active_properties
+#define self_get_active_properties mn_mailbox_properties_dialog_get_active_properties
+#define self_get_properties_by_type mn_mailbox_properties_dialog_get_properties_by_type
+#define self_get_properties_by_g_type mn_mailbox_properties_dialog_get_properties_by_g_type
+#define self_get_current_mailbox mn_mailbox_properties_dialog_get_current_mailbox
+#define self_apply mn_mailbox_properties_dialog_apply
+#define self_update_complete mn_mailbox_properties_dialog_update_complete
+#define self_update_default_name mn_mailbox_properties_dialog_update_default_name
+#define self_new mn_mailbox_properties_dialog_new
+#define self_type_changed_h mn_mailbox_properties_dialog_type_changed_h
+#define self_name_changed_h mn_mailbox_properties_dialog_name_changed_h
+#define self_name_default_button_clicked_h mn_mailbox_properties_dialog_name_default_button_clicked_h
+#define self_entry_activate_h mn_mailbox_properties_dialog_entry_activate_h
+GType
+mn_mailbox_properties_dialog_get_type (void)
 {
-  MNMailboxPropertiesDialog *dialog;
-  Private *private;
-  GtkCellRenderer *renderer;
-
-  private = g_new0(Private, 1);
-  mn_create_interface(MN_INTERFACE_FILE("mailbox-properties.glade"),
-		      "dialog", &dialog,
-		      "mailbox_type_label", &private->mailbox_type_label,
-		      "mailbox_type_combo", &private->mailbox_type_combo,
-		      "properties_event_box", &private->properties_event_box,
-		      NULL);
-
-  g_object_set_data_full(G_OBJECT(dialog),
-			 MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_KEY,
-			 private,
-			 (GDestroyNotify) mn_mailbox_properties_dialog_private_free);
-
-  if (parent)
-    gtk_window_set_transient_for(GTK_WINDOW(dialog), parent);
-
-  /* finish the type combo box */
-
-  private->store = gtk_list_store_new(N_COLUMNS,
-				      GTK_TYPE_WIDGET,
-				      G_TYPE_STRING);
-
-  mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
-  mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_SYSTEM_MAILBOX_PROPERTIES);
-#ifdef WITH_POP3
-  mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_POP3_MAILBOX_PROPERTIES);
-#endif
-#ifdef WITH_IMAP
-  mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_IMAP_MAILBOX_PROPERTIES);
-#endif
-#ifdef WITH_GMAIL
-  mn_mailbox_properties_dialog_add_type(dialog, MN_TYPE_GMAIL_MAILBOX_PROPERTIES);
-#endif
-
-  renderer = gtk_cell_renderer_text_new();
-  gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(private->mailbox_type_combo), renderer, TRUE);
-  gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(private->mailbox_type_combo), renderer,
-				 "markup", COLUMN_TEXT,
-				 NULL);
-
-  gtk_combo_box_set_model(GTK_COMBO_BOX(private->mailbox_type_combo), GTK_TREE_MODEL(private->store));
-
-  /* setup the dialog depending on the mode (edit or add) */
-
-  gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
-  if (uri)
-    {
-      private->apply_button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
-      gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
-      private->accept_button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
-
-      mn_mailbox_properties_dialog_set_uri(dialog, uri);
-      mn_mailbox_properties_dialog_set_contents(dialog);
-    }
-  else
-    {
-      MNMailboxProperties *properties;
-
-      gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
-      private->accept_button = gtk_dialog_add_button(GTK_DIALOG(dialog), GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT);
-
-      if (! selected_type)
-	selected_type = MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES;
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNMailboxPropertiesDialogClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_mailbox_properties_dialog_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNMailboxPropertiesDialog),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_mailbox_properties_dialog_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_DIALOG, "MNMailboxPropertiesDialog", &info, (GTypeFlags)0);
+	}
 
-      properties = mn_mailbox_properties_dialog_get_properties_by_type(dialog, selected_type);
-      mn_mailbox_properties_dialog_set_active_properties(dialog, properties);
+	return type;
+}
 
-      gtk_window_set_title(GTK_WINDOW(dialog), _("Add a Mailbox"));
-    }
-  gtk_widget_grab_default(private->accept_button);
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMailboxPropertiesDialog *)g_object_new(mn_mailbox_properties_dialog_get_type(), NULL))
 
-  return GTK_WIDGET(dialog);
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMailboxPropertiesDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMailboxPropertiesDialog *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNMailboxPropertiesDialog *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNMailboxPropertiesDialog *)g_object_new_valist (mn_mailbox_properties_dialog_get_type (), first, ap);
+	va_end (ap);
+	return ret;
 }
 
+
 static void
-mn_mailbox_properties_dialog_private_free (Private *private)
+___dispose (GObject *obj_self)
 {
-  g_return_if_fail(private != NULL);
-
-  if (private->uri)
-    g_object_unref(private->uri);
-  g_object_unref(private->store);
-  g_free(private);
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::dispose"
+	MNMailboxPropertiesDialog *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES_DIALOG (obj_self);
+	if (G_OBJECT_CLASS (parent_class)->dispose) \
+		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 66 "mn-mailbox-properties-dialog.gob"
+	if(self->_priv->mailbox) { g_object_unref ((gpointer) self->_priv->mailbox); self->_priv->mailbox = NULL; }
+#line 167 "mn-mailbox-properties-dialog.c"
+#line 110 "mn-mailbox-properties-dialog.gob"
+	if(self->_priv->store) { g_object_unref ((gpointer) self->_priv->store); self->_priv->store = NULL; }
+#line 170 "mn-mailbox-properties-dialog.c"
 }
+#undef __GOB_FUNCTION__
+
 
 static void
-mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog *dialog,
-				       GType properties_type)
+___finalize(GObject *obj_self)
 {
-  Private *private;
-  GtkSizeGroup *size_group;
-  MNMailboxProperties *properties;
-  char *label;
-  GtkTreeIter iter;
-
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
-  size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-  properties = g_object_new(properties_type, "size-group", size_group, NULL);
-  g_object_unref(size_group);
-
-  mn_gtk_object_ref_and_sink(GTK_OBJECT(properties));
-
-  gtk_list_store_append(private->store, &iter);
-
-  label = mn_mailbox_properties_get_label(properties);
-  gtk_list_store_set(private->store, &iter,
-		     COLUMN_PROPERTIES, properties,
-		     COLUMN_TEXT, label,
-		     -1);
-  g_free(label);
-
-  gtk_widget_show(GTK_WIDGET(properties));
-  g_signal_connect_swapped(properties, "notify::complete", G_CALLBACK(mn_mailbox_properties_dialog_update_sensitivity), dialog);
-
-  g_object_unref(properties);	/* now it belongs to the store */
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::finalize"
+	MNMailboxPropertiesDialog *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES_DIALOG (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 112 "mn-mailbox-properties-dialog.gob"
+	if(self->_priv->default_name) { g_free ((gpointer) self->_priv->default_name); self->_priv->default_name = NULL; }
+#line 185 "mn-mailbox-properties-dialog.c"
 }
+#undef __GOB_FUNCTION__
 
-static void
-mn_mailbox_properties_dialog_select_properties (MNMailboxPropertiesDialog *dialog)
+static void 
+mn_mailbox_properties_dialog_init (MNMailboxPropertiesDialog * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_MAILBOX_PROPERTIES_DIALOG,MNMailboxPropertiesDialogPrivate);
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_mailbox_properties_dialog_class_init (MNMailboxPropertiesDialogClass * c G_GNUC_UNUSED)
 {
-  Private *private;
-  MNMailboxProperties *properties;
-  GtkSizeGroup *size_group;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+	g_type_class_add_private(c,sizeof(MNMailboxPropertiesDialogPrivate));
 
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+	parent_class = g_type_class_ref (MN_TYPE_DIALOG);
 
-  properties = (MNMailboxProperties *) GTK_BIN(private->properties_event_box)->child;
-  if (properties)
+#line 115 "mn-mailbox-properties-dialog.gob"
+	g_object_class->constructor = ___3_mn_mailbox_properties_dialog_constructor;
+#line 208 "mn-mailbox-properties-dialog.c"
+	g_object_class->dispose = ___dispose;
+	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
     {
-      size_group = mn_mailbox_properties_get_size_group(properties);
-      gtk_size_group_remove_widget(size_group, private->mailbox_type_label);
-      gtk_container_remove(GTK_CONTAINER(private->properties_event_box), GTK_WIDGET(properties));
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_pointer
+		("dialog_parent" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+	g_object_class_install_property (g_object_class,
+		PROP_DIALOG_PARENT,
+		param_spec);
+	param_spec = g_param_spec_object
+		("mailbox" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 MN_TYPE_MAILBOX /* object_type */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
+	g_object_class_install_property (g_object_class,
+		PROP_MAILBOX,
+		param_spec);
     }
-  
-  properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
-  gtk_container_add(GTK_CONTAINER(private->properties_event_box), GTK_WIDGET(properties));
-  size_group = mn_mailbox_properties_get_size_group(properties);
-  gtk_size_group_add_widget(size_group, private->mailbox_type_label);
 }
+#undef __GOB_FUNCTION__
 
 static void
-mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog *dialog,
-						    MNMailboxProperties *properties)
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::set_property"
 {
-  Private *private;
-  gboolean valid;
-  GtkTreeIter iter;
+	MNMailboxPropertiesDialog *self G_GNUC_UNUSED;
 
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES(properties));
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+	self = MN_MAILBOX_PROPERTIES_DIALOG (object);
 
-  valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(private->store), &iter);
-  while (valid)
-    {
-      MNMailboxProperties *these_properties;
+	switch (property_id) {
+	case PROP_DIALOG_PARENT:
+		{
+#line 64 "mn-mailbox-properties-dialog.gob"
+self->_priv->dialog_parent = g_value_get_pointer (VAL);
+#line 253 "mn-mailbox-properties-dialog.c"
+		}
+		break;
+	case PROP_MAILBOX:
+		{
+#line 72 "mn-mailbox-properties-dialog.gob"
 
-      gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &these_properties, -1);
-      g_object_unref(these_properties);
+      GObject *object;
 
-      if (these_properties == properties)
+      if (selfp->mailbox)
 	{
-	  gtk_combo_box_set_active_iter(GTK_COMBO_BOX(private->mailbox_type_combo), &iter);
-	  break;
+	  g_object_unref(selfp->mailbox);
+	  selfp->mailbox = NULL;
 	}
 
-      valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(private->store), &iter);
-    }
-}
-
-static MNMailboxProperties *
-mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog *dialog)
-{
-  Private *private;
-  GtkTreeIter iter;
-  MNMailboxProperties *properties = NULL;
+      object = g_value_dup_object(VAL);
+      if (object)
+	{
+	  char *title;
 
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), 0);
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+	  selfp->mailbox = MN_MAILBOX(object);
 
-  if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(private->mailbox_type_combo), &iter))
-    {
-      gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &properties, -1);
-      g_object_unref(properties);
-    }
-
-  return properties;
+	  title = g_strdup_printf(_("%s Properties"), selfp->mailbox->runtime_name);
+	  gtk_window_set_title(GTK_WINDOW(self), title);
+	  g_free(title);
+	}
+    
+#line 280 "mn-mailbox-properties-dialog.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
 }
+#undef __GOB_FUNCTION__
 
-static MNMailboxProperties *
-mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog *dialog,
-						     GType type)
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_property"
 {
-  Private *private;
-  gboolean valid;
-  GtkTreeIter iter;
-
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), NULL);
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
-  valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(private->store), &iter);
-  while (valid)
-    {
-      MNMailboxProperties *properties;
+	MNMailboxPropertiesDialog *self G_GNUC_UNUSED;
+
+	self = MN_MAILBOX_PROPERTIES_DIALOG (object);
+
+	switch (property_id) {
+	case PROP_DIALOG_PARENT:
+		{
+#line 64 "mn-mailbox-properties-dialog.gob"
+g_value_set_pointer (VAL, self->_priv->dialog_parent);
+#line 311 "mn-mailbox-properties-dialog.c"
+		}
+		break;
+	case PROP_MAILBOX:
+		{
+#line 94 "mn-mailbox-properties-dialog.gob"
+
+      g_value_set_object(VAL, selfp->mailbox);
+    
+#line 320 "mn-mailbox-properties-dialog.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
 
-      gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &properties, -1);
-      g_object_unref(properties);
 
-      if (G_TYPE_CHECK_INSTANCE_TYPE(properties, type))
-	return properties;
 
-      valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(private->store), &iter);
-    }
+#line 94 "mn-mailbox-properties-dialog.gob"
+MNMailbox * 
+mn_mailbox_properties_dialog_get_mailbox (MNMailboxPropertiesDialog * self)
+#line 340 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_mailbox"
+{
+#line 67 "mn-mailbox-properties-dialog.gob"
+		MNMailbox* val; g_object_get (G_OBJECT (self), "mailbox", &val, NULL); return val;
+}}
+#line 347 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 72 "mn-mailbox-properties-dialog.gob"
+void 
+mn_mailbox_properties_dialog_set_mailbox (MNMailboxPropertiesDialog * self, MNMailbox * val)
+#line 353 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::set_mailbox"
+{
+#line 67 "mn-mailbox-properties-dialog.gob"
+		g_object_set (G_OBJECT (self), "mailbox", val, NULL);
+}}
+#line 360 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 115 "mn-mailbox-properties-dialog.gob"
+static GObject * 
+___3_mn_mailbox_properties_dialog_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 366 "mn-mailbox-properties-dialog.c"
+#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
+	((G_OBJECT_CLASS(parent_class)->constructor)? \
+		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
+		((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::constructor"
+{
+#line 117 "mn-mailbox-properties-dialog.gob"
+	
+    GObject *object;
+    Self *self;
+    GtkCellRenderer *renderer;
+    MNMailboxProperties *properties;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+
+    mn_container_create_interface(GTK_CONTAINER(self),
+				  MN_INTERFACE_FILE("mailbox-properties-dialog.glade"),
+				  "vbox",
+				  "mn_mailbox_properties_dialog_",
+				  "mailbox_type_label", &selfp->mailbox_type_label,
+				  "mailbox_type_combo", &selfp->mailbox_type_combo,
+				  "mailbox_name_label", &selfp->mailbox_name_label,
+				  "mailbox_name_entry", &selfp->mailbox_name_entry,
+				  "mailbox_name_default_button", &selfp->mailbox_name_default_button,
+				  "type_section_label", &selfp->type_section_label,
+				  "properties_event_box", &selfp->properties_event_box,
+				  NULL);
+
+    gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+
+    if (selfp->dialog_parent)
+      gtk_window_set_transient_for(GTK_WINDOW(self), selfp->dialog_parent);
+
+    /* finish the type combo box */
+
+    selfp->store = gtk_list_store_new(N_COLUMNS,
+				      GTK_TYPE_WIDGET,
+				      G_TYPE_STRING,
+				      G_TYPE_STRING);
 
-  return NULL;
-}
+    self_add_type(self, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+    self_add_type(self, MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_POP3
+    self_add_type(self, MN_TYPE_POP3_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_IMAP
+    self_add_type(self, MN_TYPE_IMAP_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_GMAIL
+    self_add_type(self, MN_TYPE_GMAIL_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_EVOLUTION
+    self_add_type(self, MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES);
+#endif
 
-static void
-mn_mailbox_properties_dialog_set_uri (MNMailboxPropertiesDialog *dialog,
-				      MNURI *uri)
+    renderer = gtk_cell_renderer_pixbuf_new();
+    g_object_set(renderer, "stock-size", GTK_ICON_SIZE_MENU, NULL);
+    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, FALSE);;
+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+				   "stock-id", COLUMN_STOCK_ID,
+				   NULL);
+
+    renderer = gtk_cell_renderer_text_new();
+    g_object_set(renderer, "xpad", 6, NULL);
+    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, TRUE);
+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+				   "markup", COLUMN_LABEL,
+				   NULL);
+
+    gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->mailbox_type_combo), GTK_TREE_MODEL(selfp->store));
+
+    /* setup the dialog depending on the mode (edit or add) */
+
+    gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
+    if (selfp->mailbox)
+      {
+	selfp->apply_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
+	gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+	selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_OK, GTK_RESPONSE_OK);
+	
+	properties = self_get_properties_by_type(self, MN_MAILBOX_GET_CLASS(selfp->mailbox)->type);
+      }
+    else
+      {
+	gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+	selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT);
+
+	if (! selected_type)
+	  selected_type = MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES;
+
+	properties = self_get_properties_by_g_type(self, selected_type);
+
+	gtk_window_set_title(GTK_WINDOW(self), _("Add a Mailbox"));
+      }
+
+    self_set_active_properties(self, properties);
+
+    if (selfp->mailbox)
+      {
+	mn_mailbox_properties_set_mailbox(properties, selfp->mailbox);
+	if (selfp->mailbox->name)
+	  gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), selfp->mailbox->name);
+      }
+
+    g_object_unref(properties);
+
+    gtk_widget_grab_default(selfp->accept_button);
+
+    return object;
+  }}
+#line 481 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 224 "mn-mailbox-properties-dialog.gob"
+static void 
+mn_mailbox_properties_dialog_add_type (MNMailboxPropertiesDialog * self, GType type)
+#line 488 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::add_type"
+#line 224 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 224 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 224 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (type != 0);
+#line 497 "mn-mailbox-properties-dialog.c"
+{
+#line 226 "mn-mailbox-properties-dialog.gob"
+	
+    MNMailboxProperties *properties;
+    MNMailboxPropertiesClass *p_class;
+    GtkTreeIter iter;
+    GSList *l;
+
+    properties = g_object_new(type, NULL);
+    mn_gtk_object_ref_and_sink(GTK_OBJECT(properties));
+
+    p_class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+    gtk_list_store_append(selfp->store, &iter);
+    gtk_list_store_set(selfp->store, &iter,
+		       COLUMN_PROPERTIES, properties,
+		       COLUMN_STOCK_ID, p_class->stock_id,
+		       COLUMN_LABEL, p_class->combo_label,
+		       -1);
+
+    gtk_widget_show(GTK_WIDGET(properties));
+
+    g_object_connect(properties,
+		     "swapped-signal::notify::complete", self_update_complete, self,
+		     "swapped-signal::notify::default-name", self_update_default_name, self,
+		     NULL);
+
+    MN_LIST_FOREACH(l, properties->entries)
+      g_signal_connect_swapped(l->data, "activate", G_CALLBACK(self_entry_activate_h), self);
+
+    g_object_unref(properties);	/* now it belongs to the store */
+  }}
+#line 530 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 257 "mn-mailbox-properties-dialog.gob"
+static void 
+mn_mailbox_properties_dialog_set_active_properties (MNMailboxPropertiesDialog * self, MNMailboxProperties * properties)
+#line 536 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::set_active_properties"
+#line 257 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 257 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 257 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (properties != NULL);
+#line 257 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (properties));
+#line 547 "mn-mailbox-properties-dialog.c"
+{
+#line 260 "mn-mailbox-properties-dialog.gob"
+	
+    gboolean valid;
+    GtkTreeIter iter;
+
+    valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+    while (valid)
+      {
+	MNMailboxProperties *these_properties;
+
+	gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &these_properties, -1);
+	g_object_unref(these_properties);
+
+	if (these_properties == properties)
+	  {
+	    gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter);
+	    break;
+	  }
+
+	valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+      }
+  }}
+#line 571 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 282 "mn-mailbox-properties-dialog.gob"
+static MNMailboxProperties * 
+mn_mailbox_properties_dialog_get_active_properties (MNMailboxPropertiesDialog * self)
+#line 577 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_active_properties"
+#line 282 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (self != NULL, (MNMailboxProperties * )0);
+#line 282 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailboxProperties * )0);
+#line 584 "mn-mailbox-properties-dialog.c"
 {
-  Private *private;
-  char *title;
+#line 284 "mn-mailbox-properties-dialog.gob"
+	
+    GtkTreeIter iter;
+    MNMailboxProperties *properties = NULL;
+
+    if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter))
+      gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+    return properties;
+  }}
+#line 596 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 294 "mn-mailbox-properties-dialog.gob"
+static MNMailboxProperties * 
+mn_mailbox_properties_dialog_get_properties_by_type (MNMailboxPropertiesDialog * self, const char * type)
+#line 602 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_properties_by_type"
+#line 294 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (self != NULL, (MNMailboxProperties * )0);
+#line 294 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailboxProperties * )0);
+#line 294 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (type != NULL, (MNMailboxProperties * )0);
+#line 611 "mn-mailbox-properties-dialog.c"
+{
+#line 296 "mn-mailbox-properties-dialog.gob"
+	
+    gboolean valid;
+    GtkTreeIter iter;
 
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
-  g_return_if_fail(MN_IS_URI(uri));
+    valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+    while (valid)
+      {
+	MNMailboxProperties *properties;
+	MNMailboxPropertiesClass *class;
 
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+	gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+	
+	class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
 
-  if (private->uri)
-    g_object_unref(private->uri);
-  private->uri = g_object_ref(uri);
+	if (class->type && ! strcmp(class->type, type))
+	  return properties;
 
-  title = g_strdup_printf(_("%s Properties"), uri->human_readable);
-  gtk_window_set_title(GTK_WINDOW(dialog), title);
-  g_free(title);
-}
+	g_object_unref(properties);
 
-static void
-mn_mailbox_properties_dialog_set_contents (MNMailboxPropertiesDialog *dialog)
+	valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+      }
+    
+    return NULL;
+  }}
+#line 638 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 321 "mn-mailbox-properties-dialog.gob"
+static MNMailboxProperties * 
+mn_mailbox_properties_dialog_get_properties_by_g_type (MNMailboxPropertiesDialog * self, GType type)
+#line 644 "mn-mailbox-properties-dialog.c"
 {
-  Private *private;
-  gboolean valid;
-  GtkTreeIter iter;
-  MNMailboxProperties *properties;
-  gboolean found = FALSE;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_properties_by_g_type"
+#line 321 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (self != NULL, (MNMailboxProperties * )0);
+#line 321 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailboxProperties * )0);
+#line 321 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (type != 0, (MNMailboxProperties * )0);
+#line 653 "mn-mailbox-properties-dialog.c"
+{
+#line 323 "mn-mailbox-properties-dialog.gob"
+	
+    gboolean valid;
+    GtkTreeIter iter;
 
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
+    valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+    while (valid)
+      {
+	MNMailboxProperties *properties;
 
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-  g_return_if_fail(private->uri != NULL);
+	gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
 
-  valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(private->store), &iter);
-  while (valid)
-    {
-      gtk_tree_model_get(GTK_TREE_MODEL(private->store), &iter, COLUMN_PROPERTIES, &properties, -1);
-      g_object_unref(properties);
+	if (G_TYPE_CHECK_INSTANCE_TYPE(properties, type))
+	  return properties;
 
-      if (! MN_IS_AUTODETECT_MAILBOX_PROPERTIES(properties)
-	  && mn_mailbox_properties_set_uri(properties, private->uri))
-	{
-	  found = TRUE;
-	  break;
-	}
+	g_object_unref(properties);
 
-      valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(private->store), &iter);
-    }
+	valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+      }
 
-  if (! found)
-    {
-      properties = mn_mailbox_properties_dialog_get_properties_by_type(dialog, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
-      mn_mailbox_properties_set_uri(properties, private->uri);
-    }
-  mn_mailbox_properties_dialog_set_active_properties(dialog, properties);
-}
+    return NULL;
+  }}
+#line 677 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
 
-MNURI *
-mn_mailbox_properties_dialog_get_uri (MNMailboxPropertiesDialog *dialog)
+#line 345 "mn-mailbox-properties-dialog.gob"
+MNMailbox * 
+mn_mailbox_properties_dialog_get_current_mailbox (MNMailboxPropertiesDialog * self)
+#line 683 "mn-mailbox-properties-dialog.c"
 {
-  Private *private;
-
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), NULL);
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::get_current_mailbox"
+#line 345 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (self != NULL, (MNMailbox * )0);
+#line 345 "mn-mailbox-properties-dialog.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self), (MNMailbox * )0);
+#line 690 "mn-mailbox-properties-dialog.c"
+{
+#line 347 "mn-mailbox-properties-dialog.gob"
+	
+    MNMailboxProperties *properties;
+    MNMailbox *mailbox;
+
+    properties = self_get_active_properties(self);
+    mailbox = mn_mailbox_properties_get_mailbox(properties);
+    g_object_unref(properties);
+
+    if (selfp->custom_name)
+      g_object_set(G_OBJECT(mailbox), "name", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry)), NULL);
+
+    return mailbox;
+  }}
+#line 706 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 361 "mn-mailbox-properties-dialog.gob"
+void 
+mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog * self)
+#line 712 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::apply"
+#line 361 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 361 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 719 "mn-mailbox-properties-dialog.c"
+{
+#line 363 "mn-mailbox-properties-dialog.gob"
+	
+    MNMailbox *new_mailbox;
 
-  return private->uri;
-}
+    new_mailbox = self_get_current_mailbox(self);
+    g_return_if_fail(MN_IS_MAILBOX(new_mailbox));
 
-MNURI *
-mn_mailbox_properties_dialog_get_current_uri (MNMailboxPropertiesDialog *dialog)
-{
-  Private *private;
-  MNMailboxProperties *properties;
+    mn_mailbox_seal(new_mailbox);
 
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog), NULL);
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+    mn_mailboxes_queue_remove(mn_shell->mailboxes, selfp->mailbox);
+    mn_mailboxes_queue_add(mn_shell->mailboxes, new_mailbox);
 
-  properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
-  return mn_mailbox_properties_get_uri(properties);
-}
+    self_set_mailbox(self, new_mailbox);
+    g_object_unref(new_mailbox);
+  }}
+#line 736 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
 
-void
-mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog *dialog)
+#line 378 "mn-mailbox-properties-dialog.gob"
+static void 
+mn_mailbox_properties_dialog_update_complete (MNMailboxPropertiesDialog * self)
+#line 742 "mn-mailbox-properties-dialog.c"
 {
-  Private *private;
-  MNURI *new_uri;
-
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::update_complete"
+#line 378 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 378 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 749 "mn-mailbox-properties-dialog.c"
+{
+#line 380 "mn-mailbox-properties-dialog.gob"
+	
+    MNMailboxProperties *properties;
+
+    properties = self_get_active_properties(self);
+    if (properties)
+      {
+	gboolean complete;
+
+	g_object_get(G_OBJECT(properties), "complete", &complete, NULL);
+	g_object_unref(properties);
+
+	gtk_widget_set_sensitive(selfp->mailbox_name_entry, complete);
+	gtk_widget_set_sensitive(selfp->mailbox_name_default_button, complete && selfp->custom_name);
+	if (selfp->apply_button)
+	  gtk_widget_set_sensitive(selfp->apply_button, complete);
+	gtk_widget_set_sensitive(selfp->accept_button, complete);
+      }
+  }}
+#line 770 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 399 "mn-mailbox-properties-dialog.gob"
+static void 
+mn_mailbox_properties_dialog_update_default_name (MNMailboxPropertiesDialog * self)
+#line 776 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::update_default_name"
+#line 399 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 399 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 783 "mn-mailbox-properties-dialog.c"
+{
+#line 401 "mn-mailbox-properties-dialog.gob"
+	
+    MNMailboxProperties *properties;
 
-  new_uri = mn_mailbox_properties_dialog_get_current_uri(dialog);
-  g_return_if_fail(MN_IS_URI(new_uri));
+    properties = self_get_active_properties(self);
+    if (properties)
+      {
+	gboolean complete;
+	const char *default_name;
 
-  if (strcmp(new_uri->text, private->uri->text))
-    {
-      GSList *gconf_mailboxes;
-      GSList *elem;
+	g_free(selfp->default_name);
 
-      gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
+	g_object_get(G_OBJECT(properties),
+		     "complete", &complete,
+		     "default-name", &selfp->default_name,
+		     NULL);
+	g_object_unref(properties);
 
-      elem = mn_mailboxes_conf_find_uri(gconf_mailboxes, private->uri);
-      if (elem)
-	{
-	  g_free(elem->data);
-	  elem->data = g_strdup(new_uri->text);
-	}
-      
-      eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-      eel_g_slist_free_deep(gconf_mailboxes);
+	default_name = complete ? selfp->default_name : NULL;
       
-      mn_mailbox_properties_dialog_set_uri(dialog, new_uri);
-    }
-  g_object_unref(new_uri);
-}
-
-static void
-mn_mailbox_properties_dialog_update_sensitivity (MNMailboxPropertiesDialog *dialog)
+	gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), default_name ? default_name : "");
+	gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name = FALSE);
+      }
+  }}
+#line 809 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 425 "mn-mailbox-properties-dialog.gob"
+GtkWidget * 
+mn_mailbox_properties_dialog_new (GtkWindow * parent, MNMailbox * mailbox)
+#line 815 "mn-mailbox-properties-dialog.c"
 {
-  Private *private;
-  MNMailboxProperties *properties;
-
-  g_return_if_fail(MN_IS_MAILBOX_PROPERTIES_DIALOG(dialog));
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
-  properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
-  if (properties)
-    {
-      gboolean complete;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::new"
+{
+#line 427 "mn-mailbox-properties-dialog.gob"
+	
+    return GTK_WIDGET(GET_NEW_VARG(MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(parent),
+				   MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(mailbox),
+				   NULL));
+  }}
+#line 825 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 435 "mn-mailbox-properties-dialog.gob"
+void 
+mn_mailbox_properties_dialog_type_changed_h (MNMailboxPropertiesDialog * self, GtkComboBox * combobox)
+#line 831 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::type_changed_h"
+#line 435 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 435 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 838 "mn-mailbox-properties-dialog.c"
+{
+#line 437 "mn-mailbox-properties-dialog.gob"
+	
+    MNMailboxProperties *properties;
+    MNMailboxPropertiesClass *class;
+    char *markup;
+
+    properties = (MNMailboxProperties *) GTK_BIN(selfp->properties_event_box)->child;
+    if (properties)
+      {
+	gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_type_label);
+	gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_name_label);
+	gtk_size_group_remove_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+	gtk_container_remove(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+      }
+  
+    properties = self_get_active_properties(self);
+    gtk_container_add(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+    gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_type_label);
+    gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_name_label);
+    gtk_size_group_add_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+    
+    class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+    
+    markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>", class->section_label ? class->section_label : class->combo_label);
+    gtk_label_set_markup(GTK_LABEL(selfp->type_section_label), markup);
+    g_free(markup);
 
-      g_object_get(G_OBJECT(properties), "complete", &complete, NULL);
+    if (! selfp->mailbox)	/* mode is add */
+      selected_type = G_TYPE_FROM_INSTANCE(properties);
 
-      if (private->apply_button)
-	gtk_widget_set_sensitive(private->apply_button, complete);
-      gtk_widget_set_sensitive(private->accept_button, complete);
-    }
-}
+    self_update_complete(self);
+    self_update_default_name(self);
 
-/* libglade callbacks */
+    g_object_unref(properties);
+  }}
+#line 875 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
 
-void
-mn_mailbox_properties_dialog_mailbox_type_changed_h (gpointer user_data,
-						     GtkComboBox *combobox)
+#line 472 "mn-mailbox-properties-dialog.gob"
+void 
+mn_mailbox_properties_dialog_name_changed_h (MNMailboxPropertiesDialog * self, GtkEditable * editable)
+#line 881 "mn-mailbox-properties-dialog.c"
 {
-  MNMailboxPropertiesDialog *dialog = user_data;
-  Private *private;
-
-  private = MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(dialog);
-
-  mn_mailbox_properties_dialog_select_properties(dialog);
-  if (! private->uri)		/* mode is add */
-    {
-      MNMailboxProperties *properties;
-      
-      properties = mn_mailbox_properties_dialog_get_active_properties(dialog);
-      selected_type = G_TYPE_FROM_INSTANCE(properties);
-    }
-
-  mn_mailbox_properties_dialog_update_sensitivity(dialog);
-}
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::name_changed_h"
+#line 472 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 472 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 888 "mn-mailbox-properties-dialog.c"
+{
+#line 474 "mn-mailbox-properties-dialog.gob"
+	
+    const char *name;
+
+    name = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry));
+    selfp->custom_name = mn_utf8_strcmp(name, selfp->default_name ? selfp->default_name : "") != 0;
+
+    gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name);
+  }}
+#line 899 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 483 "mn-mailbox-properties-dialog.gob"
+void 
+mn_mailbox_properties_dialog_name_default_button_clicked_h (MNMailboxPropertiesDialog * self, GtkButton * button)
+#line 905 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::name_default_button_clicked_h"
+#line 483 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 483 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 912 "mn-mailbox-properties-dialog.c"
+{
+#line 485 "mn-mailbox-properties-dialog.gob"
+	
+    self_update_default_name(self);
+  }}
+#line 918 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 489 "mn-mailbox-properties-dialog.gob"
+void 
+mn_mailbox_properties_dialog_entry_activate_h (MNMailboxPropertiesDialog * self, GtkEntry * entry)
+#line 924 "mn-mailbox-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties:Dialog::entry_activate_h"
+#line 489 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 489 "mn-mailbox-properties-dialog.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (self));
+#line 931 "mn-mailbox-properties-dialog.c"
+{
+#line 491 "mn-mailbox-properties-dialog.gob"
+	
+    if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
+      gtk_window_activate_default(GTK_WINDOW(self));
+    else
+      {
+	MNMailboxProperties *properties;
+	GtkWidget *next = GTK_WIDGET(entry);
+
+	properties = self_get_active_properties(self);
+	g_return_if_fail(properties != NULL);
+
+	do
+	  {
+	    GSList *elem;
+
+	    if (next == selfp->mailbox_name_entry)
+	      elem = properties->entries;
+	    else
+	      {
+		elem = g_slist_find(properties->entries, next);
+		g_return_if_fail(elem != NULL);
+
+		elem = elem->next;
+	      }
+
+	    next = elem ? elem->data : selfp->mailbox_name_entry;
+	    if (next == GTK_WIDGET(entry))
+	      next = NULL;
+	  }
+	while (next && ! (GTK_WIDGET_MAPPED(next)
+			  && GTK_WIDGET_VISIBLE(next)
+			  && GTK_WIDGET_SENSITIVE(next)));
+
+	if (next)
+	  gtk_widget_grab_focus(next);
+      }
+  }}
+#line 971 "mn-mailbox-properties-dialog.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox-properties-dialog.gob b/src/mn-mailbox-properties-dialog.gob
@@ -0,0 +1,528 @@
+/* 
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-dialog.h"
+#include "mn-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-properties.h"
+#include "mn-autodetect-mailbox-properties.h"
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox-properties.h"
+#endif
+#ifdef WITH_POP3
+#include "mn-pop3-mailbox-properties.h"
+#endif
+#ifdef WITH_IMAP
+#include "mn-imap-mailbox-properties.h"
+#endif
+#ifdef WITH_GMAIL
+#include "mn-gmail-mailbox-properties.h"
+#endif
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox-properties.h"
+#endif
+#include "mn-util.h"
+#include "mn-mailboxes.h"
+#include "mn-shell.h"
+
+enum {
+  COLUMN_PROPERTIES,
+  COLUMN_STOCK_ID,
+  COLUMN_LABEL,
+  N_COLUMNS
+};
+
+static GType selected_type = 0;
+%}
+
+class MN:Mailbox:Properties:Dialog from MN:Dialog
+{
+  /* "parent" is a GtkWidget property, do not conflict with it */
+  private GtkWindow *dialog_parent;
+  property POINTER dialog_parent (link, flags = CONSTRUCT_ONLY, type = GtkWindow *);
+
+  private MNMailbox *mailbox unrefwith g_object_unref;
+  property OBJECT mailbox (flags = CONSTRUCT,
+			   object_type = MN:Mailbox,
+			   type = MNMailbox *,
+			   export)
+    set
+    {
+      GObject *object;
+
+      if (selfp->mailbox)
+	{
+	  g_object_unref(selfp->mailbox);
+	  selfp->mailbox = NULL;
+	}
+
+      object = g_value_dup_object(VAL);
+      if (object)
+	{
+	  char *title;
+
+	  selfp->mailbox = MN_MAILBOX(object);
+
+	  title = g_strdup_printf(_("%s Properties"), selfp->mailbox->runtime_name);
+	  gtk_window_set_title(GTK_WINDOW(self), title);
+	  g_free(title);
+	}
+    }
+    get
+    {
+      g_value_set_object(VAL, selfp->mailbox);
+    };
+
+  private GtkWidget *mailbox_type_label;
+  private GtkWidget *mailbox_type_combo;
+  private GtkWidget *mailbox_name_label;
+  private GtkWidget *mailbox_name_entry;
+  private GtkWidget *mailbox_name_default_button;
+
+  private GtkWidget *type_section_label;
+  private GtkWidget *properties_event_box;
+
+  private GtkWidget *apply_button;
+  private GtkWidget *accept_button;
+
+  private GtkListStore *store unrefwith g_object_unref;
+
+  private char *default_name destroywith g_free;
+  private gboolean custom_name;
+
+  override (G:Object) GObject *
+    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  {
+    GObject *object;
+    Self *self;
+    GtkCellRenderer *renderer;
+    MNMailboxProperties *properties;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+
+    mn_container_create_interface(GTK_CONTAINER(self),
+				  MN_INTERFACE_FILE("mailbox-properties-dialog.glade"),
+				  "vbox",
+				  "mn_mailbox_properties_dialog_",
+				  "mailbox_type_label", &selfp->mailbox_type_label,
+				  "mailbox_type_combo", &selfp->mailbox_type_combo,
+				  "mailbox_name_label", &selfp->mailbox_name_label,
+				  "mailbox_name_entry", &selfp->mailbox_name_entry,
+				  "mailbox_name_default_button", &selfp->mailbox_name_default_button,
+				  "type_section_label", &selfp->type_section_label,
+				  "properties_event_box", &selfp->properties_event_box,
+				  NULL);
+
+    gtk_window_set_resizable(GTK_WINDOW(self), FALSE);
+
+    if (selfp->dialog_parent)
+      gtk_window_set_transient_for(GTK_WINDOW(self), selfp->dialog_parent);
+
+    /* finish the type combo box */
+
+    selfp->store = gtk_list_store_new(N_COLUMNS,
+				      GTK_TYPE_WIDGET,
+				      G_TYPE_STRING,
+				      G_TYPE_STRING);
+
+    self_add_type(self, MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES);
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+    self_add_type(self, MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_POP3
+    self_add_type(self, MN_TYPE_POP3_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_IMAP
+    self_add_type(self, MN_TYPE_IMAP_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_GMAIL
+    self_add_type(self, MN_TYPE_GMAIL_MAILBOX_PROPERTIES);
+#endif
+#ifdef WITH_EVOLUTION
+    self_add_type(self, MN_TYPE_EVOLUTION_MAILBOX_PROPERTIES);
+#endif
+
+    renderer = gtk_cell_renderer_pixbuf_new();
+    g_object_set(renderer, "stock-size", GTK_ICON_SIZE_MENU, NULL);
+    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, FALSE);;
+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+				   "stock-id", COLUMN_STOCK_ID,
+				   NULL);
+
+    renderer = gtk_cell_renderer_text_new();
+    g_object_set(renderer, "xpad", 6, NULL);
+    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer, TRUE);
+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->mailbox_type_combo), renderer,
+				   "markup", COLUMN_LABEL,
+				   NULL);
+
+    gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->mailbox_type_combo), GTK_TREE_MODEL(selfp->store));
+
+    /* setup the dialog depending on the mode (edit or add) */
+
+    gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_HELP, GTK_RESPONSE_HELP);
+    if (selfp->mailbox)
+      {
+	selfp->apply_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_APPLY, GTK_RESPONSE_APPLY);
+	gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+	selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_OK, GTK_RESPONSE_OK);
+	
+	properties = self_get_properties_by_type(self, MN_MAILBOX_GET_CLASS(selfp->mailbox)->type);
+      }
+    else
+      {
+	gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
+	selfp->accept_button = gtk_dialog_add_button(GTK_DIALOG(self), GTK_STOCK_ADD, GTK_RESPONSE_ACCEPT);
+
+	if (! selected_type)
+	  selected_type = MN_TYPE_AUTODETECT_MAILBOX_PROPERTIES;
+
+	properties = self_get_properties_by_g_type(self, selected_type);
+
+	gtk_window_set_title(GTK_WINDOW(self), _("Add a Mailbox"));
+      }
+
+    self_set_active_properties(self, properties);
+
+    if (selfp->mailbox)
+      {
+	mn_mailbox_properties_set_mailbox(properties, selfp->mailbox);
+	if (selfp->mailbox->name)
+	  gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), selfp->mailbox->name);
+      }
+
+    g_object_unref(properties);
+
+    gtk_widget_grab_default(selfp->accept_button);
+
+    return object;
+  }
+
+  private void
+    add_type (self, GType type (check != 0))
+  {
+    MNMailboxProperties *properties;
+    MNMailboxPropertiesClass *p_class;
+    GtkTreeIter iter;
+    GSList *l;
+
+    properties = g_object_new(type, NULL);
+    mn_gtk_object_ref_and_sink(GTK_OBJECT(properties));
+
+    p_class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+    gtk_list_store_append(selfp->store, &iter);
+    gtk_list_store_set(selfp->store, &iter,
+		       COLUMN_PROPERTIES, properties,
+		       COLUMN_STOCK_ID, p_class->stock_id,
+		       COLUMN_LABEL, p_class->combo_label,
+		       -1);
+
+    gtk_widget_show(GTK_WIDGET(properties));
+
+    g_object_connect(properties,
+		     "swapped-signal::notify::complete", self_update_complete, self,
+		     "swapped-signal::notify::default-name", self_update_default_name, self,
+		     NULL);
+
+    MN_LIST_FOREACH(l, properties->entries)
+      g_signal_connect_swapped(l->data, "activate", G_CALLBACK(self_entry_activate_h), self);
+
+    g_object_unref(properties);	/* now it belongs to the store */
+  }
+
+  private void
+    set_active_properties (self,
+			   MN:Mailbox:Properties *properties (check null type))
+  {
+    gboolean valid;
+    GtkTreeIter iter;
+
+    valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+    while (valid)
+      {
+	MNMailboxProperties *these_properties;
+
+	gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &these_properties, -1);
+	g_object_unref(these_properties);
+
+	if (these_properties == properties)
+	  {
+	    gtk_combo_box_set_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter);
+	    break;
+	  }
+
+	valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+      }
+  }
+
+  private MNMailboxProperties *
+    get_active_properties (self)
+  {
+    GtkTreeIter iter;
+    MNMailboxProperties *properties = NULL;
+
+    if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(selfp->mailbox_type_combo), &iter))
+      gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+    return properties;
+  }
+
+  private MNMailboxProperties *
+    get_properties_by_type (self, const char *type (check null))
+  {
+    gboolean valid;
+    GtkTreeIter iter;
+
+    valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+    while (valid)
+      {
+	MNMailboxProperties *properties;
+	MNMailboxPropertiesClass *class;
+
+	gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+	
+	class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+
+	if (class->type && ! strcmp(class->type, type))
+	  return properties;
+
+	g_object_unref(properties);
+
+	valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+      }
+    
+    return NULL;
+  }
+
+  private MNMailboxProperties *
+    get_properties_by_g_type (self, GType type (check != 0))
+  {
+    gboolean valid;
+    GtkTreeIter iter;
+
+    valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(selfp->store), &iter);
+    while (valid)
+      {
+	MNMailboxProperties *properties;
+
+	gtk_tree_model_get(GTK_TREE_MODEL(selfp->store), &iter, COLUMN_PROPERTIES, &properties, -1);
+
+	if (G_TYPE_CHECK_INSTANCE_TYPE(properties, type))
+	  return properties;
+
+	g_object_unref(properties);
+
+	valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(selfp->store), &iter);
+      }
+
+    return NULL;
+  }
+
+  public MNMailbox *
+    get_current_mailbox (self)
+  {
+    MNMailboxProperties *properties;
+    MNMailbox *mailbox;
+
+    properties = self_get_active_properties(self);
+    mailbox = mn_mailbox_properties_get_mailbox(properties);
+    g_object_unref(properties);
+
+    if (selfp->custom_name)
+      g_object_set(G_OBJECT(mailbox), "name", gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry)), NULL);
+
+    return mailbox;
+  }
+
+  public void
+    apply (self)
+  {
+    MNMailbox *new_mailbox;
+
+    new_mailbox = self_get_current_mailbox(self);
+    g_return_if_fail(MN_IS_MAILBOX(new_mailbox));
+
+    mn_mailbox_seal(new_mailbox);
+
+    mn_mailboxes_queue_remove(mn_shell->mailboxes, selfp->mailbox);
+    mn_mailboxes_queue_add(mn_shell->mailboxes, new_mailbox);
+
+    self_set_mailbox(self, new_mailbox);
+    g_object_unref(new_mailbox);
+  }
+
+  private void
+    update_complete (self)
+  {
+    MNMailboxProperties *properties;
+
+    properties = self_get_active_properties(self);
+    if (properties)
+      {
+	gboolean complete;
+
+	g_object_get(G_OBJECT(properties), "complete", &complete, NULL);
+	g_object_unref(properties);
+
+	gtk_widget_set_sensitive(selfp->mailbox_name_entry, complete);
+	gtk_widget_set_sensitive(selfp->mailbox_name_default_button, complete && selfp->custom_name);
+	if (selfp->apply_button)
+	  gtk_widget_set_sensitive(selfp->apply_button, complete);
+	gtk_widget_set_sensitive(selfp->accept_button, complete);
+      }
+  }
+
+  private void
+    update_default_name (self)
+  {
+    MNMailboxProperties *properties;
+
+    properties = self_get_active_properties(self);
+    if (properties)
+      {
+	gboolean complete;
+	const char *default_name;
+
+	g_free(selfp->default_name);
+
+	g_object_get(G_OBJECT(properties),
+		     "complete", &complete,
+		     "default-name", &selfp->default_name,
+		     NULL);
+	g_object_unref(properties);
+
+	default_name = complete ? selfp->default_name : NULL;
+      
+	gtk_entry_set_text(GTK_ENTRY(selfp->mailbox_name_entry), default_name ? default_name : "");
+	gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name = FALSE);
+      }
+  }
+  
+  public GtkWidget *
+    new (GtkWindow *parent, MNMailbox *mailbox)
+  {
+    return GTK_WIDGET(GET_NEW_VARG(MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(parent),
+				   MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(mailbox),
+				   NULL));
+  }
+
+  /* libglade callbacks */
+
+  protected void
+    type_changed_h (self, GtkComboBox *combobox)
+  {
+    MNMailboxProperties *properties;
+    MNMailboxPropertiesClass *class;
+    char *markup;
+
+    properties = (MNMailboxProperties *) GTK_BIN(selfp->properties_event_box)->child;
+    if (properties)
+      {
+	gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_type_label);
+	gtk_size_group_remove_widget(properties->label_size_group, selfp->mailbox_name_label);
+	gtk_size_group_remove_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+	gtk_container_remove(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+      }
+  
+    properties = self_get_active_properties(self);
+    gtk_container_add(GTK_CONTAINER(selfp->properties_event_box), GTK_WIDGET(properties));
+    gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_type_label);
+    gtk_size_group_add_widget(properties->label_size_group, selfp->mailbox_name_label);
+    gtk_size_group_add_widget(properties->entry_button_size_group, selfp->mailbox_name_default_button);
+    
+    class = MN_MAILBOX_PROPERTIES_GET_CLASS(properties);
+    
+    markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>", class->section_label ? class->section_label : class->combo_label);
+    gtk_label_set_markup(GTK_LABEL(selfp->type_section_label), markup);
+    g_free(markup);
+
+    if (! selfp->mailbox)	/* mode is add */
+      selected_type = G_TYPE_FROM_INSTANCE(properties);
+
+    self_update_complete(self);
+    self_update_default_name(self);
+
+    g_object_unref(properties);
+  }
+  
+  protected void
+    name_changed_h (self, GtkEditable *editable)
+  {
+    const char *name;
+
+    name = gtk_entry_get_text(GTK_ENTRY(selfp->mailbox_name_entry));
+    selfp->custom_name = mn_utf8_strcmp(name, selfp->default_name ? selfp->default_name : "") != 0;
+
+    gtk_widget_set_sensitive(selfp->mailbox_name_default_button, selfp->custom_name);
+  }
+
+  protected void
+    name_default_button_clicked_h (self, GtkButton *button)
+  {
+    self_update_default_name(self);
+  }
+  
+  protected void
+    entry_activate_h (self, GtkEntry *entry)
+  {
+    if (GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(self)->default_widget))
+      gtk_window_activate_default(GTK_WINDOW(self));
+    else
+      {
+	MNMailboxProperties *properties;
+	GtkWidget *next = GTK_WIDGET(entry);
+
+	properties = self_get_active_properties(self);
+	g_return_if_fail(properties != NULL);
+
+	do
+	  {
+	    GSList *elem;
+
+	    if (next == selfp->mailbox_name_entry)
+	      elem = properties->entries;
+	    else
+	      {
+		elem = g_slist_find(properties->entries, next);
+		g_return_if_fail(elem != NULL);
+
+		elem = elem->next;
+	      }
+
+	    next = elem ? elem->data : selfp->mailbox_name_entry;
+	    if (next == GTK_WIDGET(entry))
+	      next = NULL;
+	  }
+	while (next && ! (GTK_WIDGET_MAPPED(next)
+			  && GTK_WIDGET_VISIBLE(next)
+			  && GTK_WIDGET_SENSITIVE(next)));
+
+	if (next)
+	  gtk_widget_grab_focus(next);
+      }
+  }
+}
diff --git a/src/mn-mailbox-properties-dialog.h b/src/mn-mailbox-properties-dialog.h
@@ -1,45 +1,86 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-dialog.h"
+#include "mn-mailbox.h"
+
+#ifndef __MN_MAILBOX_PROPERTIES_DIALOG_H__
+#define __MN_MAILBOX_PROPERTIES_DIALOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
  */
+#define MN_TYPE_MAILBOX_PROPERTIES_DIALOG	(mn_mailbox_properties_dialog_get_type())
+#define MN_MAILBOX_PROPERTIES_DIALOG(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialog)
+#define MN_MAILBOX_PROPERTIES_DIALOG_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialog const)
+#define MN_MAILBOX_PROPERTIES_DIALOG_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialogClass)
+#define MN_IS_MAILBOX_PROPERTIES_DIALOG(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mailbox_properties_dialog_get_type ())
+
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mailbox_properties_dialog_get_type(), MNMailboxPropertiesDialogClass)
 
-#ifndef _MN_MAILBOX_PROPERTIES_DIALOG_H
-#define _MN_MAILBOX_PROPERTIES_DIALOG_H
+/* Private structure type */
+typedef struct _MNMailboxPropertiesDialogPrivate MNMailboxPropertiesDialogPrivate;
 
-#include <gtk/gtk.h>
-#include "mn-uri.h"
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAILBOX_PROPERTIES_DIALOG__
+#define __TYPEDEF_MN_MAILBOX_PROPERTIES_DIALOG__
+typedef struct _MNMailboxPropertiesDialog MNMailboxPropertiesDialog;
+#endif
+struct _MNMailboxPropertiesDialog {
+	MNDialog __parent__;
+	/*< private >*/
+	MNMailboxPropertiesDialogPrivate *_priv;
+};
 
-#define MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_KEY	"mn-mailbox-properties-dialog-private"
-#define MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(obj)	(g_object_get_data(G_OBJECT(obj), MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE_KEY))
+/*
+ * Class definition
+ */
+typedef struct _MNMailboxPropertiesDialogClass MNMailboxPropertiesDialogClass;
+struct _MNMailboxPropertiesDialogClass {
+	MNDialogClass __parent__;
+};
 
-#define MN_TYPE_MAILBOX_PROPERTIES_DIALOG		(GTK_TYPE_DIALOG)
-#define MN_MAILBOX_PROPERTIES_DIALOG(obj)		(GTK_DIALOG(obj))
-#define MN_MAILBOX_PROPERTIES_DIALOG_CLASS(klass)	(GTK_DIALOG_CLASS(klass))
-#define MN_IS_MAILBOX_PROPERTIES_DIALOG(obj)		(GTK_IS_DIALOG(obj) && MN_MAILBOX_PROPERTIES_DIALOG_PRIVATE(obj))
-#define MN_IS_MAILBOX_PROPERTIES_DIALOG_CLASS(klass)	(GTK_IS_DIALOG_CLASS(klass))
-#define MN_MAILBOX_PROPERTIES_DIALOG_GET_CLASS(obj)	(GTK_DIALOG_GET_CLASS(obj))
 
-typedef GtkDialog MNMailboxPropertiesDialog;
-typedef GtkDialogClass MNMailboxPropertiesDialogClass;
+/*
+ * Public methods
+ */
+GType	mn_mailbox_properties_dialog_get_type	(void);
+MNMailbox * 	mn_mailbox_properties_dialog_get_mailbox	(MNMailboxPropertiesDialog * self);
+void 	mn_mailbox_properties_dialog_set_mailbox	(MNMailboxPropertiesDialog * self,
+					MNMailbox * val);
+MNMailbox * 	mn_mailbox_properties_dialog_get_current_mailbox	(MNMailboxPropertiesDialog * self);
+void 	mn_mailbox_properties_dialog_apply	(MNMailboxPropertiesDialog * self);
+GtkWidget * 	mn_mailbox_properties_dialog_new	(GtkWindow * parent,
+					MNMailbox * mailbox);
 
-GtkWidget *mn_mailbox_properties_dialog_new (GtkWindow *parent, MNURI *uri);
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(arg)    	"dialog_parent", __extension__ ({GtkWindow * z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_DIALOG_PARENT(arg)	"dialog_parent", __extension__ ({GtkWindow * *z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(arg)    	"mailbox", __extension__ ({MNMailbox * z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_MAILBOX(arg)	"mailbox", __extension__ ({MNMailbox * *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_DIALOG_PARENT(arg)    	"dialog_parent",(GtkWindow * )(arg)
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_DIALOG_PARENT(arg)	"dialog_parent",(GtkWindow * *)(arg)
+#define MN_MAILBOX_PROPERTIES_DIALOG_PROP_MAILBOX(arg)    	"mailbox",(MNMailbox * )(arg)
+#define MN_MAILBOX_PROPERTIES_DIALOG_GET_PROP_MAILBOX(arg)	"mailbox",(MNMailbox * *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
 
-MNURI *mn_mailbox_properties_dialog_get_uri (MNMailboxPropertiesDialog *dialog);
-MNURI *mn_mailbox_properties_dialog_get_current_uri (MNMailboxPropertiesDialog *dialog);
 
-void mn_mailbox_properties_dialog_apply (MNMailboxPropertiesDialog *dialog);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
-#endif /* _MN_MAILBOX_PROPERTIES_DIALOG_H */
+#endif
diff --git a/src/mn-mailbox-properties-private.h b/src/mn-mailbox-properties-private.h
@@ -0,0 +1,21 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+void 	mn_mailbox_properties_notify_complete	(MNMailboxProperties * self);
+void 	mn_mailbox_properties_notify_default_name	(MNMailboxProperties * self);
+void 	mn_mailbox_properties_add_entry	(MNMailboxProperties * self, GtkEntry * entry);
+void 	mn_mailbox_properties_add_entries	(MNMailboxProperties * self, GtkEntry * entry, ...);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mailbox-properties-util.c b/src/mn-mailbox-properties-util.c
@@ -1,200 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <stdarg.h>
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-#include "mn-mailbox-properties-util.h"
-#include "mn-auth-combo-box.h"
-
-/*** functions ***************************************************************/
-
-#if defined(WITH_POP3) || defined(WITH_IMAP) || defined(WITH_GMAIL)
-static void mn_mailbox_properties_entry_activate_h (GtkEntry *entry, gpointer user_data);
-#endif
-
-/*** implementation **********************************************************/
-
-#if defined(WITH_POP3) || defined(WITH_IMAP) || defined(WITH_GMAIL)
-void
-mn_mailbox_properties_field_new (GtkVBox *vbox,
-				 const char *mnemonic,
-				 GtkWidget **label,
-				 GtkWidget **entry)
-{
-  GtkWidget *hbox;
-
-  g_return_if_fail(GTK_IS_VBOX(vbox));
-  g_return_if_fail(mnemonic != NULL);
-  g_return_if_fail(label != NULL);
-  g_return_if_fail(entry != NULL);
-
-  *label = gtk_label_new_with_mnemonic(mnemonic);
-  gtk_misc_set_alignment(GTK_MISC(*label), 0.0, 0.5);
-
-  *entry = gtk_entry_new();
-  gtk_label_set_mnemonic_widget(GTK_LABEL(*label), *entry);
-
-  hbox = gtk_hbox_new(FALSE, 12);
-  gtk_box_pack_start(GTK_BOX(hbox), *label, FALSE, FALSE, 0);
-  gtk_box_pack_start(GTK_BOX(hbox), *entry, TRUE, TRUE, 0);
-  gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-  gtk_widget_show_all(hbox);
-}
-
-void
-mn_mailbox_properties_credentials_new (GtkVBox *vbox,
-				       GtkWidget **username_label,
-				       GtkWidget **username_entry,
-				       GtkWidget **password_label,
-				       GtkWidget **password_entry)
-{
-  const char *username;
-
-  g_return_if_fail(GTK_IS_VBOX(vbox));
-  g_return_if_fail(username_label != NULL);
-  g_return_if_fail(username_entry != NULL);
-  g_return_if_fail(password_label != NULL);
-  g_return_if_fail(password_entry != NULL);
-
-  mn_mailbox_properties_field_new(vbox,
-				  _("_Username:"),
-				  username_label,
-				  username_entry);
-
-  /* defaults to the login name */
-  username = g_get_user_name();
-  if (username)
-    gtk_entry_set_text(GTK_ENTRY(*username_entry), username);
-
-  mn_mailbox_properties_field_new(vbox,
-				  _("_Password:"),
-				  password_label,
-				  password_entry);
-  gtk_entry_set_visibility(GTK_ENTRY(*password_entry), FALSE);
-}
-
-void
-mn_mailbox_properties_link_entries (GtkEntry *first, ...)
-{
-  va_list args;
-  GtkEntry *entry = first;
-  GtkEntry *next;
-
-  g_return_if_fail(GTK_IS_ENTRY(first));
-
-  va_start(args, first);
-  do
-    {
-      next = va_arg(args, GtkEntry *);
-      if (next)
-	g_return_if_fail(GTK_IS_ENTRY(next));
-
-      g_signal_connect(entry,
-		       "activate",
-		       G_CALLBACK(mn_mailbox_properties_entry_activate_h),
-		       next ? next : first);
-      entry = next;
-    }
-  while (next);
-  va_end(args);
-}
-
-static void
-mn_mailbox_properties_entry_activate_h (GtkEntry *entry, gpointer user_data)
-{
-  GtkWidget *next = user_data;
-  GtkWidget *toplevel;
-
-  toplevel = gtk_widget_get_toplevel(GTK_WIDGET(entry));
-  if (GTK_WIDGET_TOPLEVEL(toplevel)
-      && GTK_WINDOW(toplevel)->default_widget
-      && GTK_WIDGET_IS_SENSITIVE(GTK_WINDOW(toplevel)->default_widget))
-    gtk_window_activate_default(GTK_WINDOW(toplevel));
-  else
-    gtk_widget_grab_focus(next);
-}
-#endif /* WITH_POP3 || WITH_IMAP || WITH_GMAIL */
-
-#if defined(WITH_POP3) || defined(WITH_IMAP)
-void
-mn_mailbox_properties_connection_type_new (GtkVBox *vbox,
-					   const char *mnemonic,
-					   int default_port,
-					   GtkRadioButton *radio_group,
-					   GtkWidget **label,
-					   GtkWidget **radio,
-					   GtkWidget **spin)
-{
-  GtkWidget *hbox;
-  GtkWidget *port_label;
-  
-  g_return_if_fail(GTK_IS_VBOX(vbox));
-  g_return_if_fail(mnemonic != NULL);
-  g_return_if_fail(label != NULL);
-  g_return_if_fail(radio != NULL);
-  g_return_if_fail(spin != NULL);
-
-  *label = gtk_label_new(radio_group ? NULL : _("Connection type:"));
-  gtk_misc_set_alignment(GTK_MISC(*label), 0.0, 0.5);
-
-  *radio = radio_group
-    ? gtk_radio_button_new_with_mnemonic_from_widget(radio_group, mnemonic)
-    : gtk_radio_button_new_with_mnemonic(NULL, mnemonic);
-
-  port_label = gtk_label_new(_("Port:"));
-
-  *spin = gtk_spin_button_new_with_range(0, 0xFFFF, 1);
-  gtk_entry_set_activates_default(GTK_ENTRY(*spin), TRUE);
-  gtk_spin_button_set_value(GTK_SPIN_BUTTON(*spin), default_port);
-  gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(*spin), TRUE);
-
-  hbox = gtk_hbox_new(FALSE, 12);
-  gtk_box_pack_start(GTK_BOX(hbox), *label, FALSE, FALSE, 0);
-  gtk_box_pack_start(GTK_BOX(hbox), *radio, TRUE, TRUE, 0);
-  gtk_box_pack_start(GTK_BOX(hbox), port_label, FALSE, FALSE, 0);
-  gtk_box_pack_start(GTK_BOX(hbox), *spin, FALSE, FALSE, 0);
-  gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-  gtk_widget_show_all(hbox);
-}
-
-void
-mn_mailbox_properties_authentication_new (GtkVBox *vbox,
-					  GtkWidget **label,
-					  GtkWidget **auth_combo)
-{
-  GtkWidget *hbox;
-
-  g_return_if_fail(GTK_IS_VBOX(vbox));
-  g_return_if_fail(label != NULL);
-  g_return_if_fail(auth_combo != NULL);
-
-  hbox = gtk_hbox_new(FALSE, 12);
-  *label = gtk_label_new_with_mnemonic(_("_Authentication mechanism:"));
-  gtk_misc_set_alignment(GTK_MISC(*label), 0.0, 0.5);
-
-  *auth_combo = mn_auth_combo_box_new();
-  gtk_label_set_mnemonic_widget(GTK_LABEL(*label), *auth_combo);
-
-  gtk_box_pack_start(GTK_BOX(hbox), *label, FALSE, FALSE, 0);
-  gtk_box_pack_start(GTK_BOX(hbox), *auth_combo, TRUE, TRUE, 0);
-  gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
-  gtk_widget_show_all(hbox);
-}
-#endif /* WITH_POP3 || WITH_IMAP */
diff --git a/src/mn-mailbox-properties-util.h b/src/mn-mailbox-properties-util.h
@@ -1,52 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_MAILBOX_PROPERTIES_UTIL_H
-#define _MN_MAILBOX_PROPERTIES_UTIL_H
-
-#include "config.h"
-#include <stdarg.h>
-#include <gtk/gtk.h>
-
-#if defined(WITH_POP3) || defined(WITH_IMAP) || defined(WITH_GMAIL)
-void mn_mailbox_properties_field_new (GtkVBox *vbox,
-				      const char *mnemonic,
-				      GtkWidget **label,
-				      GtkWidget **entry);
-void mn_mailbox_properties_credentials_new (GtkVBox *vbox,
-					    GtkWidget **username_label,
-					    GtkWidget **username_entry,
-					    GtkWidget **password_label,
-					    GtkWidget **password_entry);
-void mn_mailbox_properties_link_entries (GtkEntry *first, ...);
-#endif /* WITH_POP3 || WITH_IMAP || WITH_GMAIL */
-
-#if defined(WITH_POP3) || defined(WITH_IMAP)
-void mn_mailbox_properties_connection_type_new (GtkVBox *vbox,
-						const char *mnemonic,
-						int default_port,
-						GtkRadioButton *radio_group,
-						GtkWidget **label,
-						GtkWidget **radio,
-						GtkWidget **spin);
-void mn_mailbox_properties_authentication_new (GtkVBox *vbox,
-					       GtkWidget **label,
-					       GtkWidget **auth_combo);
-#endif /* WITH_POP3 || WITH_IMAP */
-
-#endif /* _MN_MAILBOX_PROPERTIES_UTIL_H */
diff --git a/src/mn-mailbox-properties.c b/src/mn-mailbox-properties.c
@@ -1,121 +1,369 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
 #include "mn-mailbox-properties.h"
 
-/*** functions ***************************************************************/
+#include "mn-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+/* self casting macros */
+#define SELF(x) MN_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAILBOX_PROPERTIES_GET_CLASS(x)
 
-static void mn_mailbox_properties_iface_init (MNMailboxPropertiesIface *iface);
+/* self typedefs */
+typedef MNMailboxProperties Self;
+typedef MNMailboxPropertiesClass SelfClass;
 
-/*** implementation **********************************************************/
+/* here are local prototypes */
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_mailbox_properties_class_init (MNMailboxPropertiesClass * c) G_GNUC_UNUSED;
+static MNMailbox * ___real_mn_mailbox_properties_get_mailbox (MNMailboxProperties * self);
+static void mn_mailbox_properties_init (MNMailboxProperties * self) G_GNUC_UNUSED;
 
+enum {
+	PROP_0,
+	PROP_COMPLETE,
+	PROP_DEFAULT_NAME
+};
+
+/* pointer to the class of our parent */
+static GtkVBoxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_set_mailbox mn_mailbox_properties_set_mailbox
+#define self_get_mailbox mn_mailbox_properties_get_mailbox
+#define self_notify_complete mn_mailbox_properties_notify_complete
+#define self_notify_default_name mn_mailbox_properties_notify_default_name
+#define self_add_entry mn_mailbox_properties_add_entry
+#define self_add_entries mn_mailbox_properties_add_entries
 GType
 mn_mailbox_properties_get_type (void)
 {
-  static GType mailbox_properties_type = 0;
-  
-  if (! mailbox_properties_type)
-    {
-      static const GTypeInfo mailbox_properties_info = {
-	sizeof(MNMailboxPropertiesIface),
-	NULL,
-	NULL,
-	(GClassInitFunc) mn_mailbox_properties_iface_init,
-	NULL,
-	NULL,
-	0,
-	0,
-	NULL
-      };
-      
-      mailbox_properties_type = g_type_register_static(G_TYPE_INTERFACE,
-						       "MNMailboxProperties",
-						       &mailbox_properties_info,
-						       0);
-    }
-  
-  return mailbox_properties_type;
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNMailboxPropertiesClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_mailbox_properties_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNMailboxProperties),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_mailbox_properties_init,
+			NULL
+		};
+
+		type = g_type_register_static (GTK_TYPE_VBOX, "MNMailboxProperties", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMailboxProperties *)g_object_new(mn_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNMailboxProperties *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNMailboxProperties *)g_object_new_valist (mn_mailbox_properties_get_type (), first, ap);
+	va_end (ap);
+	return ret;
 }
 
+
 static void
-mn_mailbox_properties_iface_init (MNMailboxPropertiesIface *iface)
-{
-  g_object_interface_install_property(iface,
-				      g_param_spec_string("label",
-							  _("Label"),
-							  _("The marked up text to show in the type combo box"),
-							  NULL,
-							  G_PARAM_READABLE));
-  g_object_interface_install_property(iface,
-				      g_param_spec_object("size-group",
-							  _("Size group"),
-							  _("A GtkSizeGroup for aligning control labels"),
-							  GTK_TYPE_SIZE_GROUP,
-							  G_PARAM_WRITABLE | G_PARAM_READABLE | G_PARAM_CONSTRUCT_ONLY));
-  g_object_interface_install_property(iface,
-				      g_param_spec_boolean("complete",
-							   _("Complete"),
-							   _("Whether the properties are completely filled or not"),
-							   FALSE,
-							   G_PARAM_READABLE));
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::dispose"
+	MNMailboxProperties *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES (obj_self);
+	if (G_OBJECT_CLASS (parent_class)->dispose) \
+		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
+#line 34 "mn-mailbox-properties.gob"
+	if(self->label_size_group) { g_object_unref ((gpointer) self->label_size_group); self->label_size_group = NULL; }
+#line 113 "mn-mailbox-properties.c"
+#line 35 "mn-mailbox-properties.gob"
+	if(self->entry_button_size_group) { g_object_unref ((gpointer) self->entry_button_size_group); self->entry_button_size_group = NULL; }
+#line 116 "mn-mailbox-properties.c"
 }
+#undef __GOB_FUNCTION__
+
 
-GtkSizeGroup *
-mn_mailbox_properties_get_size_group (MNMailboxProperties *properties)
+static void
+___finalize(GObject *obj_self)
 {
-  GtkSizeGroup *size_group;
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::finalize"
+	MNMailboxProperties *self G_GNUC_UNUSED = MN_MAILBOX_PROPERTIES (obj_self);
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 37 "mn-mailbox-properties.gob"
+	if(self->entries) { g_slist_free ((gpointer) self->entries); self->entries = NULL; }
+#line 130 "mn-mailbox-properties.c"
+}
+#undef __GOB_FUNCTION__
 
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), NULL);
+static void 
+mn_mailbox_properties_class_init (MNMailboxPropertiesClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
 
-  g_object_get(G_OBJECT(properties), "size-group", &size_group, NULL);
-  g_object_unref(size_group);
+	parent_class = g_type_class_ref (GTK_TYPE_VBOX);
 
-  return size_group;
+	c->set_mailbox = NULL;
+#line 47 "mn-mailbox-properties.gob"
+	c->get_mailbox = ___real_mn_mailbox_properties_get_mailbox;
+#line 145 "mn-mailbox-properties.c"
+	g_object_class->dispose = ___dispose;
+	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_boolean
+		("complete" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 FALSE /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE));
+	g_object_class_install_property (g_object_class,
+		PROP_COMPLETE,
+		param_spec);
+	param_spec = g_param_spec_string
+		("default_name" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE));
+	g_object_class_install_property (g_object_class,
+		PROP_DEFAULT_NAME,
+		param_spec);
+    }
+}
+#undef __GOB_FUNCTION__
+#line 53 "mn-mailbox-properties.gob"
+static void 
+mn_mailbox_properties_init (MNMailboxProperties * self G_GNUC_UNUSED)
+#line 176 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::init"
+#line 34 "mn-mailbox-properties.gob"
+	self->label_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+#line 181 "mn-mailbox-properties.c"
+#line 35 "mn-mailbox-properties.gob"
+	self->entry_button_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+#line 184 "mn-mailbox-properties.c"
+ {
+#line 54 "mn-mailbox-properties.gob"
+
+    gtk_box_set_spacing(GTK_BOX(self), 6);
+  
+#line 190 "mn-mailbox-properties.c"
+ }
 }
+#undef __GOB_FUNCTION__
 
-char *
-mn_mailbox_properties_get_label (MNMailboxProperties *properties)
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::get_property"
 {
-  char *label;
+	MNMailboxProperties *self G_GNUC_UNUSED;
 
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), NULL);
+	self = MN_MAILBOX_PROPERTIES (object);
 
-  g_object_get(G_OBJECT(properties), "label", &label, NULL);
-  return label;
+	switch (property_id) {
+	case PROP_COMPLETE:
+		{
+#line 40 "mn-mailbox-properties.gob"
+ g_value_set_boolean(VAL, TRUE); 
+#line 211 "mn-mailbox-properties.c"
+		}
+		break;
+	case PROP_DEFAULT_NAME:
+		{
+#line 42 "mn-mailbox-properties.gob"
+ g_value_set_string(VAL, NULL); 
+#line 218 "mn-mailbox-properties.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
 }
+#undef __GOB_FUNCTION__
+
 
-gboolean
-mn_mailbox_properties_set_uri (MNMailboxProperties *properties,
-			       MNURI *uri)
+#line 44 "mn-mailbox-properties.gob"
+void 
+mn_mailbox_properties_set_mailbox (MNMailboxProperties * self, MNMailbox * mailbox)
+#line 237 "mn-mailbox-properties.c"
 {
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), FALSE);
-  g_return_val_if_fail(MN_IS_URI(uri), FALSE);
+	MNMailboxPropertiesClass *klass;
+#line 44 "mn-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 44 "mn-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 244 "mn-mailbox-properties.c"
+	klass = MN_MAILBOX_PROPERTIES_GET_CLASS(self);
 
-  return MN_MAILBOX_PROPERTIES_GET_IFACE(properties)->set_uri(properties, uri);
+	if(klass->set_mailbox)
+		(*klass->set_mailbox)(self,mailbox);
 }
 
-MNURI *
-mn_mailbox_properties_get_uri (MNMailboxProperties *properties)
+#line 47 "mn-mailbox-properties.gob"
+MNMailbox * 
+mn_mailbox_properties_get_mailbox (MNMailboxProperties * self)
+#line 254 "mn-mailbox-properties.c"
 {
-  g_return_val_if_fail(MN_IS_MAILBOX_PROPERTIES(properties), NULL);
+	MNMailboxPropertiesClass *klass;
+#line 47 "mn-mailbox-properties.gob"
+	g_return_val_if_fail (self != NULL, (MNMailbox * )0);
+#line 47 "mn-mailbox-properties.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNMailbox * )0);
+#line 261 "mn-mailbox-properties.c"
+	klass = MN_MAILBOX_PROPERTIES_GET_CLASS(self);
 
-  return MN_MAILBOX_PROPERTIES_GET_IFACE(properties)->get_uri(properties);
+	if(klass->get_mailbox)
+		return (*klass->get_mailbox)(self);
+	else
+		return (MNMailbox * )(0);
 }
+#line 47 "mn-mailbox-properties.gob"
+static MNMailbox * 
+___real_mn_mailbox_properties_get_mailbox (MNMailboxProperties * self G_GNUC_UNUSED)
+#line 272 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::get_mailbox"
+{
+#line 49 "mn-mailbox-properties.gob"
+	
+    return mn_mailbox_new(SELF_GET_CLASS(self)->type, NULL);
+  }}
+#line 280 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+
+#line 58 "mn-mailbox-properties.gob"
+void 
+mn_mailbox_properties_notify_complete (MNMailboxProperties * self)
+#line 287 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::notify_complete"
+#line 58 "mn-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 58 "mn-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 294 "mn-mailbox-properties.c"
+{
+#line 60 "mn-mailbox-properties.gob"
+	
+    g_object_notify(G_OBJECT(self), "complete");
+  }}
+#line 300 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 64 "mn-mailbox-properties.gob"
+void 
+mn_mailbox_properties_notify_default_name (MNMailboxProperties * self)
+#line 306 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::notify_default_name"
+#line 64 "mn-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 64 "mn-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 313 "mn-mailbox-properties.c"
+{
+#line 66 "mn-mailbox-properties.gob"
+	
+    g_object_notify(G_OBJECT(self), "default-name");
+  }}
+#line 319 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 70 "mn-mailbox-properties.gob"
+void 
+mn_mailbox_properties_add_entry (MNMailboxProperties * self, GtkEntry * entry)
+#line 325 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::add_entry"
+#line 70 "mn-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 70 "mn-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 70 "mn-mailbox-properties.gob"
+	g_return_if_fail (entry != NULL);
+#line 70 "mn-mailbox-properties.gob"
+	g_return_if_fail (GTK_IS_ENTRY (entry));
+#line 336 "mn-mailbox-properties.c"
+{
+#line 72 "mn-mailbox-properties.gob"
+	
+    self->entries = g_slist_append(self->entries, entry);
+  }}
+#line 342 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+
+#line 76 "mn-mailbox-properties.gob"
+void 
+mn_mailbox_properties_add_entries (MNMailboxProperties * self, GtkEntry * entry, ...)
+#line 348 "mn-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:Properties::add_entries"
+#line 76 "mn-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 76 "mn-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (self));
+#line 355 "mn-mailbox-properties.c"
+{
+#line 78 "mn-mailbox-properties.gob"
+	
+    va_list args;
+
+    va_start(args, entry);
+    while (entry)
+      {
+	self_add_entry(self, entry);
+	entry = va_arg(args, GtkEntry *);
+      }
+    va_end(args);
+  }}
+#line 369 "mn-mailbox-properties.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox-properties.gob b/src/mn-mailbox-properties.gob
@@ -0,0 +1,89 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+#include <stdarg.h>
+#include "mn-mailbox.h"
+%}
+
+class MN:Mailbox:Properties from Gtk:VBox
+{
+  classwide const char *type;
+  classwide const char *stock_id;
+  classwide const char *combo_label;
+  classwide const char *section_label;
+
+  protected GtkSizeGroup *label_size_group = {gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)} unrefwith g_object_unref;
+  protected GtkSizeGroup *entry_button_size_group = {gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)} unrefwith g_object_unref;
+  
+  protected GSList *entries destroywith g_slist_free;
+
+  property BOOLEAN complete
+    get { g_value_set_boolean(VAL, TRUE); };
+  property STRING default_name
+    get { g_value_set_string(VAL, NULL); };
+  
+  virtual public void
+    set_mailbox (self, MNMailbox *mailbox);
+
+  virtual public MNMailbox *
+    get_mailbox (self)
+  {
+    return mn_mailbox_new(SELF_GET_CLASS(self)->type, NULL);
+  }
+  
+  init (self)
+  {
+    gtk_box_set_spacing(GTK_BOX(self), 6);
+  }
+
+  protected void
+    notify_complete (self)
+  {
+    g_object_notify(G_OBJECT(self), "complete");
+  }
+
+  protected void
+    notify_default_name (self)
+  {
+    g_object_notify(G_OBJECT(self), "default-name");
+  }
+  
+  protected void
+    add_entry (self, Gtk:Entry *entry (check null type))
+  {
+    self->entries = g_slist_append(self->entries, entry);
+  }
+
+  protected void
+    add_entries (self, GtkEntry *entry, ...)
+  {
+    va_list args;
+
+    va_start(args, entry);
+    while (entry)
+      {
+	self_add_entry(self, entry);
+	entry = va_arg(args, GtkEntry *);
+      }
+    va_end(args);
+  }
+}
diff --git a/src/mn-mailbox-properties.h b/src/mn-mailbox-properties.h
@@ -1,49 +1,84 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <gtk/gtk.h>
+#include <stdarg.h>
+#include "mn-mailbox.h"
+
+#ifndef __MN_MAILBOX_PROPERTIES_H__
+#define __MN_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
  */
+#define MN_TYPE_MAILBOX_PROPERTIES	(mn_mailbox_properties_get_type())
+#define MN_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_get_type(), MNMailboxProperties)
+#define MN_MAILBOX_PROPERTIES_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mailbox_properties_get_type(), MNMailboxProperties const)
+#define MN_MAILBOX_PROPERTIES_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mailbox_properties_get_type(), MNMailboxPropertiesClass)
+#define MN_IS_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mailbox_properties_get_type ())
 
-#ifndef _MN_MAILBOX_PROPERTIES_H
-#define _MN_MAILBOX_PROPERTIES_H
+#define MN_MAILBOX_PROPERTIES_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mailbox_properties_get_type(), MNMailboxPropertiesClass)
 
-#include <glib-object.h>
-#include "mn-uri.h"
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_MAILBOX_PROPERTIES__
+typedef struct _MNMailboxProperties MNMailboxProperties;
+#endif
+struct _MNMailboxProperties {
+	GtkVBox __parent__;
+	/*< private >*/
+	GtkSizeGroup * label_size_group; /* protected */
+	GtkSizeGroup * entry_button_size_group; /* protected */
+	GSList * entries; /* protected */
+};
 
-#define MN_TYPE_MAILBOX_PROPERTIES		(mn_mailbox_properties_get_type ())
-#define MN_MAILBOX_PROPERTIES(obj)		(G_TYPE_CHECK_INSTANCE_CAST((obj), MN_TYPE_MAILBOX_PROPERTIES, MNMailboxProperties))
-#define MN_IS_MAILBOX_PROPERTIES(obj)		(G_TYPE_CHECK_INSTANCE_TYPE((obj), MN_TYPE_MAILBOX_PROPERTIES))
-#define MN_MAILBOX_PROPERTIES_GET_IFACE(obj)	(G_TYPE_INSTANCE_GET_INTERFACE((obj), MN_TYPE_MAILBOX_PROPERTIES, MNMailboxPropertiesIface))
+/*
+ * Class definition
+ */
+typedef struct _MNMailboxPropertiesClass MNMailboxPropertiesClass;
+struct _MNMailboxPropertiesClass {
+	GtkVBoxClass __parent__;
+	void (* set_mailbox) (MNMailboxProperties * self, MNMailbox * mailbox);
+	MNMailbox * (* get_mailbox) (MNMailboxProperties * self);
+	const char * type;
+	const char * stock_id;
+	const char * combo_label;
+	const char * section_label;
+};
 
-typedef struct _MNMailboxProperties MNMailboxProperties; /* dummy */
 
-typedef struct
-{
-  GTypeInterface	parent;
+/*
+ * Public methods
+ */
+GType	mn_mailbox_properties_get_type	(void);
+void 	mn_mailbox_properties_set_mailbox	(MNMailboxProperties * self,
+					MNMailbox * mailbox);
+MNMailbox * 	mn_mailbox_properties_get_mailbox	(MNMailboxProperties * self);
 
-  gboolean	(* set_uri)		(MNMailboxProperties	*properties,
-					 MNURI			*uri);
-  MNURI	*	(* get_uri)		(MNMailboxProperties	*properties);
-} MNMailboxPropertiesIface;
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
 
-GType mn_mailbox_properties_get_type (void);
 
-GtkSizeGroup *mn_mailbox_properties_get_size_group (MNMailboxProperties *properties);
-char *mn_mailbox_properties_get_label (MNMailboxProperties *properties);
-gboolean mn_mailbox_properties_set_uri (MNMailboxProperties *properties,
-					MNURI *uri);
-MNURI *mn_mailbox_properties_get_uri (MNMailboxProperties *properties);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
-#endif /* _MN_MAILBOX_PROPERTIES_H */
+#endif
diff --git a/src/mn-mailbox-view-private.h b/src/mn-mailbox-view-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_MAILBOX_VIEW_PRIVATE_H__
 #define __MN_MAILBOX_VIEW_PRIVATE_H__
@@ -10,17 +10,17 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNMailboxViewPrivate {
-#line 51 "mn-mailbox-view.gob"
+#line 70 "mn-mailbox-view.gob"
 	GtkWidget * menu;
-#line 52 "mn-mailbox-view.gob"
+#line 71 "mn-mailbox-view.gob"
 	GtkWidget * remove_item;
-#line 53 "mn-mailbox-view.gob"
+#line 72 "mn-mailbox-view.gob"
 	GtkWidget * cut_item;
-#line 54 "mn-mailbox-view.gob"
+#line 73 "mn-mailbox-view.gob"
 	GtkWidget * copy_item;
-#line 55 "mn-mailbox-view.gob"
+#line 74 "mn-mailbox-view.gob"
 	GtkWidget * paste_item;
-#line 56 "mn-mailbox-view.gob"
+#line 75 "mn-mailbox-view.gob"
 	GtkWidget * properties_item;
 #line 26 "mn-mailbox-view-private.h"
 };
diff --git a/src/mn-mailbox-view.c b/src/mn-mailbox-view.c
@@ -1,16 +1,14 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
-#include <string.h> /* memset() */
-
 #include "mn-mailbox-view.h"
 
 #include "mn-mailbox-view-private.h"
@@ -23,9 +21,10 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-mailbox-view.gob"
+#line 25 "mn-mailbox-view.gob"
 
 #include "config.h"
+#include <string.h>
 #include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include "mn-util.h"
@@ -33,22 +32,39 @@
 #include "mn-stock.h"
 #include "mn-mailbox-properties-dialog.h"
 #include "mn-conf.h"
-#include "mn-uri.h"
+#include "mn-mailbox.h"
+#include "nautilus-cell-renderer-pixbuf-emblem.h"
+
+enum
+{
+  COLUMN_MAILBOX,
+  COLUMN_ICON,
+  COLUMN_EMBLEM,
+  COLUMN_PIXBUF,
+  COLUMN_LABEL,
+  COLUMN_RAW_LABEL,
+  N_COLUMNS
+};
 
-#define GNOME_COPIED_FILES		"x-special/gnome-copied-files"
+enum
+{
+  TARGET_MAILBOXES,
+  TARGET_GNOME_COPIED_FILES,
+  N_TARGETS
+};
 
-  enum {
-    COLUMN_URI,
-    COLUMN_MAILBOX_ICON,
-    COLUMN_MAILBOX,
-    COLUMN_FORMAT,
-    N_COLUMNS
-  };
+static struct
+{
+  char		*name;
+  GdkAtom	atom;
+} clipboard_info[N_TARGETS] = {
+  { "x-special/mail-notification-mailboxes" },
+  { "x-special/gnome-copied-files" }
+};
 
-  static GtkClipboard *global_clipboard;
-  static GdkAtom gnome_copied_files_atom;
+static GtkClipboard *global_clipboard;
 
-#line 52 "mn-mailbox-view.c"
+#line 68 "mn-mailbox-view.c"
 /* self casting macros */
 #define SELF(x) MN_MAILBOX_VIEW(x)
 #define SELF_CONST(x) MN_MAILBOX_VIEW_CONST(x)
@@ -68,14 +84,15 @@ static void ___real_mn_mailbox_view_activate_remove (MNMailboxView * self);
 static void ___real_mn_mailbox_view_activate_cut (MNMailboxView * self);
 static void ___real_mn_mailbox_view_activate_copy (MNMailboxView * self);
 static void ___real_mn_mailbox_view_activate_paste (MNMailboxView * self);
-static void mn_mailbox_view_activate_paste_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data) G_GNUC_UNUSED;
 static void ___real_mn_mailbox_view_activate_properties (MNMailboxView * self);
 static void mn_mailbox_view_activate_properties_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data) G_GNUC_UNUSED;
 static void mn_mailbox_view_class_init (MNMailboxViewClass * class) G_GNUC_UNUSED;
 static void mn_mailbox_view_init (MNMailboxView * self) G_GNUC_UNUSED;
+static int mn_mailbox_view_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data) G_GNUC_UNUSED;
+static gboolean mn_mailbox_view_search_equal_cb (GtkTreeModel * model, int column, const char * key, GtkTreeIter * iter, gpointer search_data) G_GNUC_UNUSED;
 static void mn_mailbox_view_append (MNMailboxView * self, MNMailbox * mailbox) G_GNUC_UNUSED;
 static void mn_mailbox_view_mailbox_added_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailbox_view_mailbox_changed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailbox_view_mailbox_notify_h (MNMailboxes * mailboxes, MNMailbox * mailbox, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
 static void mn_mailbox_view_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
 static void mn_mailbox_view_update_iter (MNMailboxView * self, GtkTreeIter * iter, MNMailbox * mailbox) G_GNUC_UNUSED;
 static gboolean mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTreeIter * iter) G_GNUC_UNUSED;
@@ -90,7 +107,7 @@ static void mn_mailbox_view_select_all (MNMailboxView * self) G_GNUC_UNUSED;
 static void mn_mailbox_view_properties_add_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
 static void mn_mailbox_view_properties_edit_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
 static void mn_mailbox_view_popup_menu (MNMailboxView * self, unsigned int button, guint32 activate_time) G_GNUC_UNUSED;
-static void mn_mailbox_view_popup_menu_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data) G_GNUC_UNUSED;
+static void mn_mailbox_view_popup_menu_targets_received_cb (GtkClipboard * clipboard, GdkAtom * atoms, int n_atoms, gpointer data) G_GNUC_UNUSED;
 static gboolean mn_mailbox_view_popup_menu_h (GtkWidget * widget, gpointer user_data) G_GNUC_UNUSED;
 static gboolean mn_mailbox_view_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data) G_GNUC_UNUSED;
 static void mn_mailbox_view_row_activated_h (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * column, gpointer user_data) G_GNUC_UNUSED;
@@ -138,12 +155,13 @@ static GtkTreeViewClass *parent_class = NULL;
 #define self_activate_cut mn_mailbox_view_activate_cut
 #define self_activate_copy mn_mailbox_view_activate_copy
 #define self_activate_paste mn_mailbox_view_activate_paste
-#define self_activate_paste_receive_cb mn_mailbox_view_activate_paste_receive_cb
 #define self_activate_properties mn_mailbox_view_activate_properties
 #define self_activate_properties_cb mn_mailbox_view_activate_properties_cb
+#define self_sort_cb mn_mailbox_view_sort_cb
+#define self_search_equal_cb mn_mailbox_view_search_equal_cb
 #define self_append mn_mailbox_view_append
 #define self_mailbox_added_h mn_mailbox_view_mailbox_added_h
-#define self_mailbox_changed_h mn_mailbox_view_mailbox_changed_h
+#define self_mailbox_notify_h mn_mailbox_view_mailbox_notify_h
 #define self_mailbox_removed_h mn_mailbox_view_mailbox_removed_h
 #define self_update_iter mn_mailbox_view_update_iter
 #define self_find_mailbox mn_mailbox_view_find_mailbox
@@ -158,7 +176,7 @@ static GtkTreeViewClass *parent_class = NULL;
 #define self_properties_add_response_h mn_mailbox_view_properties_add_response_h
 #define self_properties_edit_response_h mn_mailbox_view_properties_edit_response_h
 #define self_popup_menu mn_mailbox_view_popup_menu
-#define self_popup_menu_receive_cb mn_mailbox_view_popup_menu_receive_cb
+#define self_popup_menu_targets_received_cb mn_mailbox_view_popup_menu_targets_received_cb
 #define self_popup_menu_h mn_mailbox_view_popup_menu_h
 #define self_button_press_event_h mn_mailbox_view_button_press_event_h
 #define self_row_activated_h mn_mailbox_view_row_activated_h
@@ -214,16 +232,16 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 51 "mn-mailbox-view.gob"
+#line 70 "mn-mailbox-view.gob"
 	if(self->_priv->menu) { gtk_widget_destroy ((gpointer) self->_priv->menu); self->_priv->menu = NULL; }
-#line 220 "mn-mailbox-view.c"
+#line 238 "mn-mailbox-view.c"
 }
 #undef __GOB_FUNCTION__
 
-#line 195 "mn-mailbox-view.gob"
+#line 232 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_class_init (MNMailboxViewClass * class G_GNUC_UNUSED)
-#line 227 "mn-mailbox-view.c"
+#line 245 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
@@ -281,27 +299,30 @@ mn_mailbox_view_class_init (MNMailboxViewClass * class G_GNUC_UNUSED)
 			g_cclosure_marshal_VOID__VOID,
 			G_TYPE_NONE, 0);
 
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
 	class->activate_add = ___real_mn_mailbox_view_activate_add;
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
 	class->activate_remove = ___real_mn_mailbox_view_activate_remove;
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
 	class->activate_cut = ___real_mn_mailbox_view_activate_cut;
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
 	class->activate_copy = ___real_mn_mailbox_view_activate_copy;
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
 	class->activate_paste = ___real_mn_mailbox_view_activate_paste;
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
 	class->activate_properties = ___real_mn_mailbox_view_activate_properties;
-#line 297 "mn-mailbox-view.c"
+#line 315 "mn-mailbox-view.c"
 	g_object_class->finalize = ___finalize;
  {
-#line 196 "mn-mailbox-view.gob"
+#line 233 "mn-mailbox-view.gob"
 
     GtkBindingSet *binding_set;
+    int i;
 
     global_clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
-    gnome_copied_files_atom = gdk_atom_intern(GNOME_COPIED_FILES, FALSE);
+
+    for (i = 0; i < N_TARGETS; i++)
+      clipboard_info[i].atom = gdk_atom_intern(clipboard_info[i].name, FALSE);
 
     binding_set = gtk_binding_set_by_class(class);
 
@@ -324,22 +345,22 @@ mn_mailbox_view_class_init (MNMailboxViewClass * class G_GNUC_UNUSED)
     gtk_binding_entry_add_signal(binding_set, GDK_ISO_Enter, GDK_MOD1_MASK, "activate-properties", 0);
     gtk_binding_entry_add_signal(binding_set, GDK_KP_Enter, GDK_MOD1_MASK, "activate-properties", 0);
   
-#line 328 "mn-mailbox-view.c"
+#line 349 "mn-mailbox-view.c"
  }
 }
 #undef __GOB_FUNCTION__
-#line 224 "mn-mailbox-view.gob"
+#line 264 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
-#line 335 "mn-mailbox-view.c"
+#line 356 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::init"
-	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailboxViewPrivate);
-#line 51 "mn-mailbox-view.gob"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAILBOX_VIEW,MNMailboxViewPrivate);
+#line 70 "mn-mailbox-view.gob"
 	self->_priv->menu = gtk_menu_new();
-#line 341 "mn-mailbox-view.c"
+#line 362 "mn-mailbox-view.c"
  {
-#line 225 "mn-mailbox-view.gob"
+#line 265 "mn-mailbox-view.gob"
 
     GtkMenuShell *shell;
     GtkWidget *add_item;
@@ -348,7 +369,7 @@ mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
     GtkTreeViewColumn *column;
     GtkCellRenderer *renderer;
     GtkTreeSelection *selection;
-    GSList *l;
+    GList *l;
 
     /* popup menu */
 
@@ -376,56 +397,63 @@ mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
     /* store */
 
     store = gtk_list_store_new(N_COLUMNS,
-			       MN_TYPE_URI,
+			       MN_TYPE_MAILBOX,
 			       G_TYPE_STRING,
+			       GDK_TYPE_PIXBUF,
+			       GDK_TYPE_PIXBUF,
 			       G_TYPE_STRING,
 			       G_TYPE_STRING);
+
+    gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store),
+					    self_sort_cb,
+					    NULL,
+					    NULL);
+    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store),
+					 GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
+					 GTK_SORT_ASCENDING);
+
     gtk_tree_view_set_model(GTK_TREE_VIEW(self), GTK_TREE_MODEL(store));
     g_object_unref(store);
     
-    /* mailbox column */
-
     column = gtk_tree_view_column_new();
     gtk_tree_view_column_set_title(column, _("Mailbox"));
-    gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-    gtk_tree_view_column_set_sort_column_id(column, COLUMN_MAILBOX);
 
-    renderer = gtk_cell_renderer_pixbuf_new();
+    renderer = nautilus_cell_renderer_pixbuf_emblem_new();
+    g_object_set(renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
     gtk_tree_view_column_pack_start(column, renderer, FALSE);
-    gtk_tree_view_column_add_attribute(column, renderer, "stock-id", COLUMN_MAILBOX_ICON);
+    gtk_tree_view_column_set_attributes(column, renderer,
+					"stock-id", COLUMN_ICON,
+					"pixbuf-emblem", COLUMN_EMBLEM,
+					"pixbuf", COLUMN_PIXBUF,
+					NULL);
 
     renderer = gtk_cell_renderer_text_new();
     gtk_tree_view_column_pack_start(column, renderer, TRUE);
-    gtk_tree_view_column_add_attribute(column, renderer, "text", COLUMN_MAILBOX);
-
-    gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
+    gtk_tree_view_column_add_attribute(column, renderer, "markup", COLUMN_LABEL);
 
-    /* format column */
-
-    column = gtk_tree_view_column_new_with_attributes(_("Format"),
-						      gtk_cell_renderer_text_new(),
-						      "text", COLUMN_FORMAT,
-						      NULL);
-
-    gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-    gtk_tree_view_column_set_sort_column_id(column, COLUMN_FORMAT);
     gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
 
     /* misc */
 
-    gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_MAILBOX);
+    gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_RAW_LABEL);
+    gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(self), self_search_equal_cb, NULL, NULL);
+
+    gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(self), FALSE);
 
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
     gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
     
-    MN_LIST_FOREACH(l, mn_mailboxes_get(mn_shell->mailboxes))
+    MN_LIST_FOREACH(l, mn_shell->mailboxes->list)
       self_append(self, l->data);
     self_update_sensitivity(self);
 
     mn_g_object_connect(self,
 			mn_shell->mailboxes,
 			"signal::mailbox-added", self_mailbox_added_h, self,
-			"signal::mailbox-changed", self_mailbox_changed_h, self,
+			"signal::mailbox-notify::stock-id", self_mailbox_notify_h, self,
+			"signal::mailbox-notify::must-poll", self_mailbox_notify_h, self,
+			"signal::mailbox-notify::format", self_mailbox_notify_h, self,
+			"signal::mailbox-notify::error", self_mailbox_notify_h, self,
 			"signal::mailbox-removed", self_mailbox_removed_h, self,
 			NULL);
 
@@ -437,15 +465,15 @@ mn_mailbox_view_init (MNMailboxView * self G_GNUC_UNUSED)
 		     "signal::row-activated", self_row_activated_h, NULL,
 		     NULL);
   
-#line 441 "mn-mailbox-view.c"
+#line 469 "mn-mailbox-view.c"
  }
 }
 #undef __GOB_FUNCTION__
 
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
 void 
 mn_mailbox_view_activate_add (MNMailboxView * self)
-#line 449 "mn-mailbox-view.c"
+#line 477 "mn-mailbox-view.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -453,11 +481,11 @@ mn_mailbox_view_activate_add (MNMailboxView * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 461 "mn-mailbox-view.c"
+#line 489 "mn-mailbox-view.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -470,20 +498,18 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 58 "mn-mailbox-view.gob"
+#line 77 "mn-mailbox-view.gob"
 static void 
 ___real_mn_mailbox_view_activate_add (MNMailboxView * self G_GNUC_UNUSED)
-#line 477 "mn-mailbox-view.c"
+#line 505 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_add"
 {
-#line 60 "mn-mailbox-view.gob"
+#line 79 "mn-mailbox-view.gob"
 	
-    GtkWidget *toplevel;
     GtkWidget *dialog;
 
-    toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
-    dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), NULL);
+    dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), NULL);
 
     g_signal_connect(dialog,
 		     "response",
@@ -492,13 +518,13 @@ ___real_mn_mailbox_view_activate_add (MNMailboxView * self G_GNUC_UNUSED)
 
     gtk_widget_show(dialog);
   }}
-#line 496 "mn-mailbox-view.c"
+#line 522 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
 void 
 mn_mailbox_view_activate_remove (MNMailboxView * self)
-#line 502 "mn-mailbox-view.c"
+#line 528 "mn-mailbox-view.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -506,11 +532,11 @@ mn_mailbox_view_activate_remove (MNMailboxView * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 514 "mn-mailbox-view.c"
+#line 540 "mn-mailbox-view.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -523,24 +549,24 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 75 "mn-mailbox-view.gob"
+#line 92 "mn-mailbox-view.gob"
 static void 
 ___real_mn_mailbox_view_activate_remove (MNMailboxView * self G_GNUC_UNUSED)
-#line 530 "mn-mailbox-view.c"
+#line 556 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_remove"
 {
-#line 77 "mn-mailbox-view.gob"
+#line 94 "mn-mailbox-view.gob"
 	
     self_remove_mailbox(self);
   }}
-#line 538 "mn-mailbox-view.c"
+#line 564 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
 void 
 mn_mailbox_view_activate_cut (MNMailboxView * self)
-#line 544 "mn-mailbox-view.c"
+#line 570 "mn-mailbox-view.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -548,11 +574,11 @@ mn_mailbox_view_activate_cut (MNMailboxView * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 556 "mn-mailbox-view.c"
+#line 582 "mn-mailbox-view.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -565,25 +591,25 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 81 "mn-mailbox-view.gob"
+#line 98 "mn-mailbox-view.gob"
 static void 
 ___real_mn_mailbox_view_activate_cut (MNMailboxView * self G_GNUC_UNUSED)
-#line 572 "mn-mailbox-view.c"
+#line 598 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_cut"
 {
-#line 83 "mn-mailbox-view.gob"
+#line 100 "mn-mailbox-view.gob"
 	
     self_copy_mailbox(self);
     self_remove_mailbox(self);
   }}
-#line 581 "mn-mailbox-view.c"
+#line 607 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
 void 
 mn_mailbox_view_activate_copy (MNMailboxView * self)
-#line 587 "mn-mailbox-view.c"
+#line 613 "mn-mailbox-view.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -591,11 +617,11 @@ mn_mailbox_view_activate_copy (MNMailboxView * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 599 "mn-mailbox-view.c"
+#line 625 "mn-mailbox-view.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -608,24 +634,24 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 88 "mn-mailbox-view.gob"
+#line 105 "mn-mailbox-view.gob"
 static void 
 ___real_mn_mailbox_view_activate_copy (MNMailboxView * self G_GNUC_UNUSED)
-#line 615 "mn-mailbox-view.c"
+#line 641 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_copy"
 {
-#line 90 "mn-mailbox-view.gob"
+#line 107 "mn-mailbox-view.gob"
 	
     self_copy_mailbox(self);
   }}
-#line 623 "mn-mailbox-view.c"
+#line 649 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
 void 
 mn_mailbox_view_activate_paste (MNMailboxView * self)
-#line 629 "mn-mailbox-view.c"
+#line 655 "mn-mailbox-view.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -633,11 +659,11 @@ mn_mailbox_view_activate_paste (MNMailboxView * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 641 "mn-mailbox-view.c"
+#line 667 "mn-mailbox-view.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -650,87 +676,99 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 94 "mn-mailbox-view.gob"
+#line 111 "mn-mailbox-view.gob"
 static void 
 ___real_mn_mailbox_view_activate_paste (MNMailboxView * self G_GNUC_UNUSED)
-#line 657 "mn-mailbox-view.c"
+#line 683 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_paste"
 {
-#line 96 "mn-mailbox-view.gob"
+#line 113 "mn-mailbox-view.gob"
 	
-    gtk_clipboard_request_contents(global_clipboard,
-				   gnome_copied_files_atom,
-				   self_activate_paste_receive_cb,
-				   NULL);
-  }}
-#line 668 "mn-mailbox-view.c"
-#undef __GOB_FUNCTION__
+    GtkSelectionData *data;
 
-#line 103 "mn-mailbox-view.gob"
-static void 
-mn_mailbox_view_activate_paste_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data)
-#line 674 "mn-mailbox-view.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox:View::activate_paste_receive_cb"
-#line 103 "mn-mailbox-view.gob"
-	g_return_if_fail (clipboard != NULL);
-#line 103 "mn-mailbox-view.gob"
-	g_return_if_fail (selection_data != NULL);
-#line 681 "mn-mailbox-view.c"
-{
-#line 107 "mn-mailbox-view.gob"
-	
-    if (selection_data->type == gnome_copied_files_atom
-	&& selection_data->format == 8
-	&& selection_data->length > 0)
+    data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+    if (data)
       {
-	char *gnome_copied_files;
-	gboolean status;
-	MNGnomeCopiedFilesType type;
-	GSList *uri_list;
+	GSList *configurations;
+	GSList *l;
+	
+	memcpy(&configurations, data->data, data->length);
+
+	MN_LIST_FOREACH(l, configurations)
+	  {
+	    MNMailbox *mailbox;
 
-	gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
-	status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
-	g_free(gnome_copied_files);
+	    mailbox = mn_mailbox_new_from_configuration(l->data);
 
-	if (status)
+	    mn_mailbox_seal(mailbox);
+	    mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+
+	    g_object_unref(mailbox);
+	  }
+
+	gtk_selection_data_free(data);
+	return;
+      }
+
+    data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+    if (data)
+      {
+	if (data->format == 8 && data->length > 0)
 	  {
-	    if (type == MN_GNOME_COPIED_FILES_COPY)
-	      {
-		GSList *new_mailboxes = NULL;
-		GSList *l;
-		
-		MN_LIST_FOREACH(l, uri_list)
-	          {
-		    const char *uri = l->data;
-		    
-		    if (! mn_mailboxes_find(mn_shell->mailboxes, uri))
-		      new_mailboxes = g_slist_append(new_mailboxes, g_strdup(uri));
-		  }
+	    char *gnome_copied_files;
+	    gboolean status;
+	    MNGnomeCopiedFilesType type;
+	    GSList *uri_list;
 
-		if (new_mailboxes)
+	    gnome_copied_files = g_strndup(data->data, data->length);
+	    status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+	    g_free(gnome_copied_files);
+
+	    if (status)
+	      {
+		if (type == MN_GNOME_COPIED_FILES_COPY)
 		  {
-		    GSList *gconf_mailboxes;
-		    
-		    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
-		    gconf_mailboxes = g_slist_concat(gconf_mailboxes, new_mailboxes);
-		    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-		    eel_g_slist_free_deep(gconf_mailboxes);
+		    GSList *l;
+		    GSList *invalid_uri_list = NULL;
+
+		    MN_LIST_FOREACH(l, uri_list)
+		      {
+			const char *uri = l->data;
+			MNMailbox *mailbox;
+
+			mailbox = mn_mailbox_new_from_uri(uri);
+			if (mailbox)
+			  {
+			    mn_mailbox_seal(mailbox);
+			    mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+			    g_object_unref(mailbox);
+			  }
+			else
+			  invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+		      }
+
+		    if (invalid_uri_list)
+		      {
+			mn_invalid_uri_list_dialog(mn_widget_get_parent_window(GTK_WIDGET(self)), _("A paste error has occurred"), invalid_uri_list);
+			g_slist_free(invalid_uri_list);
+		      }
 		  }
+		    
+		eel_g_slist_free_deep(uri_list);
 	      }
-
-	    eel_g_slist_free_deep(uri_list);
 	  }
+
+	gtk_selection_data_free(data);
       }
   }}
-#line 728 "mn-mailbox-view.c"
+#line 766 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
 void 
 mn_mailbox_view_activate_properties (MNMailboxView * self)
-#line 734 "mn-mailbox-view.c"
+#line 772 "mn-mailbox-view.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -738,11 +776,11 @@ mn_mailbox_view_activate_properties (MNMailboxView * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 746 "mn-mailbox-view.c"
+#line 784 "mn-mailbox-view.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -755,58 +793,44 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 152 "mn-mailbox-view.gob"
+#line 192 "mn-mailbox-view.gob"
 static void 
 ___real_mn_mailbox_view_activate_properties (MNMailboxView * self G_GNUC_UNUSED)
-#line 762 "mn-mailbox-view.c"
+#line 800 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_properties"
 {
-#line 154 "mn-mailbox-view.gob"
+#line 194 "mn-mailbox-view.gob"
 	
     GtkTreeSelection *selection;
 
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
     gtk_tree_selection_selected_foreach(selection, self_activate_properties_cb, self);
   }}
-#line 773 "mn-mailbox-view.c"
+#line 811 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 161 "mn-mailbox-view.gob"
+#line 201 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_activate_properties_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data)
-#line 779 "mn-mailbox-view.c"
+#line 817 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::activate_properties_cb"
-#line 161 "mn-mailbox-view.gob"
-	g_return_if_fail (model != NULL);
-#line 161 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_TREE_MODEL (model));
-#line 161 "mn-mailbox-view.gob"
-	g_return_if_fail (path != NULL);
-#line 161 "mn-mailbox-view.gob"
-	g_return_if_fail (iter != NULL);
-#line 161 "mn-mailbox-view.gob"
-	g_return_if_fail (data != NULL);
-#line 792 "mn-mailbox-view.c"
 {
-#line 166 "mn-mailbox-view.gob"
+#line 206 "mn-mailbox-view.gob"
 	
     Self *self = data;
-    MNURI *uri;
+    MNMailbox *mailbox;
     GtkWidget *dialog;
 
-    gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
+    gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
 
-    dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, uri);
+    dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, mailbox);
     if (dialog)
       gtk_window_present(GTK_WINDOW(dialog));
     else
       {
-	GtkWidget *toplevel;
-	
-	toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
-	dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), uri);
+	dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), mailbox);
 
 	g_signal_connect(dialog,
 			 "response",
@@ -817,30 +841,124 @@ mn_mailbox_view_activate_properties_cb (GtkTreeModel * model, GtkTreePath * path
 	gtk_widget_show(dialog);
       }
 
-    g_object_unref(uri);
+    g_object_unref(mailbox);
   }}
-#line 823 "mn-mailbox-view.c"
+#line 847 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
 
 
-#line 323 "mn-mailbox-view.gob"
+#line 370 "mn-mailbox-view.gob"
+static int 
+mn_mailbox_view_sort_cb (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data)
+#line 855 "mn-mailbox-view.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:View::sort_cb"
+{
+#line 375 "mn-mailbox-view.gob"
+	
+    MNMailbox *mailbox_a;
+    MNMailbox *mailbox_b;
+    int cmp;
+
+    gtk_tree_model_get(model, a, COLUMN_MAILBOX, &mailbox_a, -1);
+    gtk_tree_model_get(model, b, COLUMN_MAILBOX, &mailbox_b, -1);
+
+    cmp = mn_mailboxes_compare_by_name_func(mailbox_a, mailbox_b);
+
+    g_object_unref(mailbox_a);
+    g_object_unref(mailbox_b);
+
+    return cmp;
+  }}
+#line 875 "mn-mailbox-view.c"
+#undef __GOB_FUNCTION__
+
+#line 391 "mn-mailbox-view.gob"
+static gboolean 
+mn_mailbox_view_search_equal_cb (GtkTreeModel * model, int column, const char * key, GtkTreeIter * iter, gpointer search_data)
+#line 881 "mn-mailbox-view.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox:View::search_equal_cb"
+{
+#line 397 "mn-mailbox-view.gob"
+	
+    gboolean status = TRUE;
+    GValue value = { 0, };
+    GValue transformed = { 0, };
+    const char *str;
+    char *normalized_string;
+    char *normalized_key;
+    
+    /*
+     * The stock gtk_tree_view_search_equal_func() only searches the
+     * start of the string, using strncmp(). We use strstr(), to
+     * search anywhere inside the string.
+     */
+
+    gtk_tree_model_get_value(model, iter, column, &value);
+
+    g_value_init(&transformed, G_TYPE_STRING);
+
+    if (! g_value_transform(&value, &transformed))
+      {
+	g_value_unset(&value);
+	return TRUE;
+      }
+
+    g_value_unset(&value);
+
+    str = g_value_get_string(&transformed);
+    if (! str)
+      {
+	g_value_unset(&transformed);
+	return TRUE;
+      }
+
+    normalized_string = g_utf8_normalize(str, -1, G_NORMALIZE_ALL);
+    normalized_key = g_utf8_normalize(key, -1, G_NORMALIZE_ALL);
+
+    if (normalized_string && normalized_key)
+      {
+	char *case_normalized_string;
+	char *case_normalized_key;
+
+	case_normalized_string = g_utf8_casefold(normalized_string, -1);
+	case_normalized_key = g_utf8_casefold(normalized_key, -1);
+
+	if (strstr(case_normalized_string, case_normalized_key))
+	  status = FALSE;
+
+	g_free(case_normalized_string);
+	g_free(case_normalized_key);
+      }
+
+    g_value_unset (&transformed);
+    g_free(normalized_key);
+    g_free(normalized_string);
+
+    return status;
+  }}
+#line 943 "mn-mailbox-view.c"
+#undef __GOB_FUNCTION__
+
+#line 455 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_append (MNMailboxView * self, MNMailbox * mailbox)
-#line 831 "mn-mailbox-view.c"
+#line 949 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::append"
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 323 "mn-mailbox-view.gob"
+#line 455 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 842 "mn-mailbox-view.c"
+#line 960 "mn-mailbox-view.c"
 {
-#line 325 "mn-mailbox-view.gob"
+#line 457 "mn-mailbox-view.gob"
 	
     GtkTreeModel *model;
     GtkTreeIter iter;
@@ -849,55 +967,33 @@ mn_mailbox_view_append (MNMailboxView * self, MNMailbox * mailbox)
     gtk_list_store_append(GTK_LIST_STORE(model), &iter);
     self_update_iter(self, &iter, mailbox);
   }}
-#line 853 "mn-mailbox-view.c"
+#line 971 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 334 "mn-mailbox-view.gob"
+#line 466 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_mailbox_added_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 859 "mn-mailbox-view.c"
+#line 977 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_added_h"
-#line 334 "mn-mailbox-view.gob"
-	g_return_if_fail (mailboxes != NULL);
-#line 334 "mn-mailbox-view.gob"
-	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 334 "mn-mailbox-view.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 334 "mn-mailbox-view.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 334 "mn-mailbox-view.gob"
-	g_return_if_fail (user_data != NULL);
-#line 872 "mn-mailbox-view.c"
 {
-#line 338 "mn-mailbox-view.gob"
+#line 470 "mn-mailbox-view.gob"
 	
     Self *self = user_data;
 
     self_append(self, mailbox);
   }}
-#line 880 "mn-mailbox-view.c"
+#line 987 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 344 "mn-mailbox-view.gob"
+#line 476 "mn-mailbox-view.gob"
 static void 
-mn_mailbox_view_mailbox_changed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 886 "mn-mailbox-view.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_changed_h"
-#line 344 "mn-mailbox-view.gob"
-	g_return_if_fail (mailboxes != NULL);
-#line 344 "mn-mailbox-view.gob"
-	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 344 "mn-mailbox-view.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 344 "mn-mailbox-view.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 344 "mn-mailbox-view.gob"
-	g_return_if_fail (user_data != NULL);
-#line 899 "mn-mailbox-view.c"
+mn_mailbox_view_mailbox_notify_h (MNMailboxes * mailboxes, MNMailbox * mailbox, GParamSpec * pspec, gpointer user_data)
+#line 993 "mn-mailbox-view.c"
 {
-#line 348 "mn-mailbox-view.gob"
+#define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_notify_h"
+{
+#line 481 "mn-mailbox-view.gob"
 	
     Self *self = user_data;
     GtkTreeIter iter;
@@ -905,28 +1001,17 @@ mn_mailbox_view_mailbox_changed_h (MNMailboxes * mailboxes, MNMailbox * mailbox,
     if (self_find_mailbox(self, mailbox, &iter))
       self_update_iter(self, &iter, mailbox);
   }}
-#line 909 "mn-mailbox-view.c"
+#line 1005 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 356 "mn-mailbox-view.gob"
+#line 489 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 915 "mn-mailbox-view.c"
+#line 1011 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::mailbox_removed_h"
-#line 356 "mn-mailbox-view.gob"
-	g_return_if_fail (mailboxes != NULL);
-#line 356 "mn-mailbox-view.gob"
-	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 356 "mn-mailbox-view.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 356 "mn-mailbox-view.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 356 "mn-mailbox-view.gob"
-	g_return_if_fail (user_data != NULL);
-#line 928 "mn-mailbox-view.c"
 {
-#line 360 "mn-mailbox-view.gob"
+#line 493 "mn-mailbox-view.gob"
 	
     Self *self = user_data;
     GtkTreeIter iter;
@@ -939,75 +1024,119 @@ mn_mailbox_view_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox,
 	gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
       }
   }}
-#line 943 "mn-mailbox-view.c"
+#line 1028 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_update_iter (MNMailboxView * self, GtkTreeIter * iter, MNMailbox * mailbox)
-#line 949 "mn-mailbox-view.c"
+#line 1034 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::update_iter"
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
 	g_return_if_fail (iter != NULL);
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 373 "mn-mailbox-view.gob"
+#line 506 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 962 "mn-mailbox-view.c"
+#line 1047 "mn-mailbox-view.c"
 {
-#line 377 "mn-mailbox-view.gob"
+#line 510 "mn-mailbox-view.gob"
 	
-    MNMailboxClass *class;
-    const char *stock_id;
     GtkTreeModel *model;
-
-    class = MN_MAILBOX_GET_CLASS(mailbox);
-  
-    if (MN_URI_IS_SYSTEM_MAILBOX(mailbox->uri))
-      stock_id = MN_STOCK_SYSTEM_MAILBOX;
+    char *status;
+    const char *stock_id = NULL;
+    const char *emblem_stock_id = NULL;
+    GdkPixbuf *emblem = NULL;
+    char *markup;
+    char *text;
+
+    if (mailbox->format)
+      {
+	if (mailbox->error)
+	  {
+	    status = g_strdup_printf(_("unhandled %s mailbox (%s)"), mailbox->format, mailbox->error);
+	    emblem_stock_id = MN_STOCK_ERROR;
+	  }
+	else
+	  {
+	    status = g_strdup_printf(_("%s mailbox"), mailbox->format);
+	    if (mailbox->must_poll)
+	      emblem_stock_id = MN_STOCK_POLLED;
+	  }
+      }
     else
-    {
-      if (class->stock_id)
-	stock_id = class->stock_id;
-      else
-	stock_id = MN_URI_IS_LOCAL(mailbox->uri) ? MN_STOCK_LOCAL : MN_STOCK_REMOTE;
-    }
+      {
+	if (mailbox->error)
+	  {
+	    status = g_strdup(mailbox->error);
+	    if (strcmp(mailbox->stock_id, MN_STOCK_UNKNOWN))
+	      emblem_stock_id = MN_STOCK_UNKNOWN;
+	  }
+	else
+	  {
+	    status = g_strdup(_("detecting mailbox type..."));
+	    stock_id = GTK_STOCK_EXECUTE;
+	  }
+      }
+    
+    if (! stock_id)
+      stock_id = mailbox->stock_id;
+
+    if (emblem_stock_id)
+      emblem = gtk_widget_render_icon(GTK_WIDGET(self),
+				      emblem_stock_id,
+				      GTK_ICON_SIZE_MENU,
+				      NULL);
+    
+    markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>\n%s",
+				     mailbox->runtime_name,
+				     status);
+    text = g_strdup_printf("%s\n%s", mailbox->runtime_name, status);
+    g_free(status);
 
     model = gtk_tree_view_get_model(GTK_TREE_VIEW(self));
     gtk_list_store_set(GTK_LIST_STORE(model), iter,
-		       COLUMN_URI, mailbox->uri,
-		       COLUMN_MAILBOX_ICON, stock_id,
-		       COLUMN_MAILBOX, mn_mailbox_get_name(mailbox),
-		       COLUMN_FORMAT, class->format,
+		       COLUMN_MAILBOX, mailbox,
+		       COLUMN_ICON, stock_id,
+		       COLUMN_EMBLEM, emblem,
+		       COLUMN_PIXBUF, NULL,
+		       COLUMN_LABEL, markup,
+		       COLUMN_RAW_LABEL, text,
 		       -1);
+
+    if (emblem)
+      g_object_unref(emblem);
+
+    g_free(markup);
+    g_free(text);
   }}
-#line 990 "mn-mailbox-view.c"
+#line 1119 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
 static gboolean 
 mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTreeIter * iter)
-#line 996 "mn-mailbox-view.c"
+#line 1125 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::find_mailbox"
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
 	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX_VIEW (self), (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
 	g_return_val_if_fail (mailbox != NULL, (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX (mailbox), (gboolean )0);
-#line 403 "mn-mailbox-view.gob"
+#line 580 "mn-mailbox-view.gob"
 	g_return_val_if_fail (iter != NULL, (gboolean )0);
-#line 1009 "mn-mailbox-view.c"
+#line 1138 "mn-mailbox-view.c"
 {
-#line 407 "mn-mailbox-view.gob"
+#line 584 "mn-mailbox-view.gob"
 	
     GtkTreeModel *model;
     GtkTreeIter our_iter;
@@ -1018,12 +1147,12 @@ mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTree
 
     while (valid)
       {
-	MNURI *uri;
+	MNMailbox *this_mailbox;
 	gboolean is;
 	
-	gtk_tree_model_get(model, &our_iter, COLUMN_URI, &uri, -1);
-	is = ! strcmp(uri->text, mailbox->uri->text);
-	g_object_unref(uri);
+	gtk_tree_model_get(model, &our_iter, COLUMN_MAILBOX, &this_mailbox, -1);
+	is = mailbox == this_mailbox;
+	g_object_unref(this_mailbox);
 
 	if (is)
 	  {
@@ -1036,22 +1165,22 @@ mn_mailbox_view_find_mailbox (MNMailboxView * self, MNMailbox * mailbox, GtkTree
 
     return FALSE;
   }}
-#line 1040 "mn-mailbox-view.c"
+#line 1169 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 436 "mn-mailbox-view.gob"
+#line 613 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_update_sensitivity (MNMailboxView * self)
-#line 1046 "mn-mailbox-view.c"
+#line 1175 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::update_sensitivity"
-#line 436 "mn-mailbox-view.gob"
+#line 613 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 436 "mn-mailbox-view.gob"
+#line 613 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1053 "mn-mailbox-view.c"
+#line 1182 "mn-mailbox-view.c"
 {
-#line 438 "mn-mailbox-view.gob"
+#line 615 "mn-mailbox-view.gob"
 	
     GtkTreeSelection *selection;
     gboolean has_selection;
@@ -1064,215 +1193,171 @@ mn_mailbox_view_update_sensitivity (MNMailboxView * self)
     gtk_widget_set_sensitive(selfp->copy_item, has_selection);
     gtk_widget_set_sensitive(selfp->properties_item, has_selection);
   }}
-#line 1068 "mn-mailbox-view.c"
+#line 1197 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 451 "mn-mailbox-view.gob"
+#line 628 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_remove_mailbox (MNMailboxView * self)
-#line 1074 "mn-mailbox-view.c"
+#line 1203 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::remove_mailbox"
-#line 451 "mn-mailbox-view.gob"
+#line 628 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 451 "mn-mailbox-view.gob"
+#line 628 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1081 "mn-mailbox-view.c"
+#line 1210 "mn-mailbox-view.c"
 {
-#line 453 "mn-mailbox-view.gob"
+#line 630 "mn-mailbox-view.gob"
 	
     GtkTreeSelection *selection;
-    GSList *gconf_mailboxes;
-    
-    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
     
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
-    gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, &gconf_mailboxes);
-    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-    eel_g_slist_free_deep(gconf_mailboxes);
+    gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, NULL);
   }}
-#line 1095 "mn-mailbox-view.c"
+#line 1219 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 465 "mn-mailbox-view.gob"
+#line 637 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_remove_mailbox_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data)
-#line 1101 "mn-mailbox-view.c"
+#line 1225 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::remove_mailbox_cb"
-#line 465 "mn-mailbox-view.gob"
-	g_return_if_fail (model != NULL);
-#line 465 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_TREE_MODEL (model));
-#line 465 "mn-mailbox-view.gob"
-	g_return_if_fail (path != NULL);
-#line 465 "mn-mailbox-view.gob"
-	g_return_if_fail (iter != NULL);
-#line 465 "mn-mailbox-view.gob"
-	g_return_if_fail (data != NULL);
-#line 1114 "mn-mailbox-view.c"
 {
-#line 470 "mn-mailbox-view.gob"
+#line 642 "mn-mailbox-view.gob"
 	
-    GSList **gconf_mailboxes = data;
-    MNURI *uri;
-    GSList *elem;
+    MNMailbox *mailbox;
   
-    gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
-
-    /* remove all the mailboxes with that URI */
-    while ((elem = mn_mailboxes_conf_find_uri(*gconf_mailboxes, uri)))
-      *gconf_mailboxes = mn_g_slist_delete_link_deep(*gconf_mailboxes, elem);
-
-    g_object_unref(uri);
+    gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+    mn_mailboxes_queue_remove(mn_shell->mailboxes, mailbox);
+    g_object_unref(mailbox);
   }}
-#line 1130 "mn-mailbox-view.c"
+#line 1237 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 484 "mn-mailbox-view.gob"
+#line 650 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_copy_mailbox (MNMailboxView * self)
-#line 1136 "mn-mailbox-view.c"
+#line 1243 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::copy_mailbox"
-#line 484 "mn-mailbox-view.gob"
+#line 650 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 484 "mn-mailbox-view.gob"
+#line 650 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1143 "mn-mailbox-view.c"
+#line 1250 "mn-mailbox-view.c"
 {
-#line 486 "mn-mailbox-view.gob"
+#line 652 "mn-mailbox-view.gob"
 	
+    GSList *configurations = NULL;
     GtkTreeSelection *selection;
-    GSList *uri_list = NULL;
-    char *gnome_copied_files;
-    const GtkTargetEntry target = { GNOME_COPIED_FILES, 0, 0 };
+    const GtkTargetEntry targets[] = {
+      { clipboard_info[TARGET_MAILBOXES].name, 0, TARGET_MAILBOXES }
+    };
     gboolean status;
 
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
-    gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &uri_list);
-
-    gnome_copied_files = mn_build_gnome_copied_files(MN_GNOME_COPIED_FILES_COPY, uri_list);
-    eel_g_slist_free_deep(uri_list);
+    gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &configurations);
 
     status = gtk_clipboard_set_with_data(global_clipboard,
-					 &target,
-					 1,
+					 targets,
+					 G_N_ELEMENTS(targets),
 					 self_get_clipboard_cb,
 					 self_clear_clipboard_cb,
-					 gnome_copied_files);
+					 configurations);
     g_return_if_fail(status == TRUE);
   }}
-#line 1167 "mn-mailbox-view.c"
+#line 1272 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 508 "mn-mailbox-view.gob"
+#line 672 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_copy_mailbox_cb (GtkTreeModel * model, GtkTreePath * path, GtkTreeIter * iter, gpointer data)
-#line 1173 "mn-mailbox-view.c"
+#line 1278 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::copy_mailbox_cb"
-#line 508 "mn-mailbox-view.gob"
-	g_return_if_fail (model != NULL);
-#line 508 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_TREE_MODEL (model));
-#line 508 "mn-mailbox-view.gob"
-	g_return_if_fail (path != NULL);
-#line 508 "mn-mailbox-view.gob"
-	g_return_if_fail (iter != NULL);
-#line 508 "mn-mailbox-view.gob"
-	g_return_if_fail (data != NULL);
-#line 1186 "mn-mailbox-view.c"
 {
-#line 513 "mn-mailbox-view.gob"
+#line 677 "mn-mailbox-view.gob"
 	
-    GSList **uri_list = data;
-    MNURI *uri;
+    GSList **configurations = data;
+    MNMailbox *mailbox;
 
-    gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
-    *uri_list = g_slist_append(*uri_list, g_strdup(uri->text));
-    g_object_unref(uri);
+    gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+    *configurations = g_slist_append(*configurations, mn_mailbox_get_configuration(mailbox));
+    g_object_unref(mailbox);
   }}
-#line 1197 "mn-mailbox-view.c"
+#line 1291 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 522 "mn-mailbox-view.gob"
+#line 686 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_get_clipboard_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, unsigned int info, gpointer user_data_or_owner)
-#line 1203 "mn-mailbox-view.c"
+#line 1297 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::get_clipboard_cb"
-#line 522 "mn-mailbox-view.gob"
-	g_return_if_fail (clipboard != NULL);
-#line 522 "mn-mailbox-view.gob"
-	g_return_if_fail (selection_data != NULL);
-#line 522 "mn-mailbox-view.gob"
-	g_return_if_fail (user_data_or_owner != NULL);
-#line 1212 "mn-mailbox-view.c"
-{
-#line 527 "mn-mailbox-view.gob"
+{
+#line 691 "mn-mailbox-view.gob"
 	
-    const char *gnome_copied_files = user_data_or_owner;
-    gtk_selection_data_set(selection_data, gnome_copied_files_atom, 8, gnome_copied_files, strlen(gnome_copied_files));
+    const GSList *configurations = user_data_or_owner;
+    unsigned char buf[sizeof(configurations)];
+
+    memcpy(buf, &configurations, sizeof(configurations));
+    gtk_selection_data_set(selection_data,
+			   clipboard_info[info].atom,
+			   8,
+			   buf,
+			   sizeof(buf));
   }}
-#line 1219 "mn-mailbox-view.c"
+#line 1313 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 532 "mn-mailbox-view.gob"
+#line 703 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_clear_clipboard_cb (GtkClipboard * clipboard, gpointer user_data_or_owner)
-#line 1225 "mn-mailbox-view.c"
+#line 1319 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::clear_clipboard_cb"
-#line 532 "mn-mailbox-view.gob"
-	g_return_if_fail (clipboard != NULL);
-#line 532 "mn-mailbox-view.gob"
-	g_return_if_fail (user_data_or_owner != NULL);
-#line 1232 "mn-mailbox-view.c"
 {
-#line 535 "mn-mailbox-view.gob"
+#line 705 "mn-mailbox-view.gob"
 	
-    char *gnome_copied_files = user_data_or_owner;
-    g_free(gnome_copied_files);
+    GSList *configurations = user_data_or_owner;
+
+    eel_g_slist_free_deep_custom(configurations, (GFunc) mn_mailbox_configuration_free, NULL);
   }}
-#line 1239 "mn-mailbox-view.c"
+#line 1329 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 540 "mn-mailbox-view.gob"
+#line 711 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_select_all (MNMailboxView * self)
-#line 1245 "mn-mailbox-view.c"
+#line 1335 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::select_all"
-#line 540 "mn-mailbox-view.gob"
+#line 711 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 540 "mn-mailbox-view.gob"
+#line 711 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1252 "mn-mailbox-view.c"
+#line 1342 "mn-mailbox-view.c"
 {
-#line 542 "mn-mailbox-view.gob"
+#line 713 "mn-mailbox-view.gob"
 	
     GtkTreeSelection *selection;
     
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
     gtk_tree_selection_select_all(selection);
   }}
-#line 1261 "mn-mailbox-view.c"
+#line 1351 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 549 "mn-mailbox-view.gob"
+#line 720 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_properties_add_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 1267 "mn-mailbox-view.c"
+#line 1357 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::properties_add_response_h"
-#line 549 "mn-mailbox-view.gob"
-	g_return_if_fail (dialog != NULL);
-#line 549 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 1274 "mn-mailbox-view.c"
 {
-#line 553 "mn-mailbox-view.gob"
+#line 724 "mn-mailbox-view.gob"
 	
     if (response == GTK_RESPONSE_HELP)
       mn_display_help(GTK_WINDOW(dialog), "mailbox-properties");
@@ -1280,44 +1365,29 @@ mn_mailbox_view_properties_add_response_h (GtkDialog * dialog, int response, gpo
       gtk_widget_destroy(GTK_WIDGET(dialog));
     else if (response == GTK_RESPONSE_ACCEPT)
       {
-	MNURI *uri;
+	MNMailbox *mailbox;
 	
-	uri = mn_mailbox_properties_dialog_get_current_uri(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
-	g_return_if_fail(MN_IS_URI(uri));
-      
-	if (! mn_mailboxes_find_uri(mn_shell->mailboxes, uri))
-	  {
-	    GSList *gconf_mailboxes;
-	    
-	    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
-	    gconf_mailboxes = g_slist_append(gconf_mailboxes, g_strdup(uri->text));
-	    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-	    eel_g_slist_free_deep(gconf_mailboxes);
-	    
-	    gtk_widget_destroy(GTK_WIDGET(dialog));
-	  }
-	else
-	  mn_error_dialog(GTK_WINDOW(dialog), NULL, NULL, _("Unable to add mailbox"), _("The mailbox is already in the list."));
+	mailbox = mn_mailbox_properties_dialog_get_current_mailbox(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
+	g_return_if_fail(MN_IS_MAILBOX(mailbox));
+
+	mn_mailbox_seal(mailbox);
+	mn_mailboxes_add(mn_shell->mailboxes, mailbox);
+	g_object_unref(mailbox);
 
-	g_object_unref(uri);
+	gtk_widget_destroy(GTK_WIDGET(dialog));
       }
   }}
-#line 1306 "mn-mailbox-view.c"
+#line 1381 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 583 "mn-mailbox-view.gob"
+#line 744 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_properties_edit_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 1312 "mn-mailbox-view.c"
+#line 1387 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::properties_edit_response_h"
-#line 583 "mn-mailbox-view.gob"
-	g_return_if_fail (dialog != NULL);
-#line 583 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 1319 "mn-mailbox-view.c"
 {
-#line 587 "mn-mailbox-view.gob"
+#line 748 "mn-mailbox-view.gob"
 	
     if (response == GTK_RESPONSE_HELP)
       mn_display_help(GTK_WINDOW(dialog), "mailbox-properties");
@@ -1329,90 +1399,63 @@ mn_mailbox_view_properties_edit_response_h (GtkDialog * dialog, int response, gp
 	  gtk_widget_destroy(GTK_WIDGET(dialog));
       }
   }}
-#line 1333 "mn-mailbox-view.c"
+#line 1403 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 599 "mn-mailbox-view.gob"
+#line 760 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_popup_menu (MNMailboxView * self, unsigned int button, guint32 activate_time)
-#line 1339 "mn-mailbox-view.c"
+#line 1409 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu"
-#line 599 "mn-mailbox-view.gob"
+#line 760 "mn-mailbox-view.gob"
 	g_return_if_fail (self != NULL);
-#line 599 "mn-mailbox-view.gob"
+#line 760 "mn-mailbox-view.gob"
 	g_return_if_fail (MN_IS_MAILBOX_VIEW (self));
-#line 1346 "mn-mailbox-view.c"
+#line 1416 "mn-mailbox-view.c"
 {
-#line 601 "mn-mailbox-view.gob"
+#line 762 "mn-mailbox-view.gob"
 	
-    gtk_clipboard_request_contents(global_clipboard,
-				   gnome_copied_files_atom,
-				   self_popup_menu_receive_cb,
-				   self);
+    gtk_clipboard_request_targets(global_clipboard, self_popup_menu_targets_received_cb, self);
     gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, NULL, NULL, button, activate_time);
   }}
-#line 1356 "mn-mailbox-view.c"
+#line 1423 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 609 "mn-mailbox-view.gob"
+#line 767 "mn-mailbox-view.gob"
 static void 
-mn_mailbox_view_popup_menu_receive_cb (GtkClipboard * clipboard, GtkSelectionData * selection_data, gpointer data)
-#line 1362 "mn-mailbox-view.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu_receive_cb"
-#line 609 "mn-mailbox-view.gob"
-	g_return_if_fail (clipboard != NULL);
-#line 609 "mn-mailbox-view.gob"
-	g_return_if_fail (selection_data != NULL);
-#line 609 "mn-mailbox-view.gob"
-	g_return_if_fail (data != NULL);
-#line 1371 "mn-mailbox-view.c"
+mn_mailbox_view_popup_menu_targets_received_cb (GtkClipboard * clipboard, GdkAtom * atoms, int n_atoms, gpointer data)
+#line 1429 "mn-mailbox-view.c"
 {
-#line 613 "mn-mailbox-view.gob"
+#define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu_targets_received_cb"
+{
+#line 772 "mn-mailbox-view.gob"
 	
     Self *self = data;
+    int i;
     gboolean can_paste = FALSE;
 
-    if (selection_data->type == gnome_copied_files_atom
-	&& selection_data->format == 8
-	&& selection_data->length > 0)
-      {
-	char *gnome_copied_files;
-	gboolean status;
-	MNGnomeCopiedFilesType type;
-	GSList *uri_list;
-	
-	gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
-	status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
-	g_free(gnome_copied_files);
-
-	if (status)
-	  {
-	    if (type == MN_GNOME_COPIED_FILES_COPY && uri_list)
-	      can_paste = TRUE;
-	    eel_g_slist_free_deep(uri_list);
-	  }
-      }
+    for (i = 0; i < n_atoms; i++)
+      if (atoms[i] == clipboard_info[TARGET_MAILBOXES].atom
+	  || atoms[i] == clipboard_info[TARGET_GNOME_COPIED_FILES].atom)
+	{
+	  can_paste = TRUE;
+	  break;
+	}
 
     gtk_widget_set_sensitive(selfp->paste_item, can_paste);
   }}
-#line 1401 "mn-mailbox-view.c"
+#line 1449 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 641 "mn-mailbox-view.gob"
+#line 788 "mn-mailbox-view.gob"
 static gboolean 
 mn_mailbox_view_popup_menu_h (GtkWidget * widget, gpointer user_data)
-#line 1407 "mn-mailbox-view.c"
+#line 1455 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::popup_menu_h"
-#line 641 "mn-mailbox-view.gob"
-	g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 641 "mn-mailbox-view.gob"
-	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 1414 "mn-mailbox-view.c"
 {
-#line 644 "mn-mailbox-view.gob"
+#line 790 "mn-mailbox-view.gob"
 	
     Self *self = SELF(widget);
 
@@ -1421,69 +1464,51 @@ mn_mailbox_view_popup_menu_h (GtkWidget * widget, gpointer user_data)
 
     return TRUE;		/* a menu was activated */
   }}
-#line 1425 "mn-mailbox-view.c"
+#line 1468 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 653 "mn-mailbox-view.gob"
+#line 799 "mn-mailbox-view.gob"
 static gboolean 
 mn_mailbox_view_button_press_event_h (GtkWidget * widget, GdkEventButton * event, gpointer user_data)
-#line 1431 "mn-mailbox-view.c"
+#line 1474 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::button_press_event_h"
-#line 653 "mn-mailbox-view.gob"
-	g_return_val_if_fail (widget != NULL, (gboolean )0);
-#line 653 "mn-mailbox-view.gob"
-	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 653 "mn-mailbox-view.gob"
-	g_return_val_if_fail (event != NULL, (gboolean )0);
-#line 1440 "mn-mailbox-view.c"
-{
-#line 657 "mn-mailbox-view.gob"
+{
+#line 803 "mn-mailbox-view.gob"
 	
     if (event->button == 3)
       self_popup_menu(SELF(widget), event->button, event->time);
     
     return FALSE;			/* propagate event */
   }}
-#line 1449 "mn-mailbox-view.c"
+#line 1485 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 664 "mn-mailbox-view.gob"
+#line 810 "mn-mailbox-view.gob"
 static void 
 mn_mailbox_view_row_activated_h (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * column, gpointer user_data)
-#line 1455 "mn-mailbox-view.c"
+#line 1491 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::row_activated_h"
-#line 664 "mn-mailbox-view.gob"
-	g_return_if_fail (treeview != NULL);
-#line 664 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_TREE_VIEW (treeview));
-#line 664 "mn-mailbox-view.gob"
-	g_return_if_fail (path != NULL);
-#line 664 "mn-mailbox-view.gob"
-	g_return_if_fail (column != NULL);
-#line 664 "mn-mailbox-view.gob"
-	g_return_if_fail (GTK_IS_TREE_VIEW_COLUMN (column));
-#line 1468 "mn-mailbox-view.c"
 {
-#line 669 "mn-mailbox-view.gob"
+#line 815 "mn-mailbox-view.gob"
 	
     self_activate_properties(SELF(treeview));
   }}
-#line 1474 "mn-mailbox-view.c"
+#line 1499 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
 
-#line 673 "mn-mailbox-view.gob"
+#line 819 "mn-mailbox-view.gob"
 GtkWidget * 
 mn_mailbox_view_new (void)
-#line 1480 "mn-mailbox-view.c"
+#line 1505 "mn-mailbox-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox:View::new"
 {
-#line 675 "mn-mailbox-view.gob"
+#line 821 "mn-mailbox-view.gob"
 	
     g_return_val_if_fail(mn_shell != NULL, NULL);
     return GTK_WIDGET(GET_NEW);
   }}
-#line 1489 "mn-mailbox-view.c"
+#line 1514 "mn-mailbox-view.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox-view.gob b/src/mn-mailbox-view.gob
@@ -16,13 +16,15 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
 %}
+
 %{
 #include "config.h"
+#include <string.h>
 #include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include "mn-util.h"
@@ -30,20 +32,37 @@ requires 2.0.10
 #include "mn-stock.h"
 #include "mn-mailbox-properties-dialog.h"
 #include "mn-conf.h"
-#include "mn-uri.h"
-
-#define GNOME_COPIED_FILES		"x-special/gnome-copied-files"
+#include "mn-mailbox.h"
+#include "nautilus-cell-renderer-pixbuf-emblem.h"
 
-  enum {
-    COLUMN_URI,
-    COLUMN_MAILBOX_ICON,
-    COLUMN_MAILBOX,
-    COLUMN_FORMAT,
-    N_COLUMNS
-  };
+enum
+{
+  COLUMN_MAILBOX,
+  COLUMN_ICON,
+  COLUMN_EMBLEM,
+  COLUMN_PIXBUF,
+  COLUMN_LABEL,
+  COLUMN_RAW_LABEL,
+  N_COLUMNS
+};
+
+enum
+{
+  TARGET_MAILBOXES,
+  TARGET_GNOME_COPIED_FILES,
+  N_TARGETS
+};
 
-  static GtkClipboard *global_clipboard;
-  static GdkAtom gnome_copied_files_atom;
+static struct
+{
+  char		*name;
+  GdkAtom	atom;
+} clipboard_info[N_TARGETS] = {
+  { "x-special/mail-notification-mailboxes" },
+  { "x-special/gnome-copied-files" }
+};
+
+static GtkClipboard *global_clipboard;
 %}
 
 class MN:Mailbox:View from Gtk:Tree:View
@@ -58,11 +77,9 @@ class MN:Mailbox:View from Gtk:Tree:View
   signal (ACTION) public NONE (NONE)
     void activate_add (self)
   {
-    GtkWidget *toplevel;
     GtkWidget *dialog;
 
-    toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
-    dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), NULL);
+    dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), NULL);
 
     g_signal_connect(dialog,
 		     "response",
@@ -94,61 +111,84 @@ class MN:Mailbox:View from Gtk:Tree:View
   signal (ACTION) public NONE (NONE)
     void activate_paste (self)
   {
-    gtk_clipboard_request_contents(global_clipboard,
-				   gnome_copied_files_atom,
-				   self_activate_paste_receive_cb,
-				   NULL);
-  }
+    GtkSelectionData *data;
 
-  private void
-    activate_paste_receive_cb (GtkClipboard *clipboard (check null),
-			       GtkSelectionData *selection_data (check null),
-			       gpointer data)
-  {
-    if (selection_data->type == gnome_copied_files_atom
-	&& selection_data->format == 8
-	&& selection_data->length > 0)
+    data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_MAILBOXES].atom);
+    if (data)
       {
-	char *gnome_copied_files;
-	gboolean status;
-	MNGnomeCopiedFilesType type;
-	GSList *uri_list;
+	GSList *configurations;
+	GSList *l;
+	
+	memcpy(&configurations, data->data, data->length);
+
+	MN_LIST_FOREACH(l, configurations)
+	  {
+	    MNMailbox *mailbox;
 
-	gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
-	status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
-	g_free(gnome_copied_files);
+	    mailbox = mn_mailbox_new_from_configuration(l->data);
+
+	    mn_mailbox_seal(mailbox);
+	    mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+
+	    g_object_unref(mailbox);
+	  }
 
-	if (status)
+	gtk_selection_data_free(data);
+	return;
+      }
+
+    data = gtk_clipboard_wait_for_contents(global_clipboard, clipboard_info[TARGET_GNOME_COPIED_FILES].atom);
+    if (data)
+      {
+	if (data->format == 8 && data->length > 0)
 	  {
-	    if (type == MN_GNOME_COPIED_FILES_COPY)
-	      {
-		GSList *new_mailboxes = NULL;
-		GSList *l;
-		
-		MN_LIST_FOREACH(l, uri_list)
-	          {
-		    const char *uri = l->data;
-		    
-		    if (! mn_mailboxes_find(mn_shell->mailboxes, uri))
-		      new_mailboxes = g_slist_append(new_mailboxes, g_strdup(uri));
-		  }
+	    char *gnome_copied_files;
+	    gboolean status;
+	    MNGnomeCopiedFilesType type;
+	    GSList *uri_list;
+
+	    gnome_copied_files = g_strndup(data->data, data->length);
+	    status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
+	    g_free(gnome_copied_files);
 
-		if (new_mailboxes)
+	    if (status)
+	      {
+		if (type == MN_GNOME_COPIED_FILES_COPY)
 		  {
-		    GSList *gconf_mailboxes;
-		    
-		    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
-		    gconf_mailboxes = g_slist_concat(gconf_mailboxes, new_mailboxes);
-		    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-		    eel_g_slist_free_deep(gconf_mailboxes);
+		    GSList *l;
+		    GSList *invalid_uri_list = NULL;
+
+		    MN_LIST_FOREACH(l, uri_list)
+		      {
+			const char *uri = l->data;
+			MNMailbox *mailbox;
+
+			mailbox = mn_mailbox_new_from_uri(uri);
+			if (mailbox)
+			  {
+			    mn_mailbox_seal(mailbox);
+			    mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+			    g_object_unref(mailbox);
+			  }
+			else
+			  invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+		      }
+
+		    if (invalid_uri_list)
+		      {
+			mn_invalid_uri_list_dialog(mn_widget_get_parent_window(GTK_WIDGET(self)), _("A paste error has occurred"), invalid_uri_list);
+			g_slist_free(invalid_uri_list);
+		      }
 		  }
+		    
+		eel_g_slist_free_deep(uri_list);
 	      }
-
-	    eel_g_slist_free_deep(uri_list);
 	  }
+
+	gtk_selection_data_free(data);
       }
   }
-  
+
   signal (ACTION) public NONE (NONE)
     void activate_properties (self)
   {
@@ -159,26 +199,23 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
   
   private void
-    activate_properties_cb (Gtk:Tree:Model *model (check null type),
-			    GtkTreePath *path (check null),
-			    GtkTreeIter *iter (check null),
-			    gpointer data (check null))
+    activate_properties_cb (GtkTreeModel *model,
+			    GtkTreePath *path,
+			    GtkTreeIter *iter,
+			    gpointer data)
   {
     Self *self = data;
-    MNURI *uri;
+    MNMailbox *mailbox;
     GtkWidget *dialog;
 
-    gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
+    gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
 
-    dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, uri);
+    dialog = (GtkWidget *) mn_shell_get_mailbox_properties_dialog(mn_shell, mailbox);
     if (dialog)
       gtk_window_present(GTK_WINDOW(dialog));
     else
       {
-	GtkWidget *toplevel;
-	
-	toplevel = gtk_widget_get_toplevel(GTK_WIDGET(self));
-	dialog = mn_mailbox_properties_dialog_new(GTK_WINDOW(toplevel), uri);
+	dialog = mn_mailbox_properties_dialog_new(mn_widget_get_parent_window(GTK_WIDGET(self)), mailbox);
 
 	g_signal_connect(dialog,
 			 "response",
@@ -189,15 +226,18 @@ class MN:Mailbox:View from Gtk:Tree:View
 	gtk_widget_show(dialog);
       }
 
-    g_object_unref(uri);
+    g_object_unref(mailbox);
   }
 
   class_init (class)
   {
     GtkBindingSet *binding_set;
+    int i;
 
     global_clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
-    gnome_copied_files_atom = gdk_atom_intern(GNOME_COPIED_FILES, FALSE);
+
+    for (i = 0; i < N_TARGETS; i++)
+      clipboard_info[i].atom = gdk_atom_intern(clipboard_info[i].name, FALSE);
 
     binding_set = gtk_binding_set_by_class(class);
 
@@ -230,7 +270,7 @@ class MN:Mailbox:View from Gtk:Tree:View
     GtkTreeViewColumn *column;
     GtkCellRenderer *renderer;
     GtkTreeSelection *selection;
-    GSList *l;
+    GList *l;
 
     /* popup menu */
 
@@ -258,56 +298,63 @@ class MN:Mailbox:View from Gtk:Tree:View
     /* store */
 
     store = gtk_list_store_new(N_COLUMNS,
-			       MN_TYPE_URI,
+			       MN_TYPE_MAILBOX,
 			       G_TYPE_STRING,
+			       GDK_TYPE_PIXBUF,
+			       GDK_TYPE_PIXBUF,
 			       G_TYPE_STRING,
 			       G_TYPE_STRING);
+
+    gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(store),
+					    self_sort_cb,
+					    NULL,
+					    NULL);
+    gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store),
+					 GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID,
+					 GTK_SORT_ASCENDING);
+
     gtk_tree_view_set_model(GTK_TREE_VIEW(self), GTK_TREE_MODEL(store));
     g_object_unref(store);
     
-    /* mailbox column */
-
     column = gtk_tree_view_column_new();
     gtk_tree_view_column_set_title(column, _("Mailbox"));
-    gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-    gtk_tree_view_column_set_sort_column_id(column, COLUMN_MAILBOX);
 
-    renderer = gtk_cell_renderer_pixbuf_new();
+    renderer = nautilus_cell_renderer_pixbuf_emblem_new();
+    g_object_set(renderer, "stock-size", GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
     gtk_tree_view_column_pack_start(column, renderer, FALSE);
-    gtk_tree_view_column_add_attribute(column, renderer, "stock-id", COLUMN_MAILBOX_ICON);
+    gtk_tree_view_column_set_attributes(column, renderer,
+					"stock-id", COLUMN_ICON,
+					"pixbuf-emblem", COLUMN_EMBLEM,
+					"pixbuf", COLUMN_PIXBUF,
+					NULL);
 
     renderer = gtk_cell_renderer_text_new();
     gtk_tree_view_column_pack_start(column, renderer, TRUE);
-    gtk_tree_view_column_add_attribute(column, renderer, "text", COLUMN_MAILBOX);
+    gtk_tree_view_column_add_attribute(column, renderer, "markup", COLUMN_LABEL);
 
     gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
 
-    /* format column */
-
-    column = gtk_tree_view_column_new_with_attributes(_("Format"),
-						      gtk_cell_renderer_text_new(),
-						      "text", COLUMN_FORMAT,
-						      NULL);
-
-    gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-    gtk_tree_view_column_set_sort_column_id(column, COLUMN_FORMAT);
-    gtk_tree_view_append_column(GTK_TREE_VIEW(self), column);
-
     /* misc */
 
-    gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_MAILBOX);
+    gtk_tree_view_set_search_column(GTK_TREE_VIEW(self), COLUMN_RAW_LABEL);
+    gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(self), self_search_equal_cb, NULL, NULL);
+
+    gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(self), FALSE);
 
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
     gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE);
     
-    MN_LIST_FOREACH(l, mn_mailboxes_get(mn_shell->mailboxes))
+    MN_LIST_FOREACH(l, mn_shell->mailboxes->list)
       self_append(self, l->data);
     self_update_sensitivity(self);
 
     mn_g_object_connect(self,
 			mn_shell->mailboxes,
 			"signal::mailbox-added", self_mailbox_added_h, self,
-			"signal::mailbox-changed", self_mailbox_changed_h, self,
+			"signal::mailbox-notify::stock-id", self_mailbox_notify_h, self,
+			"signal::mailbox-notify::must-poll", self_mailbox_notify_h, self,
+			"signal::mailbox-notify::format", self_mailbox_notify_h, self,
+			"signal::mailbox-notify::error", self_mailbox_notify_h, self,
 			"signal::mailbox-removed", self_mailbox_removed_h, self,
 			NULL);
 
@@ -320,6 +367,91 @@ class MN:Mailbox:View from Gtk:Tree:View
 		     NULL);
   }
 
+  private int
+    sort_cb (GtkTreeModel *model,
+	     GtkTreeIter *a,
+	     GtkTreeIter *b,
+	     gpointer user_data)
+  {
+    MNMailbox *mailbox_a;
+    MNMailbox *mailbox_b;
+    int cmp;
+
+    gtk_tree_model_get(model, a, COLUMN_MAILBOX, &mailbox_a, -1);
+    gtk_tree_model_get(model, b, COLUMN_MAILBOX, &mailbox_b, -1);
+
+    cmp = mn_mailboxes_compare_by_name_func(mailbox_a, mailbox_b);
+
+    g_object_unref(mailbox_a);
+    g_object_unref(mailbox_b);
+
+    return cmp;
+  }
+  
+  private gboolean
+    search_equal_cb (GtkTreeModel *model,
+		     int column,
+		     const char *key,
+		     GtkTreeIter *iter,
+		     gpointer search_data)
+  {
+    gboolean status = TRUE;
+    GValue value = { 0, };
+    GValue transformed = { 0, };
+    const char *str;
+    char *normalized_string;
+    char *normalized_key;
+    
+    /*
+     * The stock gtk_tree_view_search_equal_func() only searches the
+     * start of the string, using strncmp(). We use strstr(), to
+     * search anywhere inside the string.
+     */
+
+    gtk_tree_model_get_value(model, iter, column, &value);
+
+    g_value_init(&transformed, G_TYPE_STRING);
+
+    if (! g_value_transform(&value, &transformed))
+      {
+	g_value_unset(&value);
+	return TRUE;
+      }
+
+    g_value_unset(&value);
+
+    str = g_value_get_string(&transformed);
+    if (! str)
+      {
+	g_value_unset(&transformed);
+	return TRUE;
+      }
+
+    normalized_string = g_utf8_normalize(str, -1, G_NORMALIZE_ALL);
+    normalized_key = g_utf8_normalize(key, -1, G_NORMALIZE_ALL);
+
+    if (normalized_string && normalized_key)
+      {
+	char *case_normalized_string;
+	char *case_normalized_key;
+
+	case_normalized_string = g_utf8_casefold(normalized_string, -1);
+	case_normalized_key = g_utf8_casefold(normalized_key, -1);
+
+	if (strstr(case_normalized_string, case_normalized_key))
+	  status = FALSE;
+
+	g_free(case_normalized_string);
+	g_free(case_normalized_key);
+      }
+
+    g_value_unset (&transformed);
+    g_free(normalized_key);
+    g_free(normalized_string);
+
+    return status;
+  }
+  
   private void
     append (self, MN:Mailbox *mailbox (check null type))
   {
@@ -332,9 +464,9 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
   
   private void
-    mailbox_added_h (MN:Mailboxes *mailboxes (check null type),
-		     MN:Mailbox *mailbox (check null type),
-		     gpointer user_data (check null))
+    mailbox_added_h (MNMailboxes *mailboxes,
+		     MNMailbox *mailbox,
+		     gpointer user_data)
   {
     Self *self = user_data;
 
@@ -342,9 +474,10 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
 
   private void
-    mailbox_changed_h (MN:Mailboxes *mailboxes (check null type),
-		       MN:Mailbox *mailbox (check null type),
-		       gpointer user_data (check null))
+    mailbox_notify_h (MNMailboxes *mailboxes,
+		      MNMailbox *mailbox,
+		      GParamSpec *pspec,
+		      gpointer user_data)
   {
     Self *self = user_data;
     GtkTreeIter iter;
@@ -354,9 +487,9 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
 
   private void
-    mailbox_removed_h (MN:Mailboxes *mailboxes (check null type),
-		       MN:Mailbox *mailbox (check null type),
-		       gpointer user_data (check null))
+    mailbox_removed_h (MNMailboxes *mailboxes,
+		       MNMailbox *mailbox,
+		       gpointer user_data)
   {
     Self *self = user_data;
     GtkTreeIter iter;
@@ -375,29 +508,73 @@ class MN:Mailbox:View from Gtk:Tree:View
 		 GtkTreeIter *iter (check null),
 		 MN:Mailbox *mailbox (check null type))
   {
-    MNMailboxClass *class;
-    const char *stock_id;
     GtkTreeModel *model;
-
-    class = MN_MAILBOX_GET_CLASS(mailbox);
-  
-    if (MN_URI_IS_SYSTEM_MAILBOX(mailbox->uri))
-      stock_id = MN_STOCK_SYSTEM_MAILBOX;
+    char *status;
+    const char *stock_id = NULL;
+    const char *emblem_stock_id = NULL;
+    GdkPixbuf *emblem = NULL;
+    char *markup;
+    char *text;
+
+    if (mailbox->format)
+      {
+	if (mailbox->error)
+	  {
+	    status = g_strdup_printf(_("unhandled %s mailbox (%s)"), mailbox->format, mailbox->error);
+	    emblem_stock_id = MN_STOCK_ERROR;
+	  }
+	else
+	  {
+	    status = g_strdup_printf(_("%s mailbox"), mailbox->format);
+	    if (mailbox->must_poll)
+	      emblem_stock_id = MN_STOCK_POLLED;
+	  }
+      }
     else
-    {
-      if (class->stock_id)
-	stock_id = class->stock_id;
-      else
-	stock_id = MN_URI_IS_LOCAL(mailbox->uri) ? MN_STOCK_LOCAL : MN_STOCK_REMOTE;
-    }
+      {
+	if (mailbox->error)
+	  {
+	    status = g_strdup(mailbox->error);
+	    if (strcmp(mailbox->stock_id, MN_STOCK_UNKNOWN))
+	      emblem_stock_id = MN_STOCK_UNKNOWN;
+	  }
+	else
+	  {
+	    status = g_strdup(_("detecting mailbox type..."));
+	    stock_id = GTK_STOCK_EXECUTE;
+	  }
+      }
+    
+    if (! stock_id)
+      stock_id = mailbox->stock_id;
+
+    if (emblem_stock_id)
+      emblem = gtk_widget_render_icon(GTK_WIDGET(self),
+				      emblem_stock_id,
+				      GTK_ICON_SIZE_MENU,
+				      NULL);
+    
+    markup = g_markup_printf_escaped("<span weight=\"bold\">%s</span>\n%s",
+				     mailbox->runtime_name,
+				     status);
+    text = g_strdup_printf("%s\n%s", mailbox->runtime_name, status);
+    g_free(status);
 
     model = gtk_tree_view_get_model(GTK_TREE_VIEW(self));
     gtk_list_store_set(GTK_LIST_STORE(model), iter,
-		       COLUMN_URI, mailbox->uri,
-		       COLUMN_MAILBOX_ICON, stock_id,
-		       COLUMN_MAILBOX, mn_mailbox_get_name(mailbox),
-		       COLUMN_FORMAT, class->format,
+		       COLUMN_MAILBOX, mailbox,
+		       COLUMN_ICON, stock_id,
+		       COLUMN_EMBLEM, emblem,
+		       COLUMN_PIXBUF, NULL,
+		       COLUMN_LABEL, markup,
+		       COLUMN_RAW_LABEL, text,
 		       -1);
+
+    if (emblem)
+      g_object_unref(emblem);
+
+    g_free(markup);
+    g_free(text);
   }
 
   private gboolean
@@ -414,12 +591,12 @@ class MN:Mailbox:View from Gtk:Tree:View
 
     while (valid)
       {
-	MNURI *uri;
+	MNMailbox *this_mailbox;
 	gboolean is;
 	
-	gtk_tree_model_get(model, &our_iter, COLUMN_URI, &uri, -1);
-	is = ! strcmp(uri->text, mailbox->uri->text);
-	g_object_unref(uri);
+	gtk_tree_model_get(model, &our_iter, COLUMN_MAILBOX, &this_mailbox, -1);
+	is = mailbox == this_mailbox;
+	g_object_unref(this_mailbox);
 
 	if (is)
 	  {
@@ -452,89 +629,83 @@ class MN:Mailbox:View from Gtk:Tree:View
     remove_mailbox (self)
   {
     GtkTreeSelection *selection;
-    GSList *gconf_mailboxes;
-    
-    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
     
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
-    gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, &gconf_mailboxes);
-    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-    eel_g_slist_free_deep(gconf_mailboxes);
+    gtk_tree_selection_selected_foreach(selection, self_remove_mailbox_cb, NULL);
   }
 
   private void
-    remove_mailbox_cb (Gtk:Tree:Model *model (check null type),
-		       GtkTreePath *path (check null),
-		       GtkTreeIter *iter (check null),
-		       gpointer data (check null))
-  {
-    GSList **gconf_mailboxes = data;
-    MNURI *uri;
-    GSList *elem;
+    remove_mailbox_cb (GtkTreeModel *model,
+		       GtkTreePath *path,
+		       GtkTreeIter *iter,
+		       gpointer data)
+  {
+    MNMailbox *mailbox;
   
-    gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
-
-    /* remove all the mailboxes with that URI */
-    while ((elem = mn_mailboxes_conf_find_uri(*gconf_mailboxes, uri)))
-      *gconf_mailboxes = mn_g_slist_delete_link_deep(*gconf_mailboxes, elem);
-
-    g_object_unref(uri);
+    gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+    mn_mailboxes_queue_remove(mn_shell->mailboxes, mailbox);
+    g_object_unref(mailbox);
   }
 
   private void
     copy_mailbox (self)
   {
+    GSList *configurations = NULL;
     GtkTreeSelection *selection;
-    GSList *uri_list = NULL;
-    char *gnome_copied_files;
-    const GtkTargetEntry target = { GNOME_COPIED_FILES, 0, 0 };
+    const GtkTargetEntry targets[] = {
+      { clipboard_info[TARGET_MAILBOXES].name, 0, TARGET_MAILBOXES }
+    };
     gboolean status;
 
     selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self));
-    gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &uri_list);
-
-    gnome_copied_files = mn_build_gnome_copied_files(MN_GNOME_COPIED_FILES_COPY, uri_list);
-    eel_g_slist_free_deep(uri_list);
+    gtk_tree_selection_selected_foreach(selection, self_copy_mailbox_cb, &configurations);
 
     status = gtk_clipboard_set_with_data(global_clipboard,
-					 &target,
-					 1,
+					 targets,
+					 G_N_ELEMENTS(targets),
 					 self_get_clipboard_cb,
 					 self_clear_clipboard_cb,
-					 gnome_copied_files);
+					 configurations);
     g_return_if_fail(status == TRUE);
   }
 
   private void
-    copy_mailbox_cb (Gtk:Tree:Model *model (check null type),
-		     GtkTreePath *path (check null),
-		     GtkTreeIter *iter (check null),
-		     gpointer data (check null))
+    copy_mailbox_cb (GtkTreeModel *model,
+		     GtkTreePath *path,
+		     GtkTreeIter *iter,
+		     gpointer data)
   {
-    GSList **uri_list = data;
-    MNURI *uri;
+    GSList **configurations = data;
+    MNMailbox *mailbox;
 
-    gtk_tree_model_get(model, iter, COLUMN_URI, &uri, -1);
-    *uri_list = g_slist_append(*uri_list, g_strdup(uri->text));
-    g_object_unref(uri);
+    gtk_tree_model_get(model, iter, COLUMN_MAILBOX, &mailbox, -1);
+    *configurations = g_slist_append(*configurations, mn_mailbox_get_configuration(mailbox));
+    g_object_unref(mailbox);
   }
 
   private void
-    get_clipboard_cb (GtkClipboard *clipboard (check null),
-		      GtkSelectionData *selection_data (check null),
+    get_clipboard_cb (GtkClipboard *clipboard,
+		      GtkSelectionData *selection_data,
 		      unsigned int info,
-		      gpointer user_data_or_owner (check null))
+		      gpointer user_data_or_owner)
   {
-    const char *gnome_copied_files = user_data_or_owner;
-    gtk_selection_data_set(selection_data, gnome_copied_files_atom, 8, gnome_copied_files, strlen(gnome_copied_files));
+    const GSList *configurations = user_data_or_owner;
+    unsigned char buf[sizeof(configurations)];
+
+    memcpy(buf, &configurations, sizeof(configurations));
+    gtk_selection_data_set(selection_data,
+			   clipboard_info[info].atom,
+			   8,
+			   buf,
+			   sizeof(buf));
   }
 
   private void
-    clear_clipboard_cb (GtkClipboard *clipboard (check null),
-			gpointer user_data_or_owner (check null))
+    clear_clipboard_cb (GtkClipboard *clipboard, gpointer user_data_or_owner)
   {
-    char *gnome_copied_files = user_data_or_owner;
-    g_free(gnome_copied_files);
+    GSList *configurations = user_data_or_owner;
+
+    eel_g_slist_free_deep_custom(configurations, (GFunc) mn_mailbox_configuration_free, NULL);
   }
 
   private void
@@ -547,7 +718,7 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
 
   private void
-    properties_add_response_h (Gtk:Dialog *dialog (check null type),
+    properties_add_response_h (GtkDialog *dialog,
 			       int response,
 			       gpointer user_data)
   {
@@ -557,31 +728,21 @@ class MN:Mailbox:View from Gtk:Tree:View
       gtk_widget_destroy(GTK_WIDGET(dialog));
     else if (response == GTK_RESPONSE_ACCEPT)
       {
-	MNURI *uri;
+	MNMailbox *mailbox;
 	
-	uri = mn_mailbox_properties_dialog_get_current_uri(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
-	g_return_if_fail(MN_IS_URI(uri));
-      
-	if (! mn_mailboxes_find_uri(mn_shell->mailboxes, uri))
-	  {
-	    GSList *gconf_mailboxes;
-	    
-	    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
-	    gconf_mailboxes = g_slist_append(gconf_mailboxes, g_strdup(uri->text));
-	    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-	    eel_g_slist_free_deep(gconf_mailboxes);
-	    
-	    gtk_widget_destroy(GTK_WIDGET(dialog));
-	  }
-	else
-	  mn_error_dialog(GTK_WINDOW(dialog), NULL, NULL, _("Unable to add mailbox"), _("The mailbox is already in the list."));
+	mailbox = mn_mailbox_properties_dialog_get_current_mailbox(MN_MAILBOX_PROPERTIES_DIALOG(dialog));
+	g_return_if_fail(MN_IS_MAILBOX(mailbox));
+
+	mn_mailbox_seal(mailbox);
+	mn_mailboxes_add(mn_shell->mailboxes, mailbox);
+	g_object_unref(mailbox);
 
-	g_object_unref(uri);
+	gtk_widget_destroy(GTK_WIDGET(dialog));
       }
   }
   
   private void
-    properties_edit_response_h (Gtk:Dialog *dialog (check null type),
+    properties_edit_response_h (GtkDialog *dialog,
 				int response,
 				gpointer user_data)
   {
@@ -599,48 +760,33 @@ class MN:Mailbox:View from Gtk:Tree:View
   private void
     popup_menu (self, unsigned int button, guint32 activate_time)
   {
-    gtk_clipboard_request_contents(global_clipboard,
-				   gnome_copied_files_atom,
-				   self_popup_menu_receive_cb,
-				   self);
+    gtk_clipboard_request_targets(global_clipboard, self_popup_menu_targets_received_cb, self);
     gtk_menu_popup(GTK_MENU(selfp->menu), NULL, NULL, NULL, NULL, button, activate_time);
   }
 
   private void
-    popup_menu_receive_cb (GtkClipboard *clipboard (check null),
-			   GtkSelectionData *selection_data (check null),
-			   gpointer data (check null))
+    popup_menu_targets_received_cb (GtkClipboard *clipboard,
+				    GdkAtom *atoms,
+				    int n_atoms,
+				    gpointer data)
   {
     Self *self = data;
+    int i;
     gboolean can_paste = FALSE;
 
-    if (selection_data->type == gnome_copied_files_atom
-	&& selection_data->format == 8
-	&& selection_data->length > 0)
-      {
-	char *gnome_copied_files;
-	gboolean status;
-	MNGnomeCopiedFilesType type;
-	GSList *uri_list;
-	
-	gnome_copied_files = g_strndup(selection_data->data, selection_data->length);
-	status = mn_parse_gnome_copied_files(gnome_copied_files, &type, &uri_list);
-	g_free(gnome_copied_files);
-
-	if (status)
-	  {
-	    if (type == MN_GNOME_COPIED_FILES_COPY && uri_list)
-	      can_paste = TRUE;
-	    eel_g_slist_free_deep(uri_list);
-	  }
-      }
+    for (i = 0; i < n_atoms; i++)
+      if (atoms[i] == clipboard_info[TARGET_MAILBOXES].atom
+	  || atoms[i] == clipboard_info[TARGET_GNOME_COPIED_FILES].atom)
+	{
+	  can_paste = TRUE;
+	  break;
+	}
 
     gtk_widget_set_sensitive(selfp->paste_item, can_paste);
   }
 
   private gboolean
-    popup_menu_h (Gtk:Widget *widget (check null type),
-		  gpointer user_data)
+    popup_menu_h (GtkWidget *widget, gpointer user_data)
   {
     Self *self = SELF(widget);
 
@@ -651,8 +797,8 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
 
   private gboolean
-    button_press_event_h (Gtk:Widget *widget (check null type),
-			  GdkEventButton *event (check null),
+    button_press_event_h (GtkWidget *widget,
+			  GdkEventButton *event,
 			  gpointer user_data)
   {
     if (event->button == 3)
@@ -662,9 +808,9 @@ class MN:Mailbox:View from Gtk:Tree:View
   }
 
   private void
-    row_activated_h (Gtk:Tree:View *treeview (check null type),
-		     GtkTreePath *path (check null),
-		     Gtk:Tree:View:Column *column (check null type),
+    row_activated_h (GtkTreeView *treeview,
+		     GtkTreePath *path,
+		     GtkTreeViewColumn *column,
 		     gpointer user_data)
   {
     self_activate_properties(SELF(treeview));
diff --git a/src/mn-mailbox-view.h b/src/mn-mailbox-view.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/mn-mailbox.c b/src/mn-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,18 +23,15 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 52 "mn-mailbox.gob"
+#line 48 "mn-mailbox.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
-#ifdef WITH_MBOX
-#include "mn-mbox-mailbox.h"
-#endif
-#ifdef WITH_MH
-#include "mn-mh-mailbox.h"
-#endif
-#ifdef WITH_MAILDIR
-#include "mn-maildir-mailbox.h"
+#include <eel/eel.h>
+#include <libgnomevfs/gnome-vfs.h>
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox.h"
+#include "mn-custom-vfs-mailbox.h"
 #endif
 #ifdef WITH_POP3
 #include "mn-pop3-mailbox.h"
@@ -42,28 +39,25 @@
 #ifdef WITH_IMAP
 #include "mn-imap-mailbox.h"
 #endif
-#ifdef WITH_SYLPHEED
-#include "mn-sylpheed-mailbox.h"
-#endif
 #ifdef WITH_GMAIL
 #include "mn-gmail-mailbox.h"
 #endif
-#include "mn-vfs.h"
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox.h"
+#endif
 #include "mn-util.h"
-#include "mn-unsupported-mailbox.h"
-#include "mn-conf.h"
+#include "mn-message.h"
 
-typedef struct
+struct _MNMailboxConfiguration
 {
-  MNURI		*uri;
-  void		(*callback)	(MNMailbox	*self,
-				 gpointer	user_data);
-  gpointer	user_data;
-} NewInfo;
+  GType		type;
+  unsigned int	n_parameters;
+  GParameter	*parameters;
+};
 
- GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
 
-#line 67 "mn-mailbox.c"
+#line 61 "mn-mailbox.c"
 /* self casting macros */
 #define SELF(x) MN_MAILBOX(x)
 #define SELF_CONST(x) MN_MAILBOX_CONST(x)
@@ -83,11 +77,13 @@ static void ___object_get_property (GObject *object, guint property_id, GValue *
 static void mn_mailbox_init (MNMailbox * o) G_GNUC_UNUSED;
 static void mn_mailbox_class_init (MNMailboxClass * c) G_GNUC_UNUSED;
 static void mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new) G_GNUC_UNUSED;
-static void ___a_mn_mailbox_finalize (GObject * object) G_GNUC_UNUSED;
-static gpointer mn_mailbox_new_async_thread (gpointer data) G_GNUC_UNUSED;
-static void mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
-static gboolean mn_mailbox_impl_is (MNMailbox * self, MNURI * uri) G_GNUC_UNUSED;
-static void mn_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
+static GType mn_mailbox_get_type_from_name (const char * type) G_GNUC_UNUSED;
+static MNMailbox * mn_mailbox_parse_obsolete_uri (const char * uri) G_GNUC_UNUSED;
+static gboolean mn_mailbox_validate (MNMailbox * self, GError ** err) G_GNUC_UNUSED;
+static void ___real_mn_mailbox_seal (MNMailbox * self);
+static MNMailbox * mn_mailbox_parse_uri (MNMailbox * self, const char * uri) G_GNUC_UNUSED;
+static gboolean mn_mailbox_import_string (GValue * value, const char * str) G_GNUC_UNUSED;
+static char * mn_mailbox_export_string (const GValue * value) G_GNUC_UNUSED;
 
 /*
  * Signal connection wrapper macro shortcuts
@@ -139,8 +135,9 @@ enum {
 
 enum {
 	PROP_0,
-	PROP_URI,
 	PROP_NAME,
+	PROP_STOCK_ID,
+	PROP_FORMAT,
 	PROP_MUST_POLL,
 	PROP_MESSAGES,
 	PROP_ERROR
@@ -153,26 +150,35 @@ static GObjectClass *parent_class = NULL;
 
 /* Short form macros */
 #define self_removed mn_mailbox_removed
-#define self_get_name mn_mailbox_get_name
+#define self_get_stock_id mn_mailbox_get_stock_id
+#define self_set_stock_id mn_mailbox_set_stock_id
+#define self_get_format mn_mailbox_get_format
+#define self_set_format mn_mailbox_set_format
 #define self_get_must_poll mn_mailbox_get_must_poll
 #define self_set_must_poll mn_mailbox_set_must_poll
 #define self_get_messages mn_mailbox_get_messages
 #define self_set_messages mn_mailbox_set_messages
 #define self_messages_changed mn_mailbox_messages_changed
 #define self_set_error mn_mailbox_set_error
-#define self_get_error mn_mailbox_get_error
 #define self_init_types mn_mailbox_init_types
-#define self_new_async mn_mailbox_new_async
-#define self_new_async_thread mn_mailbox_new_async_thread
-#define self_set_init_error mn_mailbox_set_init_error
-#define self_monitor mn_mailbox_monitor
-#define self_monitor_cb mn_mailbox_monitor_cb
-#define self_impl_is mn_mailbox_impl_is
-#define self_impl_check mn_mailbox_impl_check
+#define self_get_type_from_name mn_mailbox_get_type_from_name
+#define self_new mn_mailbox_new
+#define self_new_from_xml_node mn_mailbox_new_from_xml_node
+#define self_xml_node_new mn_mailbox_xml_node_new
+#define self_new_from_uri mn_mailbox_new_from_uri
+#define self_new_from_configuration mn_mailbox_new_from_configuration
+#define self_get_configuration mn_mailbox_get_configuration
+#define self_configuration_free mn_mailbox_configuration_free
+#define self_new_from_obsolete_uri mn_mailbox_new_from_obsolete_uri
+#define self_parse_obsolete_uri mn_mailbox_parse_obsolete_uri
+#define self_validate mn_mailbox_validate
+#define self_seal mn_mailbox_seal
+#define self_parse_uri mn_mailbox_parse_uri
 #define self_check mn_mailbox_check
-#define self_end_check mn_mailbox_end_check
 #define self_notice mn_mailbox_notice
 #define self_warning mn_mailbox_warning
+#define self_import_string mn_mailbox_import_string
+#define self_export_string mn_mailbox_export_string
 GType
 mn_mailbox_get_type (void)
 {
@@ -217,43 +223,24 @@ GET_NEW_VARG (const char *first, ...)
 
 
 static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::dispose"
-	MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 130 "mn-mailbox.gob"
-	if(self->uri) { g_object_unref ((gpointer) self->uri); self->uri = NULL; }
-#line 229 "mn-mailbox.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
 ___finalize(GObject *obj_self)
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::finalize"
 	MNMailbox *self G_GNUC_UNUSED = MN_MAILBOX (obj_self);
-	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 231 "mn-mailbox.gob"
-	___a_mn_mailbox_finalize(obj_self);
-#line 242 "mn-mailbox.c"
-#line 141 "mn-mailbox.gob"
-	if(self->_priv->name) { g_free ((gpointer) self->_priv->name); self->_priv->name = NULL; }
-#line 245 "mn-mailbox.c"
-#line 151 "mn-mailbox.gob"
-	if(self->_priv->messages) { mn_g_object_slist_free ((gpointer) self->_priv->messages); self->_priv->messages = NULL; }
-#line 248 "mn-mailbox.c"
-#line 205 "mn-mailbox.gob"
-	if(self->_priv->error) { g_free ((gpointer) self->_priv->error); self->_priv->error = NULL; }
-#line 251 "mn-mailbox.c"
-#line 226 "mn-mailbox.gob"
-	if(self->_priv->monitor_uri) { g_free ((gpointer) self->_priv->monitor_uri); self->_priv->monitor_uri = NULL; }
-#line 254 "mn-mailbox.c"
-#line 360 "mn-mailbox.gob"
-	if(self->_priv->init_error) { g_free ((gpointer) self->_priv->init_error); self->_priv->init_error = NULL; }
-#line 257 "mn-mailbox.c"
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 96 "mn-mailbox.gob"
+	if(self->runtime_name) { g_free ((gpointer) self->runtime_name); self->runtime_name = NULL; }
+#line 235 "mn-mailbox.c"
+#line 98 "mn-mailbox.gob"
+	if(self->name) { g_free ((gpointer) self->name); self->name = NULL; }
+#line 238 "mn-mailbox.c"
+#line 110 "mn-mailbox.gob"
+	if(self->messages) { mn_g_object_slist_free ((gpointer) self->messages); self->messages = NULL; }
+#line 241 "mn-mailbox.c"
+#line 163 "mn-mailbox.gob"
+	if(self->error) { g_free ((gpointer) self->error); self->error = NULL; }
+#line 244 "mn-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -261,13 +248,6 @@ static void
 mn_mailbox_init (MNMailbox * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMailboxPrivate);
-#line 52 "mn-mailbox.gob"
-	o->uri = NULL;
-#line 268 "mn-mailbox.c"
-#line 143 "mn-mailbox.gob"
-	o->_priv->must_poll = TRUE;
-#line 271 "mn-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 static void 
@@ -276,8 +256,6 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
 #define __GOB_FUNCTION__ "MN:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
 
-	g_type_class_add_private(c,sizeof(MNMailboxPrivate));
-
 	parent_class = g_type_class_ref (G_TYPE_OBJECT);
 
 	object_signals[REMOVED_SIGNAL] =
@@ -298,53 +276,62 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
 			G_TYPE_NONE, 1,
 			G_TYPE_BOOLEAN);
 	if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailbox.gob line 202: Type mismatch of \"messages_changed\" signal signature");
+		g_error("mn-mailbox.gob line 160: Type mismatch of \"messages_changed\" signal signature");
 	}
 
 	c->removed = NULL;
 	c->messages_changed = NULL;
-#line 231 "mn-mailbox.gob"
+#line 753 "mn-mailbox.gob"
+	c->seal = ___real_mn_mailbox_seal;
+#line 287 "mn-mailbox.c"
+	c->parse_uri = NULL;
+	c->check = NULL;
 	g_object_class->finalize = ___finalize;
-#line 309 "mn-mailbox.c"
-	c->impl_is = NULL;
-	c->impl_check = NULL;
-	g_object_class->dispose = ___dispose;
 	g_object_class->get_property = ___object_get_property;
 	g_object_class->set_property = ___object_set_property;
     {
 	GParamSpec   *param_spec;
 
-	param_spec = g_param_spec_object
-		("uri" /* name */,
+	param_spec = g_param_spec_string
+		("name" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_NAME,
+		param_spec);
+	param_spec = g_param_spec_string
+		("stock_id" /* name */,
 		 NULL /* nick */,
-		 _("The mailbox URI") /* blurb */,
-		 MN_TYPE_URI /* object_type */,
-		 (GParamFlags)(G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (g_object_class,
-		PROP_URI,
+		PROP_STOCK_ID,
 		param_spec);
 	param_spec = g_param_spec_string
-		("name" /* name */,
+		("format" /* name */,
 		 NULL /* nick */,
-		 _("The mailbox human-readable name") /* blurb */,
+		 NULL /* blurb */,
 		 NULL /* default_value */,
 		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (g_object_class,
-		PROP_NAME,
+		PROP_FORMAT,
 		param_spec);
 	param_spec = g_param_spec_boolean
 		("must_poll" /* name */,
 		 NULL /* nick */,
-		 _("Whether the mailbox has to be polled or not") /* blurb */,
+		 NULL /* blurb */,
 		 TRUE /* default_value */,
-		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
 	g_object_class_install_property (g_object_class,
 		PROP_MUST_POLL,
 		param_spec);
 	param_spec = g_param_spec_pointer
 		("messages" /* name */,
 		 NULL /* nick */,
-		 _("The list of new and unread MNMessage objects") /* blurb */,
+		 NULL /* blurb */,
 		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (g_object_class,
 		PROP_MESSAGES,
@@ -352,7 +339,7 @@ mn_mailbox_class_init (MNMailboxClass * c G_GNUC_UNUSED)
 	param_spec = g_param_spec_string
 		("error" /* name */,
 		 NULL /* nick */,
-		 _("The mailbox error, if any") /* blurb */,
+		 NULL /* blurb */,
 		 NULL /* default_value */,
 		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
 	g_object_class_install_property (g_object_class,
@@ -374,34 +361,37 @@ ___object_set_property (GObject *object,
 	self = MN_MAILBOX (object);
 
 	switch (property_id) {
-	case PROP_URI:
+	case PROP_NAME:
 		{
-#line 135 "mn-mailbox.gob"
-
-      g_return_if_fail(self->uri == NULL);
-      self->uri = MN_URI(g_value_dup_object(VAL));
-      selfp->name = g_strdup(self->uri->human_readable);
-    
-#line 386 "mn-mailbox.c"
+#line 99 "mn-mailbox.gob"
+{ char *old = self->name; self->name = g_value_dup_string (VAL); g_free (old); }
+#line 369 "mn-mailbox.c"
 		}
 		break;
-	case PROP_NAME:
+	case PROP_STOCK_ID:
 		{
-#line 142 "mn-mailbox.gob"
-{ char *old = self->_priv->name; self->_priv->name = g_value_dup_string (VAL); g_free (old); }
-#line 393 "mn-mailbox.c"
+#line 102 "mn-mailbox.gob"
+{ char *old = self->stock_id; self->stock_id = g_value_dup_string (VAL); g_free (old); }
+#line 376 "mn-mailbox.c"
+		}
+		break;
+	case PROP_FORMAT:
+		{
+#line 105 "mn-mailbox.gob"
+{ char *old = self->format; self->format = g_value_dup_string (VAL); g_free (old); }
+#line 383 "mn-mailbox.c"
 		}
 		break;
 	case PROP_MUST_POLL:
 		{
-#line 146 "mn-mailbox.gob"
-self->_priv->must_poll = g_value_get_boolean (VAL);
-#line 400 "mn-mailbox.c"
+#line 108 "mn-mailbox.gob"
+self->must_poll = g_value_get_boolean (VAL);
+#line 390 "mn-mailbox.c"
 		}
 		break;
 	case PROP_MESSAGES:
 		{
-#line 155 "mn-mailbox.gob"
+#line 113 "mn-mailbox.gob"
 
       GSList *messages;
       GSList *l;
@@ -410,7 +400,7 @@ self->_priv->must_poll = g_value_get_boolean (VAL);
 
       messages = g_value_get_pointer(VAL);
       
-      MN_LIST_FOREACH(l, selfp->messages)
+      MN_LIST_FOREACH(l, self->messages)
 	if (! mn_message_slist_find_by_id(messages, l->data))
 	  {
 	    changed = TRUE;
@@ -418,27 +408,34 @@ self->_priv->must_poll = g_value_get_boolean (VAL);
 	  }
       
       MN_LIST_FOREACH(l, messages)
-	if (! mn_message_slist_find_by_id(selfp->messages, l->data))
+	if (! mn_message_slist_find_by_id(self->messages, l->data))
 	  {
 	    changed = TRUE;
 	    has_new = TRUE;
 	    break;
 	  }
 
-      mn_g_object_slist_free(selfp->messages);
-      selfp->messages = mn_g_object_slist_copy(messages);
+      mn_g_object_slist_free(self->messages);
+      self->messages = mn_g_object_slist_copy(messages);
 
       if (changed)
 	self_messages_changed(self, has_new);
     
-#line 435 "mn-mailbox.c"
+#line 425 "mn-mailbox.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
-#line 206 "mn-mailbox.gob"
-{ char *old = self->_priv->error; self->_priv->error = g_value_dup_string (VAL); g_free (old); }
-#line 442 "mn-mailbox.c"
+#line 166 "mn-mailbox.gob"
+
+      g_free(self->error);
+      self->error = g_value_dup_string(VAL);
+
+      /* if an error is set, we unset messages */
+      if (self->error)
+	self_set_messages(self, NULL);
+    
+#line 439 "mn-mailbox.c"
 		}
 		break;
 	default:
@@ -467,32 +464,48 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_NAME:
 		{
-#line 142 "mn-mailbox.gob"
-g_value_set_string (VAL, self->_priv->name);
-#line 473 "mn-mailbox.c"
+#line 99 "mn-mailbox.gob"
+g_value_set_string (VAL, self->name);
+#line 470 "mn-mailbox.c"
+		}
+		break;
+	case PROP_STOCK_ID:
+		{
+#line 102 "mn-mailbox.gob"
+g_value_set_string (VAL, self->stock_id);
+#line 477 "mn-mailbox.c"
+		}
+		break;
+	case PROP_FORMAT:
+		{
+#line 105 "mn-mailbox.gob"
+g_value_set_string (VAL, self->format);
+#line 484 "mn-mailbox.c"
 		}
 		break;
 	case PROP_MUST_POLL:
 		{
-#line 146 "mn-mailbox.gob"
-g_value_set_boolean (VAL, self->_priv->must_poll);
-#line 480 "mn-mailbox.c"
+#line 108 "mn-mailbox.gob"
+g_value_set_boolean (VAL, self->must_poll);
+#line 491 "mn-mailbox.c"
 		}
 		break;
 	case PROP_MESSAGES:
 		{
-#line 185 "mn-mailbox.gob"
+#line 143 "mn-mailbox.gob"
 
-      g_value_set_pointer(VAL, selfp->messages);
+      g_value_set_pointer(VAL, self->messages);
     
-#line 489 "mn-mailbox.c"
+#line 500 "mn-mailbox.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
-#line 206 "mn-mailbox.gob"
-g_value_set_string (VAL, self->_priv->error);
-#line 496 "mn-mailbox.c"
+#line 175 "mn-mailbox.gob"
+
+      g_value_set_string(VAL, self->error);
+    
+#line 509 "mn-mailbox.c"
 		}
 		break;
 	default:
@@ -516,10 +529,10 @@ g_value_set_string (VAL, self->_priv->error);
  * This signal gets emitted after the mailbox is removed from the
  * mailboxes list.
  **/
-#line 127 "mn-mailbox.gob"
+#line 93 "mn-mailbox.gob"
 void 
 mn_mailbox_removed (MNMailbox * self)
-#line 523 "mn-mailbox.c"
+#line 536 "mn-mailbox.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -527,11 +540,11 @@ mn_mailbox_removed (MNMailbox * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 127 "mn-mailbox.gob"
+#line 93 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 127 "mn-mailbox.gob"
+#line 93 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 535 "mn-mailbox.c"
+#line 548 "mn-mailbox.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -545,79 +558,114 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[0]);
 }
 
-#line 143 "mn-mailbox.gob"
-const char * 
-mn_mailbox_get_name (MNMailbox * self)
-#line 552 "mn-mailbox.c"
+#line 102 "mn-mailbox.gob"
+gchar * 
+mn_mailbox_get_stock_id (MNMailbox * self)
+#line 565 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::get_name"
-#line 143 "mn-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (const char * )0);
-#line 143 "mn-mailbox.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 559 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::get_stock_id"
 {
-#line 143 "mn-mailbox.gob"
-	 return selfp->name; }}
-#line 563 "mn-mailbox.c"
+#line 102 "mn-mailbox.gob"
+		gchar* val; g_object_get (G_OBJECT (self), "stock_id", &val, NULL); return val;
+}}
+#line 572 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 102 "mn-mailbox.gob"
+void 
+mn_mailbox_set_stock_id (MNMailbox * self, gchar * val)
+#line 578 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::set_stock_id"
+{
+#line 102 "mn-mailbox.gob"
+		g_object_set (G_OBJECT (self), "stock_id", val, NULL);
+}}
+#line 585 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 105 "mn-mailbox.gob"
+gchar * 
+mn_mailbox_get_format (MNMailbox * self)
+#line 591 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::get_format"
+{
+#line 105 "mn-mailbox.gob"
+		gchar* val; g_object_get (G_OBJECT (self), "format", &val, NULL); return val;
+}}
+#line 598 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 105 "mn-mailbox.gob"
+void 
+mn_mailbox_set_format (MNMailbox * self, gchar * val)
+#line 604 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::set_format"
+{
+#line 105 "mn-mailbox.gob"
+		g_object_set (G_OBJECT (self), "format", val, NULL);
+}}
+#line 611 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
 gboolean 
 mn_mailbox_get_must_poll (MNMailbox * self)
-#line 569 "mn-mailbox.c"
+#line 617 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_must_poll"
 {
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
 		gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
 }}
-#line 576 "mn-mailbox.c"
+#line 624 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
 void 
 mn_mailbox_set_must_poll (MNMailbox * self, gboolean val)
-#line 582 "mn-mailbox.c"
+#line 630 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_must_poll"
 {
-#line 146 "mn-mailbox.gob"
+#line 108 "mn-mailbox.gob"
 		g_object_set (G_OBJECT (self), "must_poll", val, NULL);
 }}
-#line 589 "mn-mailbox.c"
+#line 637 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 185 "mn-mailbox.gob"
-gpointer 
+#line 143 "mn-mailbox.gob"
+const GSList * 
 mn_mailbox_get_messages (MNMailbox * self)
-#line 595 "mn-mailbox.c"
+#line 643 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::get_messages"
 {
-#line 152 "mn-mailbox.gob"
-		gpointer val; g_object_get (G_OBJECT (self), "messages", &val, NULL); return val;
+#line 111 "mn-mailbox.gob"
+		const GSList* val; g_object_get (G_OBJECT (self), "messages", &val, NULL); return val;
 }}
-#line 602 "mn-mailbox.c"
+#line 650 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 155 "mn-mailbox.gob"
+#line 113 "mn-mailbox.gob"
 void 
-mn_mailbox_set_messages (MNMailbox * self, gpointer val)
-#line 608 "mn-mailbox.c"
+mn_mailbox_set_messages (MNMailbox * self, const GSList * val)
+#line 656 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_messages"
 {
-#line 152 "mn-mailbox.gob"
+#line 111 "mn-mailbox.gob"
 		g_object_set (G_OBJECT (self), "messages", val, NULL);
 }}
-#line 615 "mn-mailbox.c"
+#line 663 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 202 "mn-mailbox.gob"
+#line 160 "mn-mailbox.gob"
 static void 
 mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
-#line 621 "mn-mailbox.c"
+#line 669 "mn-mailbox.c"
 {
 	GValue ___param_values[2];
 	GValue ___return_val;
@@ -625,11 +673,11 @@ mn_mailbox_messages_changed (MNMailbox * self, gboolean has_new)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 202 "mn-mailbox.gob"
+#line 160 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 202 "mn-mailbox.gob"
+#line 160 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 633 "mn-mailbox.c"
+#line 681 "mn-mailbox.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -648,19 +696,19 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[1]);
 }
 
-#line 207 "mn-mailbox.gob"
+#line 179 "mn-mailbox.gob"
 void 
 mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
-#line 655 "mn-mailbox.c"
+#line 703 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::set_error"
-#line 207 "mn-mailbox.gob"
+#line 179 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 207 "mn-mailbox.gob"
+#line 179 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 662 "mn-mailbox.c"
+#line 710 "mn-mailbox.c"
 {
-#line 209 "mn-mailbox.gob"
+#line 181 "mn-mailbox.gob"
 	
     va_list args;
     char *error = NULL;
@@ -675,73 +723,28 @@ mn_mailbox_set_error (MNMailbox * self, const char * format, ...)
     g_object_set(G_OBJECT(self), MN_MAILBOX_PROP_ERROR(error), NULL);
     g_free(error);
   }}
-#line 679 "mn-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 223 "mn-mailbox.gob"
-const char * 
-mn_mailbox_get_error (MNMailbox * self)
-#line 685 "mn-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::get_error"
-#line 223 "mn-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (const char * )0);
-#line 223 "mn-mailbox.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX (self), (const char * )0);
-#line 692 "mn-mailbox.c"
-{
-#line 223 "mn-mailbox.gob"
-	 return selfp->error; }}
-#line 696 "mn-mailbox.c"
+#line 727 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 231 "mn-mailbox.gob"
-static void 
-___a_mn_mailbox_finalize (GObject * object G_GNUC_UNUSED)
-#line 702 "mn-mailbox.c"
-#define PARENT_HANDLER(___object) \
-	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
-		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::finalize"
-#line 231 "mn-mailbox.gob"
-	g_return_if_fail (object != NULL);
-#line 231 "mn-mailbox.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 712 "mn-mailbox.c"
-{
-#line 233 "mn-mailbox.gob"
-	
-    Self *self = SELF(object);
-
-    if (selfp->monitor_handle)
-      gnome_vfs_monitor_cancel(selfp->monitor_handle);
-
-    PARENT_HANDLER(object);
-  }}
-#line 723 "mn-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 242 "mn-mailbox.gob"
+#line 196 "mn-mailbox.gob"
 void 
 mn_mailbox_init_types (void)
-#line 730 "mn-mailbox.c"
+#line 733 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::init_types"
 {
-#line 244 "mn-mailbox.gob"
+#line 198 "mn-mailbox.gob"
 	
     int i = 0;
 
-#ifdef WITH_MBOX
-    mn_mailbox_types[i++] = MN_TYPE_MBOX_MAILBOX;
-#endif
-#ifdef WITH_MH
-    mn_mailbox_types[i++] = MN_TYPE_MH_MAILBOX;
-#endif
-#ifdef WITH_MAILDIR
-    mn_mailbox_types[i++] = MN_TYPE_MAILDIR_MAILBOX;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+    /*
+     * MNSystemVFSMailbox must be registered before
+     * MNCustomVFSMailbox, because the latter's parse_uri() method
+     * will accept any URI.
+     */
+    mn_mailbox_types[i++] = MN_TYPE_SYSTEM_VFS_MAILBOX;
+    mn_mailbox_types[i++] = MN_TYPE_CUSTOM_VFS_MAILBOX;
 #endif
 #ifdef WITH_POP3
     mn_mailbox_types[i++] = MN_TYPE_POP3_MAILBOX;
@@ -749,384 +752,748 @@ mn_mailbox_init_types (void)
 #ifdef WITH_IMAP
     mn_mailbox_types[i++] = MN_TYPE_IMAP_MAILBOX;
 #endif
-#ifdef WITH_SYLPHEED
-    mn_mailbox_types[i++] = MN_TYPE_SYLPHEED_MAILBOX;
-#endif
 #ifdef WITH_GMAIL
     mn_mailbox_types[i++] = MN_TYPE_GMAIL_MAILBOX;
 #endif
+#ifdef WITH_EVOLUTION
+    mn_mailbox_types[i++] = MN_TYPE_EVOLUTION_MAILBOX;
+#endif
     mn_mailbox_types[i] = 0;
   }}
-#line 761 "mn-mailbox.c"
+#line 764 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-/**
- * mn_mailbox_new_async:
- * @uri: location of the mailbox
- * @callback: a function like
- *            "void (callback) (#MNMailbox *self, gpointer user_data)"
- * @user_data: data to pass to @callback
- *
- * Creates a new #MNMailbox asynchronously. The newly created
- * #MNMailbox will be passed to @callback.
- **/
-#line 281 "mn-mailbox.gob"
-void 
-mn_mailbox_new_async (MNURI * uri, gpointer callback, gpointer user_data)
-#line 777 "mn-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailbox::new_async"
-#line 281 "mn-mailbox.gob"
-	g_return_if_fail (uri != NULL);
-#line 281 "mn-mailbox.gob"
-	g_return_if_fail (MN_IS_URI (uri));
-#line 281 "mn-mailbox.gob"
-	g_return_if_fail (callback != NULL);
-#line 786 "mn-mailbox.c"
-{
-#line 285 "mn-mailbox.gob"
+#line 225 "mn-mailbox.gob"
+static GType 
+mn_mailbox_get_type_from_name (const char * type)
+#line 770 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::get_type_from_name"
+{
+#line 227 "mn-mailbox.gob"
 	
-    NewInfo *info;
+    int i;
 
-    info = g_new(NewInfo, 1);
-    info->uri = g_object_ref(uri);
-    info->callback = callback;
-    info->user_data = user_data;
+    for (i = 0; mn_mailbox_types[i]; i++)
+      {
+	SelfClass *class;
 
-    mn_thread_create(self_new_async_thread, info);
+	class = g_type_class_peek(mn_mailbox_types[i]);
+	g_return_val_if_fail(class != NULL, 0);
+
+	if (! strcmp(class->type, type))
+	  return mn_mailbox_types[i];
+      }
+
+    return 0;
   }}
-#line 799 "mn-mailbox.c"
+#line 791 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 296 "mn-mailbox.gob"
-static gpointer 
-mn_mailbox_new_async_thread (gpointer data)
-#line 805 "mn-mailbox.c"
+#line 244 "mn-mailbox.gob"
+MNMailbox * 
+mn_mailbox_new (const char * type, const char * first, ...)
+#line 797 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::new_async_thread"
+#define __GOB_FUNCTION__ "MN:Mailbox::new"
 {
-#line 298 "mn-mailbox.gob"
+#line 246 "mn-mailbox.gob"
 	
-    NewInfo *info = data;
-    Self *mailbox = NULL;
+    va_list args;
+    GType type_id;
+    GObject *object;
+
+    g_return_val_if_fail(type != NULL, NULL);
+
+    type_id = self_get_type_from_name(type);
+    if (! type_id)
+      return NULL;
+
+    va_start(args, first);
+    object = g_object_new_valist(type_id, first, args);
+    va_end(args);
 
-    if (info->uri->vfs)
+    return SELF(object);
+  }}
+#line 819 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 264 "mn-mailbox.gob"
+MNMailbox * 
+mn_mailbox_new_from_xml_node (xmlNode * node, GError ** err)
+#line 825 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_xml_node"
+{
+#line 266 "mn-mailbox.gob"
+	
+    char *type;
+    Self *self = NULL;
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+
+    g_return_val_if_fail(node != NULL, NULL);
+
+    type = xmlGetProp(node, "type");
+    if (! type)
       {
-	if (! mn_vfs_test(info->uri->vfs, G_FILE_TEST_EXISTS))
-	  mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
+	g_set_error(err, 0, 0, _("\"type\" attribute missing"));
+	return NULL;
       }
 
-    if (! mailbox)
+    self = self_new(type, NULL);
+    if (! self)
       {
-	int i;
-	
-	for (i = 0; mn_mailbox_types[i]; i++)
-	  {
-	    SelfClass *class;
-
-	    class = g_type_class_peek(mn_mailbox_types[i]);
-	    g_return_val_if_fail(class != NULL, NULL);
-
-	    if (class->impl_is(NULL, info->uri))
-	      {
-		mailbox = g_object_new(mn_mailbox_types[i], MN_MAILBOX_PROP_URI(G_OBJECT(info->uri)), NULL);
-		if (mailbox->_priv->init_error)
-		  {
-		    MNMailbox *old_mailbox;
-		  
-		    old_mailbox = mailbox;
-		    mailbox = mn_unsupported_mailbox_new(info->uri, old_mailbox->_priv->init_error);
-		    g_object_unref(old_mailbox);
-		  }
-		
-		break;
-	      }
-	  }
+	g_set_error(err, 0, 0, _("unknown mailbox type \"%s\""), type);
+	goto end;
       }
 
-    if (! mailbox)
-      mailbox = mn_unsupported_mailbox_new(info->uri, _("unknown format"));
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+	{
+	  char *content;
 
-    GDK_THREADS_ENTER();
+	  content = xmlGetProp(node, g_param_spec_get_name(properties[i]));
+	  if (content)
+	    {
+	      GValue value = { 0, };
 
-    info->callback(mailbox, info->user_data);
+	      g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
 
-    /*
-     * A note on gdk_flush(): as adviced in the GDK threads
-     * documentation, we only call gdk_flush() from a thread other
-     * than our main thread (so we do not call it in idle and timeout
-     * callbacks).
-     */
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+	      if (self_import_string(&value, content))
+		g_object_set_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+	      else
+		g_warning(_("property \"%s\": unable to transform string \"%s\" into a value of type \"%s\""),
+			  g_param_spec_get_name(properties[i]), content, G_VALUE_TYPE_NAME(&value));
 
-    /* mailbox is now owned by the callback, do not unref it */
+	      g_value_unset(&value);
+	      xmlFree(content);
+	    }
+	}
+    g_free(properties);
+    
+    if (! self_validate(self, err))
+      {
+	g_object_unref(self);
+	self = NULL;
+      }
     
-    g_object_unref(info->uri);
-    g_free(info);
+  end:
+    g_free(type);
+    return self;
+  }}
+#line 888 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 325 "mn-mailbox.gob"
+xmlNode * 
+mn_mailbox_xml_node_new (MNMailbox * self)
+#line 894 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::xml_node_new"
+#line 325 "mn-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (xmlNode * )0);
+#line 325 "mn-mailbox.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX (self), (xmlNode * )0);
+#line 901 "mn-mailbox.c"
+{
+#line 327 "mn-mailbox.gob"
+	
+    xmlNode *node;
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+
+    node = xmlNewNode(NULL, "mailbox");
+    xmlSetProp(node, "type", SELF_GET_CLASS(self)->type);
+    
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+	{
+	  GValue value = { 0, };
+	  gboolean is_default;
+	  
+	  g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+	  g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+
+	  if ((properties[i]->flags & MN_MAILBOX_PARAM_IGNORE_CASE) != 0)
+	    {
+	      GValue default_value = { 0, };
+	      const char *str;
+	      const char *default_str;
+
+	      g_assert(G_IS_PARAM_SPEC_STRING(properties[i]));
+
+	      g_value_init(&default_value, G_TYPE_STRING);
+	      g_param_value_set_default(properties[i], &default_value);
+
+	      str = g_value_get_string(&value);
+	      default_str = g_value_get_string(&default_value);
+
+	      is_default = str && default_str && ! mn_utf8_strcasecmp(str, default_str);
+
+	      g_value_unset(&default_value);
+	    }
+	  else
+	    is_default = g_param_value_defaults(properties[i], &value);
+	  
+	  if (! is_default)
+	    {
+	      char *str;
+
+	      str = self_export_string(&value);
+	      xmlSetProp(node, g_param_spec_get_name(properties[i]), str);
+	      g_free(str);
+	    }
+	  
+	  g_value_unset(&value);
+	}
+    g_free(properties);
+
+    return node;
+  }}
+#line 959 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 383 "mn-mailbox.gob"
+MNMailbox * 
+mn_mailbox_new_from_uri (const char * uri)
+#line 965 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_uri"
+#line 383 "mn-mailbox.gob"
+	g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
+#line 970 "mn-mailbox.c"
+{
+#line 385 "mn-mailbox.gob"
+	
+    int i;
+
+    for (i = 0; mn_mailbox_types[i]; i++)
+      {
+	MNMailboxClass *class;
+
+	class = g_type_class_peek(mn_mailbox_types[i]);
+	g_return_val_if_fail(class != NULL, NULL);
+
+	if (class->parse_uri)
+	  {
+	    MNMailbox *mailbox;
 
+	    mailbox = class->parse_uri(NULL, uri);
+	    if (mailbox)
+	      return mailbox;
+	  }
+      }
+    
     return NULL;
   }}
-#line 871 "mn-mailbox.c"
+#line 995 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 361 "mn-mailbox.gob"
-void 
-mn_mailbox_set_init_error (MNMailbox * self, const char * format, ...)
-#line 877 "mn-mailbox.c"
+#line 408 "mn-mailbox.gob"
+MNMailbox * 
+mn_mailbox_new_from_configuration (MNMailboxConfiguration * config)
+#line 1001 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::set_init_error"
-#line 361 "mn-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 361 "mn-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 361 "mn-mailbox.gob"
-	g_return_if_fail (format != NULL);
-#line 886 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_configuration"
+#line 408 "mn-mailbox.gob"
+	g_return_val_if_fail (config != NULL, (MNMailbox * )0);
+#line 1006 "mn-mailbox.c"
 {
-#line 363 "mn-mailbox.gob"
+#line 410 "mn-mailbox.gob"
 	
-    va_list args;
+    return g_object_newv(config->type, config->n_parameters, config->parameters);
+  }}
+#line 1012 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
 
-    g_return_if_fail(selfp->init_error == NULL);
+#line 414 "mn-mailbox.gob"
+MNMailboxConfiguration * 
+mn_mailbox_get_configuration (MNMailbox * self)
+#line 1018 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::get_configuration"
+#line 414 "mn-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (MNMailboxConfiguration * )0);
+#line 414 "mn-mailbox.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX (self), (MNMailboxConfiguration * )0);
+#line 1025 "mn-mailbox.c"
+{
+#line 416 "mn-mailbox.gob"
+	
+    GObject *object = G_OBJECT(self);
+    GArray *parameters;
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+    MNMailboxConfiguration *config;
+
+    parameters = g_array_new(FALSE, FALSE, sizeof(GParameter));
+
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+	{
+	  GParameter parameter = { NULL, { 0, } };
+
+	  parameter.name = g_param_spec_get_name(properties[i]);
+
+	  g_value_init(&parameter.value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+	  g_object_get_property(object, parameter.name, &parameter.value);
+	  
+	  g_array_append_val(parameters, parameter);
+	}
+    g_free(properties);
 
-    va_start(args, format);
-    selfp->init_error = g_strdup_vprintf(format, args);
-    va_end(args);
+    config = g_new0(MNMailboxConfiguration, 1);
+    config->type = G_OBJECT_TYPE(self);
+    config->n_parameters = parameters->len;
+    config->parameters = (GParameter *) g_array_free(parameters, FALSE);
+
+    return config;
   }}
-#line 898 "mn-mailbox.c"
+#line 1060 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 373 "mn-mailbox.gob"
+#line 449 "mn-mailbox.gob"
 void 
-mn_mailbox_monitor (MNMailbox * self, const char * uri, GnomeVFSMonitorType monitor_type, MNMailboxMonitorEventType events)
-#line 904 "mn-mailbox.c"
+mn_mailbox_configuration_free (MNMailboxConfiguration * config)
+#line 1066 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::monitor"
-#line 373 "mn-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 373 "mn-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 373 "mn-mailbox.gob"
-	g_return_if_fail (uri != NULL);
-#line 913 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::configuration_free"
+#line 449 "mn-mailbox.gob"
+	g_return_if_fail (config != NULL);
+#line 1071 "mn-mailbox.c"
 {
-#line 378 "mn-mailbox.gob"
+#line 451 "mn-mailbox.gob"
 	
-    GnomeVFSResult result;
+    int i;
 
-    g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
-    g_return_if_fail(selfp->monitor_handle == NULL);
-    
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+    for (i = 0; i < config->n_parameters; i++)
+      g_value_unset(&config->parameters[i].value);
 
-    result = gnome_vfs_monitor_add(&selfp->monitor_handle,
-				   uri,
-				   monitor_type,
-				   self_monitor_cb,
-				   self);
+    g_free(config->parameters);
+    g_free(config);
+  }}
+#line 1083 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
 
-    GDK_THREADS_ENTER();
-    
-    if (result == GNOME_VFS_OK)
+#line 461 "mn-mailbox.gob"
+MNMailbox * 
+mn_mailbox_new_from_obsolete_uri (const char * uri)
+#line 1089 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::new_from_obsolete_uri"
+#line 461 "mn-mailbox.gob"
+	g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
+#line 1094 "mn-mailbox.c"
+{
+#line 463 "mn-mailbox.gob"
+	
+    char *real_uri;
+    char *scheme;
+    gboolean obsolete = FALSE;
+    Self *self = NULL;
+
+    real_uri = g_str_has_prefix(uri, "pop3:") /* also handle very old pop3 locators */
+      ? g_strconcat("pop://", uri + 5, NULL)
+      : g_strdup(uri);
+
+    scheme = gnome_vfs_get_uri_scheme(real_uri);
+    if (scheme)
       {
-	selfp->monitor_uri = g_strdup(uri);
-	selfp->monitor_events = events;
-	self_set_must_poll(self, FALSE);
+	if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops")
+	    || ! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps")
+	    || ! strcmp(scheme, "gmail"))
+	  obsolete = TRUE;
+	g_free(scheme);
       }
-    else
-      {
-	self_warning(self, _("unable to enable immediate notification: %s"), gnome_vfs_result_to_string(result));
 
-	if (! eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
-	  {
-	    static gboolean first_time = TRUE;
-	    
-	    if (first_time)
-	      {
-		int minutes;
-		int seconds;
-		char *str;
-	    
-		first_time = FALSE;
-	    
-		minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
-		seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
-		
-		if (minutes == 0)
-		  str = g_strdup_printf(ngettext("As a fallback, they will be "
-						 "checked every %i second (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-						 "As a fallback, they will be "
-						 "checked every %i seconds (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-					     seconds),
-					seconds);
-		else if (seconds == 0)
-		  str = g_strdup_printf(ngettext("As a fallback, they will be "
-						 "checked every %i minute (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-						 "As a fallback, they will be "
-						 "checked every %i minutes (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-						 minutes),
-					minutes);
-		else
-		  str = g_strdup_printf(ngettext("As a fallback, they will be "
-						 "checked approximately every %i "
-						 "minute (this delay is "
-						 "configurable from the "
-						 "Properties Dialog).",
-						 "As a fallback, they will be "
-						 "checked approximately every %i "
-						 "minutes (this delay is "
-						 "configurable from the "
-						 "Properties Dialog).",
-						 minutes),
-					minutes);
-		
-		mn_error_dialog(NULL,
-				MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
-				"immediate-notification",
-				_("A monitoring error has occurred"),
-				_("Mail Notification was unable to enable immediate "
-				  "notification for one or more mailboxes. %s"), str);
-		g_free(str);
-	      }
-	  }
+    self = obsolete ? self_parse_obsolete_uri(real_uri) : self_new_from_uri(real_uri);
+    g_free(real_uri);
+
+    if (self && ! self_validate(self, NULL))
+      {
+	g_object_unref(self);
+	self = NULL;
       }
+    
+    return self;
   }}
-#line 1005 "mn-mailbox.c"
+#line 1128 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 468 "mn-mailbox.gob"
-static void 
-mn_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
-#line 1011 "mn-mailbox.c"
+#line 495 "mn-mailbox.gob"
+static MNMailbox * 
+mn_mailbox_parse_obsolete_uri (const char * uri)
+#line 1134 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::monitor_cb"
-#line 468 "mn-mailbox.gob"
-	g_return_if_fail (user_data != NULL);
-#line 1016 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::parse_obsolete_uri"
+#line 495 "mn-mailbox.gob"
+	g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
+#line 1139 "mn-mailbox.c"
 {
-#line 474 "mn-mailbox.gob"
+#line 497 "mn-mailbox.gob"
+	
+    int len;
+    int buflen;
+    char *scheme;
+    char *username;
+    char *password;
+    char *authmech;
+    char *hostname;
+    int port;
+    char *path;
+    char **queries;
+    Self *self = NULL;
+
+    len = strlen(uri);
+    buflen = len + 1;
+
+    {
+      char *pat;
+      char scheme_buf[buflen];
+      char auth_buf[buflen];
+      char location_buf[buflen];
+      char username_buf[buflen];
+      char password_buf[buflen];
+      char authmech_buf[buflen];
+      char hostname_buf[buflen];
+      int _port;
+      char path_buf[buflen];
+      char queries_buf[buflen];
+      gboolean has_location = FALSE;
+      gboolean has_password = FALSE;
+      gboolean has_authmech = FALSE;
+      gboolean has_port = FALSE;
+      gboolean has_path = FALSE;
+      gboolean has_queries = FALSE;
+      int n;
+
+      /* split URI in 3 parts: scheme, auth and location */
+
+      pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
+      n = sscanf(uri, pat, scheme_buf, auth_buf, location_buf);
+      g_free(pat);
+
+      if (n >= 2)
+	{
+	  if (n == 3)
+	    has_location = TRUE;
+	}
+      else
+	return NULL;		/* unparsable */
+
+      /* split auth part in 3 subparts: username, password and authmech */
+
+      /*
+       * For backward compatibility with previous versions of Mail
+       * Notification, we also support ;auth= (in lowercase).
+       */
+      
+      pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
+      n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
+      g_free(pat);
+
+      if (n >= 2)
+	{
+	  has_password = TRUE;
+	  if (n == 3)
+	    has_authmech = TRUE;
+	}
+      else
+	{
+	  pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
+	  n = sscanf(auth_buf, pat, username_buf, authmech_buf);
+	  g_free(pat);
+
+	  if (n >= 1)
+	    {
+	      if (n == 2)
+		has_authmech = TRUE;
+	    }
+	  else
+	    return NULL;	/* unparsable */
+	}
+
+      if (has_location)
+	{
+	  char hostport_buf[buflen];
+
+	  /* split location part in 3 subparts: hostport, path and queries */
+
+	  pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
+	  n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
+	  g_free(pat);
+
+	  if (n >= 2)
+	    {
+	      has_path = TRUE;
+	      if (n == 3)
+		has_queries = TRUE;
+	    }
+	  else
+	    {
+	      pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
+	      n = sscanf(location_buf, pat, hostport_buf, queries_buf);
+	      g_free(pat);
+
+	      if (n == 2)
+		has_queries = TRUE;
+	    }
+
+	  /* split hostport in 2 subparts: host and port */
+
+	  pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
+	  n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+	  g_free(pat);
+	
+	  if (n < 1)
+	    {
+	      pat = g_strdup_printf("%%%i[^:]:%%u", len);
+	      n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+	      g_free(pat);
+	    }
 	
-    Self *self = user_data;
+	  if (n == 2)
+	    has_port = TRUE;
+	}
+
+      scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
+      username = gnome_vfs_unescape_string(username_buf, NULL);
+      password = has_password ? gnome_vfs_unescape_string(password_buf, NULL) : NULL;
+      authmech = has_authmech ? gnome_vfs_unescape_string(authmech_buf, NULL) : NULL;
+      hostname = has_location ? gnome_vfs_unescape_string(hostname_buf, NULL) : NULL;
+      port = has_port ? _port : 0;
+      path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : NULL;
+      if (has_queries)
+	{
+	  int i;
+	  
+	  queries = g_strsplit(queries_buf, "&", 0);
+	  for (i = 0; queries[i]; i++)
+	    {
+	      char *unescaped;
+
+	      unescaped = gnome_vfs_unescape_string(queries[i], NULL);
+
+	      g_free(queries[i]);
+	      queries[i] = unescaped;
+	    }
+	}
+      else
+	queries = NULL;
+    }
+
+    if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops"))
+      {
+#ifdef WITH_POP3
+	MNPIMailboxConnectionType connection_type;
+
+	if (queries && eel_g_strv_find(queries, "STLS") != -1)
+	  connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+	else
+	  connection_type = ! strcmp(scheme, "pops")
+	    ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+	    : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+	self = self_new("pop3",
+			"connection-type", connection_type,
+			"username", username,
+			"password", password,
+			"authmech", authmech,
+			"hostname", hostname,
+			"port", port,
+			NULL);
+#endif
+      }
+    else if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
+      {
+#ifdef WITH_IMAP
+	MNPIMailboxConnectionType connection_type;
+
+	if (queries && eel_g_strv_find(queries, "STARTTLS") != -1)
+	  connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+	else
+	  connection_type = ! strcmp(scheme, "imaps")
+	    ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+	    : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+	self = self_new("imap",
+			"connection-type", connection_type,
+			"username", username,
+			"password", password,
+			"authmech", authmech,
+			"hostname", hostname,
+			"port", port,
+			"mailbox", path,
+			NULL);
+
+	if (queries && eel_g_strv_find(queries, "noidle") != -1)
+	  g_object_set(G_OBJECT(self), "use-idle-extension", MN_IMAP_MAILBOX_USE_IDLE_NEVER, NULL);
+#endif
+      }
+    else if (! strcmp(scheme, "gmail"))
+      {
+#ifdef WITH_GMAIL
+	self = self_new("gmail",
+			"username", username,
+			"password", password,
+			NULL);
+#endif
+      }
+
+    g_free(scheme);
+    g_free(username);
+    g_free(password);
+    g_free(authmech);
+    g_free(hostname);
+    g_free(path);
+    g_strfreev(queries);
 
-    GDK_THREADS_ENTER();
-    if (selfp->monitor_events & (1 << event_type))
-      self_check(self);
-    GDK_THREADS_LEAVE();
+    return self;
   }}
-#line 1027 "mn-mailbox.c"
+#line 1361 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 483 "mn-mailbox.gob"
+#line 717 "mn-mailbox.gob"
 static gboolean 
-mn_mailbox_impl_is (MNMailbox * self, MNURI * uri)
-#line 1033 "mn-mailbox.c"
+mn_mailbox_validate (MNMailbox * self, GError ** err)
+#line 1367 "mn-mailbox.c"
 {
-	MNMailboxClass *klass;
-#line 483 "mn-mailbox.gob"
+#define __GOB_FUNCTION__ "MN:Mailbox::validate"
+#line 717 "mn-mailbox.gob"
 	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 483 "mn-mailbox.gob"
+#line 717 "mn-mailbox.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX (self), (gboolean )0);
-#line 1040 "mn-mailbox.c"
-	klass = MN_MAILBOX_GET_CLASS(self);
+#line 1374 "mn-mailbox.c"
+{
+#line 719 "mn-mailbox.gob"
+	
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_REQUIRED) != 0)
+	{
+	  GValue value = { 0, };
+	  const char *str;
+	  gboolean is_empty;
+	  
+	  g_return_val_if_fail(G_IS_PARAM_SPEC_STRING(properties[i]), FALSE);
+	  
+	  g_value_init(&value, G_TYPE_STRING);
+	  g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+	  
+	  str = g_value_get_string(&value);
+	  is_empty = ! str || ! *str;
+	  
+	  g_value_unset(&value);
+	  
+	  if (is_empty)
+	    {
+	      g_set_error(err, 0, 0, _("property \"%s\" has no value"), g_param_spec_get_name(properties[i]));
+	      return FALSE;
+	    }
+	}
+    g_free(properties);
 
-	if(klass->impl_is)
-		return (*klass->impl_is)(self,uri);
-	else
-		return (gboolean )(0);
-}
+    return TRUE;
+  }}
+#line 1410 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
 
-#line 485 "mn-mailbox.gob"
-static void 
-mn_mailbox_impl_check (MNMailbox * self)
-#line 1052 "mn-mailbox.c"
+#line 753 "mn-mailbox.gob"
+void 
+mn_mailbox_seal (MNMailbox * self)
+#line 1416 "mn-mailbox.c"
 {
 	MNMailboxClass *klass;
-#line 485 "mn-mailbox.gob"
+#line 753 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 485 "mn-mailbox.gob"
+#line 753 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1059 "mn-mailbox.c"
+#line 1423 "mn-mailbox.c"
 	klass = MN_MAILBOX_GET_CLASS(self);
 
-	if(klass->impl_check)
-		(*klass->impl_check)(self);
+	if(klass->seal)
+		(*klass->seal)(self);
 }
-
-#line 488 "mn-mailbox.gob"
-void 
-mn_mailbox_check (MNMailbox * self)
-#line 1069 "mn-mailbox.c"
+#line 753 "mn-mailbox.gob"
+static void 
+___real_mn_mailbox_seal (MNMailbox * self G_GNUC_UNUSED)
+#line 1432 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::check"
-#line 488 "mn-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 488 "mn-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1076 "mn-mailbox.c"
+#define __GOB_FUNCTION__ "MN:Mailbox::seal"
 {
-#line 490 "mn-mailbox.gob"
+#line 755 "mn-mailbox.gob"
 	
-    g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
-
-    if (! selfp->checking)
+    if (self->name)
       {
-	g_object_ref(self);
-	selfp->checking = TRUE;
-	self_set_error(self, NULL);
-
-	mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
+	g_free(self->runtime_name);
+	self->runtime_name = g_strdup(self->name);
       }
   }}
-#line 1091 "mn-mailbox.c"
+#line 1444 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 503 "mn-mailbox.gob"
+#line 763 "mn-mailbox.gob"
+static MNMailbox * 
+mn_mailbox_parse_uri (MNMailbox * self, const char * uri)
+#line 1450 "mn-mailbox.c"
+{
+	MNMailboxClass *klass;
+#line 763 "mn-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (MNMailbox * )0);
+#line 763 "mn-mailbox.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX (self), (MNMailbox * )0);
+#line 1457 "mn-mailbox.c"
+	klass = MN_MAILBOX_GET_CLASS(self);
+
+	if(klass->parse_uri)
+		return (*klass->parse_uri)(self,uri);
+	else
+		return (MNMailbox * )(0);
+}
+
+#line 766 "mn-mailbox.gob"
 void 
-mn_mailbox_end_check (MNMailbox * self)
-#line 1097 "mn-mailbox.c"
+mn_mailbox_check (MNMailbox * self)
+#line 1469 "mn-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailbox::end_check"
-#line 503 "mn-mailbox.gob"
+	MNMailboxClass *klass;
+#line 766 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 503 "mn-mailbox.gob"
+#line 766 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 1104 "mn-mailbox.c"
-{
-#line 505 "mn-mailbox.gob"
-	
-    g_return_if_fail(selfp->checking == TRUE);
+#line 1476 "mn-mailbox.c"
+	klass = MN_MAILBOX_GET_CLASS(self);
 
-    selfp->checking = FALSE;
-    g_object_unref(self);
-  }}
-#line 1113 "mn-mailbox.c"
-#undef __GOB_FUNCTION__
+	if(klass->check)
+		(*klass->check)(self);
+}
 
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
 void 
 mn_mailbox_notice (MNMailbox * self, const char * format, ...)
-#line 1119 "mn-mailbox.c"
+#line 1486 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::notice"
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 512 "mn-mailbox.gob"
+#line 769 "mn-mailbox.gob"
 	g_return_if_fail (format != NULL);
-#line 1128 "mn-mailbox.c"
+#line 1495 "mn-mailbox.c"
 {
-#line 514 "mn-mailbox.gob"
+#line 771 "mn-mailbox.gob"
 	
     va_list args;
     char *message;
@@ -1135,27 +1502,27 @@ mn_mailbox_notice (MNMailbox * self, const char * format, ...)
     message = g_strdup_vprintf(format, args);
     va_end(args);
 
-    mn_info("%s: %s", self->uri->text, message);
+    mn_info("%s: %s", self->runtime_name, message);
     g_free(message);
   }}
-#line 1142 "mn-mailbox.c"
+#line 1509 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
 void 
 mn_mailbox_warning (MNMailbox * self, const char * format, ...)
-#line 1148 "mn-mailbox.c"
+#line 1515 "mn-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailbox::warning"
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
 	g_return_if_fail (self != NULL);
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
 	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 526 "mn-mailbox.gob"
+#line 783 "mn-mailbox.gob"
 	g_return_if_fail (format != NULL);
-#line 1157 "mn-mailbox.c"
+#line 1524 "mn-mailbox.c"
 {
-#line 528 "mn-mailbox.gob"
+#line 785 "mn-mailbox.gob"
 	
     va_list args;
     char *message;
@@ -1164,8 +1531,116 @@ mn_mailbox_warning (MNMailbox * self, const char * format, ...)
     message = g_strdup_vprintf(format, args);
     va_end(args);
 
-    g_warning("%s: %s", self->uri->text, message);
+    g_warning("%s: %s", self->runtime_name, message);
     g_free(message);
   }}
-#line 1171 "mn-mailbox.c"
+#line 1538 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 797 "mn-mailbox.gob"
+static gboolean 
+mn_mailbox_import_string (GValue * value, const char * str)
+#line 1544 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::import_string"
+#line 797 "mn-mailbox.gob"
+	g_return_val_if_fail (value != NULL, (gboolean )0);
+#line 797 "mn-mailbox.gob"
+	g_return_val_if_fail (str != NULL, (gboolean )0);
+#line 1551 "mn-mailbox.c"
+{
+#line 799 "mn-mailbox.gob"
+	
+    g_return_val_if_fail(G_IS_VALUE(value), FALSE);
+
+    if (G_VALUE_HOLDS_BOOLEAN(value))
+      {
+	if (! strcmp(str, "false"))
+	  g_value_set_boolean(value, FALSE);
+	else if (! strcmp(str, "true"))
+	  g_value_set_boolean(value, TRUE);
+	else
+	  return FALSE;
+      }
+    else if (G_VALUE_HOLDS_INT(value))
+      {
+	int n;
+	char *endptr;
+
+	n = strtol(str, &endptr, 10);
+	if (*endptr == '\0')	/* successful conversion */
+	  g_value_set_int(value, n);
+	else
+	  return FALSE;
+      }
+    else if (G_VALUE_HOLDS_STRING(value))
+      g_value_set_string(value, str);
+    else if (G_VALUE_HOLDS_ENUM(value))
+      {
+	GEnumClass *enum_class;
+	GEnumValue *enum_value;
+	gboolean found;
+
+	enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+	enum_value = g_enum_get_value_by_nick(enum_class, str);
+
+	if (enum_value)
+	  {
+	    g_value_set_enum(value, enum_value->value);
+	    found = TRUE;
+	  }
+	else
+	  found = FALSE;
+
+	g_type_class_unref(enum_class);
+
+	if (! found)
+	  return FALSE;
+      }
+    else
+      g_return_val_if_reached(FALSE);
+
+    return TRUE;
+  }}
+#line 1606 "mn-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 852 "mn-mailbox.gob"
+static char * 
+mn_mailbox_export_string (const GValue * value)
+#line 1612 "mn-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailbox::export_string"
+#line 852 "mn-mailbox.gob"
+	g_return_val_if_fail (value != NULL, (char * )0);
+#line 1617 "mn-mailbox.c"
+{
+#line 854 "mn-mailbox.gob"
+	
+    char *str;
+
+    if (G_VALUE_HOLDS_BOOLEAN(value))
+      str = g_strdup(g_value_get_boolean(value) ? "true" : "false");
+    else if (G_VALUE_HOLDS_INT(value))
+      str = g_strdup_printf("%i", g_value_get_int(value));
+    else if (G_VALUE_HOLDS_STRING(value))
+      str = g_value_dup_string(value);
+    else if (G_VALUE_HOLDS_ENUM(value))
+      {
+	GEnumClass *enum_class;
+	GEnumValue *enum_value;
+
+	enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+	enum_value = g_enum_get_value(enum_class, g_value_get_enum(value));
+	g_return_val_if_fail(enum_value != NULL, NULL);
+
+	str = g_strdup(enum_value->value_nick);
+	g_type_class_unref(enum_class);
+      }
+    else
+      g_return_val_if_reached(NULL);
+
+    return str;
+  }}
+#line 1646 "mn-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-mailbox.gob b/src/mn-mailbox.gob
@@ -16,50 +16,43 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include "config.h"
 #include <stdarg.h>
-#include "mn-message.h"
-#include "mn-uri.h"
+#include <libxml/tree.h>
 %}
 
-%privateheader{
-#include <libgnomevfs/gnome-vfs.h>
+%h{
+#define MN_MAILBOX_MAX_TYPES	6
+extern GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
 
-  typedef enum
-  {
-    MN_MAILBOX_MONITOR_EVENT_CHANGED		= 1 << GNOME_VFS_MONITOR_EVENT_CHANGED,
-    MN_MAILBOX_MONITOR_EVENT_DELETED		= 1 << GNOME_VFS_MONITOR_EVENT_DELETED,
-    MN_MAILBOX_MONITOR_EVENT_STARTEXECUTING	= 1 << GNOME_VFS_MONITOR_EVENT_STARTEXECUTING,
-    MN_MAILBOX_MONITOR_EVENT_STOPEXECUTING	= 1 << GNOME_VFS_MONITOR_EVENT_STOPEXECUTING,
-    MN_MAILBOX_MONITOR_EVENT_CREATED		= 1 << GNOME_VFS_MONITOR_EVENT_CREATED,
-    MN_MAILBOX_MONITOR_EVENT_METADATA_CHANGED	= 1 << GNOME_VFS_MONITOR_EVENT_METADATA_CHANGED
-  } MNMailboxMonitorEventType;
+typedef struct _MNMailboxConfiguration MNMailboxConfiguration;
 %}
 
-%h{
-#define MN_MAILBOX_N_TYPES		7
-  extern GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+%privateheader{
+typedef enum
+{
+  /* save to mailboxes.xml */
+  MN_MAILBOX_PARAM_PERMANENT	= 1 << (G_PARAM_USER_SHIFT + 0),
+
+  /* require a string property to be non-empty */
+  MN_MAILBOX_PARAM_REQUIRED	= 1 << (G_PARAM_USER_SHIFT + 1),
 
-#define MN_MAILBOX_CAN_CHECK(self) \
-  (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
-#define MN_MAILBOX_MUST_POLL(self) \
-  (MN_MAILBOX_CAN_CHECK((self)) && mn_mailbox_get_must_poll((self)))
+  /* ignore the case of a string property when checking if it has the default value */
+  MN_MAILBOX_PARAM_IGNORE_CASE	= 1 << (G_PARAM_USER_SHIFT + 2)
+} MNMailboxParamFlags;
 %}
-  
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
-#ifdef WITH_MBOX
-#include "mn-mbox-mailbox.h"
-#endif
-#ifdef WITH_MH
-#include "mn-mh-mailbox.h"
-#endif
-#ifdef WITH_MAILDIR
-#include "mn-maildir-mailbox.h"
+#include <eel/eel.h>
+#include <libgnomevfs/gnome-vfs.h>
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-system-vfs-mailbox.h"
+#include "mn-custom-vfs-mailbox.h"
 #endif
 #ifdef WITH_POP3
 #include "mn-pop3-mailbox.h"
@@ -67,55 +60,28 @@ requires 2.0.10
 #ifdef WITH_IMAP
 #include "mn-imap-mailbox.h"
 #endif
-#ifdef WITH_SYLPHEED
-#include "mn-sylpheed-mailbox.h"
-#endif
 #ifdef WITH_GMAIL
 #include "mn-gmail-mailbox.h"
 #endif
-#include "mn-vfs.h"
+#ifdef WITH_EVOLUTION
+#include "mn-evolution-mailbox.h"
+#endif
 #include "mn-util.h"
-#include "mn-unsupported-mailbox.h"
-#include "mn-conf.h"
+#include "mn-message.h"
 
-typedef struct
+struct _MNMailboxConfiguration
 {
-  MNURI		*uri;
-  void		(*callback)	(MNMailbox	*self,
-				 gpointer	user_data);
-  gpointer	user_data;
-} NewInfo;
+  GType		type;
+  unsigned int	n_parameters;
+  GParameter	*parameters;
+};
 
- GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
 %}
 
-/******************************************************************************
- *** IMPORTANT REMARKS ABOUT GDK LOCKING AND MULTI-THREADING ******************
- ******************************************************************************
- *
- * MNMailbox API functions must be called with the GDK lock
- * held. Exceptions are:
- *
- *	mn_mailbox_init_types()
- *	mn_mailbox_set_init_error()
- *	mn_mailbox_notice()
- *	mn_mailbox_warning()
- *
- * (No code can be hooked to these functions through signals or other
- * means, therefore we are sure GDK will never be used from these
- * functions.)
- *
- * Mailboxes are constructed with the GDK lock not held. Use
- * GDK_THREADS_ENTER() and GDK_THREADS_LEAVE() where appropriate in
- * the construction phase.
- *
- * Virtual methods are called with the GDK lock not held.
- */
-
 class MN:Mailbox from G:Object
 {
-  classwide const char *stock_id;
-  classwide const char *format;
+  classwide const char *type;
 
   /**
    * removed:
@@ -127,30 +93,22 @@ class MN:Mailbox from G:Object
   signal NONE (NONE)
     void removed (self);
 
-  public MNURI *uri = NULL unrefwith g_object_unref;
-  property OBJECT uri (blurb = _("The mailbox URI"),
-		       object_type = MN:URI,
-		       flags = CONSTRUCT_ONLY)
-    set
-    {
-      g_return_if_fail(self->uri == NULL);
-      self->uri = MN_URI(g_value_dup_object(VAL));
-      selfp->name = g_strdup(self->uri->human_readable);
-    };
-  
-  private char *name destroywith g_free;
-  property STRING name (blurb = _("The mailbox human-readable name"), link);
-  public const char *get_name (self) { return selfp->name; }
+  public char *runtime_name destroywith g_free;
   
-  private gboolean must_poll = TRUE;
-  property BOOLEAN must_poll (blurb = _("Whether the mailbox has to be polled or not"),
-			      default_value = TRUE,
-			      link,
-			      export);
-
-  private GSList *messages destroywith mn_g_object_slist_free;
-  property POINTER messages (blurb = _("The list of new and unread MNMessage objects"),
-			     export)
+  public char *name destroywith g_free;
+  property STRING name (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+  public char *stock_id;
+  property STRING stock_id (link, export);
+
+  public char *format;
+  property STRING format (link, export);
+
+  public gboolean must_poll;
+  property BOOLEAN must_poll (default_value = TRUE, link, export, flags = CONSTRUCT);
+
+  public GSList *messages destroywith mn_g_object_slist_free;
+  property POINTER messages (export, type = const GSList *)
     set
     {
       GSList *messages;
@@ -160,7 +118,7 @@ class MN:Mailbox from G:Object
 
       messages = g_value_get_pointer(VAL);
       
-      MN_LIST_FOREACH(l, selfp->messages)
+      MN_LIST_FOREACH(l, self->messages)
 	if (! mn_message_slist_find_by_id(messages, l->data))
 	  {
 	    changed = TRUE;
@@ -168,22 +126,22 @@ class MN:Mailbox from G:Object
 	  }
       
       MN_LIST_FOREACH(l, messages)
-	if (! mn_message_slist_find_by_id(selfp->messages, l->data))
+	if (! mn_message_slist_find_by_id(self->messages, l->data))
 	  {
 	    changed = TRUE;
 	    has_new = TRUE;
 	    break;
 	  }
 
-      mn_g_object_slist_free(selfp->messages);
-      selfp->messages = mn_g_object_slist_copy(messages);
+      mn_g_object_slist_free(self->messages);
+      self->messages = mn_g_object_slist_copy(messages);
 
       if (changed)
 	self_messages_changed(self, has_new);
     }
     get
     {
-      g_value_set_pointer(VAL, selfp->messages);
+      g_value_set_pointer(VAL, self->messages);
     };
 
   /**
@@ -202,8 +160,22 @@ class MN:Mailbox from G:Object
   signal private NONE (BOOLEAN)
     void messages_changed (self, gboolean has_new);
 
-  private char *error destroywith g_free;
-  property STRING error (blurb = _("The mailbox error, if any"), link);
+  public char *error destroywith g_free;
+  property STRING error
+    set
+    {
+      g_free(self->error);
+      self->error = g_value_dup_string(VAL);
+
+      /* if an error is set, we unset messages */
+      if (self->error)
+	self_set_messages(self, NULL);
+    }
+    get
+    {
+      g_value_set_string(VAL, self->error);
+    };
+
   protected void
     set_error (self, const char *format, ...)
   {
@@ -220,38 +192,20 @@ class MN:Mailbox from G:Object
     g_object_set(G_OBJECT(self), MN_MAILBOX_PROP_ERROR(error), NULL);
     g_free(error);
   }
-  public const char *get_error (self) { return selfp->error; }
-  
-  private GnomeVFSMonitorHandle *monitor_handle;
-  private char *monitor_uri destroywith g_free;
-  private MNMailboxMonitorEventType monitor_events;
-  
-  private gboolean checking;
-  
-  override (G:Object) void
-    finalize (G:Object *object (check null type))
-  {
-    Self *self = SELF(object);
-
-    if (selfp->monitor_handle)
-      gnome_vfs_monitor_cancel(selfp->monitor_handle);
-
-    PARENT_HANDLER(object);
-  }
   
   public void
     init_types (void)
   {
     int i = 0;
 
-#ifdef WITH_MBOX
-    mn_mailbox_types[i++] = MN_TYPE_MBOX_MAILBOX;
-#endif
-#ifdef WITH_MH
-    mn_mailbox_types[i++] = MN_TYPE_MH_MAILBOX;
-#endif
-#ifdef WITH_MAILDIR
-    mn_mailbox_types[i++] = MN_TYPE_MAILDIR_MAILBOX;
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+    /*
+     * MNSystemVFSMailbox must be registered before
+     * MNCustomVFSMailbox, because the latter's parse_uri() method
+     * will accept any URI.
+     */
+    mn_mailbox_types[i++] = MN_TYPE_SYSTEM_VFS_MAILBOX;
+    mn_mailbox_types[i++] = MN_TYPE_CUSTOM_VFS_MAILBOX;
 #endif
 #ifdef WITH_POP3
     mn_mailbox_types[i++] = MN_TYPE_POP3_MAILBOX;
@@ -259,255 +213,558 @@ class MN:Mailbox from G:Object
 #ifdef WITH_IMAP
     mn_mailbox_types[i++] = MN_TYPE_IMAP_MAILBOX;
 #endif
-#ifdef WITH_SYLPHEED
-    mn_mailbox_types[i++] = MN_TYPE_SYLPHEED_MAILBOX;
-#endif
 #ifdef WITH_GMAIL
     mn_mailbox_types[i++] = MN_TYPE_GMAIL_MAILBOX;
 #endif
+#ifdef WITH_EVOLUTION
+    mn_mailbox_types[i++] = MN_TYPE_EVOLUTION_MAILBOX;
+#endif
     mn_mailbox_types[i] = 0;
   }
 
-  /**
-   * new_async:
-   * @uri: location of the mailbox
-   * @callback: a function like
-   *            "void (callback) (#MNMailbox *self, gpointer user_data)"
-   * @user_data: data to pass to @callback
-   *
-   * Creates a new #MNMailbox asynchronously. The newly created
-   * #MNMailbox will be passed to @callback.
-   **/
-  public void
-    new_async (MN:URI *uri (check null type),
-	       gpointer callback (check null),
-	       gpointer user_data)
+  private GType
+    get_type_from_name (const char *type)
   {
-    NewInfo *info;
+    int i;
+
+    for (i = 0; mn_mailbox_types[i]; i++)
+      {
+	SelfClass *class;
+
+	class = g_type_class_peek(mn_mailbox_types[i]);
+	g_return_val_if_fail(class != NULL, 0);
 
-    info = g_new(NewInfo, 1);
-    info->uri = g_object_ref(uri);
-    info->callback = callback;
-    info->user_data = user_data;
+	if (! strcmp(class->type, type))
+	  return mn_mailbox_types[i];
+      }
 
-    mn_thread_create(self_new_async_thread, info);
+    return 0;
   }
 
-  private gpointer
-    new_async_thread (gpointer data)
+  public MNMailbox *
+    new (const char *type, const char *first, ...)
   {
-    NewInfo *info = data;
-    Self *mailbox = NULL;
+    va_list args;
+    GType type_id;
+    GObject *object;
+
+    g_return_val_if_fail(type != NULL, NULL);
+
+    type_id = self_get_type_from_name(type);
+    if (! type_id)
+      return NULL;
+
+    va_start(args, first);
+    object = g_object_new_valist(type_id, first, args);
+    va_end(args);
 
-    if (info->uri->vfs)
+    return SELF(object);
+  }
+  
+  public MNMailbox *
+    new_from_xml_node (xmlNode *node, GError **err)
+  {
+    char *type;
+    Self *self = NULL;
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+
+    g_return_val_if_fail(node != NULL, NULL);
+
+    type = xmlGetProp(node, "type");
+    if (! type)
       {
-	if (! mn_vfs_test(info->uri->vfs, G_FILE_TEST_EXISTS))
-	  mailbox = mn_unsupported_mailbox_new(info->uri, _("does not exist"));
+	g_set_error(err, 0, 0, _("\"type\" attribute missing"));
+	return NULL;
       }
 
-    if (! mailbox)
+    self = self_new(type, NULL);
+    if (! self)
       {
-	int i;
-	
-	for (i = 0; mn_mailbox_types[i]; i++)
-	  {
-	    SelfClass *class;
-
-	    class = g_type_class_peek(mn_mailbox_types[i]);
-	    g_return_val_if_fail(class != NULL, NULL);
-
-	    if (class->impl_is(NULL, info->uri))
-	      {
-		mailbox = g_object_new(mn_mailbox_types[i], MN_MAILBOX_PROP_URI(G_OBJECT(info->uri)), NULL);
-		if (mailbox->_priv->init_error)
-		  {
-		    MNMailbox *old_mailbox;
-		  
-		    old_mailbox = mailbox;
-		    mailbox = mn_unsupported_mailbox_new(info->uri, old_mailbox->_priv->init_error);
-		    g_object_unref(old_mailbox);
-		  }
-		
-		break;
-	      }
-	  }
+	g_set_error(err, 0, 0, _("unknown mailbox type \"%s\""), type);
+	goto end;
       }
 
-    if (! mailbox)
-      mailbox = mn_unsupported_mailbox_new(info->uri, _("unknown format"));
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+	{
+	  char *content;
+
+	  content = xmlGetProp(node, g_param_spec_get_name(properties[i]));
+	  if (content)
+	    {
+	      GValue value = { 0, };
+
+	      g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+
+	      if (self_import_string(&value, content))
+		g_object_set_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+	      else
+		g_warning(_("property \"%s\": unable to transform string \"%s\" into a value of type \"%s\""),
+			  g_param_spec_get_name(properties[i]), content, G_VALUE_TYPE_NAME(&value));
+
+	      g_value_unset(&value);
+	      xmlFree(content);
+	    }
+	}
+    g_free(properties);
+    
+    if (! self_validate(self, err))
+      {
+	g_object_unref(self);
+	self = NULL;
+      }
+    
+  end:
+    g_free(type);
+    return self;
+  }
+  
+  public xmlNode *
+    xml_node_new (self)
+  {
+    xmlNode *node;
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
 
-    GDK_THREADS_ENTER();
+    node = xmlNewNode(NULL, "mailbox");
+    xmlSetProp(node, "type", SELF_GET_CLASS(self)->type);
+    
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+	{
+	  GValue value = { 0, };
+	  gboolean is_default;
+	  
+	  g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+	  g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+
+	  if ((properties[i]->flags & MN_MAILBOX_PARAM_IGNORE_CASE) != 0)
+	    {
+	      GValue default_value = { 0, };
+	      const char *str;
+	      const char *default_str;
+
+	      g_assert(G_IS_PARAM_SPEC_STRING(properties[i]));
+
+	      g_value_init(&default_value, G_TYPE_STRING);
+	      g_param_value_set_default(properties[i], &default_value);
+
+	      str = g_value_get_string(&value);
+	      default_str = g_value_get_string(&default_value);
+
+	      is_default = str && default_str && ! mn_utf8_strcasecmp(str, default_str);
+
+	      g_value_unset(&default_value);
+	    }
+	  else
+	    is_default = g_param_value_defaults(properties[i], &value);
+	  
+	  if (! is_default)
+	    {
+	      char *str;
+
+	      str = self_export_string(&value);
+	      xmlSetProp(node, g_param_spec_get_name(properties[i]), str);
+	      g_free(str);
+	    }
+	  
+	  g_value_unset(&value);
+	}
+    g_free(properties);
+
+    return node;
+  }
+  
+  public MNMailbox *
+    new_from_uri (const char *uri (check null))
+  {
+    int i;
 
-    info->callback(mailbox, info->user_data);
+    for (i = 0; mn_mailbox_types[i]; i++)
+      {
+	MNMailboxClass *class;
 
-    /*
-     * A note on gdk_flush(): as adviced in the GDK threads
-     * documentation, we only call gdk_flush() from a thread other
-     * than our main thread (so we do not call it in idle and timeout
-     * callbacks).
-     */
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+	class = g_type_class_peek(mn_mailbox_types[i]);
+	g_return_val_if_fail(class != NULL, NULL);
 
-    /* mailbox is now owned by the callback, do not unref it */
-    
-    g_object_unref(info->uri);
-    g_free(info);
+	if (class->parse_uri)
+	  {
+	    MNMailbox *mailbox;
 
+	    mailbox = class->parse_uri(NULL, uri);
+	    if (mailbox)
+	      return mailbox;
+	  }
+      }
+    
     return NULL;
   }
   
-  private char *init_error destroywith g_free;
-  protected void
-    set_init_error (self, const char *format (check null), ...)
+  public MNMailbox *
+    new_from_configuration (MNMailboxConfiguration *config (check null))
   {
-    va_list args;
+    return g_object_newv(config->type, config->n_parameters, config->parameters);
+  }
+  
+  public MNMailboxConfiguration *
+    get_configuration (self)
+  {
+    GObject *object = G_OBJECT(self);
+    GArray *parameters;
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+    MNMailboxConfiguration *config;
+
+    parameters = g_array_new(FALSE, FALSE, sizeof(GParameter));
+
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_PERMANENT) != 0)
+	{
+	  GParameter parameter = { NULL, { 0, } };
+
+	  parameter.name = g_param_spec_get_name(properties[i]);
+
+	  g_value_init(&parameter.value, G_PARAM_SPEC_VALUE_TYPE(properties[i]));
+	  g_object_get_property(object, parameter.name, &parameter.value);
+	  
+	  g_array_append_val(parameters, parameter);
+	}
+    g_free(properties);
+
+    config = g_new0(MNMailboxConfiguration, 1);
+    config->type = G_OBJECT_TYPE(self);
+    config->n_parameters = parameters->len;
+    config->parameters = (GParameter *) g_array_free(parameters, FALSE);
+
+    return config;
+  }
+
+  public void
+    configuration_free (MNMailboxConfiguration *config (check null))
+  {
+    int i;
 
-    g_return_if_fail(selfp->init_error == NULL);
+    for (i = 0; i < config->n_parameters; i++)
+      g_value_unset(&config->parameters[i].value);
 
-    va_start(args, format);
-    selfp->init_error = g_strdup_vprintf(format, args);
-    va_end(args);
+    g_free(config->parameters);
+    g_free(config);
   }
 
-  protected void
-    monitor (self,
-	     const char *uri (check null),
-	     GnomeVFSMonitorType monitor_type,
-	     MNMailboxMonitorEventType events)
+  public MNMailbox *
+    new_from_obsolete_uri (const char *uri (check null))
   {
-    GnomeVFSResult result;
+    char *real_uri;
+    char *scheme;
+    gboolean obsolete = FALSE;
+    Self *self = NULL;
 
-    g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
-    g_return_if_fail(selfp->monitor_handle == NULL);
-    
-    gdk_flush();
-    GDK_THREADS_LEAVE();
+    real_uri = g_str_has_prefix(uri, "pop3:") /* also handle very old pop3 locators */
+      ? g_strconcat("pop://", uri + 5, NULL)
+      : g_strdup(uri);
+
+    scheme = gnome_vfs_get_uri_scheme(real_uri);
+    if (scheme)
+      {
+	if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops")
+	    || ! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps")
+	    || ! strcmp(scheme, "gmail"))
+	  obsolete = TRUE;
+	g_free(scheme);
+      }
 
-    result = gnome_vfs_monitor_add(&selfp->monitor_handle,
-				   uri,
-				   monitor_type,
-				   self_monitor_cb,
-				   self);
+    self = obsolete ? self_parse_obsolete_uri(real_uri) : self_new_from_uri(real_uri);
+    g_free(real_uri);
 
-    GDK_THREADS_ENTER();
+    if (self && ! self_validate(self, NULL))
+      {
+	g_object_unref(self);
+	self = NULL;
+      }
     
-    if (result == GNOME_VFS_OK)
+    return self;
+  }
+  
+  private MNMailbox *
+    parse_obsolete_uri (const char *uri (check null))
+  {
+    int len;
+    int buflen;
+    char *scheme;
+    char *username;
+    char *password;
+    char *authmech;
+    char *hostname;
+    int port;
+    char *path;
+    char **queries;
+    Self *self = NULL;
+
+    len = strlen(uri);
+    buflen = len + 1;
+
+    {
+      char *pat;
+      char scheme_buf[buflen];
+      char auth_buf[buflen];
+      char location_buf[buflen];
+      char username_buf[buflen];
+      char password_buf[buflen];
+      char authmech_buf[buflen];
+      char hostname_buf[buflen];
+      int _port;
+      char path_buf[buflen];
+      char queries_buf[buflen];
+      gboolean has_location = FALSE;
+      gboolean has_password = FALSE;
+      gboolean has_authmech = FALSE;
+      gboolean has_port = FALSE;
+      gboolean has_path = FALSE;
+      gboolean has_queries = FALSE;
+      int n;
+
+      /* split URI in 3 parts: scheme, auth and location */
+
+      pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
+      n = sscanf(uri, pat, scheme_buf, auth_buf, location_buf);
+      g_free(pat);
+
+      if (n >= 2)
+	{
+	  if (n == 3)
+	    has_location = TRUE;
+	}
+      else
+	return NULL;		/* unparsable */
+
+      /* split auth part in 3 subparts: username, password and authmech */
+
+      /*
+       * For backward compatibility with previous versions of Mail
+       * Notification, we also support ;auth= (in lowercase).
+       */
+      
+      pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
+      n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
+      g_free(pat);
+
+      if (n >= 2)
+	{
+	  has_password = TRUE;
+	  if (n == 3)
+	    has_authmech = TRUE;
+	}
+      else
+	{
+	  pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
+	  n = sscanf(auth_buf, pat, username_buf, authmech_buf);
+	  g_free(pat);
+
+	  if (n >= 1)
+	    {
+	      if (n == 2)
+		has_authmech = TRUE;
+	    }
+	  else
+	    return NULL;	/* unparsable */
+	}
+
+      if (has_location)
+	{
+	  char hostport_buf[buflen];
+
+	  /* split location part in 3 subparts: hostport, path and queries */
+
+	  pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
+	  n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
+	  g_free(pat);
+
+	  if (n >= 2)
+	    {
+	      has_path = TRUE;
+	      if (n == 3)
+		has_queries = TRUE;
+	    }
+	  else
+	    {
+	      pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
+	      n = sscanf(location_buf, pat, hostport_buf, queries_buf);
+	      g_free(pat);
+
+	      if (n == 2)
+		has_queries = TRUE;
+	    }
+
+	  /* split hostport in 2 subparts: host and port */
+
+	  pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
+	  n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+	  g_free(pat);
+	
+	  if (n < 1)
+	    {
+	      pat = g_strdup_printf("%%%i[^:]:%%u", len);
+	      n = sscanf(hostport_buf, pat, hostname_buf, &_port);
+	      g_free(pat);
+	    }
+	
+	  if (n == 2)
+	    has_port = TRUE;
+	}
+
+      scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
+      username = gnome_vfs_unescape_string(username_buf, NULL);
+      password = has_password ? gnome_vfs_unescape_string(password_buf, NULL) : NULL;
+      authmech = has_authmech ? gnome_vfs_unescape_string(authmech_buf, NULL) : NULL;
+      hostname = has_location ? gnome_vfs_unescape_string(hostname_buf, NULL) : NULL;
+      port = has_port ? _port : 0;
+      path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : NULL;
+      if (has_queries)
+	{
+	  int i;
+	  
+	  queries = g_strsplit(queries_buf, "&", 0);
+	  for (i = 0; queries[i]; i++)
+	    {
+	      char *unescaped;
+
+	      unescaped = gnome_vfs_unescape_string(queries[i], NULL);
+
+	      g_free(queries[i]);
+	      queries[i] = unescaped;
+	    }
+	}
+      else
+	queries = NULL;
+    }
+
+    if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops"))
       {
-	selfp->monitor_uri = g_strdup(uri);
-	selfp->monitor_events = events;
-	self_set_must_poll(self, FALSE);
+#ifdef WITH_POP3
+	MNPIMailboxConnectionType connection_type;
+
+	if (queries && eel_g_strv_find(queries, "STLS") != -1)
+	  connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+	else
+	  connection_type = ! strcmp(scheme, "pops")
+	    ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+	    : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+	self = self_new("pop3",
+			"connection-type", connection_type,
+			"username", username,
+			"password", password,
+			"authmech", authmech,
+			"hostname", hostname,
+			"port", port,
+			NULL);
+#endif
       }
-    else
+    else if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
       {
-	self_warning(self, _("unable to enable immediate notification: %s"), gnome_vfs_result_to_string(result));
-
-	if (! eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
-	  {
-	    static gboolean first_time = TRUE;
-	    
-	    if (first_time)
-	      {
-		int minutes;
-		int seconds;
-		char *str;
-	    
-		first_time = FALSE;
-	    
-		minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
-		seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
-		
-		if (minutes == 0)
-		  str = g_strdup_printf(ngettext("As a fallback, they will be "
-						 "checked every %i second (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-						 "As a fallback, they will be "
-						 "checked every %i seconds (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-					     seconds),
-					seconds);
-		else if (seconds == 0)
-		  str = g_strdup_printf(ngettext("As a fallback, they will be "
-						 "checked every %i minute (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-						 "As a fallback, they will be "
-						 "checked every %i minutes (this "
-						 "delay is configurable from the "
-						 "Properties Dialog).",
-						 minutes),
-					minutes);
-		else
-		  str = g_strdup_printf(ngettext("As a fallback, they will be "
-						 "checked approximately every %i "
-						 "minute (this delay is "
-						 "configurable from the "
-						 "Properties Dialog).",
-						 "As a fallback, they will be "
-						 "checked approximately every %i "
-						 "minutes (this delay is "
-						 "configurable from the "
-						 "Properties Dialog).",
-						 minutes),
-					minutes);
-		
-		mn_error_dialog(NULL,
-				MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
-				"immediate-notification",
-				_("A monitoring error has occurred"),
-				_("Mail Notification was unable to enable immediate "
-				  "notification for one or more mailboxes. %s"), str);
-		g_free(str);
-	      }
-	  }
+#ifdef WITH_IMAP
+	MNPIMailboxConnectionType connection_type;
+
+	if (queries && eel_g_strv_find(queries, "STARTTLS") != -1)
+	  connection_type = MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL;
+	else
+	  connection_type = ! strcmp(scheme, "imaps")
+	    ? MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+	    : MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL;
+
+	self = self_new("imap",
+			"connection-type", connection_type,
+			"username", username,
+			"password", password,
+			"authmech", authmech,
+			"hostname", hostname,
+			"port", port,
+			"mailbox", path,
+			NULL);
+
+	if (queries && eel_g_strv_find(queries, "noidle") != -1)
+	  g_object_set(G_OBJECT(self), "use-idle-extension", MN_IMAP_MAILBOX_USE_IDLE_NEVER, NULL);
+#endif
+      }
+    else if (! strcmp(scheme, "gmail"))
+      {
+#ifdef WITH_GMAIL
+	self = self_new("gmail",
+			"username", username,
+			"password", password,
+			NULL);
+#endif
       }
-  }
 
-  private void
-    monitor_cb (GnomeVFSMonitorHandle *handle,
-		const char *monitor_uri,
-		const char *info_uri,
-		GnomeVFSMonitorEventType event_type,
-		gpointer user_data (check null))
-  {
-    Self *self = user_data;
+    g_free(scheme);
+    g_free(username);
+    g_free(password);
+    g_free(authmech);
+    g_free(hostname);
+    g_free(path);
+    g_strfreev(queries);
 
-    GDK_THREADS_ENTER();
-    if (selfp->monitor_events & (1 << event_type))
-      self_check(self);
-    GDK_THREADS_LEAVE();
+    return self;
   }
-
-  virtual private gboolean
-    impl_is (self, MNURI *uri);
-  virtual private void
-    impl_check (self);
   
-  public void
-    check (self)
+  private gboolean
+    validate (self, GError **err)
   {
-    g_return_if_fail(MN_MAILBOX_CAN_CHECK(self));
-
-    if (! selfp->checking)
-      {
-	g_object_ref(self);
-	selfp->checking = TRUE;
-	self_set_error(self, NULL);
-
-	mn_thread_create((GThreadFunc) SELF_GET_CLASS(self)->impl_check, self);
-      }
+    GParamSpec **properties;
+    unsigned int n_properties;
+    int i;
+
+    properties = g_object_class_list_properties(G_OBJECT_GET_CLASS(self), &n_properties);
+    for (i = 0; i < n_properties; i++)
+      if ((properties[i]->flags & MN_MAILBOX_PARAM_REQUIRED) != 0)
+	{
+	  GValue value = { 0, };
+	  const char *str;
+	  gboolean is_empty;
+	  
+	  g_return_val_if_fail(G_IS_PARAM_SPEC_STRING(properties[i]), FALSE);
+	  
+	  g_value_init(&value, G_TYPE_STRING);
+	  g_object_get_property(G_OBJECT(self), g_param_spec_get_name(properties[i]), &value);
+	  
+	  str = g_value_get_string(&value);
+	  is_empty = ! str || ! *str;
+	  
+	  g_value_unset(&value);
+	  
+	  if (is_empty)
+	    {
+	      g_set_error(err, 0, 0, _("property \"%s\" has no value"), g_param_spec_get_name(properties[i]));
+	      return FALSE;
+	    }
+	}
+    g_free(properties);
+
+    return TRUE;
   }
   
-  protected void
-    end_check (self)
+  virtual public void
+    seal (self)
   {
-    g_return_if_fail(selfp->checking == TRUE);
-
-    selfp->checking = FALSE;
-    g_object_unref(self);
+    if (self->name)
+      {
+	g_free(self->runtime_name);
+	self->runtime_name = g_strdup(self->name);
+      }
   }
+
+  virtual private MNMailbox *
+    parse_uri (self, const char *uri);
+
+  virtual public void
+    check (self);
   
   protected void
     notice (self, const char *format (check null), ...)
@@ -519,7 +776,7 @@ class MN:Mailbox from G:Object
     message = g_strdup_vprintf(format, args);
     va_end(args);
 
-    mn_info("%s: %s", self->uri->text, message);
+    mn_info("%s: %s", self->runtime_name, message);
     g_free(message);
   }
 
@@ -533,7 +790,91 @@ class MN:Mailbox from G:Object
     message = g_strdup_vprintf(format, args);
     va_end(args);
 
-    g_warning("%s: %s", self->uri->text, message);
+    g_warning("%s: %s", self->runtime_name, message);
     g_free(message);
   }
+
+  private gboolean
+    import_string (GValue *value (check null), const char *str (check null))
+  {
+    g_return_val_if_fail(G_IS_VALUE(value), FALSE);
+
+    if (G_VALUE_HOLDS_BOOLEAN(value))
+      {
+	if (! strcmp(str, "false"))
+	  g_value_set_boolean(value, FALSE);
+	else if (! strcmp(str, "true"))
+	  g_value_set_boolean(value, TRUE);
+	else
+	  return FALSE;
+      }
+    else if (G_VALUE_HOLDS_INT(value))
+      {
+	int n;
+	char *endptr;
+
+	n = strtol(str, &endptr, 10);
+	if (*endptr == '\0')	/* successful conversion */
+	  g_value_set_int(value, n);
+	else
+	  return FALSE;
+      }
+    else if (G_VALUE_HOLDS_STRING(value))
+      g_value_set_string(value, str);
+    else if (G_VALUE_HOLDS_ENUM(value))
+      {
+	GEnumClass *enum_class;
+	GEnumValue *enum_value;
+	gboolean found;
+
+	enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+	enum_value = g_enum_get_value_by_nick(enum_class, str);
+
+	if (enum_value)
+	  {
+	    g_value_set_enum(value, enum_value->value);
+	    found = TRUE;
+	  }
+	else
+	  found = FALSE;
+
+	g_type_class_unref(enum_class);
+
+	if (! found)
+	  return FALSE;
+      }
+    else
+      g_return_val_if_reached(FALSE);
+
+    return TRUE;
+  }
+  
+  private char *
+    export_string (const GValue *value (check null))
+  {
+    char *str;
+
+    if (G_VALUE_HOLDS_BOOLEAN(value))
+      str = g_strdup(g_value_get_boolean(value) ? "true" : "false");
+    else if (G_VALUE_HOLDS_INT(value))
+      str = g_strdup_printf("%i", g_value_get_int(value));
+    else if (G_VALUE_HOLDS_STRING(value))
+      str = g_value_dup_string(value);
+    else if (G_VALUE_HOLDS_ENUM(value))
+      {
+	GEnumClass *enum_class;
+	GEnumValue *enum_value;
+
+	enum_class = g_type_class_ref(G_VALUE_TYPE(value));
+	enum_value = g_enum_get_value(enum_class, g_value_get_enum(value));
+	g_return_val_if_fail(enum_value != NULL, NULL);
+
+	str = g_strdup(enum_value->value_nick);
+	g_type_class_unref(enum_class);
+      }
+    else
+      g_return_val_if_reached(NULL);
+
+    return str;
+  }
 }
diff --git a/src/mn-mailbox.h b/src/mn-mailbox.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -6,8 +6,7 @@
 
 #include "config.h"
 #include <stdarg.h>
-#include "mn-message.h"
-#include "mn-uri.h"
+#include <libxml/tree.h>
 
 #ifndef __MN_MAILBOX_H__
 #define __MN_MAILBOX_H__
@@ -18,13 +17,10 @@ extern "C" {
 
 
 
-#define MN_MAILBOX_N_TYPES		7
-  extern GType mn_mailbox_types[MN_MAILBOX_N_TYPES + 1];
+#define MN_MAILBOX_MAX_TYPES	6
+extern GType mn_mailbox_types[MN_MAILBOX_MAX_TYPES + 1];
 
-#define MN_MAILBOX_CAN_CHECK(self) \
-  (MN_MAILBOX_GET_CLASS((self))->impl_check != NULL)
-#define MN_MAILBOX_MUST_POLL(self) \
-  (MN_MAILBOX_CAN_CHECK((self)) && mn_mailbox_get_must_poll((self)))
+typedef struct _MNMailboxConfiguration MNMailboxConfiguration;
 
 
 /*
@@ -38,9 +34,6 @@ extern "C" {
 
 #define MN_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mailbox_get_type(), MNMailboxClass)
 
-/* Private structure type */
-typedef struct _MNMailboxPrivate MNMailboxPrivate;
-
 /*
  * Main object structure
  */
@@ -51,9 +44,13 @@ typedef struct _MNMailbox MNMailbox;
 struct _MNMailbox {
 	GObject __parent__;
 	/*< public >*/
-	MNURI * uri;
-	/*< private >*/
-	MNMailboxPrivate *_priv;
+	char * runtime_name;
+	char * name;
+	char * stock_id;
+	char * format;
+	gboolean must_poll;
+	GSList * messages;
+	char * error;
 };
 
 /*
@@ -64,10 +61,10 @@ struct _MNMailboxClass {
 	GObjectClass __parent__;
 	/*signal*/void (* removed) (MNMailbox * self);
 	/*signal*/void (* messages_changed) (MNMailbox * self, gboolean has_new);
-	gboolean (* impl_is) (MNMailbox * self, MNURI * uri);
-	void (* impl_check) (MNMailbox * self);
-	const char * stock_id;
-	const char * format;
+	void (* seal) (MNMailbox * self);
+	MNMailbox * (* parse_uri) (MNMailbox * self, const char * uri);
+	void (* check) (MNMailbox * self);
+	const char * type;
 };
 
 
@@ -76,18 +73,31 @@ struct _MNMailboxClass {
  */
 GType	mn_mailbox_get_type	(void);
 void 	mn_mailbox_removed	(MNMailbox * self);
-const char * 	mn_mailbox_get_name	(MNMailbox * self);
+gchar * 	mn_mailbox_get_stock_id	(MNMailbox * self);
+void 	mn_mailbox_set_stock_id	(MNMailbox * self,
+					gchar * val);
+gchar * 	mn_mailbox_get_format	(MNMailbox * self);
+void 	mn_mailbox_set_format	(MNMailbox * self,
+					gchar * val);
 gboolean 	mn_mailbox_get_must_poll	(MNMailbox * self);
 void 	mn_mailbox_set_must_poll	(MNMailbox * self,
 					gboolean val);
-gpointer 	mn_mailbox_get_messages	(MNMailbox * self);
+const GSList * 	mn_mailbox_get_messages	(MNMailbox * self);
 void 	mn_mailbox_set_messages	(MNMailbox * self,
-					gpointer val);
-const char * 	mn_mailbox_get_error	(MNMailbox * self);
+					const GSList * val);
 void 	mn_mailbox_init_types	(void);
-void 	mn_mailbox_new_async	(MNURI * uri,
-					gpointer callback,
-					gpointer user_data);
+MNMailbox * 	mn_mailbox_new	(const char * type,
+					const char * first,
+					...);
+MNMailbox * 	mn_mailbox_new_from_xml_node	(xmlNode * node,
+					GError ** err);
+xmlNode * 	mn_mailbox_xml_node_new	(MNMailbox * self);
+MNMailbox * 	mn_mailbox_new_from_uri	(const char * uri);
+MNMailbox * 	mn_mailbox_new_from_configuration	(MNMailboxConfiguration * config);
+MNMailboxConfiguration * 	mn_mailbox_get_configuration	(MNMailbox * self);
+void 	mn_mailbox_configuration_free	(MNMailboxConfiguration * config);
+MNMailbox * 	mn_mailbox_new_from_obsolete_uri	(const char * uri);
+void 	mn_mailbox_seal	(MNMailbox * self);
 void 	mn_mailbox_check	(MNMailbox * self);
 
 /*
@@ -114,23 +124,29 @@ void 	mn_mailbox_check	(MNMailbox * self);
  * Argument wrapping macros
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_MAILBOX_PROP_URI(arg)    	"uri", __extension__ ({GObject *z = (arg); z;})
 #define MN_MAILBOX_PROP_NAME(arg)    	"name", __extension__ ({gchar *z = (arg); z;})
 #define MN_MAILBOX_GET_PROP_NAME(arg)	"name", __extension__ ({gchar **z = (arg); z;})
+#define MN_MAILBOX_PROP_STOCK_ID(arg)    	"stock_id", __extension__ ({gchar *z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_STOCK_ID(arg)	"stock_id", __extension__ ({gchar **z = (arg); z;})
+#define MN_MAILBOX_PROP_FORMAT(arg)    	"format", __extension__ ({gchar *z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_FORMAT(arg)	"format", __extension__ ({gchar **z = (arg); z;})
 #define MN_MAILBOX_PROP_MUST_POLL(arg)    	"must_poll", __extension__ ({gboolean z = (arg); z;})
 #define MN_MAILBOX_GET_PROP_MUST_POLL(arg)	"must_poll", __extension__ ({gboolean *z = (arg); z;})
-#define MN_MAILBOX_PROP_MESSAGES(arg)    	"messages", __extension__ ({gpointer z = (arg); z;})
-#define MN_MAILBOX_GET_PROP_MESSAGES(arg)	"messages", __extension__ ({gpointer *z = (arg); z;})
+#define MN_MAILBOX_PROP_MESSAGES(arg)    	"messages", __extension__ ({const GSList * z = (arg); z;})
+#define MN_MAILBOX_GET_PROP_MESSAGES(arg)	"messages", __extension__ ({const GSList * *z = (arg); z;})
 #define MN_MAILBOX_PROP_ERROR(arg)    	"error", __extension__ ({gchar *z = (arg); z;})
 #define MN_MAILBOX_GET_PROP_ERROR(arg)	"error", __extension__ ({gchar **z = (arg); z;})
 #else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_MAILBOX_PROP_URI(arg)    	"uri",(GObject *)(arg)
 #define MN_MAILBOX_PROP_NAME(arg)    	"name",(gchar *)(arg)
 #define MN_MAILBOX_GET_PROP_NAME(arg)	"name",(gchar **)(arg)
+#define MN_MAILBOX_PROP_STOCK_ID(arg)    	"stock_id",(gchar *)(arg)
+#define MN_MAILBOX_GET_PROP_STOCK_ID(arg)	"stock_id",(gchar **)(arg)
+#define MN_MAILBOX_PROP_FORMAT(arg)    	"format",(gchar *)(arg)
+#define MN_MAILBOX_GET_PROP_FORMAT(arg)	"format",(gchar **)(arg)
 #define MN_MAILBOX_PROP_MUST_POLL(arg)    	"must_poll",(gboolean )(arg)
 #define MN_MAILBOX_GET_PROP_MUST_POLL(arg)	"must_poll",(gboolean *)(arg)
-#define MN_MAILBOX_PROP_MESSAGES(arg)    	"messages",(gpointer )(arg)
-#define MN_MAILBOX_GET_PROP_MESSAGES(arg)	"messages",(gpointer *)(arg)
+#define MN_MAILBOX_PROP_MESSAGES(arg)    	"messages",(const GSList * )(arg)
+#define MN_MAILBOX_GET_PROP_MESSAGES(arg)	"messages",(const GSList * *)(arg)
 #define MN_MAILBOX_PROP_ERROR(arg)    	"error",(gchar *)(arg)
 #define MN_MAILBOX_GET_PROP_ERROR(arg)	"error",(gchar **)(arg)
 #endif /* __GNUC__ && !__STRICT_ANSI__ */
diff --git a/src/mn-mailboxes-private.h b/src/mn-mailboxes-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_MAILBOXES_PRIVATE_H__
 #define __MN_MAILBOXES_PRIVATE_H__
@@ -10,11 +10,15 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNMailboxesPrivate {
-#line 36 "mn-mailboxes.gob"
-	GSList * list;
-#line 37 "mn-mailboxes.gob"
+#line 43 "mn-mailboxes.gob"
 	unsigned int timeout_id;
-#line 18 "mn-mailboxes-private.h"
+#line 45 "mn-mailboxes.gob"
+	GSList * add_queue;
+#line 46 "mn-mailboxes.gob"
+	GSList * remove_queue;
+#line 47 "mn-mailboxes.gob"
+	unsigned int queue_idle_id;
+#line 22 "mn-mailboxes-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-mailboxes.c b/src/mn-mailboxes.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,17 +23,21 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-mailboxes.gob"
+#line 25 "mn-mailboxes.gob"
 
 #include "config.h"
+#include <unistd.h>
+#include <stdarg.h>
 #include <glib/gi18n.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
 #include <eel/eel.h>
 #include "mn-conf.h"
 #include "mn-util.h"
-#include "mn-pending-mailbox.h"
-#include "mn-unsupported-mailbox.h"
+#include "mn-message.h"
+#include "mn-mailbox-private.h"
 
-#line 37 "mn-mailboxes.c"
+#line 41 "mn-mailboxes.c"
 /* self casting macros */
 #define SELF(x) MN_MAILBOXES(x)
 #define SELF_CONST(x) MN_MAILBOXES_CONST(x)
@@ -50,10 +54,11 @@ typedef MNMailboxesClass SelfClass;
 /* here are local prototypes */
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void mn_mailboxes_class_init (MNMailboxesClass * c) G_GNUC_UNUSED;
+static void ___real_mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox);
 static void mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
 static void ___real_mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox);
 static void mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify (MNMailboxes * self, MNMailbox * mailbox, GParamSpec * pspec) G_GNUC_UNUSED;
 static void ___real_mn_mailboxes_list_changed (MNMailboxes * self);
 static void mn_mailboxes_list_changed (MNMailboxes * self) G_GNUC_UNUSED;
 static void mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new) G_GNUC_UNUSED;
@@ -61,16 +66,18 @@ static void mn_mailboxes_error_changed (MNMailboxes * self) G_GNUC_UNUSED;
 static void mn_mailboxes_init (MNMailboxes * self) G_GNUC_UNUSED;
 static void ___9_mn_mailboxes_finalize (GObject * object) G_GNUC_UNUSED;
 static void mn_mailboxes_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_notify_mailboxes_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_update_from_conf (MNMailboxes * self) G_GNUC_UNUSED;
-static void mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
-static void mn_mailboxes_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_add_error (GString ** errors, int * n_errors, const char * format, ...) G_GNUC_UNUSED;
+static gboolean mn_mailboxes_load_real (MNMailboxes * self, GError ** err) G_GNUC_UNUSED;
+static gboolean mn_mailboxes_save_real (MNMailboxes * self, GError ** err) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
+static void mn_mailboxes_mailbox_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
 static void mn_mailboxes_install_timeout (MNMailboxes * self) G_GNUC_UNUSED;
 static gboolean mn_mailboxes_timeout_cb (gpointer data) G_GNUC_UNUSED;
-static int mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
-static int mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
+static void mn_mailboxes_add_real (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_mailboxes_remove_real (MNMailboxes * self, MNMailbox * mailbox) G_GNUC_UNUSED;
+static gboolean mn_mailboxes_queue_idle_cb (gpointer data) G_GNUC_UNUSED;
 
 /*
  * Signal connection wrapper macro shortcuts
@@ -78,12 +85,12 @@ static int mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b
 #define self_connect__mailbox_added(object,func,data)	mn_mailboxes_connect__mailbox_added((object),(func),(data))
 #define self_connect_after__mailbox_added(object,func,data)	mn_mailboxes_connect_after__mailbox_added((object),(func),(data))
 #define self_connect_data__mailbox_added(object,func,data,destroy_data,flags)	mn_mailboxes_connect_data__mailbox_added((object),(func),(data),(destroy_data),(flags))
-#define self_connect__mailbox_changed(object,func,data)	mn_mailboxes_connect__mailbox_changed((object),(func),(data))
-#define self_connect_after__mailbox_changed(object,func,data)	mn_mailboxes_connect_after__mailbox_changed((object),(func),(data))
-#define self_connect_data__mailbox_changed(object,func,data,destroy_data,flags)	mn_mailboxes_connect_data__mailbox_changed((object),(func),(data),(destroy_data),(flags))
 #define self_connect__mailbox_removed(object,func,data)	mn_mailboxes_connect__mailbox_removed((object),(func),(data))
 #define self_connect_after__mailbox_removed(object,func,data)	mn_mailboxes_connect_after__mailbox_removed((object),(func),(data))
 #define self_connect_data__mailbox_removed(object,func,data,destroy_data,flags)	mn_mailboxes_connect_data__mailbox_removed((object),(func),(data),(destroy_data),(flags))
+#define self_connect__mailbox_notify(object,func,data)	mn_mailboxes_connect__mailbox_notify((object),(func),(data))
+#define self_connect_after__mailbox_notify(object,func,data)	mn_mailboxes_connect_after__mailbox_notify((object),(func),(data))
+#define self_connect_data__mailbox_notify(object,func,data,destroy_data,flags)	mn_mailboxes_connect_data__mailbox_notify((object),(func),(data),(destroy_data),(flags))
 #define self_connect__list_changed(object,func,data)	mn_mailboxes_connect__list_changed((object),(func),(data))
 #define self_connect_after__list_changed(object,func,data)	mn_mailboxes_connect_after__list_changed((object),(func),(data))
 #define self_connect_data__list_changed(object,func,data,destroy_data,flags)	mn_mailboxes_connect_data__list_changed((object),(func),(data),(destroy_data),(flags))
@@ -126,7 +133,7 @@ ___marshal_Sig1 (GClosure *closure,
 }
 
 
-typedef void  (*___Sig2) (MNMailboxes *, gboolean , gpointer);
+typedef void  (*___Sig2) (MNMailboxes *, GObject *, gpointer , gpointer);
 
 static void
 ___marshal_Sig2 (GClosure *closure,
@@ -140,7 +147,7 @@ ___marshal_Sig2 (GClosure *closure,
 	register GCClosure *cc = (GCClosure*) closure;
 	register gpointer data1, data2;
 
-	g_return_if_fail (n_param_values == 2);
+	g_return_if_fail (n_param_values == 3);
 
 	if (G_CCLOSURE_SWAP_DATA (closure)) {
 		data1 = closure->data;
@@ -153,6 +160,39 @@ ___marshal_Sig2 (GClosure *closure,
 	callback = (___Sig2) (marshal_data != NULL ? marshal_data : cc->callback);
 
 	callback ((MNMailboxes *)data1,
+		(GObject *) g_value_get_object (param_values + 1),
+		(gpointer ) g_value_get_pointer (param_values + 2),
+		data2);
+}
+
+
+typedef void  (*___Sig3) (MNMailboxes *, gboolean , gpointer);
+
+static void
+___marshal_Sig3 (GClosure *closure,
+	GValue *return_value G_GNUC_UNUSED,
+	guint n_param_values,
+	const GValue *param_values,
+	gpointer invocation_hint G_GNUC_UNUSED,
+	gpointer marshal_data)
+{
+	register ___Sig3 callback;
+	register GCClosure *cc = (GCClosure*) closure;
+	register gpointer data1, data2;
+
+	g_return_if_fail (n_param_values == 2);
+
+	if (G_CCLOSURE_SWAP_DATA (closure)) {
+		data1 = closure->data;
+		data2 = g_value_peek_pointer (param_values + 0);
+	} else {
+		data1 = g_value_peek_pointer (param_values + 0);
+		data2 = closure->data;
+	}
+
+	callback = (___Sig3) (marshal_data != NULL ? marshal_data : cc->callback);
+
+	callback ((MNMailboxes *)data1,
 		(gboolean ) g_value_get_boolean (param_values + 1),
 		data2);
 }
@@ -160,8 +200,8 @@ ___marshal_Sig2 (GClosure *closure,
 
 enum {
 	MAILBOX_ADDED_SIGNAL,
-	MAILBOX_CHANGED_SIGNAL,
 	MAILBOX_REMOVED_SIGNAL,
+	MAILBOX_NOTIFY_SIGNAL,
 	LIST_CHANGED_SIGNAL,
 	MESSAGES_CHANGED_SIGNAL,
 	ERROR_CHANGED_SIGNAL,
@@ -180,29 +220,34 @@ static GObjectClass *parent_class = NULL;
 
 /* Short form macros */
 #define self_mailbox_added mn_mailboxes_mailbox_added
-#define self_mailbox_changed mn_mailboxes_mailbox_changed
 #define self_mailbox_removed mn_mailboxes_mailbox_removed
+#define self_mailbox_notify mn_mailboxes_mailbox_notify
 #define self_list_changed mn_mailboxes_list_changed
 #define self_messages_changed mn_mailboxes_messages_changed
 #define self_error_changed mn_mailboxes_error_changed
 #define self_get_must_poll mn_mailboxes_get_must_poll
 #define self_notify_delay_cb mn_mailboxes_notify_delay_cb
-#define self_notify_mailboxes_cb mn_mailboxes_notify_mailboxes_cb
-#define self_update_from_conf mn_mailboxes_update_from_conf
-#define self_new_cb mn_mailboxes_new_cb
-#define self_messages_changed_h mn_mailboxes_messages_changed_h
-#define self_notify_error_h mn_mailboxes_notify_error_h
-#define self_notify_must_poll_h mn_mailboxes_notify_must_poll_h
+#define self_load mn_mailboxes_load
+#define self_add_error mn_mailboxes_add_error
+#define self_load_real mn_mailboxes_load_real
+#define self_save mn_mailboxes_save
+#define self_save_real mn_mailboxes_save_real
+#define self_mailbox_messages_changed_h mn_mailboxes_mailbox_messages_changed_h
+#define self_mailbox_notify_h mn_mailboxes_mailbox_notify_h
+#define self_mailbox_notify_error_h mn_mailboxes_mailbox_notify_error_h
+#define self_mailbox_notify_must_poll_h mn_mailboxes_mailbox_notify_must_poll_h
 #define self_install_timeout mn_mailboxes_install_timeout
 #define self_timeout_cb mn_mailboxes_timeout_cb
 #define self_check mn_mailboxes_check
-#define self_get mn_mailboxes_get
 #define self_get_messages mn_mailboxes_get_messages
-#define self_find mn_mailboxes_find
-#define self_find_uri mn_mailboxes_find_uri
-#define self_find_compare_func mn_mailboxes_find_compare_func
-#define self_conf_find_uri mn_mailboxes_conf_find_uri
-#define self_conf_find_compare_func mn_mailboxes_conf_find_compare_func
+#define self_add_real mn_mailboxes_add_real
+#define self_add mn_mailboxes_add
+#define self_queue_add mn_mailboxes_queue_add
+#define self_remove_real mn_mailboxes_remove_real
+#define self_remove mn_mailboxes_remove
+#define self_queue_remove mn_mailboxes_queue_remove
+#define self_queue_idle_cb mn_mailboxes_queue_idle_cb
+#define self_compare_by_name_func mn_mailboxes_compare_by_name_func
 #define self_new mn_mailboxes_new
 GType
 mn_mailboxes_get_type (void)
@@ -253,12 +298,18 @@ ___finalize(GObject *obj_self)
 #define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
 	MNMailboxes *self G_GNUC_UNUSED = MN_MAILBOXES (obj_self);
 	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 156 "mn-mailboxes.gob"
+#line 215 "mn-mailboxes.gob"
 	___9_mn_mailboxes_finalize(obj_self);
-#line 259 "mn-mailboxes.c"
-#line 36 "mn-mailboxes.gob"
-	if(self->_priv->list) { mn_g_object_slist_free ((gpointer) self->_priv->list); self->_priv->list = NULL; }
-#line 262 "mn-mailboxes.c"
+#line 304 "mn-mailboxes.c"
+#line 41 "mn-mailboxes.gob"
+	if(self->list) { eel_g_object_list_free ((gpointer) self->list); self->list = NULL; }
+#line 307 "mn-mailboxes.c"
+#line 45 "mn-mailboxes.gob"
+	if(self->_priv->add_queue) { mn_g_object_slist_free ((gpointer) self->_priv->add_queue); self->_priv->add_queue = NULL; }
+#line 310 "mn-mailboxes.c"
+#line 46 "mn-mailboxes.gob"
+	if(self->_priv->remove_queue) { mn_g_object_slist_free ((gpointer) self->_priv->remove_queue); self->_priv->remove_queue = NULL; }
+#line 313 "mn-mailboxes.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -275,26 +326,14 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 	object_signals[MAILBOX_ADDED_SIGNAL] =
 		g_signal_new ("mailbox_added",
 			G_TYPE_FROM_CLASS (g_object_class),
-			(GSignalFlags)(G_SIGNAL_RUN_LAST),
+			(GSignalFlags)(G_SIGNAL_RUN_FIRST),
 			G_STRUCT_OFFSET (MNMailboxesClass, mailbox_added),
 			NULL, NULL,
 			___marshal_Sig1,
 			G_TYPE_NONE, 1,
 			G_TYPE_OBJECT);
 	if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailboxes.gob line 46: Type mismatch of \"mailbox_added\" signal signature");
-	}
-	object_signals[MAILBOX_CHANGED_SIGNAL] =
-		g_signal_new ("mailbox_changed",
-			G_TYPE_FROM_CLASS (g_object_class),
-			(GSignalFlags)(G_SIGNAL_RUN_LAST),
-			G_STRUCT_OFFSET (MNMailboxesClass, mailbox_changed),
-			NULL, NULL,
-			___marshal_Sig1,
-			G_TYPE_NONE, 1,
-			G_TYPE_OBJECT);
-	if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailboxes.gob line 56: Type mismatch of \"mailbox_changed\" signal signature");
+		g_error("mn-mailboxes.gob line 56: Type mismatch of \"mailbox_added\" signal signature");
 	}
 	object_signals[MAILBOX_REMOVED_SIGNAL] =
 		g_signal_new ("mailbox_removed",
@@ -306,7 +345,20 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 			G_TYPE_NONE, 1,
 			G_TYPE_OBJECT);
 	if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailboxes.gob line 67: Type mismatch of \"mailbox_removed\" signal signature");
+		g_error("mn-mailboxes.gob line 78: Type mismatch of \"mailbox_removed\" signal signature");
+	}
+	object_signals[MAILBOX_NOTIFY_SIGNAL] =
+		g_signal_new ("mailbox_notify",
+			G_TYPE_FROM_CLASS (g_object_class),
+			(GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED),
+			G_STRUCT_OFFSET (MNMailboxesClass, mailbox_notify),
+			NULL, NULL,
+			___marshal_Sig2,
+			G_TYPE_NONE, 2,
+			G_TYPE_OBJECT,
+			G_TYPE_POINTER);
+	if ___GOB_UNLIKELY(sizeof(MNMailbox * ) != sizeof(GObject *) || sizeof(GParamSpec * ) != sizeof(gpointer ) || parent_class == NULL /* avoid warning */) {
+		g_error("mn-mailboxes.gob line 97: Type mismatch of \"mailbox_notify\" signal signature");
 	}
 	object_signals[LIST_CHANGED_SIGNAL] =
 		g_signal_new ("list_changed",
@@ -322,11 +374,11 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 			(GSignalFlags)(G_SIGNAL_RUN_LAST),
 			G_STRUCT_OFFSET (MNMailboxesClass, messages_changed),
 			NULL, NULL,
-			___marshal_Sig2,
+			___marshal_Sig3,
 			G_TYPE_NONE, 1,
 			G_TYPE_BOOLEAN);
 	if ___GOB_UNLIKELY(sizeof(gboolean ) != sizeof(gboolean ) || parent_class == NULL /* avoid warning */) {
-		g_error("mn-mailboxes.gob line 115: Type mismatch of \"messages_changed\" signal signature");
+		g_error("mn-mailboxes.gob line 132: Type mismatch of \"messages_changed\" signal signature");
 	}
 	object_signals[ERROR_CHANGED_SIGNAL] =
 		g_signal_new ("error_changed",
@@ -337,18 +389,20 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 			g_cclosure_marshal_VOID__VOID,
 			G_TYPE_NONE, 0);
 
-	c->mailbox_added = NULL;
-	c->mailbox_changed = NULL;
-#line 67 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
+	c->mailbox_added = ___real_mn_mailboxes_mailbox_added;
+#line 78 "mn-mailboxes.gob"
 	c->mailbox_removed = ___real_mn_mailboxes_mailbox_removed;
-#line 93 "mn-mailboxes.gob"
+#line 397 "mn-mailboxes.c"
+	c->mailbox_notify = NULL;
+#line 110 "mn-mailboxes.gob"
 	c->list_changed = ___real_mn_mailboxes_list_changed;
-#line 347 "mn-mailboxes.c"
+#line 401 "mn-mailboxes.c"
 	c->messages_changed = NULL;
 	c->error_changed = NULL;
-#line 156 "mn-mailboxes.gob"
+#line 215 "mn-mailboxes.gob"
 	g_object_class->finalize = ___finalize;
-#line 352 "mn-mailboxes.c"
+#line 406 "mn-mailboxes.c"
 	g_object_class->get_property = ___object_get_property;
     {
 	GParamSpec   *param_spec;
@@ -356,7 +410,7 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
 	param_spec = g_param_spec_boolean
 		("must_poll" /* name */,
 		 NULL /* nick */,
-		 _("Whether one or more of the mailboxes has to be polled") /* blurb */,
+		 NULL /* blurb */,
 		 FALSE /* default_value */,
 		 (GParamFlags)(G_PARAM_READABLE));
 	g_object_class_install_property (g_object_class,
@@ -365,23 +419,62 @@ mn_mailboxes_class_init (MNMailboxesClass * c G_GNUC_UNUSED)
     }
 }
 #undef __GOB_FUNCTION__
-#line 147 "mn-mailboxes.gob"
+#line 167 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_init (MNMailboxes * self G_GNUC_UNUSED)
-#line 372 "mn-mailboxes.c"
+#line 426 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::init"
-	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNMailboxesPrivate);
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAILBOXES,MNMailboxesPrivate);
  {
-#line 148 "mn-mailboxes.gob"
+#line 168 "mn-mailboxes.gob"
+
+    char *filename;
+    gboolean exists;
+
+    filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+    exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+    g_free(filename);
+
+    if (exists)
+      self_load(self);
+    else if (mn_conf_is_set(MN_CONF_OBSOLETE_MAILBOXES))
+      {
+	GSList *gconf_mailboxes;
+	GSList *l;
+	GSList *invalid_uri_list = NULL;
+
+	gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_OBSOLETE_MAILBOXES);
+	MN_LIST_FOREACH(l, gconf_mailboxes)
+	  {
+	    const char *uri = l->data;
+	    MNMailbox *mailbox;
+
+	    mailbox = mn_mailbox_new_from_obsolete_uri(uri);
+	    if (mailbox)
+	      {
+		mn_mailbox_seal(mailbox);
+		self_queue_add(self, mailbox);
+		g_object_unref(mailbox);
+	      }
+	    else
+	      invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+	  }
+
+	if (invalid_uri_list)
+	  {
+	    mn_invalid_uri_list_dialog(NULL, _("An error has occurred while importing old mailboxes"), invalid_uri_list);
+	    g_slist_free(invalid_uri_list);
+	  }
+	
+	eel_g_slist_free_deep(gconf_mailboxes);
+      }
 
-    self_update_from_conf(self);
     self_install_timeout(self);
 
     mn_conf_notification_add(self, MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
-    mn_conf_notification_add(self, MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
   
-#line 385 "mn-mailboxes.c"
+#line 478 "mn-mailboxes.c"
  }
 }
 #undef __GOB_FUNCTION__
@@ -400,21 +493,25 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_MUST_POLL:
 		{
-#line 133 "mn-mailboxes.gob"
+#line 149 "mn-mailboxes.gob"
 
       gboolean must_poll = FALSE;
-      GSList *l;
+      GList *l;
 
-      MN_LIST_FOREACH(l, selfp->list)
-	if (MN_MAILBOX_MUST_POLL(l->data))
-	  {
-	    must_poll = TRUE;
-	    break;
-	  }
+      MN_LIST_FOREACH(l, self->list)
+	{
+	  MNMailbox *mailbox = l->data;
+
+	  if (mailbox->must_poll)
+	    {
+	      must_poll = TRUE;
+	      break;
+	    }
+	}
 
       g_value_set_boolean(VAL, must_poll);
     
-#line 418 "mn-mailboxes.c"
+#line 515 "mn-mailboxes.c"
 		}
 		break;
 	default:
@@ -430,10 +527,10 @@ ___object_get_property (GObject *object,
 #undef __GOB_FUNCTION__
 
 
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox)
-#line 437 "mn-mailboxes.c"
+#line 534 "mn-mailboxes.c"
 {
 	GValue ___param_values[2];
 	GValue ___return_val;
@@ -441,15 +538,15 @@ mn_mailboxes_mailbox_added (MNMailboxes * self, MNMailbox * mailbox)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 46 "mn-mailboxes.gob"
+#line 56 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 453 "mn-mailboxes.c"
+#line 550 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -467,11 +564,32 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[0]);
 	g_value_unset (&___param_values[1]);
 }
-
 #line 56 "mn-mailboxes.gob"
 static void 
-mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox)
-#line 475 "mn-mailboxes.c"
+___real_mn_mailboxes_mailbox_added (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 571 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_added"
+{
+#line 58 "mn-mailboxes.gob"
+	
+    /* connect signals */
+    g_object_connect(mailbox,
+		     "signal::messages-changed", self_mailbox_messages_changed_h, self,
+		     "signal::notify", self_mailbox_notify_h, self,
+		     "signal::notify::error", self_mailbox_notify_error_h, self,
+		     "signal::notify::must-poll", self_mailbox_notify_must_poll_h, self,
+		     NULL);
+
+    mn_mailbox_check(mailbox);
+  }}
+#line 587 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 78 "mn-mailboxes.gob"
+static void 
+mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox)
+#line 593 "mn-mailboxes.c"
 {
 	GValue ___param_values[2];
 	GValue ___return_val;
@@ -479,15 +597,15 @@ mn_mailboxes_mailbox_changed (MNMailboxes * self, MNMailbox * mailbox)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 56 "mn-mailboxes.gob"
+#line 78 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 491 "mn-mailboxes.c"
+#line 609 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -498,34 +616,62 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_set_object (&___param_values[1], (GObject *) mailbox);
 
 	g_signal_emitv (___param_values,
-		object_signals[MAILBOX_CHANGED_SIGNAL],
+		object_signals[MAILBOX_REMOVED_SIGNAL],
 		0 /* detail */,
 		&___return_val);
 
 	g_value_unset (&___param_values[0]);
 	g_value_unset (&___param_values[1]);
 }
+#line 78 "mn-mailboxes.gob"
+static void 
+___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 630 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_removed"
+{
+#line 80 "mn-mailboxes.gob"
+	
+    /* disconnect signals */
+    g_object_disconnect(mailbox,
+			"any-signal", self_mailbox_messages_changed_h, self,
+			"any-signal", self_mailbox_notify_h, self,
+			"any-signal", self_mailbox_notify_error_h, self,
+			"any-signal", self_mailbox_notify_must_poll_h, self,
+			NULL);
+
+    /* emit the "removed" signal on the mailbox */
+    mn_mailbox_removed(mailbox);
+
+    /* messages and error have possibly changed */
+    self_messages_changed(self, FALSE);
+    self_error_changed(self);
+  }}
+#line 651 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
 
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
 static void 
-mn_mailboxes_mailbox_removed (MNMailboxes * self, MNMailbox * mailbox)
-#line 513 "mn-mailboxes.c"
+mn_mailboxes_mailbox_notify (MNMailboxes * self, MNMailbox * mailbox, GParamSpec * pspec)
+#line 657 "mn-mailboxes.c"
 {
-	GValue ___param_values[2];
+	GValue ___param_values[3];
 	GValue ___return_val;
 
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
 	g_return_if_fail (mailbox != NULL);
-#line 67 "mn-mailboxes.gob"
+#line 97 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 529 "mn-mailboxes.c"
+#line 97 "mn-mailboxes.gob"
+	g_return_if_fail (pspec != NULL);
+#line 675 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -535,44 +681,24 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_init (&___param_values[1], G_TYPE_OBJECT);
 	g_value_set_object (&___param_values[1], (GObject *) mailbox);
 
+	___param_values[2].g_type = 0;
+	g_value_init (&___param_values[2], G_TYPE_POINTER);
+	g_value_set_pointer (&___param_values[2], (gpointer ) pspec);
+
 	g_signal_emitv (___param_values,
-		object_signals[MAILBOX_REMOVED_SIGNAL],
+		object_signals[MAILBOX_NOTIFY_SIGNAL],
 		0 /* detail */,
 		&___return_val);
 
 	g_value_unset (&___param_values[0]);
 	g_value_unset (&___param_values[1]);
+	g_value_unset (&___param_values[2]);
 }
-#line 67 "mn-mailboxes.gob"
-static void 
-___real_mn_mailboxes_mailbox_removed (MNMailboxes * self G_GNUC_UNUSED, MNMailbox * mailbox)
-#line 550 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_removed"
-{
-#line 69 "mn-mailboxes.gob"
-	
-    /* disconnect signals */
-    g_object_disconnect(mailbox,
-			"any-signal", self_messages_changed_h, self,
-			"any-signal", self_notify_error_h, self,
-			"any-signal", self_notify_must_poll_h, self,
-			NULL);
-
-    /* emit the "removed" signal on the mailbox */
-    mn_mailbox_removed(mailbox);
-
-    /* messages and error have possibly changed */
-    self_messages_changed(self, FALSE);
-    self_error_changed(self);
-  }}
-#line 570 "mn-mailboxes.c"
-#undef __GOB_FUNCTION__
 
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_list_changed (MNMailboxes * self)
-#line 576 "mn-mailboxes.c"
+#line 702 "mn-mailboxes.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -580,11 +706,11 @@ mn_mailboxes_list_changed (MNMailboxes * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 588 "mn-mailboxes.c"
+#line 714 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -597,25 +723,25 @@ memset (&___param_values, 0, sizeof (___param_values));
 
 	g_value_unset (&___param_values[0]);
 }
-#line 93 "mn-mailboxes.gob"
+#line 110 "mn-mailboxes.gob"
 static void 
 ___real_mn_mailboxes_list_changed (MNMailboxes * self G_GNUC_UNUSED)
-#line 604 "mn-mailboxes.c"
+#line 730 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::list_changed"
 {
-#line 95 "mn-mailboxes.gob"
+#line 112 "mn-mailboxes.gob"
 	
     /* must-poll has possibly changed */
     g_object_notify(G_OBJECT(self), "must-poll");
   }}
-#line 613 "mn-mailboxes.c"
+#line 739 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 115 "mn-mailboxes.gob"
+#line 132 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
-#line 619 "mn-mailboxes.c"
+#line 745 "mn-mailboxes.c"
 {
 	GValue ___param_values[2];
 	GValue ___return_val;
@@ -623,11 +749,11 @@ mn_mailboxes_messages_changed (MNMailboxes * self, gboolean has_new)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 115 "mn-mailboxes.gob"
+#line 132 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 115 "mn-mailboxes.gob"
+#line 132 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 631 "mn-mailboxes.c"
+#line 757 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -646,10 +772,10 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[1]);
 }
 
-#line 127 "mn-mailboxes.gob"
+#line 144 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_error_changed (MNMailboxes * self)
-#line 653 "mn-mailboxes.c"
+#line 779 "mn-mailboxes.c"
 {
 	GValue ___param_values[1];
 	GValue ___return_val;
@@ -657,11 +783,11 @@ mn_mailboxes_error_changed (MNMailboxes * self)
 memset (&___return_val, 0, sizeof (___return_val));
 memset (&___param_values, 0, sizeof (___param_values));
 
-#line 127 "mn-mailboxes.gob"
+#line 144 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 127 "mn-mailboxes.gob"
+#line 144 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 665 "mn-mailboxes.c"
+#line 791 "mn-mailboxes.c"
 
 	___param_values[0].g_type = 0;
 	g_value_init (&___param_values[0], G_TYPE_FROM_INSTANCE (self));
@@ -675,59 +801,53 @@ memset (&___param_values, 0, sizeof (___param_values));
 	g_value_unset (&___param_values[0]);
 }
 
-#line 133 "mn-mailboxes.gob"
+#line 149 "mn-mailboxes.gob"
 gboolean 
 mn_mailboxes_get_must_poll (MNMailboxes * self)
-#line 682 "mn-mailboxes.c"
+#line 808 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::get_must_poll"
 {
-#line 130 "mn-mailboxes.gob"
+#line 147 "mn-mailboxes.gob"
 		gboolean val; g_object_get (G_OBJECT (self), "must_poll", &val, NULL); return val;
 }}
-#line 689 "mn-mailboxes.c"
+#line 815 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
 
-#line 156 "mn-mailboxes.gob"
+#line 215 "mn-mailboxes.gob"
 static void 
 ___9_mn_mailboxes_finalize (GObject * object G_GNUC_UNUSED)
-#line 696 "mn-mailboxes.c"
+#line 822 "mn-mailboxes.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::finalize"
-#line 156 "mn-mailboxes.gob"
-	g_return_if_fail (object != NULL);
-#line 156 "mn-mailboxes.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 706 "mn-mailboxes.c"
 {
-#line 158 "mn-mailboxes.gob"
+#line 217 "mn-mailboxes.gob"
 	
     Self *self = SELF(object);
 
     if (selfp->timeout_id)
       g_source_remove(selfp->timeout_id);
+    if (selfp->queue_idle_id)
+      g_source_remove(selfp->queue_idle_id);
 
     PARENT_HANDLER(object);
   }}
-#line 717 "mn-mailboxes.c"
+#line 840 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 167 "mn-mailboxes.gob"
+#line 228 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 724 "mn-mailboxes.c"
+#line 847 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::notify_delay_cb"
-#line 167 "mn-mailboxes.gob"
-	g_return_if_fail (user_data != NULL);
-#line 729 "mn-mailboxes.c"
 {
-#line 172 "mn-mailboxes.gob"
+#line 233 "mn-mailboxes.gob"
 	
     Self *self = user_data;
 
@@ -735,264 +855,387 @@ mn_mailboxes_notify_delay_cb (GConfClient * client, unsigned int cnxn_id, GConfE
     self_install_timeout(self);
     GDK_THREADS_LEAVE();
   }}
-#line 739 "mn-mailboxes.c"
+#line 859 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 180 "mn-mailboxes.gob"
-static void 
-mn_mailboxes_notify_mailboxes_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 745 "mn-mailboxes.c"
+#line 241 "mn-mailboxes.gob"
+void 
+mn_mailboxes_load (MNMailboxes * self)
+#line 865 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::notify_mailboxes_cb"
-#line 180 "mn-mailboxes.gob"
-	g_return_if_fail (user_data != NULL);
-#line 750 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::load"
+#line 241 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 241 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 872 "mn-mailboxes.c"
 {
-#line 185 "mn-mailboxes.gob"
+#line 243 "mn-mailboxes.gob"
 	
-    Self *self = user_data;
+    GError *err = NULL;
 
-    GDK_THREADS_ENTER();
-    self_update_from_conf(self);
-    GDK_THREADS_LEAVE();
+    if (! self_load_real(self, &err))
+      {
+	mn_error_dialog(NULL, NULL, NULL, _("Unable to load the mailboxes configuration"), "%s", err->message);
+	g_error_free(err);
+      }
   }}
-#line 760 "mn-mailboxes.c"
+#line 884 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 193 "mn-mailboxes.gob"
+#line 253 "mn-mailboxes.gob"
 static void 
-mn_mailboxes_update_from_conf (MNMailboxes * self)
-#line 766 "mn-mailboxes.c"
+mn_mailboxes_add_error (GString ** errors, int * n_errors, const char * format, ...)
+#line 890 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::update_from_conf"
-#line 193 "mn-mailboxes.gob"
-	g_return_if_fail (self != NULL);
-#line 193 "mn-mailboxes.gob"
-	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 773 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::add_error"
+#line 253 "mn-mailboxes.gob"
+	g_return_if_fail (errors != NULL);
+#line 253 "mn-mailboxes.gob"
+	g_return_if_fail (n_errors != NULL);
+#line 897 "mn-mailboxes.c"
 {
-#line 195 "mn-mailboxes.gob"
+#line 257 "mn-mailboxes.gob"
 	
-    GSList *gconf_mailboxes;
-    GSList *l;
-    gboolean changed = FALSE;
+    va_list args;
+    char *message;
 
-    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
+    if (*errors)
+      g_string_append_c(*errors, '\n');
+    else
+      *errors = g_string_new(NULL);
 
-    /* first step: remove old mailboxes */
+    va_start(args, format);
+    message = g_strdup_vprintf(format, args);
+    va_end(args);
 
-  loop:
-    MN_LIST_FOREACH(l, selfp->list)
-      {
-	MNMailbox *mailbox = l->data;
+    g_string_append(*errors, message);
+    g_free(message);
 
-	if (! self_conf_find_uri(gconf_mailboxes, mailbox->uri))
-	  {
-	    selfp->list = g_slist_delete_link(selfp->list, l);
+    (*n_errors)++;
+  }}
+#line 918 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
 
-	    self_mailbox_removed(self, mailbox);
-	    g_object_unref(mailbox);
+#line 276 "mn-mailboxes.gob"
+static gboolean 
+mn_mailboxes_load_real (MNMailboxes * self, GError ** err)
+#line 924 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::load_real"
+#line 276 "mn-mailboxes.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 276 "mn-mailboxes.gob"
+	g_return_val_if_fail (MN_IS_MAILBOXES (self), (gboolean )0);
+#line 931 "mn-mailboxes.c"
+{
+#line 278 "mn-mailboxes.gob"
+	
+    char *filename;
+    xmlDoc *doc;
+    xmlNode *root;
+    xmlNode *node;
+    gboolean list_changed = FALSE;
+    gboolean status = TRUE;
+    GString *errors = NULL;
+    int n_errors = 0;
+
+    filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+    doc = xmlParseFile(filename);
+    g_free(filename);
+
+    if (! doc)
+      {
+	g_set_error(err, 0, 0, _("Unable to parse the XML document."));
+	goto error;
+      }
+    
+    root = xmlDocGetRootElement(doc);
+    if (! root)
+      {
+	g_set_error(err, 0, 0, _("The root element is missing."));
+	goto error;
+      }
 
-	    changed = TRUE;
-	    goto loop;
-	  }
+    if (strcmp(root->name, "mailboxes"))
+      {
+	g_set_error(err, 0, 0, _("The root element \"%s\" is invalid."), root->name);
+	goto error;
       }
 
-    /* second step: add new mailboxes */
+    for (node = root->children; node; node = node->next)
+      if (node->type == XML_ELEMENT_NODE)
+	{
+	  if (! strcmp(node->name, "mailbox"))
+	    {
+	      MNMailbox *mailbox;
+	      GError *tmp_err = NULL;
+	  
+	      mailbox = mn_mailbox_new_from_xml_node(node, &tmp_err);
+	      if (mailbox)
+		{
+		  mn_mailbox_seal(mailbox);
+		  self_add_real(self, mailbox);
+		  g_object_unref(mailbox);
+		  
+		  list_changed = TRUE;
+		}
+	      else
+		{
+		  self_add_error(&errors, &n_errors, _("On line %i: %s."), node->line, tmp_err->message);
+		  g_error_free(tmp_err);
+		}
+	    }
+	  else
+	    self_add_error(&errors, &n_errors, _("On line %i: unknown element \"%s\"."), node->line, node->name);
+	}
+
+    if (list_changed)
+      self_list_changed(self);
 
-    MN_LIST_FOREACH(l, gconf_mailboxes)
+    if (errors)
       {
-	const char *text_uri = l->data;
-	MNURI *uri;
-      
-	uri = mn_uri_new(text_uri);
-	if (! self_find_uri(self, uri))
-	  {
-	    MNMailbox *mailbox;
+	mn_error_dialog(NULL,
+			NULL,
+			NULL,
+			ngettext("An error has occurred while loading the mailboxes configuration",
+				 "Errors have occurred while loading the mailboxes configuration",
+				 n_errors),
+			"%s", errors->str);
+	g_string_free(errors, TRUE);
+      }
+    
+    goto end;
 
-	    mailbox = mn_pending_mailbox_new(uri);
-	    selfp->list = g_slist_append(selfp->list, mailbox);
+  error:
+    status = FALSE;
 
-	    self_mailbox_added(self, mailbox);
-	    changed = TRUE;
-	    
-	    mn_mailbox_new_async(uri, self_new_cb, self);
-	  }
-	g_object_unref(uri);
-      }
+  end:
+    xmlFreeDoc(doc);
 
-    eel_g_slist_free_deep(gconf_mailboxes);
-    if (changed)
-      self_list_changed(self);
+    return status;
   }}
-#line 829 "mn-mailboxes.c"
+#line 1019 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 249 "mn-mailboxes.gob"
-static void 
-mn_mailboxes_new_cb (MNMailbox * mailbox, gpointer user_data)
-#line 835 "mn-mailboxes.c"
+#line 364 "mn-mailboxes.gob"
+void 
+mn_mailboxes_save (MNMailboxes * self)
+#line 1025 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::new_cb"
-#line 249 "mn-mailboxes.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 249 "mn-mailboxes.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 249 "mn-mailboxes.gob"
-	g_return_if_fail (user_data != NULL);
-#line 844 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::save"
+#line 364 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 364 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 1032 "mn-mailboxes.c"
 {
-#line 252 "mn-mailboxes.gob"
+#line 366 "mn-mailboxes.gob"
 	
-    Self *self = user_data;
-    GSList *elem;
+    GError *err = NULL;
 
-    elem = self_find_uri(self, mailbox->uri);
-    if (elem)
+    if (! self_save_real(self, &err))
       {
-	if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
-	  mn_info(_("%s is unsupported: %s"), mn_mailbox_get_name(mailbox), mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
+	mn_error_dialog(NULL, NULL, NULL, _("Unable to save the mailboxes configuration"), "%s", err->message);
+	g_error_free(err);
+      }
+  }}
+#line 1044 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 376 "mn-mailboxes.gob"
+static gboolean 
+mn_mailboxes_save_real (MNMailboxes * self, GError ** err)
+#line 1050 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::save_real"
+#line 376 "mn-mailboxes.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 376 "mn-mailboxes.gob"
+	g_return_val_if_fail (MN_IS_MAILBOXES (self), (gboolean )0);
+#line 1057 "mn-mailboxes.c"
+{
+#line 378 "mn-mailboxes.gob"
 	
-	g_object_connect(mailbox,
-			 "signal::messages-changed", self_messages_changed_h, self,
-			 "signal::notify::error", self_notify_error_h, self,
-			 "signal::notify::must-poll", self_notify_must_poll_h, self,
-			 NULL);
+    xmlDoc *doc;
+    xmlNode *root;
+    int indent;
+    GList *l;
+    char *filename;
+    char *tmp_filename;
+    char *old_filename;
+    int result;
+    gboolean old_exists;
+    gboolean status = TRUE;
+
+    indent = xmlIndentTreeOutput;
+    xmlIndentTreeOutput = 1;
+
+    doc = xmlNewDoc("1.0");
+    root = xmlNewNode(NULL, "mailboxes");
+    xmlDocSetRootElement(doc, root);
+
+    MN_LIST_FOREACH(l, self->list)
+      {
+	MNMailbox *mailbox = l->data;
+	xmlNode *node;
 
-	if (MN_MAILBOX_CAN_CHECK(mailbox))
-	  mn_mailbox_check(mailbox);
+	node = mn_mailbox_xml_node_new(mailbox);
+	xmlAddChild(root, node); /* owns node */
+      }
+    
+    filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+    tmp_filename = g_strconcat(filename, ".tmp", NULL);
+    old_filename = g_strconcat(filename, ".old", NULL);
+
+    result = xmlSaveFormatFile(tmp_filename, doc, 1);
+    xmlFreeDoc(doc);
 
-	g_object_unref(elem->data);
-	elem->data = mailbox;
+    xmlIndentTreeOutput = indent;
 
-	self_mailbox_changed(self, mailbox);
-	self_list_changed(self);
+    if (result < 0)
+      {
+	g_set_error(err, 0, 0, _("Unable to write the XML document."));
+	goto error;
       }
-    else
-      g_object_unref(mailbox);
+
+    old_exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+    if (old_exists)
+      {
+	if (! mn_rename(filename, old_filename, err))
+	  goto error;
+      }
+
+    if (! mn_rename(tmp_filename, filename, err))
+      goto error;
+
+    if (old_exists)
+      if (unlink(old_filename) < 0) /* non fatal */
+	g_warning(_("unable to delete %s: %s"), old_filename, g_strerror(errno));
+
+    goto end;			/* success */
+
+  error:
+    status = FALSE;
+
+  end:
+    g_free(filename);
+    g_free(tmp_filename);
+    g_free(old_filename);
+
+    return status;
   }}
-#line 875 "mn-mailboxes.c"
+#line 1129 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 281 "mn-mailboxes.gob"
+#line 448 "mn-mailboxes.gob"
 static void 
-mn_mailboxes_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data)
-#line 881 "mn-mailboxes.c"
+mn_mailboxes_mailbox_messages_changed_h (MNMailbox * mailbox, gboolean has_new, gpointer user_data)
+#line 1135 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::messages_changed_h"
-#line 281 "mn-mailboxes.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 281 "mn-mailboxes.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 281 "mn-mailboxes.gob"
-	g_return_if_fail (user_data != NULL);
-#line 890 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_messages_changed_h"
 {
-#line 285 "mn-mailboxes.gob"
+#line 452 "mn-mailboxes.gob"
 	
     Self *self = user_data;
     int n_messages;
 
-    n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+    n_messages = g_slist_length(mailbox->messages);
     mn_info(ngettext("%s has %i new message", "%s has %i new messages", n_messages),
-	    mn_mailbox_get_name(mailbox), n_messages);
+	    mailbox->runtime_name, n_messages);
     
     self_messages_changed(self, has_new);
   }}
-#line 903 "mn-mailboxes.c"
+#line 1150 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 296 "mn-mailboxes.gob"
+#line 463 "mn-mailboxes.gob"
 static void 
-mn_mailboxes_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 909 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::notify_error_h"
-#line 296 "mn-mailboxes.gob"
-	g_return_if_fail (object != NULL);
-#line 296 "mn-mailboxes.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 296 "mn-mailboxes.gob"
-	g_return_if_fail (pspec != NULL);
-#line 296 "mn-mailboxes.gob"
-	g_return_if_fail (user_data != NULL);
-#line 920 "mn-mailboxes.c"
+mn_mailboxes_mailbox_notify_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1156 "mn-mailboxes.c"
 {
-#line 300 "mn-mailboxes.gob"
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_notify_h"
+{
+#line 465 "mn-mailboxes.gob"
+	
+    Self *self = user_data;
+    char *detailed_signal;
+
+    detailed_signal = g_strconcat("mailbox-notify::", g_param_spec_get_name(pspec), NULL);
+    g_signal_emit_by_name(self, detailed_signal, object, pspec);
+    g_free(detailed_signal);
+  }}
+#line 1169 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 474 "mn-mailboxes.gob"
+static void 
+mn_mailboxes_mailbox_notify_error_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1175 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_notify_error_h"
+{
+#line 478 "mn-mailboxes.gob"
 	
     Self *self = user_data;
     MNMailbox *mailbox = MN_MAILBOX(object);
-    const char *error;
 
-    error = mn_mailbox_get_error(mailbox);
-    if (error)
-      mn_info(_("%s reported an error: %s"), mn_mailbox_get_name(mailbox), error);
+    if (mailbox->error)
+      mn_info(_("%s reported an error: %s"), mailbox->runtime_name, mailbox->error);
 
     self_error_changed(self);
   }}
-#line 934 "mn-mailboxes.c"
+#line 1189 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 312 "mn-mailboxes.gob"
+#line 488 "mn-mailboxes.gob"
 static void 
-mn_mailboxes_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 940 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::notify_must_poll_h"
-#line 312 "mn-mailboxes.gob"
-	g_return_if_fail (object != NULL);
-#line 312 "mn-mailboxes.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 312 "mn-mailboxes.gob"
-	g_return_if_fail (pspec != NULL);
-#line 312 "mn-mailboxes.gob"
-	g_return_if_fail (user_data != NULL);
-#line 951 "mn-mailboxes.c"
+mn_mailboxes_mailbox_notify_must_poll_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 1195 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::mailbox_notify_must_poll_h"
 {
-#line 316 "mn-mailboxes.gob"
+#line 492 "mn-mailboxes.gob"
 	
     Self *self = user_data;
 
     /* must-poll has possibly changed */
     g_object_notify(G_OBJECT(self), "must-poll");
   }}
-#line 960 "mn-mailboxes.c"
+#line 1206 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 323 "mn-mailboxes.gob"
+#line 499 "mn-mailboxes.gob"
 static void 
 mn_mailboxes_install_timeout (MNMailboxes * self)
-#line 966 "mn-mailboxes.c"
+#line 1212 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::install_timeout"
-#line 323 "mn-mailboxes.gob"
+#line 499 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 323 "mn-mailboxes.gob"
+#line 499 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 973 "mn-mailboxes.c"
+#line 1219 "mn-mailboxes.c"
 {
-#line 325 "mn-mailboxes.gob"
+#line 501 "mn-mailboxes.gob"
 	
-    mn_source_remove(&selfp->timeout_id);
+    mn_source_clear(&selfp->timeout_id);
     selfp->timeout_id = mn_timeout_add(MN_CONF_DELAY_MINUTES,
 				       MN_CONF_DELAY_SECONDS,
 				       self_timeout_cb,
 				       self);
   }}
-#line 983 "mn-mailboxes.c"
+#line 1229 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 333 "mn-mailboxes.gob"
+#line 509 "mn-mailboxes.gob"
 static gboolean 
 mn_mailboxes_timeout_cb (gpointer data)
-#line 989 "mn-mailboxes.c"
+#line 1235 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::timeout_cb"
-#line 333 "mn-mailboxes.gob"
-	g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 994 "mn-mailboxes.c"
 {
-#line 335 "mn-mailboxes.gob"
+#line 511 "mn-mailboxes.gob"
 	
     Self *self = data;
 
@@ -1002,76 +1245,57 @@ mn_mailboxes_timeout_cb (gpointer data)
     
     return TRUE;		/* continue */
   }}
-#line 1006 "mn-mailboxes.c"
+#line 1249 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 345 "mn-mailboxes.gob"
+#line 521 "mn-mailboxes.gob"
 void 
 mn_mailboxes_check (MNMailboxes * self)
-#line 1012 "mn-mailboxes.c"
+#line 1255 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::check"
-#line 345 "mn-mailboxes.gob"
+#line 521 "mn-mailboxes.gob"
 	g_return_if_fail (self != NULL);
-#line 345 "mn-mailboxes.gob"
+#line 521 "mn-mailboxes.gob"
 	g_return_if_fail (MN_IS_MAILBOXES (self));
-#line 1019 "mn-mailboxes.c"
+#line 1262 "mn-mailboxes.c"
 {
-#line 347 "mn-mailboxes.gob"
+#line 523 "mn-mailboxes.gob"
 	
-    GSList *l;
+    GList *l;
 
-    MN_LIST_FOREACH(l, selfp->list)
+    MN_LIST_FOREACH(l, self->list)
       {
 	MNMailbox *mailbox = l->data;
 
-	if (MN_MAILBOX_MUST_POLL(mailbox))
+	if (mailbox->must_poll)
 	  mn_mailbox_check(mailbox);
       }
   }}
-#line 1033 "mn-mailboxes.c"
-#undef __GOB_FUNCTION__
-
-#line 359 "mn-mailboxes.gob"
-GSList * 
-mn_mailboxes_get (MNMailboxes * self)
-#line 1039 "mn-mailboxes.c"
-{
-#define __GOB_FUNCTION__ "MN:Mailboxes::get"
-#line 359 "mn-mailboxes.gob"
-	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 359 "mn-mailboxes.gob"
-	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1046 "mn-mailboxes.c"
-{
-#line 361 "mn-mailboxes.gob"
-	
-    return selfp->list;
-  }}
-#line 1052 "mn-mailboxes.c"
+#line 1276 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 365 "mn-mailboxes.gob"
+#line 535 "mn-mailboxes.gob"
 GSList * 
 mn_mailboxes_get_messages (MNMailboxes * self)
-#line 1058 "mn-mailboxes.c"
+#line 1282 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::get_messages"
-#line 365 "mn-mailboxes.gob"
+#line 535 "mn-mailboxes.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 365 "mn-mailboxes.gob"
+#line 535 "mn-mailboxes.gob"
 	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 1065 "mn-mailboxes.c"
+#line 1289 "mn-mailboxes.c"
 {
-#line 367 "mn-mailboxes.gob"
+#line 537 "mn-mailboxes.gob"
 	
     GSList *messages = NULL;
-    GSList *l;
+    GList *l;
 
-    MN_LIST_FOREACH(l, selfp->list)
+    MN_LIST_FOREACH(l, self->list)
       {
 	MNMailbox *mailbox = l->data;
-	messages = g_slist_concat(messages, mn_g_object_slist_copy(mn_mailbox_get_messages(mailbox)));
+	messages = g_slist_concat(messages, mn_g_object_slist_copy(mailbox->messages));
       }
 
     messages = mn_message_slist_sort_by_sent_time(messages);
@@ -1079,128 +1303,228 @@ mn_mailboxes_get_messages (MNMailboxes * self)
 
     return messages;
   }}
-#line 1083 "mn-mailboxes.c"
+#line 1307 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 383 "mn-mailboxes.gob"
-GSList * 
-mn_mailboxes_find (MNMailboxes * self, const char * text_uri)
-#line 1089 "mn-mailboxes.c"
+#line 553 "mn-mailboxes.gob"
+static void 
+mn_mailboxes_add_real (MNMailboxes * self, MNMailbox * mailbox)
+#line 1313 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::find"
-#line 383 "mn-mailboxes.gob"
-	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 383 "mn-mailboxes.gob"
-	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 383 "mn-mailboxes.gob"
-	g_return_val_if_fail (text_uri != NULL, (GSList * )0);
-#line 1098 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::add_real"
+#line 553 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 553 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 553 "mn-mailboxes.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 553 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1324 "mn-mailboxes.c"
 {
-#line 385 "mn-mailboxes.gob"
+#line 555 "mn-mailboxes.gob"
 	
-    MNURI *uri;
-    GSList *elem;
-
-    uri = mn_uri_new(text_uri);
-    elem = self_find_uri(self, uri);
-    g_object_unref(uri);
+    g_object_ref(mailbox);
+    self->list = g_list_insert_sorted(self->list, mailbox, self_compare_by_name_func);
+    self_mailbox_added(self, mailbox);
+  }}
+#line 1332 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
 
-    return elem;
+#line 561 "mn-mailboxes.gob"
+void 
+mn_mailboxes_add (MNMailboxes * self, MNMailbox * mailbox)
+#line 1338 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::add"
+#line 561 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 561 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 561 "mn-mailboxes.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 561 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1349 "mn-mailboxes.c"
+{
+#line 563 "mn-mailboxes.gob"
+	
+    self_add_real(self, mailbox);
+    self_list_changed(self);
+    self_save(self);
   }}
-#line 1111 "mn-mailboxes.c"
+#line 1357 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 396 "mn-mailboxes.gob"
-GSList * 
-mn_mailboxes_find_uri (MNMailboxes * self, MNURI * uri)
-#line 1117 "mn-mailboxes.c"
+#line 569 "mn-mailboxes.gob"
+void 
+mn_mailboxes_queue_add (MNMailboxes * self, MNMailbox * mailbox)
+#line 1363 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::find_uri"
-#line 396 "mn-mailboxes.gob"
-	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 396 "mn-mailboxes.gob"
-	g_return_val_if_fail (MN_IS_MAILBOXES (self), (GSList * )0);
-#line 396 "mn-mailboxes.gob"
-	g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 396 "mn-mailboxes.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1128 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::queue_add"
+#line 569 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 569 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 569 "mn-mailboxes.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 569 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1374 "mn-mailboxes.c"
 {
-#line 398 "mn-mailboxes.gob"
+#line 571 "mn-mailboxes.gob"
 	
-    return g_slist_find_custom(selfp->list, uri, self_find_compare_func);
+    g_object_ref(mailbox);
+    selfp->add_queue = g_slist_append(selfp->add_queue, mailbox);
+
+    if (! selfp->queue_idle_id)
+      selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
   }}
-#line 1134 "mn-mailboxes.c"
+#line 1384 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 402 "mn-mailboxes.gob"
-static int 
-mn_mailboxes_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1140 "mn-mailboxes.c"
+#line 579 "mn-mailboxes.gob"
+static void 
+mn_mailboxes_remove_real (MNMailboxes * self, MNMailbox * mailbox)
+#line 1390 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::find_compare_func"
+#define __GOB_FUNCTION__ "MN:Mailboxes::remove_real"
+#line 579 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 579 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 579 "mn-mailboxes.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 579 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1401 "mn-mailboxes.c"
 {
-#line 404 "mn-mailboxes.gob"
+#line 581 "mn-mailboxes.gob"
 	
-    MNMailbox *mailbox = (MNMailbox *) a;
-    MNURI *uri = (MNURI *) b;
+    self->list = g_list_remove(self->list, mailbox);
+    self_mailbox_removed(self, mailbox);
+    g_object_unref(mailbox);
+  }}
+#line 1409 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
 
-    return strcmp(mailbox->uri->text, uri->text);
+#line 587 "mn-mailboxes.gob"
+void 
+mn_mailboxes_remove (MNMailboxes * self, MNMailbox * mailbox)
+#line 1415 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::remove"
+#line 587 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 587 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 587 "mn-mailboxes.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 587 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1426 "mn-mailboxes.c"
+{
+#line 589 "mn-mailboxes.gob"
+	
+    self_remove_real(self, mailbox);
+    self_list_changed(self);
+    self_save(self);
   }}
-#line 1151 "mn-mailboxes.c"
+#line 1434 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 411 "mn-mailboxes.gob"
-GSList * 
-mn_mailboxes_conf_find_uri (GSList * gconf_mailboxes, MNURI * uri)
-#line 1157 "mn-mailboxes.c"
+#line 595 "mn-mailboxes.gob"
+void 
+mn_mailboxes_queue_remove (MNMailboxes * self, MNMailbox * mailbox)
+#line 1440 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_uri"
-#line 411 "mn-mailboxes.gob"
-	g_return_val_if_fail (uri != NULL, (GSList * )0);
-#line 411 "mn-mailboxes.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (GSList * )0);
-#line 1164 "mn-mailboxes.c"
+#define __GOB_FUNCTION__ "MN:Mailboxes::queue_remove"
+#line 595 "mn-mailboxes.gob"
+	g_return_if_fail (self != NULL);
+#line 595 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOXES (self));
+#line 595 "mn-mailboxes.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 595 "mn-mailboxes.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 1451 "mn-mailboxes.c"
 {
-#line 413 "mn-mailboxes.gob"
+#line 597 "mn-mailboxes.gob"
 	
-    return g_slist_find_custom(gconf_mailboxes, uri, self_conf_find_compare_func);
+    g_object_ref(mailbox);
+    selfp->remove_queue = g_slist_append(selfp->remove_queue, mailbox);
+
+    if (! selfp->queue_idle_id)
+      selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
   }}
-#line 1170 "mn-mailboxes.c"
+#line 1461 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 417 "mn-mailboxes.gob"
-static int 
-mn_mailboxes_conf_find_compare_func (gconstpointer a, gconstpointer b)
-#line 1176 "mn-mailboxes.c"
+#line 605 "mn-mailboxes.gob"
+static gboolean 
+mn_mailboxes_queue_idle_cb (gpointer data)
+#line 1467 "mn-mailboxes.c"
 {
-#define __GOB_FUNCTION__ "MN:Mailboxes::conf_find_compare_func"
+#define __GOB_FUNCTION__ "MN:Mailboxes::queue_idle_cb"
 {
-#line 419 "mn-mailboxes.gob"
+#line 607 "mn-mailboxes.gob"
 	
-    MNURI *uri_a;
-    MNURI *uri_b = (MNURI *) b;
-    int cmp;
+    Self *self = data;
+    GSList *l;
+
+    GDK_THREADS_ENTER();
+
+    MN_LIST_FOREACH(l, selfp->add_queue)
+      self_add_real(self, l->data);
 
-    uri_a = mn_uri_new(a);
-    cmp = strcmp(uri_a->text, uri_b->text);
-    g_object_unref(uri_a);
+    mn_g_object_slist_free(selfp->add_queue);
+    selfp->add_queue = NULL;
 
-    return cmp;
+    MN_LIST_FOREACH(l, selfp->remove_queue)
+      self_remove_real(self, l->data);
+
+    mn_g_object_slist_free(selfp->remove_queue);
+    selfp->remove_queue = NULL;
+
+    self_list_changed(self);
+    self_save(self);
+
+    selfp->queue_idle_id = 0;
+
+    GDK_THREADS_LEAVE();
+
+    return FALSE;		/* remove */
   }}
-#line 1192 "mn-mailboxes.c"
+#line 1499 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
 
-#line 431 "mn-mailboxes.gob"
+#line 635 "mn-mailboxes.gob"
+int 
+mn_mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b)
+#line 1505 "mn-mailboxes.c"
+{
+#define __GOB_FUNCTION__ "MN:Mailboxes::compare_by_name_func"
+{
+#line 637 "mn-mailboxes.gob"
+	
+    MNMailbox *mailbox_a = (MNMailbox *) a;
+    MNMailbox *mailbox_b = (MNMailbox *) b;
+
+    return mn_utf8_strcasecoll(mailbox_a->runtime_name, mailbox_b->runtime_name);
+  }}
+#line 1516 "mn-mailboxes.c"
+#undef __GOB_FUNCTION__
+
+#line 644 "mn-mailboxes.gob"
 MNMailboxes * 
 mn_mailboxes_new (void)
-#line 1198 "mn-mailboxes.c"
+#line 1522 "mn-mailboxes.c"
 {
 #define __GOB_FUNCTION__ "MN:Mailboxes::new"
 {
-#line 433 "mn-mailboxes.gob"
+#line 646 "mn-mailboxes.gob"
 	
     return GET_NEW;
   }}
-#line 1206 "mn-mailboxes.c"
+#line 1530 "mn-mailboxes.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-mailboxes.gob b/src/mn-mailboxes.gob
@@ -16,50 +16,61 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include "mn-mailbox.h"
 %}
+
 %{
 #include "config.h"
+#include <unistd.h>
+#include <stdarg.h>
 #include <glib/gi18n.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
 #include <eel/eel.h>
 #include "mn-conf.h"
 #include "mn-util.h"
-#include "mn-pending-mailbox.h"
-#include "mn-unsupported-mailbox.h"
+#include "mn-message.h"
+#include "mn-mailbox-private.h"
 %}
 
 class MN:Mailboxes from G:Object
 {
-  private GSList *list destroywith mn_g_object_slist_free;
+  public GList *list destroywith eel_g_object_list_free;
+
   private unsigned int timeout_id;
+
+  private GSList *add_queue destroywith mn_g_object_slist_free;
+  private GSList *remove_queue destroywith mn_g_object_slist_free;
+  private unsigned int queue_idle_id;
     
   /**
    * mailbox-added:
    * @self: the object which received the signal
-   * @mailbox: the mailbox which is about to be added
+   * @mailbox: the mailbox which was added
    *
    * This signal gets emitted after a mailbox is added to the list.
    **/
-  signal private NONE (OBJECT)
-    void mailbox_added (self, MN:Mailbox *mailbox (check null type));
-
-  /**
-   * mailbox-changed:
-   * @self: the object which received the signal
-   * @mailbox: the mailbox which has changed
-   *
-   * This signal gets emitted after a mailbox changes type.
-   **/
-  signal private NONE (OBJECT)
-    void mailbox_changed (self, MN:Mailbox *mailbox (check null type));
-
+  signal first private NONE (OBJECT)
+    void mailbox_added (self, MN:Mailbox *mailbox (check null type))
+  {
+    /* connect signals */
+    g_object_connect(mailbox,
+		     "signal::messages-changed", self_mailbox_messages_changed_h, self,
+		     "signal::notify", self_mailbox_notify_h, self,
+		     "signal::notify::error", self_mailbox_notify_error_h, self,
+		     "signal::notify::must-poll", self_mailbox_notify_must_poll_h, self,
+		     NULL);
+
+    mn_mailbox_check(mailbox);
+  }
+  
   /**
    * mailbox-removed:
    * @self: the object which received the signal
-   * @mailbox: the mailbox which is about to be removed
+   * @mailbox: the mailbox which was removed
    *
    * This signal gets emitted after a mailbox is removed from the
    * list.
@@ -69,9 +80,10 @@ class MN:Mailboxes from G:Object
   {
     /* disconnect signals */
     g_object_disconnect(mailbox,
-			"any-signal", self_messages_changed_h, self,
-			"any-signal", self_notify_error_h, self,
-			"any-signal", self_notify_must_poll_h, self,
+			"any-signal", self_mailbox_messages_changed_h, self,
+			"any-signal", self_mailbox_notify_h, self,
+			"any-signal", self_mailbox_notify_error_h, self,
+			"any-signal", self_mailbox_notify_must_poll_h, self,
 			NULL);
 
     /* emit the "removed" signal on the mailbox */
@@ -82,6 +94,11 @@ class MN:Mailboxes from G:Object
     self_error_changed(self);
   }
   
+  signal (DETAILED) private NONE (OBJECT, POINTER)
+    void mailbox_notify (self,
+			 MN:Mailbox *mailbox (check null type),
+			 GParamSpec *pspec (check null));
+
   /**
    * list-changed:
    * @self: the object which received the signal
@@ -127,39 +144,83 @@ class MN:Mailboxes from G:Object
   signal private NONE (NONE)
     void error_changed (self);
 
-  property BOOLEAN must_poll (blurb = _("Whether one or more of the mailboxes has to be polled"),
-			      export)
+  property BOOLEAN must_poll (export)
     get
     {
       gboolean must_poll = FALSE;
-      GSList *l;
+      GList *l;
 
-      MN_LIST_FOREACH(l, selfp->list)
-	if (MN_MAILBOX_MUST_POLL(l->data))
-	  {
-	    must_poll = TRUE;
-	    break;
-	  }
+      MN_LIST_FOREACH(l, self->list)
+	{
+	  MNMailbox *mailbox = l->data;
+
+	  if (mailbox->must_poll)
+	    {
+	      must_poll = TRUE;
+	      break;
+	    }
+	}
 
       g_value_set_boolean(VAL, must_poll);
     };
 
   init (self)
   {
-    self_update_from_conf(self);
+    char *filename;
+    gboolean exists;
+
+    filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+    exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+    g_free(filename);
+
+    if (exists)
+      self_load(self);
+    else if (mn_conf_is_set(MN_CONF_OBSOLETE_MAILBOXES))
+      {
+	GSList *gconf_mailboxes;
+	GSList *l;
+	GSList *invalid_uri_list = NULL;
+
+	gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_OBSOLETE_MAILBOXES);
+	MN_LIST_FOREACH(l, gconf_mailboxes)
+	  {
+	    const char *uri = l->data;
+	    MNMailbox *mailbox;
+
+	    mailbox = mn_mailbox_new_from_obsolete_uri(uri);
+	    if (mailbox)
+	      {
+		mn_mailbox_seal(mailbox);
+		self_queue_add(self, mailbox);
+		g_object_unref(mailbox);
+	      }
+	    else
+	      invalid_uri_list = g_slist_append(invalid_uri_list, (gpointer) uri);
+	  }
+
+	if (invalid_uri_list)
+	  {
+	    mn_invalid_uri_list_dialog(NULL, _("An error has occurred while importing old mailboxes"), invalid_uri_list);
+	    g_slist_free(invalid_uri_list);
+	  }
+	
+	eel_g_slist_free_deep(gconf_mailboxes);
+      }
+
     self_install_timeout(self);
 
     mn_conf_notification_add(self, MN_CONF_DELAY_NAMESPACE, self_notify_delay_cb, self);
-    mn_conf_notification_add(self, MN_CONF_MAILBOXES, self_notify_mailboxes_cb, self);
   }
   
   override (G:Object) void
-    finalize (G:Object *object (check null type))
+    finalize (GObject *object)
   {
     Self *self = SELF(object);
 
     if (selfp->timeout_id)
       g_source_remove(selfp->timeout_id);
+    if (selfp->queue_idle_id)
+      g_source_remove(selfp->queue_idle_id);
 
     PARENT_HANDLER(object);
   }
@@ -168,7 +229,7 @@ class MN:Mailboxes from G:Object
     notify_delay_cb (GConfClient *client,
 		     unsigned int cnxn_id,
 		     GConfEntry *entry,
-		     gpointer user_data (check null))
+		     gpointer user_data)
   {
     Self *self = user_data;
 
@@ -177,142 +238,257 @@ class MN:Mailboxes from G:Object
     GDK_THREADS_LEAVE();
   }
 
-  private void
-    notify_mailboxes_cb (GConfClient *client,
-			 unsigned int cnxn_id,
-			 GConfEntry *entry,
-			 gpointer user_data (check null))
+  public void
+    load (self)
   {
-    Self *self = user_data;
+    GError *err = NULL;
 
-    GDK_THREADS_ENTER();
-    self_update_from_conf(self);
-    GDK_THREADS_LEAVE();
+    if (! self_load_real(self, &err))
+      {
+	mn_error_dialog(NULL, NULL, NULL, _("Unable to load the mailboxes configuration"), "%s", err->message);
+	g_error_free(err);
+      }
   }
   
   private void
-    update_from_conf (self)
+    add_error (GString **errors (check null),
+	       int *n_errors (check null),
+	       const char *format, ...)
   {
-    GSList *gconf_mailboxes;
-    GSList *l;
-    gboolean changed = FALSE;
-
-    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
+    va_list args;
+    char *message;
 
-    /* first step: remove old mailboxes */
+    if (*errors)
+      g_string_append_c(*errors, '\n');
+    else
+      *errors = g_string_new(NULL);
 
-  loop:
-    MN_LIST_FOREACH(l, selfp->list)
-      {
-	MNMailbox *mailbox = l->data;
+    va_start(args, format);
+    message = g_strdup_vprintf(format, args);
+    va_end(args);
 
-	if (! self_conf_find_uri(gconf_mailboxes, mailbox->uri))
-	  {
-	    selfp->list = g_slist_delete_link(selfp->list, l);
+    g_string_append(*errors, message);
+    g_free(message);
 
-	    self_mailbox_removed(self, mailbox);
-	    g_object_unref(mailbox);
+    (*n_errors)++;
+  }
+  
+  private gboolean
+    load_real (self, GError **err)
+  {
+    char *filename;
+    xmlDoc *doc;
+    xmlNode *root;
+    xmlNode *node;
+    gboolean list_changed = FALSE;
+    gboolean status = TRUE;
+    GString *errors = NULL;
+    int n_errors = 0;
+
+    filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+    doc = xmlParseFile(filename);
+    g_free(filename);
+
+    if (! doc)
+      {
+	g_set_error(err, 0, 0, _("Unable to parse the XML document."));
+	goto error;
+      }
+    
+    root = xmlDocGetRootElement(doc);
+    if (! root)
+      {
+	g_set_error(err, 0, 0, _("The root element is missing."));
+	goto error;
+      }
 
-	    changed = TRUE;
-	    goto loop;
-	  }
+    if (strcmp(root->name, "mailboxes"))
+      {
+	g_set_error(err, 0, 0, _("The root element \"%s\" is invalid."), root->name);
+	goto error;
       }
 
-    /* second step: add new mailboxes */
+    for (node = root->children; node; node = node->next)
+      if (node->type == XML_ELEMENT_NODE)
+	{
+	  if (! strcmp(node->name, "mailbox"))
+	    {
+	      MNMailbox *mailbox;
+	      GError *tmp_err = NULL;
+	  
+	      mailbox = mn_mailbox_new_from_xml_node(node, &tmp_err);
+	      if (mailbox)
+		{
+		  mn_mailbox_seal(mailbox);
+		  self_add_real(self, mailbox);
+		  g_object_unref(mailbox);
+		  
+		  list_changed = TRUE;
+		}
+	      else
+		{
+		  self_add_error(&errors, &n_errors, _("On line %i: %s."), node->line, tmp_err->message);
+		  g_error_free(tmp_err);
+		}
+	    }
+	  else
+	    self_add_error(&errors, &n_errors, _("On line %i: unknown element \"%s\"."), node->line, node->name);
+	}
+
+    if (list_changed)
+      self_list_changed(self);
 
-    MN_LIST_FOREACH(l, gconf_mailboxes)
+    if (errors)
       {
-	const char *text_uri = l->data;
-	MNURI *uri;
-      
-	uri = mn_uri_new(text_uri);
-	if (! self_find_uri(self, uri))
-	  {
-	    MNMailbox *mailbox;
+	mn_error_dialog(NULL,
+			NULL,
+			NULL,
+			ngettext("An error has occurred while loading the mailboxes configuration",
+				 "Errors have occurred while loading the mailboxes configuration",
+				 n_errors),
+			"%s", errors->str);
+	g_string_free(errors, TRUE);
+      }
+    
+    goto end;
 
-	    mailbox = mn_pending_mailbox_new(uri);
-	    selfp->list = g_slist_append(selfp->list, mailbox);
+  error:
+    status = FALSE;
 
-	    self_mailbox_added(self, mailbox);
-	    changed = TRUE;
-	    
-	    mn_mailbox_new_async(uri, self_new_cb, self);
-	  }
-	g_object_unref(uri);
-      }
+  end:
+    xmlFreeDoc(doc);
 
-    eel_g_slist_free_deep(gconf_mailboxes);
-    if (changed)
-      self_list_changed(self);
+    return status;
   }
 
-  private void
-    new_cb (MN:Mailbox *mailbox (check null type),
-	    gpointer user_data (check null))
+  public void
+    save (self)
   {
-    Self *self = user_data;
-    GSList *elem;
+    GError *err = NULL;
 
-    elem = self_find_uri(self, mailbox->uri);
-    if (elem)
+    if (! self_save_real(self, &err))
       {
-	if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
-	  mn_info(_("%s is unsupported: %s"), mn_mailbox_get_name(mailbox), mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
-	
-	g_object_connect(mailbox,
-			 "signal::messages-changed", self_messages_changed_h, self,
-			 "signal::notify::error", self_notify_error_h, self,
-			 "signal::notify::must-poll", self_notify_must_poll_h, self,
-			 NULL);
+	mn_error_dialog(NULL, NULL, NULL, _("Unable to save the mailboxes configuration"), "%s", err->message);
+	g_error_free(err);
+      }
+  }
+  
+  private gboolean
+    save_real (self, GError **err)
+  {
+    xmlDoc *doc;
+    xmlNode *root;
+    int indent;
+    GList *l;
+    char *filename;
+    char *tmp_filename;
+    char *old_filename;
+    int result;
+    gboolean old_exists;
+    gboolean status = TRUE;
+
+    indent = xmlIndentTreeOutput;
+    xmlIndentTreeOutput = 1;
+
+    doc = xmlNewDoc("1.0");
+    root = xmlNewNode(NULL, "mailboxes");
+    xmlDocSetRootElement(doc, root);
+
+    MN_LIST_FOREACH(l, self->list)
+      {
+	MNMailbox *mailbox = l->data;
+	xmlNode *node;
 
-	if (MN_MAILBOX_CAN_CHECK(mailbox))
-	  mn_mailbox_check(mailbox);
+	node = mn_mailbox_xml_node_new(mailbox);
+	xmlAddChild(root, node); /* owns node */
+      }
+    
+    filename = g_build_filename(mn_conf_dot_dir, "mailboxes.xml", NULL);
+    tmp_filename = g_strconcat(filename, ".tmp", NULL);
+    old_filename = g_strconcat(filename, ".old", NULL);
+
+    result = xmlSaveFormatFile(tmp_filename, doc, 1);
+    xmlFreeDoc(doc);
 
-	g_object_unref(elem->data);
-	elem->data = mailbox;
+    xmlIndentTreeOutput = indent;
 
-	self_mailbox_changed(self, mailbox);
-	self_list_changed(self);
+    if (result < 0)
+      {
+	g_set_error(err, 0, 0, _("Unable to write the XML document."));
+	goto error;
       }
-    else
-      g_object_unref(mailbox);
+
+    old_exists = g_file_test(filename, G_FILE_TEST_EXISTS);
+    if (old_exists)
+      {
+	if (! mn_rename(filename, old_filename, err))
+	  goto error;
+      }
+
+    if (! mn_rename(tmp_filename, filename, err))
+      goto error;
+
+    if (old_exists)
+      if (unlink(old_filename) < 0) /* non fatal */
+	g_warning(_("unable to delete %s: %s"), old_filename, g_strerror(errno));
+
+    goto end;			/* success */
+
+  error:
+    status = FALSE;
+
+  end:
+    g_free(filename);
+    g_free(tmp_filename);
+    g_free(old_filename);
+
+    return status;
   }
 
   private void
-    messages_changed_h (MN:Mailbox *mailbox (check null type),
-			gboolean has_new,
-			gpointer user_data (check null))
+    mailbox_messages_changed_h (MNMailbox *mailbox,
+				gboolean has_new,
+				gpointer user_data)
   {
     Self *self = user_data;
     int n_messages;
 
-    n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+    n_messages = g_slist_length(mailbox->messages);
     mn_info(ngettext("%s has %i new message", "%s has %i new messages", n_messages),
-	    mn_mailbox_get_name(mailbox), n_messages);
+	    mailbox->runtime_name, n_messages);
     
     self_messages_changed(self, has_new);
   }
   
   private void
-    notify_error_h (G:Object *object (check null type),
-		    GParamSpec *pspec (check null),
-		    gpointer user_data (check null))
+    mailbox_notify_h (GObject *object, GParamSpec *pspec, gpointer user_data)
+  {
+    Self *self = user_data;
+    char *detailed_signal;
+
+    detailed_signal = g_strconcat("mailbox-notify::", g_param_spec_get_name(pspec), NULL);
+    g_signal_emit_by_name(self, detailed_signal, object, pspec);
+    g_free(detailed_signal);
+  }
+  
+  private void
+    mailbox_notify_error_h (GObject *object,
+			    GParamSpec *pspec,
+			    gpointer user_data)
   {
     Self *self = user_data;
     MNMailbox *mailbox = MN_MAILBOX(object);
-    const char *error;
 
-    error = mn_mailbox_get_error(mailbox);
-    if (error)
-      mn_info(_("%s reported an error: %s"), mn_mailbox_get_name(mailbox), error);
+    if (mailbox->error)
+      mn_info(_("%s reported an error: %s"), mailbox->runtime_name, mailbox->error);
 
     self_error_changed(self);
   }
 
   private void
-    notify_must_poll_h (G:Object *object (check null type),
-			GParamSpec *pspec (check null),
-			gpointer user_data (check null))
+    mailbox_notify_must_poll_h (GObject *object,
+				GParamSpec *pspec,
+				gpointer user_data)
   {
     Self *self = user_data;
 
@@ -323,7 +499,7 @@ class MN:Mailboxes from G:Object
   private void
     install_timeout (self)
   {
-    mn_source_remove(&selfp->timeout_id);
+    mn_source_clear(&selfp->timeout_id);
     selfp->timeout_id = mn_timeout_add(MN_CONF_DELAY_MINUTES,
 				       MN_CONF_DELAY_SECONDS,
 				       self_timeout_cb,
@@ -331,7 +507,7 @@ class MN:Mailboxes from G:Object
   }
 
   private gboolean
-    timeout_cb (gpointer data (check null))
+    timeout_cb (gpointer data)
   {
     Self *self = data;
 
@@ -345,33 +521,27 @@ class MN:Mailboxes from G:Object
   public void
     check (self)
   {
-    GSList *l;
+    GList *l;
 
-    MN_LIST_FOREACH(l, selfp->list)
+    MN_LIST_FOREACH(l, self->list)
       {
 	MNMailbox *mailbox = l->data;
 
-	if (MN_MAILBOX_MUST_POLL(mailbox))
+	if (mailbox->must_poll)
 	  mn_mailbox_check(mailbox);
       }
   }
 
   public GSList *
-    get (self)
-  {
-    return selfp->list;
-  }
-
-  public GSList *
     get_messages (self)
   {
     GSList *messages = NULL;
-    GSList *l;
+    GList *l;
 
-    MN_LIST_FOREACH(l, selfp->list)
+    MN_LIST_FOREACH(l, self->list)
       {
 	MNMailbox *mailbox = l->data;
-	messages = g_slist_concat(messages, mn_g_object_slist_copy(mn_mailbox_get_messages(mailbox)));
+	messages = g_slist_concat(messages, mn_g_object_slist_copy(mailbox->messages));
       }
 
     messages = mn_message_slist_sort_by_sent_time(messages);
@@ -379,53 +549,96 @@ class MN:Mailboxes from G:Object
 
     return messages;
   }
+
+  private void
+    add_real (self, MN:Mailbox *mailbox (check null type))
+  {
+    g_object_ref(mailbox);
+    self->list = g_list_insert_sorted(self->list, mailbox, self_compare_by_name_func);
+    self_mailbox_added(self, mailbox);
+  }
   
-  public GSList *
-    find (self, const char *text_uri (check null))
+  public void
+    add (self, MN:Mailbox *mailbox (check null type))
   {
-    MNURI *uri;
-    GSList *elem;
+    self_add_real(self, mailbox);
+    self_list_changed(self);
+    self_save(self);
+  }
 
-    uri = mn_uri_new(text_uri);
-    elem = self_find_uri(self, uri);
-    g_object_unref(uri);
+  public void
+    queue_add (self, MN:Mailbox *mailbox (check null type))
+  {
+    g_object_ref(mailbox);
+    selfp->add_queue = g_slist_append(selfp->add_queue, mailbox);
 
-    return elem;
+    if (! selfp->queue_idle_id)
+      selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
   }
-  
-  public GSList *
-    find_uri (self, MN:URI *uri (check null type))
+
+  private void
+    remove_real (self, MN:Mailbox *mailbox (check null type))
+  {
+    self->list = g_list_remove(self->list, mailbox);
+    self_mailbox_removed(self, mailbox);
+    g_object_unref(mailbox);
+  }
+
+  public void
+    remove (self, MN:Mailbox *mailbox (check null type))
   {
-    return g_slist_find_custom(selfp->list, uri, self_find_compare_func);
+    self_remove_real(self, mailbox);
+    self_list_changed(self);
+    self_save(self);
   }
   
-  private int
-    find_compare_func (gconstpointer a, gconstpointer b)
+  public void
+    queue_remove (self, MN:Mailbox *mailbox (check null type))
   {
-    MNMailbox *mailbox = (MNMailbox *) a;
-    MNURI *uri = (MNURI *) b;
+    g_object_ref(mailbox);
+    selfp->remove_queue = g_slist_append(selfp->remove_queue, mailbox);
 
-    return strcmp(mailbox->uri->text, uri->text);
+    if (! selfp->queue_idle_id)
+      selfp->queue_idle_id = g_idle_add(self_queue_idle_cb, self);
   }
-
-  public GSList *
-    conf_find_uri (GSList *gconf_mailboxes, MN:URI *uri (check null type))
+  
+  private gboolean
+    queue_idle_cb (gpointer data)
   {
-    return g_slist_find_custom(gconf_mailboxes, uri, self_conf_find_compare_func);
+    Self *self = data;
+    GSList *l;
+
+    GDK_THREADS_ENTER();
+
+    MN_LIST_FOREACH(l, selfp->add_queue)
+      self_add_real(self, l->data);
+
+    mn_g_object_slist_free(selfp->add_queue);
+    selfp->add_queue = NULL;
+
+    MN_LIST_FOREACH(l, selfp->remove_queue)
+      self_remove_real(self, l->data);
+
+    mn_g_object_slist_free(selfp->remove_queue);
+    selfp->remove_queue = NULL;
+
+    self_list_changed(self);
+    self_save(self);
+
+    selfp->queue_idle_id = 0;
+
+    GDK_THREADS_LEAVE();
+
+    return FALSE;		/* remove */
   }
   
-  private int
-    conf_find_compare_func (gconstpointer a, gconstpointer b)
+  public int
+    compare_by_name_func (gconstpointer a, gconstpointer b)
   {
-    MNURI *uri_a;
-    MNURI *uri_b = (MNURI *) b;
-    int cmp;
-
-    uri_a = mn_uri_new(a);
-    cmp = strcmp(uri_a->text, uri_b->text);
-    g_object_unref(uri_a);
+    MNMailbox *mailbox_a = (MNMailbox *) a;
+    MNMailbox *mailbox_b = (MNMailbox *) b;
 
-    return cmp;
+    return mn_utf8_strcasecoll(mailbox_a->runtime_name, mailbox_b->runtime_name);
   }
   
   public MNMailboxes *
diff --git a/src/mn-mailboxes.h b/src/mn-mailboxes.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -37,6 +37,8 @@ typedef struct _MNMailboxes MNMailboxes;
 #endif
 struct _MNMailboxes {
 	GObject __parent__;
+	/*< public >*/
+	GList * list;
 	/*< private >*/
 	MNMailboxesPrivate *_priv;
 };
@@ -48,8 +50,8 @@ typedef struct _MNMailboxesClass MNMailboxesClass;
 struct _MNMailboxesClass {
 	GObjectClass __parent__;
 	/*signal*/void (* mailbox_added) (MNMailboxes * self, MNMailbox * mailbox);
-	/*signal*/void (* mailbox_changed) (MNMailboxes * self, MNMailbox * mailbox);
 	/*signal*/void (* mailbox_removed) (MNMailboxes * self, MNMailbox * mailbox);
+	/*signal*/void (* mailbox_notify) (MNMailboxes * self, MNMailbox * mailbox, GParamSpec * pspec);
 	/*signal*/void (* list_changed) (MNMailboxes * self);
 	/*signal*/void (* messages_changed) (MNMailboxes * self, gboolean has_new);
 	/*signal*/void (* error_changed) (MNMailboxes * self);
@@ -61,15 +63,20 @@ struct _MNMailboxesClass {
  */
 GType	mn_mailboxes_get_type	(void);
 gboolean 	mn_mailboxes_get_must_poll	(MNMailboxes * self);
+void 	mn_mailboxes_load	(MNMailboxes * self);
+void 	mn_mailboxes_save	(MNMailboxes * self);
 void 	mn_mailboxes_check	(MNMailboxes * self);
-GSList * 	mn_mailboxes_get	(MNMailboxes * self);
 GSList * 	mn_mailboxes_get_messages	(MNMailboxes * self);
-GSList * 	mn_mailboxes_find	(MNMailboxes * self,
-					const char * text_uri);
-GSList * 	mn_mailboxes_find_uri	(MNMailboxes * self,
-					MNURI * uri);
-GSList * 	mn_mailboxes_conf_find_uri	(GSList * gconf_mailboxes,
-					MNURI * uri);
+void 	mn_mailboxes_add	(MNMailboxes * self,
+					MNMailbox * mailbox);
+void 	mn_mailboxes_queue_add	(MNMailboxes * self,
+					MNMailbox * mailbox);
+void 	mn_mailboxes_remove	(MNMailboxes * self,
+					MNMailbox * mailbox);
+void 	mn_mailboxes_queue_remove	(MNMailboxes * self,
+					MNMailbox * mailbox);
+int 	mn_mailboxes_compare_by_name_func	(gconstpointer a,
+					gconstpointer b);
 MNMailboxes * 	mn_mailboxes_new	(void);
 
 /*
@@ -79,12 +86,12 @@ MNMailboxes * 	mn_mailboxes_new	(void);
 #define mn_mailboxes_connect__mailbox_added(object,func,data)	g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_added",(GCallback) __extension__ ({void (* ___mailbox_added) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_added; }), (data))
 #define mn_mailboxes_connect_after__mailbox_added(object,func,data)	g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_added",(GCallback) __extension__ ({void (* ___mailbox_added) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_added; }), (data))
 #define mn_mailboxes_connect_data__mailbox_added(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_added",(GCallback) __extension__ ({void (* ___mailbox_added) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_added; }), (data), (destroy_data), (GConnectFlags)(flags))
-#define mn_mailboxes_connect__mailbox_changed(object,func,data)	g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_changed",(GCallback) __extension__ ({void (* ___mailbox_changed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_changed; }), (data))
-#define mn_mailboxes_connect_after__mailbox_changed(object,func,data)	g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_changed",(GCallback) __extension__ ({void (* ___mailbox_changed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_changed; }), (data))
-#define mn_mailboxes_connect_data__mailbox_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_changed",(GCallback) __extension__ ({void (* ___mailbox_changed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
 #define mn_mailboxes_connect__mailbox_removed(object,func,data)	g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_removed",(GCallback) __extension__ ({void (* ___mailbox_removed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_removed; }), (data))
 #define mn_mailboxes_connect_after__mailbox_removed(object,func,data)	g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_removed",(GCallback) __extension__ ({void (* ___mailbox_removed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_removed; }), (data))
 #define mn_mailboxes_connect_data__mailbox_removed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_removed",(GCallback) __extension__ ({void (* ___mailbox_removed) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, gpointer ___data ) = (func); ___mailbox_removed; }), (data), (destroy_data), (GConnectFlags)(flags))
+#define mn_mailboxes_connect__mailbox_notify(object,func,data)	g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_notify",(GCallback) __extension__ ({void (* ___mailbox_notify) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, GParamSpec * ___fake___pspec, gpointer ___data ) = (func); ___mailbox_notify; }), (data))
+#define mn_mailboxes_connect_after__mailbox_notify(object,func,data)	g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_notify",(GCallback) __extension__ ({void (* ___mailbox_notify) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, GParamSpec * ___fake___pspec, gpointer ___data ) = (func); ___mailbox_notify; }), (data))
+#define mn_mailboxes_connect_data__mailbox_notify(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"mailbox_notify",(GCallback) __extension__ ({void (* ___mailbox_notify) (MNMailboxes * ___fake___self, MNMailbox * ___fake___mailbox, GParamSpec * ___fake___pspec, gpointer ___data ) = (func); ___mailbox_notify; }), (data), (destroy_data), (GConnectFlags)(flags))
 #define mn_mailboxes_connect__list_changed(object,func,data)	g_signal_connect(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"list_changed",(GCallback) __extension__ ({void (* ___list_changed) (MNMailboxes * ___fake___self, gpointer ___data ) = (func); ___list_changed; }), (data))
 #define mn_mailboxes_connect_after__list_changed(object,func,data)	g_signal_connect_after(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"list_changed",(GCallback) __extension__ ({void (* ___list_changed) (MNMailboxes * ___fake___self, gpointer ___data ) = (func); ___list_changed; }), (data))
 #define mn_mailboxes_connect_data__list_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(__extension__ ({MNMailboxes *___object = (object); ___object; })),"list_changed",(GCallback) __extension__ ({void (* ___list_changed) (MNMailboxes * ___fake___self, gpointer ___data ) = (func); ___list_changed; }), (data), (destroy_data), (GConnectFlags)(flags))
@@ -98,12 +105,12 @@ MNMailboxes * 	mn_mailboxes_new	(void);
 #define mn_mailboxes_connect__mailbox_added(object,func,data)	g_signal_connect(MN_MAILBOXES(object),"mailbox_added",(GCallback)(func),(data))
 #define mn_mailboxes_connect_after__mailbox_added(object,func,data)	g_signal_connect_after(MN_MAILBOXES(object),"mailbox_added",(GCallback)(func),(data))
 #define mn_mailboxes_connect_data__mailbox_added(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(object),"mailbox_added",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
-#define mn_mailboxes_connect__mailbox_changed(object,func,data)	g_signal_connect(MN_MAILBOXES(object),"mailbox_changed",(GCallback)(func),(data))
-#define mn_mailboxes_connect_after__mailbox_changed(object,func,data)	g_signal_connect_after(MN_MAILBOXES(object),"mailbox_changed",(GCallback)(func),(data))
-#define mn_mailboxes_connect_data__mailbox_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(object),"mailbox_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
 #define mn_mailboxes_connect__mailbox_removed(object,func,data)	g_signal_connect(MN_MAILBOXES(object),"mailbox_removed",(GCallback)(func),(data))
 #define mn_mailboxes_connect_after__mailbox_removed(object,func,data)	g_signal_connect_after(MN_MAILBOXES(object),"mailbox_removed",(GCallback)(func),(data))
 #define mn_mailboxes_connect_data__mailbox_removed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(object),"mailbox_removed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
+#define mn_mailboxes_connect__mailbox_notify(object,func,data)	g_signal_connect(MN_MAILBOXES(object),"mailbox_notify",(GCallback)(func),(data))
+#define mn_mailboxes_connect_after__mailbox_notify(object,func,data)	g_signal_connect_after(MN_MAILBOXES(object),"mailbox_notify",(GCallback)(func),(data))
+#define mn_mailboxes_connect_data__mailbox_notify(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(object),"mailbox_notify",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
 #define mn_mailboxes_connect__list_changed(object,func,data)	g_signal_connect(MN_MAILBOXES(object),"list_changed",(GCallback)(func),(data))
 #define mn_mailboxes_connect_after__list_changed(object,func,data)	g_signal_connect_after(MN_MAILBOXES(object),"list_changed",(GCallback)(func),(data))
 #define mn_mailboxes_connect_data__list_changed(object,func,data,destroy_data,flags)	g_signal_connect_data(MN_MAILBOXES(object),"list_changed",(GCallback)(func),(data),(destroy_data),(GConnectFlags)(flags))
diff --git a/src/mn-maildir-mailbox-backend-private.h b/src/mn-maildir-mailbox-backend-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MAILDIR_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_MAILDIR_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-maildir-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-maildir-mailbox-backend.c b/src/mn-maildir-mailbox-backend.c
@@ -0,0 +1,287 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:55 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-maildir-mailbox-backend.h"
+
+#include "mn-maildir-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-maildir-mailbox-backend.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+#line 39 "mn-maildir-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_MAILDIR_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_MAILDIR_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_MAILDIR_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_MAILDIR_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_MAILDIR_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAILDIR_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMaildirMailboxBackend Self;
+typedef MNMaildirMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_maildir_mailbox_backend_init (MNMaildirMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_maildir_mailbox_backend_class_init (MNMaildirMailboxBackendClass * class) G_GNUC_UNUSED;
+static void ___2_mn_maildir_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+static gboolean ___3_mn_maildir_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_maildir_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+GType
+mn_maildir_mailbox_backend_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNMaildirMailboxBackendClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_maildir_mailbox_backend_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNMaildirMailboxBackend),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_maildir_mailbox_backend_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNMaildirMailboxBackend", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMaildirMailboxBackend *)g_object_new(mn_maildir_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMaildirMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMaildirMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNMaildirMailboxBackend *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNMaildirMailboxBackend *)g_object_new_valist (mn_maildir_mailbox_backend_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+static void 
+mn_maildir_mailbox_backend_init (MNMaildirMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::init"
+}
+#undef __GOB_FUNCTION__
+#line 39 "mn-maildir-mailbox-backend.gob"
+static void 
+mn_maildir_mailbox_backend_class_init (MNMaildirMailboxBackendClass * class G_GNUC_UNUSED)
+#line 114 "mn-maildir-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::class_init"
+	MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+	parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 44 "mn-maildir-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->monitor_cb = ___2_mn_maildir_mailbox_backend_monitor_cb;
+#line 66 "mn-maildir-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->is = ___3_mn_maildir_mailbox_backend_is;
+#line 88 "mn-maildir-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->check = ___4_mn_maildir_mailbox_backend_check;
+#line 127 "mn-maildir-mailbox-backend.c"
+ {
+#line 40 "mn-maildir-mailbox-backend.gob"
+
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Maildir";
+  
+#line 133 "mn-maildir-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 44 "mn-maildir-mailbox-backend.gob"
+static void 
+___2_mn_maildir_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 143 "mn-maildir-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___info_uri,___event_type) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb)(___backend,___info_uri,___event_type); }
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::monitor_cb"
+{
+#line 48 "mn-maildir-mailbox-backend.gob"
+	
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	char *filename;
+	    
+	filename = eel_uri_get_basename(info_uri);
+	if (filename)
+	  {
+	    if (filename[0] != '.')
+	      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+	    g_free(filename);
+	  }
+      }
+  }}
+#line 168 "mn-maildir-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 66 "mn-maildir-mailbox-backend.gob"
+static gboolean 
+___3_mn_maildir_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 175 "mn-maildir-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+	((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+		((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::is"
+{
+#line 68 "mn-maildir-mailbox-backend.gob"
+	
+    int i; 
+    const char *constitutive_dirs[] = { "cur", "new", "tmp" };
+    gboolean is = FALSE;
+
+    for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
+      {
+	GnomeVFSURI *dir_uri;
+	
+	dir_uri = gnome_vfs_uri_append_path(mailbox->vfs_uri, constitutive_dirs[i]);
+	is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
+	gnome_vfs_uri_unref(dir_uri);
+	
+	if (! is)
+	  break;
+      }
+
+    return is;
+  }}
+#line 203 "mn-maildir-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 88 "mn-maildir-mailbox-backend.gob"
+static void 
+___4_mn_maildir_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 210 "mn-maildir-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:Maildir:Mailbox:Backend::check"
+{
+#line 90 "mn-maildir-mailbox-backend.gob"
+	
+    GnomeVFSURI *new_uri;
+    char *new_text_uri;
+    GnomeVFSResult result;
+    GnomeVFSResult close_result;
+    GnomeVFSDirectoryHandle *handle;
+    GnomeVFSFileInfo *file_info;
+    GSList *messages = NULL;
+    
+    new_uri = gnome_vfs_uri_append_path(backend->mailbox->vfs_uri, "new");
+
+    new_text_uri = gnome_vfs_uri_to_string(new_uri, GNOME_VFS_URI_HIDE_NONE);
+    mn_vfs_mailbox_backend_monitor(backend, check_id, new_text_uri, GNOME_VFS_MONITOR_DIRECTORY);
+    g_free(new_text_uri);
+
+    result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+    if (result != GNOME_VFS_OK)
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	goto end;
+      }
+  
+    file_info = gnome_vfs_file_info_new();
+    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+      if (file_info->name[0] != '.')
+	{
+	  GnomeVFSURI *message_uri;
+
+	  if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	    break;
+
+	  message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
+	  messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+	  gnome_vfs_uri_unref(message_uri);
+	}
+    gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
+
+    GDK_THREADS_ENTER();
+	
+    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      {
+	if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+	  {
+	    if (close_result == GNOME_VFS_OK)
+	      mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+	    else
+	      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
+	  }
+	else
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
+      }
+
+    mn_g_object_slist_free(messages);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+  end:
+    gnome_vfs_uri_unref(new_uri);
+  }}
+#line 286 "mn-maildir-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-maildir-mailbox-backend.gob b/src/mn-maildir-mailbox-backend.gob
@@ -0,0 +1,158 @@
+/* 
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+%}
+
+class MN:Maildir:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+  class_init (class)
+  {
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Maildir";
+  }
+
+  override (MN:VFS:Mailbox:Backend) void
+    monitor_cb (MNVFSMailboxBackend *backend,
+		const char *info_uri,
+		GnomeVFSMonitorEventType event_type)
+  {
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	char *filename;
+	    
+	filename = eel_uri_get_basename(info_uri);
+	if (filename)
+	  {
+	    if (filename[0] != '.')
+	      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+
+	    g_free(filename);
+	  }
+      }
+  }
+
+  override (MN:VFS:Mailbox:Backend) gboolean
+    is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+  {
+    int i; 
+    const char *constitutive_dirs[] = { "cur", "new", "tmp" };
+    gboolean is = FALSE;
+
+    for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
+      {
+	GnomeVFSURI *dir_uri;
+	
+	dir_uri = gnome_vfs_uri_append_path(mailbox->vfs_uri, constitutive_dirs[i]);
+	is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
+	gnome_vfs_uri_unref(dir_uri);
+	
+	if (! is)
+	  break;
+      }
+
+    return is;
+  }
+  
+  override (MN:VFS:Mailbox:Backend) void
+    check (MNVFSMailboxBackend *backend, unsigned long check_id)
+  {
+    GnomeVFSURI *new_uri;
+    char *new_text_uri;
+    GnomeVFSResult result;
+    GnomeVFSResult close_result;
+    GnomeVFSDirectoryHandle *handle;
+    GnomeVFSFileInfo *file_info;
+    GSList *messages = NULL;
+    
+    new_uri = gnome_vfs_uri_append_path(backend->mailbox->vfs_uri, "new");
+
+    new_text_uri = gnome_vfs_uri_to_string(new_uri, GNOME_VFS_URI_HIDE_NONE);
+    mn_vfs_mailbox_backend_monitor(backend, check_id, new_text_uri, GNOME_VFS_MONITOR_DIRECTORY);
+    g_free(new_text_uri);
+
+    result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+    if (result != GNOME_VFS_OK)
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	goto end;
+      }
+  
+    file_info = gnome_vfs_file_info_new();
+    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+      if (file_info->name[0] != '.')
+	{
+	  GnomeVFSURI *message_uri;
+
+	  if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	    break;
+
+	  message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
+	  messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+	  gnome_vfs_uri_unref(message_uri);
+	}
+    gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
+
+    GDK_THREADS_ENTER();
+	
+    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      {
+	if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+	  {
+	    if (close_result == GNOME_VFS_OK)
+	      mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+	    else
+	      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder \"new\": %s"), gnome_vfs_result_to_string(close_result));
+	  }
+	else
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder \"new\": %s"), gnome_vfs_result_to_string(result));
+      }
+
+    mn_g_object_slist_free(messages);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+  end:
+    gnome_vfs_uri_unref(new_uri);
+  }
+}
diff --git a/src/mn-maildir-mailbox-backend.h b/src/mn-maildir-mailbox-backend.h
@@ -0,0 +1,57 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_MAILDIR_MAILBOX_BACKEND_H__
+#define __MN_MAILDIR_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MAILDIR_MAILBOX_BACKEND	(mn_maildir_mailbox_backend_get_type())
+#define MN_MAILDIR_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackend)
+#define MN_MAILDIR_MAILBOX_BACKEND_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackend const)
+#define MN_MAILDIR_MAILBOX_BACKEND_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackendClass)
+#define MN_IS_MAILDIR_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_maildir_mailbox_backend_get_type ())
+
+#define MN_MAILDIR_MAILBOX_BACKEND_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_maildir_mailbox_backend_get_type(), MNMaildirMailboxBackendClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAILDIR_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_MAILDIR_MAILBOX_BACKEND__
+typedef struct _MNMaildirMailboxBackend MNMaildirMailboxBackend;
+#endif
+struct _MNMaildirMailboxBackend {
+	MNVFSMailboxBackend __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMaildirMailboxBackendClass MNMaildirMailboxBackendClass;
+struct _MNMaildirMailboxBackendClass {
+	MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_maildir_mailbox_backend_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-maildir-mailbox-private.h b/src/mn-maildir-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_MAILDIR_MAILBOX_PRIVATE_H__
-#define __MN_MAILDIR_MAILBOX_PRIVATE_H__
-
-#include "mn-maildir-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-maildir-mailbox.c b/src/mn-maildir-mailbox.c
@@ -1,297 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:26 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-maildir-mailbox.h"
-
-#include "mn-maildir-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-maildir-mailbox.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-#line 36 "mn-maildir-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_MAILDIR_MAILBOX(x)
-#define SELF_CONST(x) MN_MAILDIR_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_MAILDIR_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_MAILDIR_MAILBOX
-#define SELF_CLASS(x) MN_MAILDIR_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MAILDIR_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNMaildirMailbox Self;
-typedef MNMaildirMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_maildir_mailbox_init (MNMaildirMailbox * o) G_GNUC_UNUSED;
-static void mn_maildir_mailbox_class_init (MNMaildirMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_maildir_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_maildir_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_maildir_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-GType
-mn_maildir_mailbox_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNMaildirMailboxClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_maildir_mailbox_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNMaildirMailbox),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_maildir_mailbox_init,
-			NULL
-		};
-
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNMaildirMailbox", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNMaildirMailbox *)g_object_new(mn_maildir_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNMaildirMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNMaildirMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNMaildirMailbox *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNMaildirMailbox *)g_object_new_valist (mn_maildir_mailbox_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-static void 
-mn_maildir_mailbox_init (MNMaildirMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 35 "mn-maildir-mailbox.gob"
-static void 
-mn_maildir_mailbox_class_init (MNMaildirMailboxClass * class G_GNUC_UNUSED)
-#line 111 "mn-maildir-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::class_init"
-	GObjectClass *g_object_class = (GObjectClass *)class;
-	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 40 "mn-maildir-mailbox.gob"
-	g_object_class->constructor = ___2_mn_maildir_mailbox_constructor;
-#line 69 "mn-maildir-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_maildir_mailbox_impl_is;
-#line 95 "mn-maildir-mailbox.gob"
-	mn_mailbox_class->impl_check = ___4_mn_maildir_mailbox_impl_check;
-#line 125 "mn-maildir-mailbox.c"
- {
-#line 36 "mn-maildir-mailbox.gob"
-
-    MN_MAILBOX_CLASS(class)->format = "Maildir";
-  
-#line 131 "mn-maildir-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 40 "mn-maildir-mailbox.gob"
-static GObject * 
-___2_mn_maildir_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 141 "mn-maildir-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): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::constructor"
-{
-#line 42 "mn-maildir-mailbox.gob"
-	
-    GObject *object;
-    MNMailbox *self;
-    char *new_uri;
-  
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-
-    new_uri = g_build_path("/", self->uri->text, "new", NULL);
-
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       new_uri,
-		       GNOME_VFS_MONITOR_DIRECTORY,
-		       MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    g_free(new_uri);
-
-    return object;
-  }}
-#line 176 "mn-maildir-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 69 "mn-maildir-mailbox.gob"
-static gboolean 
-___3_mn_maildir_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 183 "mn-maildir-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::impl_is"
-#line 69 "mn-maildir-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 192 "mn-maildir-mailbox.c"
-{
-#line 71 "mn-maildir-mailbox.gob"
-	
-    gboolean is = FALSE;
-
-    if (uri->vfs)
-      {
-	int i; 
-	const char *constitutive_dirs[] = { "cur", "new", "tmp" };
-
-	for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
-	  {
-	    GnomeVFSURI *dir_uri;
-	
-	    dir_uri = gnome_vfs_uri_append_path(uri->vfs, constitutive_dirs[i]);
-	    is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
-	    gnome_vfs_uri_unref(dir_uri);
-	
-	    if (! is)
-	      break;
-	  }
-      }
-  
-    return is;
-  }}
-#line 218 "mn-maildir-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 95 "mn-maildir-mailbox.gob"
-static void 
-___4_mn_maildir_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
-#line 225 "mn-maildir-mailbox.c"
-#define PARENT_HANDLER(___self) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
-{
-#define __GOB_FUNCTION__ "MN:Maildir:Mailbox::impl_check"
-#line 95 "mn-maildir-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 95 "mn-maildir-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 235 "mn-maildir-mailbox.c"
-{
-#line 97 "mn-maildir-mailbox.gob"
-	
-    GnomeVFSURI *new_uri;
-    GnomeVFSResult result;
-    GnomeVFSResult close_result;
-    GnomeVFSDirectoryHandle *handle;
-    GnomeVFSFileInfo *file_info;
-    GSList *messages = NULL;
-    
-    new_uri = gnome_vfs_uri_append_path(self->uri->vfs, "new");
-    result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-
-    if (result != GNOME_VFS_OK)
-      {
-	GDK_THREADS_ENTER();
-
-	mn_mailbox_set_error(self, _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
-	mn_mailbox_end_check(self);
-
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-
-	goto end;
-      }
-  
-    file_info = gnome_vfs_file_info_new();
-    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
-      if (file_info->name[0] != '.')
-	{
-	  GnomeVFSURI *message_uri;
-
-	  message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
-	  messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
-	  gnome_vfs_uri_unref(message_uri);
-	}
-    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)
-      {
-	if (close_result == GNOME_VFS_OK)
-	  mn_mailbox_set_messages(self, messages);
-	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);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    mn_g_object_slist_free(messages);
-
-  end:
-    gnome_vfs_uri_unref(new_uri);
-  }}
-#line 296 "mn-maildir-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
diff --git a/src/mn-maildir-mailbox.gob b/src/mn-maildir-mailbox.gob
@@ -1,155 +0,0 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-%}
-
-class MN:Maildir:Mailbox from MN:Mailbox
-{
-  class_init (class)
-  {
-    MN_MAILBOX_CLASS(class)->format = "Maildir";
-  }
-
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
-  {
-    GObject *object;
-    MNMailbox *self;
-    char *new_uri;
-  
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-
-    new_uri = g_build_path("/", self->uri->text, "new", NULL);
-
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       new_uri,
-		       GNOME_VFS_MONITOR_DIRECTORY,
-		       MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    g_free(new_uri);
-
-    return object;
-  }
-
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null))
-  {
-    gboolean is = FALSE;
-
-    if (uri->vfs)
-      {
-	int i; 
-	const char *constitutive_dirs[] = { "cur", "new", "tmp" };
-
-	for (i = 0; i < G_N_ELEMENTS(constitutive_dirs); i++)
-	  {
-	    GnomeVFSURI *dir_uri;
-	
-	    dir_uri = gnome_vfs_uri_append_path(uri->vfs, constitutive_dirs[i]);
-	    is = mn_vfs_test(dir_uri, G_FILE_TEST_IS_DIR);
-	    gnome_vfs_uri_unref(dir_uri);
-	
-	    if (! is)
-	      break;
-	  }
-      }
-  
-    return is;
-  }
-  
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *self (check null type))
-  {
-    GnomeVFSURI *new_uri;
-    GnomeVFSResult result;
-    GnomeVFSResult close_result;
-    GnomeVFSDirectoryHandle *handle;
-    GnomeVFSFileInfo *file_info;
-    GSList *messages = NULL;
-    
-    new_uri = gnome_vfs_uri_append_path(self->uri->vfs, "new");
-    result = gnome_vfs_directory_open_from_uri(&handle, new_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-
-    if (result != GNOME_VFS_OK)
-      {
-	GDK_THREADS_ENTER();
-
-	mn_mailbox_set_error(self, _("unable to open folder \"new\": %s"), gnome_vfs_result_to_string(result));
-	mn_mailbox_end_check(self);
-
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-
-	goto end;
-      }
-  
-    file_info = gnome_vfs_file_info_new();
-    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
-      if (file_info->name[0] != '.')
-	{
-	  GnomeVFSURI *message_uri;
-
-	  message_uri = gnome_vfs_uri_append_file_name(new_uri, file_info->name);
-	  messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
-	  gnome_vfs_uri_unref(message_uri);
-	}
-    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)
-      {
-	if (close_result == GNOME_VFS_OK)
-	  mn_mailbox_set_messages(self, messages);
-	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);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    mn_g_object_slist_free(messages);
-
-  end:
-    gnome_vfs_uri_unref(new_uri);
-  }
-}
diff --git a/src/mn-maildir-mailbox.h b/src/mn-maildir-mailbox.h
@@ -1,57 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_MAILDIR_MAILBOX_H__
-#define __MN_MAILDIR_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MAILDIR_MAILBOX	(mn_maildir_mailbox_get_type())
-#define MN_MAILDIR_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_get_type(), MNMaildirMailbox)
-#define MN_MAILDIR_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_maildir_mailbox_get_type(), MNMaildirMailbox const)
-#define MN_MAILDIR_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_maildir_mailbox_get_type(), MNMaildirMailboxClass)
-#define MN_IS_MAILDIR_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_maildir_mailbox_get_type ())
-
-#define MN_MAILDIR_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_maildir_mailbox_get_type(), MNMaildirMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MAILDIR_MAILBOX__
-#define __TYPEDEF_MN_MAILDIR_MAILBOX__
-typedef struct _MNMaildirMailbox MNMaildirMailbox;
-#endif
-struct _MNMaildirMailbox {
-	MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNMaildirMailboxClass MNMaildirMailboxClass;
-struct _MNMaildirMailboxClass {
-	MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_maildir_mailbox_get_type	(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-main-window-private.h b/src/mn-main-window-private.h
@@ -0,0 +1,56 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MAIN_WINDOW_PRIVATE_H__
+#define __MN_MAIN_WINDOW_PRIVATE_H__
+
+#include "mn-main-window.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 25 "mn-main-window.gob"
+
+#include "egg-toolbars-model.h"
+
+#line 18 "mn-main-window-private.h"
+struct _MNMainWindowPrivate {
+#line 54 "mn-main-window.gob"
+	GtkWidget * menubar;
+#line 55 "mn-main-window.gob"
+	GtkWidget * toolbar;
+#line 56 "mn-main-window.gob"
+	GtkWidget * message_view;
+#line 57 "mn-main-window.gob"
+	GtkWidget * statusbar;
+#line 59 "mn-main-window.gob"
+	GtkUIManager * ui_manager;
+#line 60 "mn-main-window.gob"
+	GtkActionGroup * action_group;
+#line 62 "mn-main-window.gob"
+	EggToolbarsModel * toolbars_model;
+#line 63 "mn-main-window.gob"
+	unsigned int toolbars_model_save_idle_id;
+#line 65 "mn-main-window.gob"
+	unsigned int help_cid;
+#line 66 "mn-main-window.gob"
+	unsigned int count_cid;
+#line 68 "mn-main-window.gob"
+	GtkWidget * leave_fullscreen_popup;
+#line 69 "mn-main-window.gob"
+	gboolean leave_fullscreen_popup_visible;
+#line 70 "mn-main-window.gob"
+	unsigned int leave_fullscreen_timeout_id;
+#line 72 "mn-main-window.gob"
+	GtkWidget * edit_toolbars_dialog;
+#line 73 "mn-main-window.gob"
+	GtkWidget * edit_toolbars_editor;
+#line 50 "mn-main-window-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-main-window.c b/src/mn-main-window.c
@@ -1,20 +1,29 @@
-/* 
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-main-window.h"
+
+#include "mn-main-window-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 29 "mn-main-window.gob"
 
 #include "config.h"
 #include <gnome.h>
@@ -26,982 +35,1434 @@
 #include "mn-shell.h"
 #include "mn-conf.h"
 #include "mn-properties-dialog.h"
-#include "mn-summary-popup.h"
 #include "mn-message-view.h"
 
-/*** cpp *********************************************************************/
-
 #define STATUS_PUSH(cid, str) \
-  gtk_statusbar_push(GTK_STATUSBAR(self.statusbar), (cid), (str))
+  gtk_statusbar_push(GTK_STATUSBAR(selfp->statusbar), (cid), (str))
 #define STATUS_POP(cid) \
-  gtk_statusbar_pop(GTK_STATUSBAR(self.statusbar), (cid))
+  gtk_statusbar_pop(GTK_STATUSBAR(selfp->statusbar), (cid))
 #define GET_ACTION(name) \
-  gtk_action_group_get_action(self.action_group, (name))
+  gtk_action_group_get_action(selfp->action_group, (name))
 #define FULLSCREEN \
-  (self.leave_fullscreen_popup != NULL)
-
-/*** types *******************************************************************/
-
-typedef struct
-{
-  GtkWidget		*window;
-
-  GtkWidget		*menubar;
-  GtkWidget		*toolbar;
-  GtkWidget		*statusbar;
-
-  GtkWidget		*scrolled;
-  GtkWidget		*message_view;
-
-  GtkWidget		*edit_toolbars_dialog;
-  GtkWidget		*edit_toolbars_editor;
-
-  GtkUIManager		*ui_manager;
-  GtkActionGroup	*action_group;
-
-  EggToolbarsModel	*toolbars_model;
-  char			*toolbars_file;
-  unsigned int		toolbars_model_save_idle_id;
-
-  GSList		*transients;
-  unsigned int		help_cid;
-  unsigned int		count_cid;
-
-  GtkWidget		*leave_fullscreen_popup;
-  gboolean		leave_fullscreen_popup_visible;
-  unsigned int		leave_fullscreen_timeout_id;
-} MainWindow;
-
-/*** variables ***************************************************************/
-
-static MainWindow self = { NULL };
-
-/*** actions *****************************************************************/
-
-static void mn_main_window_mail_reader_activate_h (void);
-static void mn_main_window_update_activate_h (void);
-static void mn_main_window_close_activate_h (void);
-static void mn_main_window_quit_activate_h (void);
-static void mn_main_window_edit_toolbars_activate_h (void);
-static void mn_main_window_preferences_activate_h (void);
-static void mn_main_window_help_contents_activate_h (void);
-static void mn_main_window_about_activate_h (void);
-
-static GtkActionEntry menu_entries[] = {
-  /* Toplevel */
-  { "Mail", NULL, N_("_Mail") },
-  { "Edit", NULL, N_("_Edit") },
-  { "View", NULL, N_("_View") },
-  { "Help", NULL, N_("_Help") },
-
-  /* Mail menu */
-  {
-    "MailMailReader",
-    MN_STOCK_MAIL_READER,
-    N_("_Mail Reader"),
-    "<control>M",
-    N_("Launch the mail reader"),
-    mn_main_window_mail_reader_activate_h
-  },
-  {
-    "MailUpdate",
-    GTK_STOCK_REFRESH,
-    N_("_Update"),
-    "<control>R",		/* Reload */
-    N_("Update the mail status"),
-    mn_main_window_update_activate_h
-  },
-  {
-    "MailClose",
-    GTK_STOCK_CLOSE,
-    N_("_Close"),
-    "<control>W",
-    N_("Close this window"),
-    mn_main_window_close_activate_h
-  },
-  {
-    "MailQuit",
-    GTK_STOCK_QUIT,
-    N_("_Quit"),
-    "<control>Q",
-    N_("Quit Mail Notification"),
-    mn_main_window_quit_activate_h
-  },
-
-  /* Edit menu */
-  {
-    "EditToolbars",
-    NULL,
-    N_("_Toolbars"),
-    NULL,
-    N_("Customize the toolbars"),
-    mn_main_window_edit_toolbars_activate_h
-  },
-  {
-    "EditPreferences",
-    GTK_STOCK_PREFERENCES,
-    N_("_Preferences"),
-    NULL,
-    N_("Configure Mail Notification"),
-    mn_main_window_preferences_activate_h
-  },
-
-  /* View menu */
-  {
-    "ViewToolbarsStyle",
-    NULL,
-    N_("Toolbars Styl_e"),
-    NULL,
-    N_("Customize the toolbars style"),
-    NULL
-  },
-
-  /* Help menu */
-  {
-    "HelpContents",
-    GTK_STOCK_HELP,
-    N_("_Contents"),
-    "F1",
-    N_("Display help"),
-    mn_main_window_help_contents_activate_h,
-  },
-  {
-    "HelpAbout",
-    GNOME_STOCK_ABOUT,
-    N_("_About"),
-    NULL,
-    N_("Display credits"),
-    mn_main_window_about_activate_h
-  }
-};
-
-static GtkToggleActionEntry toggle_entries[] = {
-  /* View menu */
-  {
-    "ViewToolbars",
-    NULL,
-    N_("_Toolbars"),
-    NULL,
-    N_("Show or hide the toolbars"),
-    NULL,
-    FALSE
-  },
-  {
-    "ViewStatusbar",
-    NULL,
-    N_("_Statusbar"),
-    NULL,
-    N_("Show or hide the statusbar"),
-    NULL,
-    FALSE
-  }
-};
-
-static GtkRadioActionEntry toolbars_style_entries[] = {
-  /* View menu */
-  {
-    "ViewToolbarsStyleDesktopDefault",
-    NULL,
-    N_("_Desktop Default"),
-    NULL,
-    N_("Set the toolbars style to the desktop default setting"),
-    MN_TOOLBAR_STYLE_DESKTOP_DEFAULT
-  },
-  {
-    "ViewToolbarsStyleIconsOnly",
-    NULL,
-    N_("I_cons Only"),
-    NULL,
-    N_("Only display the toolbars icons"),
-    MN_TOOLBAR_STYLE_ICONS
-  },
-  {
-    "ViewToolbarsStyleTextOnly",
-    NULL,
-    N_("_Text Only"),
-    NULL,
-    N_("Only display the toolbars text"),
-    MN_TOOLBAR_STYLE_TEXT
-  },
-  {
-    "ViewToolbarsStyleTextBelowIcons",
-    NULL,
-    N_("Text Belo_w Icons"),
-    NULL,
-    N_("Display the toolbars text below the icons"),
-    MN_TOOLBAR_STYLE_BOTH
-  },
-  {
-    "ViewToolbarsStyleTextBesideIcons",
-    NULL,
-    N_("Text Be_side Icons"),
-    NULL,
-    N_("Display the toolbars text beside the icons"),
-    MN_TOOLBAR_STYLE_BOTH_HORIZ
-  }
-};
-
-/*** functions ***************************************************************/
-
-static void mn_main_window_transient_weak_notify_cb (gpointer data,
-						     GObject *former_object);
-
-static void mn_main_window_weak_notify_cb (gpointer data,
-					   GObject *former_object);
-
-static void mn_main_window_notify_mail_reader_cb (GConfClient *client,
-						  unsigned int cnxn_id,
-						  GConfEntry *entry,
-						  gpointer user_data);
-
-static void mn_main_window_update_messages (void);
-static void mn_main_window_update_sensitivity (void);
-
-static void mn_main_window_create_toolbars_model (gboolean use_dot_file);
-
-static void mn_main_window_ui_manager_connect_proxy_h (GtkUIManager *manager,
-						       GtkAction *action,
-						       GtkWidget *proxy,
-						       gpointer user_data);
-static void mn_main_window_ui_manager_disconnect_proxy_h (GtkUIManager *manager,
-							  GtkAction *action,
-							  GtkWidget *proxy,
-							  gpointer user_data);
-
-static void mn_main_window_menu_item_select_h (GtkMenuItem *item,
-					       gpointer user_data);
-static void mn_main_window_menu_item_deselect_h (GtkMenuItem *item,
-						 gpointer user_data);
-
-static void mn_main_window_link_view_action (GtkToggleAction *action, GCallback cb);
-
-static void mn_main_window_update_toolbars_visibility (void);
-static void mn_main_window_update_statusbar_visibility (void);
-static void mn_main_window_update_toolbars_style (void);
-
-static void mn_main_window_toolbars_model_save_changes (void);
-static gboolean mn_main_window_toolbars_model_save_changes_cb (gpointer data);
-
-static void mn_main_window_toolbars_model_update_flags_and_save_changes (void);
-
-static void mn_main_window_edit_toolbars_create_editor (void);
-static void mn_main_window_edit_toolbars_weak_notify_cb (gpointer data,
-							 GObject *former_object);
-
-static void mn_main_window_fullscreen (void);
-static void mn_main_window_unfullscreen (void);
-
-static gboolean mn_main_window_leave_fullscreen_timeout_cb (gpointer data);
-
-static gboolean mn_main_window_leave_fullscreen_enter_notify_event_h (GtkWidget *widget,
-								      GdkEventCrossing *event,
-								      gpointer user_data);
-static gboolean mn_main_window_leave_fullscreen_leave_notify_event_h (GtkWidget *widget,
-								      GdkEventCrossing *event,
-								      gpointer user_data);
-
-static void mn_main_window_update_leave_fullscreen_popup_position (void);
-
-static gboolean mn_main_window_fullscreen_key_press_event_h (GtkWidget *widget,
-							     GdkEventKey *event,
-							     gpointer user_data);
-static void mn_main_window_fullscreen_menubar_deactivate_h (GtkMenuShell *menushell,
-							    gpointer user_data);
-
-/*** implementation **********************************************************/
-
-void
-mn_main_window_display (void)
-{
-  GError *err = NULL;
-  GtkAccelGroup *accel_group;
-  GSList *l;
-
-  g_return_if_fail(mn_shell != NULL);
-
-  if (self.window)
-    {
-      gtk_window_present(GTK_WINDOW(self.window));
-      return;
-    }
-
-  /* we don't need the popup anymore */
-  mn_summary_popup_destroy();
-
-  self.ui_manager = gtk_ui_manager_new();
-
-  g_object_connect(self.ui_manager,
-		   "signal::connect-proxy", mn_main_window_ui_manager_connect_proxy_h, NULL,
-		   "signal::disconnect-proxy", mn_main_window_ui_manager_disconnect_proxy_h, NULL,
-		   NULL);
-
-  self.action_group = gtk_action_group_new("MainWindowActions");
-  gtk_action_group_set_translation_domain(self.action_group, NULL);
-
-  gtk_action_group_add_actions(self.action_group,
-			       menu_entries,
-			       G_N_ELEMENTS(menu_entries),
-			       NULL);
-  gtk_action_group_add_toggle_actions(self.action_group,
-				      toggle_entries,
-				      G_N_ELEMENTS(toggle_entries),
-				      NULL);
-  gtk_action_group_add_radio_actions(self.action_group,
-				     toolbars_style_entries,
-				     G_N_ELEMENTS(toolbars_style_entries),
-				     -1,
-				     G_CALLBACK(mn_main_window_update_toolbars_style),
-				     NULL);
-  gtk_ui_manager_insert_action_group(self.ui_manager, self.action_group, 0);
-
-  g_object_set(G_OBJECT(GET_ACTION("MailMailReader")),
-	       "is-important", TRUE,
-	       NULL);
-
-  if (! gtk_ui_manager_add_ui_from_file(self.ui_manager, MN_INTERFACE_FILE("menus.xml"), &err))
-    {
-      g_critical(_("unable to load menus.xml: %s"), err->message);
-      g_error_free(err);
-    }
-
-  self.toolbars_file = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
-  mn_main_window_create_toolbars_model(TRUE);
-
-  mn_create_interface(MN_INTERFACE_FILE("main.glade"),
-		      "window", &self.window,
-		      "menubar", &self.menubar,
-		      "toolbar", &self.toolbar,
-		      "statusbar", &self.statusbar,
-		      "scrolled", &self.scrolled,
-		      NULL);
-  g_object_weak_ref(G_OBJECT(self.window), mn_main_window_weak_notify_cb, NULL);
-
-  /*
-   * Glade forces an useless viewport into the scrolled window if we
-   * use a custom widget, so we don't.
-   */
-  self.message_view = mn_message_view_new(FALSE, TRUE);
-  gtk_widget_set_name(self.message_view, "mn-message-view");
-  gtk_container_set_border_width(GTK_CONTAINER(self.message_view), 12);
-  gtk_container_add(GTK_CONTAINER(self.scrolled), self.message_view);
-  gtk_widget_show(self.message_view);
-  
-  accel_group = gtk_ui_manager_get_accel_group(self.ui_manager);
-  gtk_window_add_accel_group(GTK_WINDOW(self.window), accel_group);
-  
-  /*
-   * ~/.gnome2/accels/mail-notification is automatically loaded by the
-   * libgnomeui module, we just need to save it ourselves.
-   */
-  g_signal_connect(accel_group, "accel-changed", G_CALLBACK(gnome_accelerators_sync), NULL);
-
-  self.help_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(self.statusbar), _("Help messages"));
-  self.count_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(self.statusbar), _("Count messages"));
-
-  mn_conf_link(self.window, MN_CONF_MAIN_WINDOW_DIMENSIONS,
-	       GET_ACTION("ViewToolbars"), MN_CONF_MAIN_WINDOW_VIEW_TOOLBARS,
-	       GET_ACTION("ViewStatusbar"), MN_CONF_MAIN_WINDOW_VIEW_STATUSBAR,
-	       GET_ACTION("ViewToolbarsStyleDesktopDefault"), MN_CONF_MAIN_WINDOW_TOOLBARS_STYLE, MN_TYPE_TOOLBAR_STYLE,
-	       NULL);
-
-  mn_main_window_link_view_action(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars")), mn_main_window_update_toolbars_visibility);
-  mn_main_window_link_view_action(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar")), mn_main_window_update_statusbar_visibility);
-
-  mn_main_window_update_messages();
-  mn_main_window_update_sensitivity();
-  
-  mn_conf_notification_add(self.window,
-			   MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
-			   mn_main_window_notify_mail_reader_cb,
-			   NULL);
-  mn_g_object_connect(self.window,
-		      mn_shell->mailboxes,
-		      "signal::notify::must-poll", mn_main_window_update_sensitivity, NULL,
-		      "signal::messages-changed", mn_main_window_update_messages, NULL,
-		      NULL);
-
-  gtk_widget_grab_focus(self.message_view);
-  gtk_widget_show(self.window);
-
-  MN_LIST_FOREACH(l, self.transients)
-    {
-      GtkWindow *window = l->data;
-      gtk_window_set_transient_for(window, GTK_WINDOW(self.window));
-    }
-}
-
-gboolean
-mn_main_window_is_displayed (void)
+  (selfp->leave_fullscreen_popup != NULL)
+
+#line 50 "mn-main-window.c"
+/* self casting macros */
+#define SELF(x) MN_MAIN_WINDOW(x)
+#define SELF_CONST(x) MN_MAIN_WINDOW_CONST(x)
+#define IS_SELF(x) MN_IS_MAIN_WINDOW(x)
+#define TYPE_SELF MN_TYPE_MAIN_WINDOW
+#define SELF_CLASS(x) MN_MAIN_WINDOW_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MAIN_WINDOW_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMainWindow Self;
+typedef MNMainWindowClass SelfClass;
+
+/* here are local prototypes */
+static void mn_main_window_class_init (MNMainWindowClass * c) G_GNUC_UNUSED;
+static void mn_main_window_init (MNMainWindow * self) G_GNUC_UNUSED;
+static void ___2_mn_main_window_dispose (GObject * object) G_GNUC_UNUSED;
+static void mn_main_window_create_ui_manager (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_create_toolbars_model (MNMainWindow * self, gboolean use_dot_file) G_GNUC_UNUSED;
+static void mn_main_window_update_toolbars_visibility (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_update_statusbar_visibility (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_main_window_update_messages (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_update_sensitivity (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_ui_manager_connect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager) G_GNUC_UNUSED;
+static void mn_main_window_ui_manager_disconnect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager) G_GNUC_UNUSED;
+static void mn_main_window_menu_item_select_h (MNMainWindow * self, GtkMenuItem * item) G_GNUC_UNUSED;
+static void mn_main_window_menu_item_deselect_h (MNMainWindow * self, GtkMenuItem * item) G_GNUC_UNUSED;
+static gboolean mn_main_window_window_state_event_h (MNMainWindow * self, GdkEventWindowState * event, gpointer user_data) G_GNUC_UNUSED;
+static void mn_main_window_update_toolbars_style_changed_h (GtkRadioAction * action, GtkRadioAction * current, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_update_toolbars_style (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_toolbars_model_save_changes (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_toolbars_model_save_changes_cb (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_toolbars_model_update_flags_and_save_changes (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_mail_reader_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_update_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_close_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_quit_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_response_h (MNMainWindow * self, int response, GtkDialog * dialog) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_create_editor (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_edit_toolbars_weak_notify_cb (MNMainWindow * self, GObject * former_object) G_GNUC_UNUSED;
+static void mn_main_window_preferences_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_help_contents_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_about_activate_h (GtkAction * action, Self * self) G_GNUC_UNUSED;
+static void mn_main_window_fullscreen (MNMainWindow * self) G_GNUC_UNUSED;
+static void mn_main_window_unfullscreen (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_leave_fullscreen_timeout_cb (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_leave_fullscreen_enter_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget) G_GNUC_UNUSED;
+static gboolean mn_main_window_leave_fullscreen_leave_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget) G_GNUC_UNUSED;
+static void mn_main_window_update_leave_fullscreen_popup_position (MNMainWindow * self) G_GNUC_UNUSED;
+static gboolean mn_main_window_fullscreen_key_press_event_h (MNMainWindow * self, GdkEventKey * event, gpointer user_data) G_GNUC_UNUSED;
+static void mn_main_window_fullscreen_menubar_deactivate_h (MNMainWindow * self, GtkMenuShell * menushell) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static GtkWindowClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_create_ui_manager mn_main_window_create_ui_manager
+#define self_create_toolbars_model mn_main_window_create_toolbars_model
+#define self_update_toolbars_visibility mn_main_window_update_toolbars_visibility
+#define self_update_statusbar_visibility mn_main_window_update_statusbar_visibility
+#define self_notify_mail_reader_cb mn_main_window_notify_mail_reader_cb
+#define self_update_messages mn_main_window_update_messages
+#define self_update_sensitivity mn_main_window_update_sensitivity
+#define self_ui_manager_connect_proxy_h mn_main_window_ui_manager_connect_proxy_h
+#define self_ui_manager_disconnect_proxy_h mn_main_window_ui_manager_disconnect_proxy_h
+#define self_menu_item_select_h mn_main_window_menu_item_select_h
+#define self_menu_item_deselect_h mn_main_window_menu_item_deselect_h
+#define self_window_state_event_h mn_main_window_window_state_event_h
+#define self_update_toolbars_style_changed_h mn_main_window_update_toolbars_style_changed_h
+#define self_update_toolbars_style mn_main_window_update_toolbars_style
+#define self_toolbars_model_save_changes mn_main_window_toolbars_model_save_changes
+#define self_toolbars_model_save_changes_cb mn_main_window_toolbars_model_save_changes_cb
+#define self_toolbars_model_update_flags_and_save_changes mn_main_window_toolbars_model_update_flags_and_save_changes
+#define self_mail_reader_activate_h mn_main_window_mail_reader_activate_h
+#define self_update_activate_h mn_main_window_update_activate_h
+#define self_close_activate_h mn_main_window_close_activate_h
+#define self_quit_activate_h mn_main_window_quit_activate_h
+#define self_edit_toolbars_activate_h mn_main_window_edit_toolbars_activate_h
+#define self_edit_toolbars_response_h mn_main_window_edit_toolbars_response_h
+#define self_edit_toolbars_create_editor mn_main_window_edit_toolbars_create_editor
+#define self_edit_toolbars_weak_notify_cb mn_main_window_edit_toolbars_weak_notify_cb
+#define self_preferences_activate_h mn_main_window_preferences_activate_h
+#define self_help_contents_activate_h mn_main_window_help_contents_activate_h
+#define self_about_activate_h mn_main_window_about_activate_h
+#define self_fullscreen mn_main_window_fullscreen
+#define self_unfullscreen mn_main_window_unfullscreen
+#define self_leave_fullscreen_timeout_cb mn_main_window_leave_fullscreen_timeout_cb
+#define self_leave_fullscreen_enter_notify_event_h mn_main_window_leave_fullscreen_enter_notify_event_h
+#define self_leave_fullscreen_leave_notify_event_h mn_main_window_leave_fullscreen_leave_notify_event_h
+#define self_update_leave_fullscreen_popup_position mn_main_window_update_leave_fullscreen_popup_position
+#define self_fullscreen_key_press_event_h mn_main_window_fullscreen_key_press_event_h
+#define self_fullscreen_menubar_deactivate_h mn_main_window_fullscreen_menubar_deactivate_h
+GType
+mn_main_window_get_type (void)
 {
-  return self.window != NULL;
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNMainWindowClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_main_window_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNMainWindow),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_main_window_init,
+			NULL
+		};
+
+		type = g_type_register_static (GTK_TYPE_WINDOW, "MNMainWindow", &info, (GTypeFlags)0);
+	}
+
+	return type;
 }
 
-void
-mn_main_window_add_transient (GtkWindow *window)
-{
-  self.transients = g_slist_append(self.transients, window);
-  g_object_weak_ref(G_OBJECT(window), mn_main_window_transient_weak_notify_cb, NULL);
-
-  if (self.window)
-    gtk_window_set_transient_for(window, GTK_WINDOW(self.window));
-}
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMainWindow *)g_object_new(mn_main_window_get_type(), NULL))
 
-static void
-mn_main_window_transient_weak_notify_cb (gpointer data, GObject *former_object)
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMainWindow * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMainWindow *
+GET_NEW_VARG (const char *first, ...)
 {
-  self.transients = g_slist_remove(self.transients, former_object);
+	MNMainWindow *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNMainWindow *)g_object_new_valist (mn_main_window_get_type (), first, ap);
+	va_end (ap);
+	return ret;
 }
 
+
 static void
-mn_main_window_weak_notify_cb (gpointer data, GObject *former_object)
+___dispose (GObject *obj_self)
 {
-  g_object_unref(self.ui_manager);
-  self.ui_manager = NULL;
-
-  g_object_unref(self.action_group);
-  self.action_group = NULL;
-
-  g_object_unref(self.toolbars_model);
-  self.toolbars_model = NULL;
-
-  g_free(self.toolbars_file);
-  self.toolbars_file = NULL;
-
-  mn_source_remove(&self.toolbars_model_save_idle_id);
-
-  self.window = NULL;
-  self.toolbar = NULL;
+#define __GOB_FUNCTION__ "MN:Main:Window::dispose"
+	MNMainWindow *self G_GNUC_UNUSED = MN_MAIN_WINDOW (obj_self);
+#line 138 "mn-main-window.gob"
+	___2_mn_main_window_dispose(obj_self);
+#line 195 "mn-main-window.c"
+#line 59 "mn-main-window.gob"
+	if(self->_priv->ui_manager) { g_object_unref ((gpointer) self->_priv->ui_manager); self->_priv->ui_manager = NULL; }
+#line 198 "mn-main-window.c"
+#line 60 "mn-main-window.gob"
+	if(self->_priv->action_group) { g_object_unref ((gpointer) self->_priv->action_group); self->_priv->action_group = NULL; }
+#line 201 "mn-main-window.c"
+#line 62 "mn-main-window.gob"
+	if(self->_priv->toolbars_model) { g_object_unref ((gpointer) self->_priv->toolbars_model); self->_priv->toolbars_model = NULL; }
+#line 204 "mn-main-window.c"
 }
+#undef __GOB_FUNCTION__
 
-static void
-mn_main_window_notify_mail_reader_cb (GConfClient *client,
-				      unsigned int cnxn_id,
-				      GConfEntry *entry,
-				      gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-  mn_main_window_update_sensitivity();
-  GDK_THREADS_LEAVE();
-}
 
 static void
-mn_main_window_update_messages (void)
+___finalize(GObject *obj_self)
 {
-  GSList *messages;
-  int count;
+#define __GOB_FUNCTION__ "MN:Main:Window::finalize"
+	MNMainWindow *self G_GNUC_UNUSED = MN_MAIN_WINDOW (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+}
+#undef __GOB_FUNCTION__
 
-  messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
-  count = g_slist_length(messages);
+static void 
+mn_main_window_class_init (MNMainWindowClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
 
-  mn_message_view_set_messages(MN_MESSAGE_VIEW(self.message_view), messages);
-  mn_g_object_slist_free(messages);
+	g_type_class_add_private(c,sizeof(MNMainWindowPrivate));
 
-  if (count > 0)
-    {
-      char *status;
+	parent_class = g_type_class_ref (GTK_TYPE_WINDOW);
 
-      status = g_strdup_printf(ngettext("%i new message", "%i new messages", count), count);
-      STATUS_PUSH(self.count_cid, status);
-      g_free(status);
-    }
-  else
-    STATUS_POP(self.count_cid);
+#line 138 "mn-main-window.gob"
+	g_object_class->dispose = ___dispose;
+#line 232 "mn-main-window.c"
+	g_object_class->finalize = ___finalize;
 }
-
-static void
-mn_main_window_update_sensitivity (void)
-{
-  g_object_set(GET_ACTION("MailMailReader"),
-	       "sensitive", mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE),
-	       NULL);
-  g_object_set(GET_ACTION("MailUpdate"),
-	       "sensitive", mn_mailboxes_get_must_poll(mn_shell->mailboxes),
-	       NULL);
-}
-
-static void
-mn_main_window_create_toolbars_model (gboolean use_dot_file)
+#undef __GOB_FUNCTION__
+#line 75 "mn-main-window.gob"
+static void 
+mn_main_window_init (MNMainWindow * self G_GNUC_UNUSED)
+#line 239 "mn-main-window.c"
 {
-  if (self.toolbars_model)
-    g_object_unref(self.toolbars_model);
-
-  self.toolbars_model = egg_toolbars_model_new();
-
-  g_object_connect(self.toolbars_model,
-		   "signal-after::item-added", mn_main_window_toolbars_model_save_changes, NULL,
-		   "signal-after::item-removed", mn_main_window_toolbars_model_save_changes, NULL,
-		   "signal-after::toolbar-added", mn_main_window_toolbars_model_update_flags_and_save_changes, NULL,
-		   "signal-after::toolbar-removed", mn_main_window_toolbars_model_update_flags_and_save_changes, NULL,
-		   NULL);
+#define __GOB_FUNCTION__ "MN:Main:Window::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_MAIN_WINDOW,MNMainWindowPrivate);
+ {
+#line 76 "mn-main-window.gob"
+
+    GtkWidget *scrolled;
+    GtkWidget *vbox;
+
+    self_create_ui_manager(self);
+    self_create_toolbars_model(self, TRUE);
+
+    selfp->menubar = gtk_ui_manager_get_widget(selfp->ui_manager, "/menubar");
+    selfp->toolbar = egg_editable_toolbar_new_with_model(selfp->ui_manager, selfp->toolbars_model);
+
+    scrolled = gtk_scrolled_window_new(NULL, NULL);
+    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+				   GTK_POLICY_AUTOMATIC,
+				   GTK_POLICY_AUTOMATIC);
+
+    selfp->message_view = mn_message_view_new(FALSE, TRUE);
+    gtk_widget_set_name(selfp->message_view, "mn-message-view");
+    gtk_container_set_border_width(GTK_CONTAINER(selfp->message_view), 12);
+    gtk_container_add(GTK_CONTAINER(scrolled), selfp->message_view);
+
+    selfp->statusbar = gtk_statusbar_new();
+
+    vbox = gtk_vbox_new(FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), selfp->menubar, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), selfp->toolbar, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), selfp->statusbar, FALSE, FALSE, 0);
+    gtk_widget_show_all(vbox);
+    gtk_container_add(GTK_CONTAINER(self), vbox);
+
+    selfp->help_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Help messages"));
+    selfp->count_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Count messages"));
+
+    mn_conf_link(self, MN_CONF_MAIN_WINDOW_DIMENSIONS,
+		 GET_ACTION("ViewToolbars"), MN_CONF_MAIN_WINDOW_VIEW_TOOLBARS,
+		 GET_ACTION("ViewStatusbar"), MN_CONF_MAIN_WINDOW_VIEW_STATUSBAR,
+		 GET_ACTION("ViewToolbarsStyleDesktopDefault"), MN_CONF_MAIN_WINDOW_TOOLBARS_STYLE, MN_TYPE_TOOLBAR_STYLE,
+		 NULL);
+
+    self_update_toolbars_visibility(self);
+    self_update_statusbar_visibility(self);
+
+    g_signal_connect_swapped(GET_ACTION("ViewToolbars"), "toggled", G_CALLBACK(self_update_toolbars_visibility), self);
+    g_signal_connect_swapped(GET_ACTION("ViewStatusbar"), "toggled", G_CALLBACK(self_update_statusbar_visibility), self);
+
+    self_update_messages(self);
+    self_update_sensitivity(self);
+
+    mn_conf_notification_add(self,
+			     MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
+			     self_notify_mail_reader_cb,
+			     self);
+    mn_g_object_connect(self,
+			mn_shell->mailboxes,
+			"swapped-signal::notify::must-poll", self_update_sensitivity, self,
+			"swapped-signal::messages-changed", self_update_messages, self,
+			NULL);
+    g_signal_connect(self, "window-state-event", G_CALLBACK(self_window_state_event_h), NULL);
 
-  if (! use_dot_file || ! egg_toolbars_model_load(self.toolbars_model, self.toolbars_file))
-    {
-      if (! egg_toolbars_model_load(self.toolbars_model, MN_INTERFACE_FILE("toolbars.xml")))
-	g_critical(_("unable to load toolbars.xml"));
-    }
+    gtk_widget_grab_focus(selfp->message_view);
   
-  if (egg_toolbars_model_n_toolbars(self.toolbars_model) < 1)
-    egg_toolbars_model_add_toolbar(self.toolbars_model, 0, "DefaultToolbar");
-
-  if (self.toolbar)
-    egg_editable_toolbar_set_model(EGG_EDITABLE_TOOLBAR(self.toolbar), self.toolbars_model);
+#line 306 "mn-main-window.c"
+ }
 }
+#undef __GOB_FUNCTION__
 
-static void
-mn_main_window_ui_manager_connect_proxy_h (GtkUIManager *manager,
-					   GtkAction *action,
-					   GtkWidget *proxy,
-					   gpointer user_data)
-{
-  if (GTK_IS_MENU_ITEM(proxy))
-    g_object_connect(proxy,
-		     "signal::select", mn_main_window_menu_item_select_h, NULL,
-		     "signal::deselect", mn_main_window_menu_item_deselect_h, NULL,
-		     NULL);
-}
 
-static void
-mn_main_window_ui_manager_disconnect_proxy_h (GtkUIManager *manager,
-					      GtkAction *action,
-					      GtkWidget *proxy,
-					      gpointer user_data)
-{
-  if (GTK_IS_MENU_ITEM(proxy))
-    g_object_disconnect(proxy,
-			"any-signal", mn_main_window_menu_item_select_h, NULL,
-			"any-signal", mn_main_window_menu_item_deselect_h, NULL,
-			NULL);
-}
 
-static void
-mn_main_window_menu_item_select_h (GtkMenuItem *item, gpointer user_data)
+#line 138 "mn-main-window.gob"
+static void 
+___2_mn_main_window_dispose (GObject * object G_GNUC_UNUSED)
+#line 316 "mn-main-window.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->dispose) \
+		(* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
 {
-  GtkAction *action;
-  char *tooltip = NULL;
+#define __GOB_FUNCTION__ "MN:Main:Window::dispose"
+{
+#line 140 "mn-main-window.gob"
+	
+    Self *self = SELF(object);
 
-  action = g_object_get_data(G_OBJECT(item), "gtk-action");
-  g_return_if_fail(action != NULL);
-  
-  g_object_get(G_OBJECT(action), "tooltip", &tooltip, NULL);
-  if (tooltip)
-    {
-      STATUS_PUSH(self.help_cid, tooltip);
-      g_free(tooltip);
-    }
-}
+    mn_source_clear(&selfp->toolbars_model_save_idle_id);
 
-static void
-mn_main_window_menu_item_deselect_h (GtkMenuItem *item, gpointer user_data)
-{
-  STATUS_POP(self.help_cid);
-}
+    if (FULLSCREEN)
+      self_unfullscreen(self);
 
-static void
-mn_main_window_update_toolbars_style (void)
-{
-  MNToolbarStyle style;
-  EggTbModelFlags flag;
-  int n_toolbars;
-  int i;
-
-  style = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(GET_ACTION("ViewToolbarsStyleDesktopDefault")));
-  if (style == MN_TOOLBAR_STYLE_DESKTOP_DEFAULT)
-    g_object_get(gtk_widget_get_settings(self.toolbar), "gtk-toolbar-style", &style, NULL);
-
-  if (FULLSCREEN && style == MN_TOOLBAR_STYLE_BOTH)
-    style = MN_TOOLBAR_STYLE_ICONS;
-
-  flag = 1 << (style + 1);
-  n_toolbars = egg_toolbars_model_n_toolbars(self.toolbars_model);
-
-  for (i = 0; i < n_toolbars; i++)
-    {
-      EggTbModelFlags flags;
-
-      flags = egg_toolbars_model_get_flags(self.toolbars_model, i);
-      flags &= ~ (EGG_TB_MODEL_ICONS_ONLY
-		  | EGG_TB_MODEL_TEXT_ONLY
-		  | EGG_TB_MODEL_ICONS_TEXT
-		  | EGG_TB_MODEL_ICONS_TEXT_HORIZ);
-      flags |= flag;
-      egg_toolbars_model_set_flags(self.toolbars_model, i, flags);
-    }
-}
+    PARENT_HANDLER(object);
+  }}
+#line 334 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
 
-static void
-mn_main_window_toolbars_model_save_changes (void)
+#line 151 "mn-main-window.gob"
+static void 
+mn_main_window_create_ui_manager (MNMainWindow * self)
+#line 341 "mn-main-window.c"
 {
-  if (! self.toolbars_model_save_idle_id)
-    self.toolbars_model_save_idle_id = g_idle_add(mn_main_window_toolbars_model_save_changes_cb, NULL);
-}
-
-static gboolean
-mn_main_window_toolbars_model_save_changes_cb (gpointer data)
+#define __GOB_FUNCTION__ "MN:Main:Window::create_ui_manager"
+#line 151 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 151 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 348 "mn-main-window.c"
 {
-  GDK_THREADS_ENTER();
-  egg_toolbars_model_save(self.toolbars_model, self.toolbars_file, "1.0");
-  self.toolbars_model_save_idle_id = 0;
-  GDK_THREADS_LEAVE();
-
-  return FALSE;			/* remove */
-}
+#line 153 "mn-main-window.gob"
+	
+    static GtkActionEntry menu_entries[] = {
+      /* Toplevel */
+      { "Mail", NULL, N_("_Mail") },
+      { "Edit", NULL, N_("_Edit") },
+      { "View", NULL, N_("_View") },
+      { "Help", NULL, N_("_Help") },
+
+      /* Mail menu */
+      {
+	"MailMailReader",
+	MN_STOCK_MAIL_READER,
+	N_("_Mail Reader"),
+	"<control>M",
+	N_("Launch the mail reader"),
+	G_CALLBACK(self_mail_reader_activate_h)
+      },
+      {
+	"MailUpdate",
+	GTK_STOCK_REFRESH,
+	N_("_Update"),
+	"<control>R",		/* Reload */
+	N_("Update the mail status"),
+	G_CALLBACK(self_update_activate_h)
+      },
+      {
+	"MailClose",
+	GTK_STOCK_CLOSE,
+	N_("_Close"),
+	"<control>W",
+	N_("Close this window"),
+	G_CALLBACK(self_close_activate_h)
+      },
+      {
+	"MailQuit",
+	GTK_STOCK_QUIT,
+	N_("_Quit"),
+	"<control>Q",
+	N_("Quit Mail Notification"),
+	G_CALLBACK(self_quit_activate_h)
+      },
+
+      /* Edit menu */
+      {
+	"EditToolbars",
+	NULL,
+	N_("_Toolbars"),
+	NULL,
+	N_("Customize the toolbars"),
+	G_CALLBACK(self_edit_toolbars_activate_h)
+      },
+      {
+	"EditPreferences",
+	GTK_STOCK_PREFERENCES,
+	N_("_Preferences"),
+	NULL,
+	N_("Configure Mail Notification"),
+	G_CALLBACK(self_preferences_activate_h)
+      },
+
+      /* View menu */
+      {
+	"ViewToolbarsStyle",
+	NULL,
+	N_("Toolbars Styl_e"),
+	NULL,
+	N_("Customize the toolbars style"),
+	NULL
+      },
+
+      /* Help menu */
+      {
+	"HelpContents",
+	GTK_STOCK_HELP,
+	N_("_Contents"),
+	"F1",
+	N_("Display help"),
+	G_CALLBACK(self_help_contents_activate_h)
+      },
+      {
+	"HelpAbout",
+	GTK_STOCK_ABOUT,
+	N_("_About"),
+	NULL,
+	N_("Display credits"),
+	G_CALLBACK(self_about_activate_h)
+      }
+    };
+
+    static GtkToggleActionEntry toggle_entries[] = {
+      /* View menu */
+      {
+	"ViewToolbars",
+	NULL,
+	N_("_Toolbars"),
+	NULL,
+	N_("Show or hide the toolbars"),
+	NULL,
+	FALSE
+      },
+      {
+	"ViewStatusbar",
+	NULL,
+	N_("_Statusbar"),
+	NULL,
+	N_("Show or hide the statusbar"),
+	NULL,
+	FALSE
+      }
+    };
+
+    static GtkRadioActionEntry toolbars_style_entries[] = {
+      /* View menu */
+      {
+	"ViewToolbarsStyleDesktopDefault",
+	NULL,
+	N_("_Desktop Default"),
+	NULL,
+	N_("Set the toolbars style to the desktop default setting"),
+	MN_TOOLBAR_STYLE_DESKTOP_DEFAULT
+      },
+      {
+	"ViewToolbarsStyleIconsOnly",
+	NULL,
+	N_("I_cons Only"),
+	NULL,
+	N_("Only display the toolbars icons"),
+	MN_TOOLBAR_STYLE_ICONS
+      },
+      {
+	"ViewToolbarsStyleTextOnly",
+	NULL,
+	N_("_Text Only"),
+	NULL,
+	N_("Only display the toolbars text"),
+	MN_TOOLBAR_STYLE_TEXT
+      },
+      {
+	"ViewToolbarsStyleTextBelowIcons",
+	NULL,
+	N_("Text Belo_w Icons"),
+	NULL,
+	N_("Display the toolbars text below the icons"),
+	MN_TOOLBAR_STYLE_BOTH
+      },
+      {
+	"ViewToolbarsStyleTextBesideIcons",
+	NULL,
+	N_("Text Be_side Icons"),
+	NULL,
+	N_("Display the toolbars text beside the icons"),
+	MN_TOOLBAR_STYLE_BOTH_HORIZ
+      }
+    };
+
+    GError *err = NULL;
+    GtkAccelGroup *accel_group;
+
+    g_return_if_fail(selfp->ui_manager == NULL);
+
+    selfp->ui_manager = gtk_ui_manager_new();
+
+    g_object_connect(selfp->ui_manager,
+		     "swapped-signal::connect-proxy", self_ui_manager_connect_proxy_h, self,
+		     "swapped-signal::disconnect-proxy", self_ui_manager_disconnect_proxy_h, self,
+		     NULL);
 
-static void
-mn_main_window_toolbars_model_update_flags_and_save_changes (void)
+    selfp->action_group = gtk_action_group_new("MainWindowActions");
+    gtk_action_group_set_translation_domain(selfp->action_group, NULL);
+    
+    gtk_action_group_add_actions(selfp->action_group,
+				 menu_entries,
+				 G_N_ELEMENTS(menu_entries),
+				 self);
+    gtk_action_group_add_toggle_actions(selfp->action_group,
+					toggle_entries,
+					G_N_ELEMENTS(toggle_entries),
+					self);
+    gtk_action_group_add_radio_actions(selfp->action_group,
+				       toolbars_style_entries,
+				       G_N_ELEMENTS(toolbars_style_entries),
+				       -1,
+				       G_CALLBACK(self_update_toolbars_style_changed_h),
+				       self);
+    gtk_ui_manager_insert_action_group(selfp->ui_manager, selfp->action_group, 0);
+
+    g_object_set(G_OBJECT(GET_ACTION("MailMailReader")),
+		 "is-important", TRUE,
+		 NULL);
+
+    if (! gtk_ui_manager_add_ui_from_file(selfp->ui_manager, MN_INTERFACE_FILE("menus.xml"), &err))
+      {
+	g_critical(_("unable to load menus.xml: %s"), err->message);
+	g_error_free(err);
+      }
+
+    accel_group = gtk_ui_manager_get_accel_group(selfp->ui_manager);
+    gtk_window_add_accel_group(GTK_WINDOW(self), accel_group);
+
+    /*
+     * ~/.gnome2/accels/mail-notification is automatically loaded by
+     * the libgnomeui module, we just need to save it ourselves.
+     */
+    g_signal_connect(accel_group, "accel-changed", G_CALLBACK(gnome_accelerators_sync), NULL);
+  }}
+#line 556 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 359 "mn-main-window.gob"
+static void 
+mn_main_window_create_toolbars_model (MNMainWindow * self, gboolean use_dot_file)
+#line 562 "mn-main-window.c"
 {
-  int i;
-  int n_toolbars;
-  EggTbModelFlags flag = EGG_TB_MODEL_ACCEPT_ITEMS_ONLY;
-
-  n_toolbars = egg_toolbars_model_n_toolbars(self.toolbars_model);
-  
-  if (n_toolbars <= 1)
-    flag |= EGG_TB_MODEL_NOT_REMOVABLE;
+#define __GOB_FUNCTION__ "MN:Main:Window::create_toolbars_model"
+#line 359 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 359 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 569 "mn-main-window.c"
+{
+#line 361 "mn-main-window.gob"
+	
+    gboolean load_default_toolbars = TRUE;
 
-  for (i = 0; i < n_toolbars; i++)
-    {
-      EggTbModelFlags flags;
+    if (selfp->toolbars_model)
+      g_object_unref(selfp->toolbars_model);
 
-      flags = egg_toolbars_model_get_flags(self.toolbars_model, i);
-      flags &= ~EGG_TB_MODEL_NOT_REMOVABLE;
-      flags |= flag;
-      egg_toolbars_model_set_flags(self.toolbars_model, i, flags);
-    }
+    selfp->toolbars_model = egg_toolbars_model_new();
 
-  mn_main_window_toolbars_model_save_changes();
-}
+    g_object_connect(selfp->toolbars_model,
+		     "swapped-signal-after::item-added", self_toolbars_model_save_changes, self,
+		     "swapped-signal-after::item-removed", self_toolbars_model_save_changes, self,
+		     "swapped-signal-after::toolbar-added", self_toolbars_model_update_flags_and_save_changes, self,
+		     "swapped-signal-after::toolbar-removed", self_toolbars_model_update_flags_and_save_changes, self,
+		     NULL);
 
-static void
-mn_main_window_link_view_action (GtkToggleAction *action, GCallback cb)
-{
-  g_return_if_fail(GTK_IS_TOGGLE_ACTION(action));
-  g_return_if_fail(cb != NULL);
+    if (use_dot_file)
+      {
+	char *filename;
 
-  cb();
-  g_signal_connect(action, "toggled", cb, NULL);
-}
+	filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+	load_default_toolbars = ! egg_toolbars_model_load(selfp->toolbars_model, filename);
+	g_free(filename);
+      }
 
-static void
-mn_main_window_update_toolbars_visibility (void)
+    if (load_default_toolbars)
+      {
+	if (! egg_toolbars_model_load(selfp->toolbars_model, MN_INTERFACE_FILE("toolbars.xml")))
+	  g_critical(_("unable to load toolbars.xml"));
+      }
+  
+  if (egg_toolbars_model_n_toolbars(selfp->toolbars_model) < 1)
+    egg_toolbars_model_add_toolbar(selfp->toolbars_model, 0, "DefaultToolbar");
+
+  if (selfp->toolbar)
+    egg_editable_toolbar_set_model(EGG_EDITABLE_TOOLBAR(selfp->toolbar), selfp->toolbars_model);
+  }}
+#line 608 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 398 "mn-main-window.gob"
+static void 
+mn_main_window_update_toolbars_visibility (MNMainWindow * self)
+#line 614 "mn-main-window.c"
 {
-  g_object_set(G_OBJECT(self.toolbar), "visible", gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars"))), NULL);
-}
-
-static void
-mn_main_window_update_statusbar_visibility (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_toolbars_visibility"
+#line 398 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 398 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 621 "mn-main-window.c"
 {
-  g_object_set(G_OBJECT(self.statusbar), "visible", ! FULLSCREEN && gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar"))), NULL);
-}
-
-static void
-mn_main_window_mail_reader_activate_h (void)
+#line 400 "mn-main-window.gob"
+	
+    g_object_set(G_OBJECT(selfp->toolbar), "visible", gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars"))), NULL);
+  }}
+#line 627 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 404 "mn-main-window.gob"
+static void 
+mn_main_window_update_statusbar_visibility (MNMainWindow * self)
+#line 633 "mn-main-window.c"
 {
-  mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
-}
-
-static void
-mn_main_window_update_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_statusbar_visibility"
+#line 404 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 404 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 640 "mn-main-window.c"
 {
-  mn_mailboxes_check(mn_shell->mailboxes);
-}
-
-static void
-mn_main_window_close_activate_h (void)
+#line 406 "mn-main-window.gob"
+	
+    g_object_set(G_OBJECT(selfp->statusbar), "visible", ! FULLSCREEN && gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar"))), NULL);
+  }}
+#line 646 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 410 "mn-main-window.gob"
+static void 
+mn_main_window_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 652 "mn-main-window.c"
 {
-  gtk_widget_destroy(self.window);
-}
-
-static void
-mn_main_window_quit_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::notify_mail_reader_cb"
 {
-  g_object_unref(mn_shell);
-}
-
-static void
-mn_main_window_edit_toolbars_activate_h (void)
+#line 415 "mn-main-window.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+    self_update_sensitivity(self);
+    GDK_THREADS_LEAVE();
+  }}
+#line 664 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 423 "mn-main-window.gob"
+static void 
+mn_main_window_update_messages (MNMainWindow * self)
+#line 670 "mn-main-window.c"
 {
-  if (self.edit_toolbars_dialog)
-    {
-      gtk_window_present(GTK_WINDOW(self.edit_toolbars_dialog));
-      return;
-    }
-  
-  mn_create_interface(MN_INTERFACE_FILE("edit-toolbars.glade"),
-		      "dialog", &self.edit_toolbars_dialog,
-		      NULL);
-
-  eel_add_weak_pointer(&self.edit_toolbars_dialog);
-  g_object_weak_ref(G_OBJECT(self.edit_toolbars_dialog), mn_main_window_edit_toolbars_weak_notify_cb, NULL);
-
-  gtk_window_set_transient_for(GTK_WINDOW(self.edit_toolbars_dialog), GTK_WINDOW(self.window));
-
-  mn_main_window_edit_toolbars_create_editor();
-  egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(self.toolbar), TRUE);
-
-  mn_conf_link(self.edit_toolbars_dialog, MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG, NULL);
-  gtk_widget_show(self.edit_toolbars_dialog);
-}
-
-static void
-mn_main_window_edit_toolbars_create_editor (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_messages"
+#line 423 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 423 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 677 "mn-main-window.c"
 {
-  g_return_if_fail(self.edit_toolbars_dialog != NULL);
-
-  if (self.edit_toolbars_editor)
-    gtk_widget_destroy(self.edit_toolbars_editor);
-
-  self.edit_toolbars_editor = egg_toolbar_editor_new(self.ui_manager, self.toolbars_model);
-  eel_add_weak_pointer(&self.edit_toolbars_editor);
-
-  gtk_container_set_border_width(GTK_CONTAINER(self.edit_toolbars_editor), 5);
-  gtk_box_set_spacing(GTK_BOX(self.edit_toolbars_editor), 6);
-
-  egg_toolbar_editor_load_actions(EGG_TOOLBAR_EDITOR(self.edit_toolbars_editor), MN_INTERFACE_FILE("toolbars.xml"));
-
-  gtk_container_add(GTK_CONTAINER(GTK_DIALOG(self.edit_toolbars_dialog)->vbox), self.edit_toolbars_editor);
-  gtk_widget_show(self.edit_toolbars_editor);
-}
-
-static void
-mn_main_window_edit_toolbars_weak_notify_cb (gpointer data, GObject *former_object)
+#line 425 "mn-main-window.gob"
+	
+    GSList *messages;
+    int count;
+
+    messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
+    count = g_slist_length(messages);
+
+    mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+    mn_g_object_slist_free(messages);
+
+    if (count > 0)
+      {
+	char *status;
+	
+	status = g_strdup_printf(ngettext("%i new message", "%i new messages", count), count);
+	STATUS_PUSH(selfp->count_cid, status);
+	g_free(status);
+      }
+    else
+      STATUS_POP(selfp->count_cid);
+  }}
+#line 701 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 447 "mn-main-window.gob"
+static void 
+mn_main_window_update_sensitivity (MNMainWindow * self)
+#line 707 "mn-main-window.c"
 {
-  egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(self.toolbar), FALSE);
-}
-
-static void
-mn_main_window_preferences_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::update_sensitivity"
+#line 447 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 447 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 714 "mn-main-window.c"
 {
-  mn_properties_dialog_display();
-}
-
-static void
-mn_main_window_help_contents_activate_h (void)
+#line 449 "mn-main-window.gob"
+	
+    gtk_action_set_sensitive(GET_ACTION("MailMailReader"), mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE));
+    gtk_action_set_sensitive(GET_ACTION("MailUpdate"), mn_mailboxes_get_must_poll(mn_shell->mailboxes));
+  }}
+#line 721 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 454 "mn-main-window.gob"
+static void 
+mn_main_window_ui_manager_connect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager)
+#line 727 "mn-main-window.c"
 {
-  mn_display_help(GTK_WINDOW(self.window), "main-window");
-}
-
-static void
-mn_main_window_about_activate_h (void)
+#define __GOB_FUNCTION__ "MN:Main:Window::ui_manager_connect_proxy_h"
+#line 454 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 454 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 734 "mn-main-window.c"
 {
-  mn_shell_display_about_dialog(mn_shell);
-}
-
-static void
-mn_main_window_fullscreen (void)
+#line 459 "mn-main-window.gob"
+	
+    if (GTK_IS_MENU_ITEM(proxy))
+      g_object_connect(proxy,
+		       "swapped-signal::select", self_menu_item_select_h, self,
+		       "swapped-signal::deselect", self_menu_item_deselect_h, self,
+		       NULL);
+  }}
+#line 744 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 467 "mn-main-window.gob"
+static void 
+mn_main_window_ui_manager_disconnect_proxy_h (MNMainWindow * self, GtkAction * action, GtkWidget * proxy, GtkUIManager * manager)
+#line 750 "mn-main-window.c"
 {
-  GtkWidget *button;
-
-  self.leave_fullscreen_popup = gtk_window_new(GTK_WINDOW_POPUP);
-  eel_add_weak_pointer(&self.leave_fullscreen_popup);
-
-  button = gtk_button_new_from_stock(MN_STOCK_LEAVE_FULLSCREEN);
-  gtk_container_add(GTK_CONTAINER(self.leave_fullscreen_popup), button);
-  gtk_widget_show(button);
-
-  g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_unfullscreen), self.window);
+#define __GOB_FUNCTION__ "MN:Main:Window::ui_manager_disconnect_proxy_h"
+#line 467 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 467 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 757 "mn-main-window.c"
+{
+#line 472 "mn-main-window.gob"
+	
+    if (GTK_IS_MENU_ITEM(proxy))
+      g_object_disconnect(proxy,
+			  "any-signal", self_menu_item_select_h, self,
+			  "any-signal", self_menu_item_deselect_h, self,
+			  NULL);
+  }}
+#line 767 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 480 "mn-main-window.gob"
+static void 
+mn_main_window_menu_item_select_h (MNMainWindow * self, GtkMenuItem * item)
+#line 773 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::menu_item_select_h"
+#line 480 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 480 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 780 "mn-main-window.c"
+{
+#line 482 "mn-main-window.gob"
+	
+    GtkAction *action;
+    char *tooltip = NULL;
 
-  gtk_widget_hide(self.menubar);
-  mn_main_window_update_toolbars_style();
-  mn_main_window_update_statusbar_visibility();
+    action = g_object_get_data(G_OBJECT(item), "gtk-action");
+    g_return_if_fail(action != NULL);
+  
+    g_object_get(G_OBJECT(action), "tooltip", &tooltip, NULL);
+    if (tooltip)
+      {
+	STATUS_PUSH(selfp->help_cid, tooltip);
+	g_free(tooltip);
+      }
+  }}
+#line 797 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 497 "mn-main-window.gob"
+static void 
+mn_main_window_menu_item_deselect_h (MNMainWindow * self, GtkMenuItem * item)
+#line 803 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::menu_item_deselect_h"
+#line 497 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 497 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 810 "mn-main-window.c"
+{
+#line 499 "mn-main-window.gob"
+	
+    STATUS_POP(selfp->help_cid);
+  }}
+#line 816 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 503 "mn-main-window.gob"
+static gboolean 
+mn_main_window_window_state_event_h (MNMainWindow * self, GdkEventWindowState * event, gpointer user_data)
+#line 822 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::window_state_event_h"
+#line 503 "mn-main-window.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 503 "mn-main-window.gob"
+	g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 829 "mn-main-window.c"
+{
+#line 505 "mn-main-window.gob"
+	
+    if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
+      {
+	if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
+	  self_fullscreen(self);
+	else
+	  self_unfullscreen(self);
+      }
+    
+    return FALSE;		/* propagate event */
+  }}
+#line 843 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 517 "mn-main-window.gob"
+static void 
+mn_main_window_update_toolbars_style_changed_h (GtkRadioAction * action, GtkRadioAction * current, Self * self)
+#line 849 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_toolbars_style_changed_h"
+{
+#line 521 "mn-main-window.gob"
+	
+    self_update_toolbars_style(self);
+  }}
+#line 857 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 525 "mn-main-window.gob"
+static void 
+mn_main_window_update_toolbars_style (MNMainWindow * self)
+#line 863 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_toolbars_style"
+#line 525 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 525 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 870 "mn-main-window.c"
+{
+#line 527 "mn-main-window.gob"
+	
+    MNToolbarStyle style;
+    EggTbModelFlags flag;
+    int n_toolbars;
+    int i;
+
+    style = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(GET_ACTION("ViewToolbarsStyleDesktopDefault")));
+    if (style == MN_TOOLBAR_STYLE_DESKTOP_DEFAULT)
+      g_object_get(gtk_widget_get_settings(selfp->toolbar), "gtk-toolbar-style", &style, NULL);
+
+    if (FULLSCREEN && style == MN_TOOLBAR_STYLE_BOTH)
+      style = MN_TOOLBAR_STYLE_ICONS;
+
+    switch (style)
+      {
+      case MN_TOOLBAR_STYLE_ICONS:	flag = EGG_TB_MODEL_ICONS; break;
+      case MN_TOOLBAR_STYLE_TEXT:	flag = EGG_TB_MODEL_TEXT; break;
+      case MN_TOOLBAR_STYLE_BOTH:	flag = EGG_TB_MODEL_BOTH; break;
+      case MN_TOOLBAR_STYLE_BOTH_HORIZ:	flag = EGG_TB_MODEL_BOTH_HORIZ; break;
+      default:				g_assert_not_reached();
+      }
+    
+    n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
+
+    for (i = 0; i < n_toolbars; i++)
+      {
+	EggTbModelFlags flags;
+
+	flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+	flags &= ~ (EGG_TB_MODEL_ICONS
+		    | EGG_TB_MODEL_TEXT
+		    | EGG_TB_MODEL_BOTH
+		    | EGG_TB_MODEL_BOTH_HORIZ);
+	flags |= flag;
+	egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+      }
+  }}
+#line 910 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 565 "mn-main-window.gob"
+static void 
+mn_main_window_toolbars_model_save_changes (MNMainWindow * self)
+#line 916 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::toolbars_model_save_changes"
+#line 565 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 565 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 923 "mn-main-window.c"
+{
+#line 567 "mn-main-window.gob"
+	
+    if (! selfp->toolbars_model_save_idle_id)
+      selfp->toolbars_model_save_idle_id = g_idle_add((GSourceFunc) self_toolbars_model_save_changes_cb, self);
+  }}
+#line 930 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 572 "mn-main-window.gob"
+static gboolean 
+mn_main_window_toolbars_model_save_changes_cb (MNMainWindow * self)
+#line 936 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::toolbars_model_save_changes_cb"
+#line 572 "mn-main-window.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 572 "mn-main-window.gob"
+	g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 943 "mn-main-window.c"
+{
+#line 574 "mn-main-window.gob"
+	
+    char *filename;
 
-  self.leave_fullscreen_popup_visible = TRUE;
-  mn_main_window_update_leave_fullscreen_popup_position();
-  gtk_widget_show(self.leave_fullscreen_popup);
+    GDK_THREADS_ENTER();
 
-  g_signal_connect(gdk_screen_get_default(),
-		   "size-changed",
-		   G_CALLBACK(mn_main_window_update_leave_fullscreen_popup_position),
-		   NULL);
-  g_signal_connect(self.window,
-		   "key-press-event",
-		   G_CALLBACK(mn_main_window_fullscreen_key_press_event_h),
-		   NULL);
+    filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+    egg_toolbars_model_save(selfp->toolbars_model, filename, "1.0");
+    g_free(filename);
 
-  g_object_connect(self.leave_fullscreen_popup,
-		   "signal::enter-notify-event", mn_main_window_leave_fullscreen_enter_notify_event_h, NULL,
-		   "signal::leave-notify-event", mn_main_window_leave_fullscreen_leave_notify_event_h, NULL,
-		   NULL);
+    GDK_THREADS_LEAVE();
 
-  self.leave_fullscreen_timeout_id = g_timeout_add(5000, mn_main_window_leave_fullscreen_timeout_cb, NULL);
-}
+    selfp->toolbars_model_save_idle_id = 0;
+    return FALSE;		/* remove */
+  }}
+#line 960 "mn-main-window.c"
+#undef __GOB_FUNCTION__
 
-static void
-mn_main_window_unfullscreen (void)
+#line 589 "mn-main-window.gob"
+static void 
+mn_main_window_toolbars_model_update_flags_and_save_changes (MNMainWindow * self)
+#line 966 "mn-main-window.c"
 {
-  g_signal_handlers_disconnect_by_func(gdk_screen_get_default(), mn_main_window_update_leave_fullscreen_popup_position, NULL);
-  g_signal_handlers_disconnect_by_func(self.window, mn_main_window_fullscreen_key_press_event_h, NULL);
-
-  mn_source_remove(&self.leave_fullscreen_timeout_id);
-  gtk_widget_destroy(self.leave_fullscreen_popup);
-
-  gtk_widget_show(self.menubar);
-  mn_main_window_update_toolbars_style();
-  mn_main_window_update_statusbar_visibility();
-}
-
-static gboolean
-mn_main_window_leave_fullscreen_timeout_cb (gpointer data)
+#define __GOB_FUNCTION__ "MN:Main:Window::toolbars_model_update_flags_and_save_changes"
+#line 589 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 589 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 973 "mn-main-window.c"
 {
-  GDK_THREADS_ENTER();
+#line 591 "mn-main-window.gob"
+	
+    int i;
+    int n_toolbars;
+    EggTbModelFlags flag = EGG_TB_MODEL_ACCEPT_ITEMS_ONLY;
 
-  self.leave_fullscreen_popup_visible = FALSE;
-  mn_main_window_update_leave_fullscreen_popup_position();
-  self.leave_fullscreen_timeout_id = 0;
-
-  GDK_THREADS_LEAVE();
+    n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
   
-  return FALSE;			/* remove timeout */
-}
-
-static gboolean
-mn_main_window_leave_fullscreen_enter_notify_event_h (GtkWidget *widget,
-						      GdkEventCrossing *event,
-						      gpointer user_data)
+    if (n_toolbars <= 1)
+      flag |= EGG_TB_MODEL_NOT_REMOVABLE;
+
+    for (i = 0; i < n_toolbars; i++)
+      {
+	EggTbModelFlags flags;
+	
+	flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+	flags &= ~EGG_TB_MODEL_NOT_REMOVABLE;
+	flags |= flag;
+	egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+      }
+
+    self_toolbars_model_save_changes(self);
+  }}
+#line 998 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 614 "mn-main-window.gob"
+static void 
+mn_main_window_mail_reader_activate_h (GtkAction * action, Self * self)
+#line 1004 "mn-main-window.c"
 {
-  mn_source_remove(&self.leave_fullscreen_timeout_id);
-  self.leave_fullscreen_popup_visible = TRUE;
-  mn_main_window_update_leave_fullscreen_popup_position();
-
-  return FALSE;			/* propagate event */
-}
-
-static gboolean
-mn_main_window_leave_fullscreen_leave_notify_event_h (GtkWidget *widget,
-						      GdkEventCrossing *event,
-						      gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Main:Window::mail_reader_activate_h"
 {
-  mn_source_remove(&self.leave_fullscreen_timeout_id);
-  self.leave_fullscreen_timeout_id = g_timeout_add(5000, mn_main_window_leave_fullscreen_timeout_cb, NULL);
-
-  return FALSE;			/* propagate event */
-}
-
-static void
-mn_main_window_update_leave_fullscreen_popup_position (void)
+#line 616 "mn-main-window.gob"
+	
+    mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+  }}
+#line 1012 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 620 "mn-main-window.gob"
+static void 
+mn_main_window_update_activate_h (GtkAction * action, Self * self)
+#line 1018 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_activate_h"
+{
+#line 622 "mn-main-window.gob"
+	
+    mn_mailboxes_check(mn_shell->mailboxes);
+  }}
+#line 1026 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 626 "mn-main-window.gob"
+static void 
+mn_main_window_close_activate_h (GtkAction * action, Self * self)
+#line 1032 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::close_activate_h"
+{
+#line 628 "mn-main-window.gob"
+	
+    gtk_widget_destroy(GTK_WIDGET(self));
+  }}
+#line 1040 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 632 "mn-main-window.gob"
+static void 
+mn_main_window_quit_activate_h (GtkAction * action, Self * self)
+#line 1046 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::quit_activate_h"
+{
+#line 634 "mn-main-window.gob"
+	
+    g_object_unref(mn_shell);
+  }}
+#line 1054 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 638 "mn-main-window.gob"
+static void 
+mn_main_window_edit_toolbars_activate_h (GtkAction * action, Self * self)
+#line 1060 "mn-main-window.c"
 {
-  GdkScreen *screen;
-  int monitor_num;
-  GdkRectangle screen_rect;
-  int popup_width;
-  int popup_height;
-  int y;
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_activate_h"
+{
+#line 640 "mn-main-window.gob"
+	
+    if (selfp->edit_toolbars_dialog)
+      {
+	gtk_window_present(GTK_WINDOW(selfp->edit_toolbars_dialog));
+	return;
+      }
+  
+    mn_create_interface(MN_INTERFACE_FILE("edit-toolbars-dialog.glade"),
+			"dialog", &selfp->edit_toolbars_dialog,
+			NULL);
 
-  g_return_if_fail(self.leave_fullscreen_popup != NULL);
+    eel_add_weak_pointer(&selfp->edit_toolbars_dialog);
+    g_object_weak_ref(G_OBJECT(selfp->edit_toolbars_dialog), (GWeakNotify) self_edit_toolbars_weak_notify_cb, self);
+    
+    gtk_window_set_transient_for(GTK_WINDOW(selfp->edit_toolbars_dialog), GTK_WINDOW(self));
 
-  screen = gdk_screen_get_default();
-  monitor_num = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(self.window)->window);
-  gdk_screen_get_monitor_geometry(screen, monitor_num, &screen_rect);
-  gtk_window_get_size(GTK_WINDOW(self.leave_fullscreen_popup), &popup_width, &popup_height);
+    self_edit_toolbars_create_editor(self);
+    egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), TRUE);
 
-  y = screen_rect.y;
-  if (! self.leave_fullscreen_popup_visible)
-    y -= popup_height - 2;
+    mn_conf_link(selfp->edit_toolbars_dialog, MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG, NULL);
 
-  gtk_window_move(GTK_WINDOW(self.leave_fullscreen_popup), screen_rect.width - popup_width, y);
-}
+    g_signal_connect_swapped(selfp->edit_toolbars_dialog, "response", G_CALLBACK(self_edit_toolbars_response_h), self);
 
-static gboolean
-mn_main_window_fullscreen_key_press_event_h (GtkWidget *widget,
-					     GdkEventKey *event,
-					     gpointer user_data)
-{
-  unsigned int modifiers = gtk_accelerator_get_default_mod_mask();
-
-  if (event->keyval == GDK_Escape && (event->state & modifiers) == 0)
-    {
-      gtk_window_unfullscreen(GTK_WINDOW(self.window));
-      return TRUE;	/* do not propagate event */
-    }
-  else if (event->keyval == GDK_F10 && (event->state & modifiers) == 0)
-    {
-      g_signal_connect(self.menubar, "deactivate", G_CALLBACK(mn_main_window_fullscreen_menubar_deactivate_h), NULL);
-
-      gtk_widget_show(self.menubar);
-      gtk_menu_shell_select_first(GTK_MENU_SHELL(self.menubar), FALSE);
-
-      return TRUE;	/* do not propagate event */
-    }
-  else
-    return FALSE;	/* propagate event */
-}
+    gtk_widget_show(selfp->edit_toolbars_dialog);
+  }}
+#line 1090 "mn-main-window.c"
+#undef __GOB_FUNCTION__
 
-static void
-mn_main_window_fullscreen_menubar_deactivate_h (GtkMenuShell *menushell,
-						gpointer user_data)
+#line 666 "mn-main-window.gob"
+static void 
+mn_main_window_edit_toolbars_response_h (MNMainWindow * self, int response, GtkDialog * dialog)
+#line 1096 "mn-main-window.c"
 {
-  g_signal_handlers_disconnect_by_func(self.menubar, G_CALLBACK(mn_main_window_fullscreen_menubar_deactivate_h), NULL);
-  gtk_menu_shell_deselect(menushell);
-  gtk_widget_hide(self.menubar);
-}
-
-/* libglade callbacks */
-
-GtkWidget *
-mn_main_window_get_widget_cb (const char *widget_name,
-			      const char *string1,
-			      const char *string2,
-			      int int1,
-			      int int2)
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_response_h"
+#line 666 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 666 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1103 "mn-main-window.c"
 {
-  GtkWidget *widget;
+#line 668 "mn-main-window.gob"
+	
+    switch (response)
+      {
+      case GTK_RESPONSE_HELP:
+	mn_display_help(GTK_WINDOW(dialog), "main-window-edit-toolbars");
+	break;
+
+      case 1:			/* use default */
+	/* recreate the model, discarding the dot file */
+	self_create_toolbars_model(self, FALSE);
+	/* and recreate the editor, since the model has changed */
+	self_edit_toolbars_create_editor(self);
+	break;
+
+      case 2:			/* add toolbar */
+	egg_toolbars_model_add_toolbar(selfp->toolbars_model, -1, "UserCreated");
+	break;
+	
+      case GTK_RESPONSE_CLOSE:
+	gtk_widget_destroy(GTK_WIDGET(dialog));
+	break;
+      }
+  }}
+#line 1129 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 692 "mn-main-window.gob"
+static void 
+mn_main_window_edit_toolbars_create_editor (MNMainWindow * self)
+#line 1135 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_create_editor"
+#line 692 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 692 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1142 "mn-main-window.c"
+{
+#line 694 "mn-main-window.gob"
+	
+    g_return_if_fail(selfp->edit_toolbars_dialog != NULL);
 
-  widget = gtk_ui_manager_get_widget(self.ui_manager, string1);
-  g_return_val_if_fail(widget != NULL, NULL);
+    if (selfp->edit_toolbars_editor)
+      gtk_widget_destroy(selfp->edit_toolbars_editor);
 
-  return widget;
-}
+    selfp->edit_toolbars_editor = egg_toolbar_editor_new(selfp->ui_manager, selfp->toolbars_model);
+    eel_add_weak_pointer(&selfp->edit_toolbars_editor);
 
-GtkWidget *
-mn_main_window_toolbar_new_cb (void)
+    gtk_container_set_border_width(GTK_CONTAINER(selfp->edit_toolbars_editor), 5);
+    gtk_box_set_spacing(GTK_BOX(selfp->edit_toolbars_editor), 6);
+  
+    egg_toolbar_editor_load_actions(EGG_TOOLBAR_EDITOR(selfp->edit_toolbars_editor), MN_INTERFACE_FILE("toolbars.xml"));
+
+    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(selfp->edit_toolbars_dialog)->vbox), selfp->edit_toolbars_editor);
+    gtk_widget_show(selfp->edit_toolbars_editor);
+  }}
+#line 1162 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 712 "mn-main-window.gob"
+static void 
+mn_main_window_edit_toolbars_weak_notify_cb (MNMainWindow * self, GObject * former_object)
+#line 1168 "mn-main-window.c"
 {
-  GtkWidget *toolbar;
-
-  toolbar = egg_editable_toolbar_new_with_model(self.ui_manager, self.toolbars_model);
-  gtk_widget_show(toolbar);
+#define __GOB_FUNCTION__ "MN:Main:Window::edit_toolbars_weak_notify_cb"
+#line 712 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 712 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1175 "mn-main-window.c"
+{
+#line 714 "mn-main-window.gob"
+	
+    egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), FALSE);
+  }}
+#line 1181 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 718 "mn-main-window.gob"
+static void 
+mn_main_window_preferences_activate_h (GtkAction * action, Self * self)
+#line 1187 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::preferences_activate_h"
+{
+#line 720 "mn-main-window.gob"
+	
+    mn_shell_display_properties_dialog(mn_shell, GTK_WINDOW(self));
+  }}
+#line 1195 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 724 "mn-main-window.gob"
+static void 
+mn_main_window_help_contents_activate_h (GtkAction * action, Self * self)
+#line 1201 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::help_contents_activate_h"
+{
+#line 726 "mn-main-window.gob"
+	
+    mn_display_help(GTK_WINDOW(self), "main-window");
+  }}
+#line 1209 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 730 "mn-main-window.gob"
+static void 
+mn_main_window_about_activate_h (GtkAction * action, Self * self)
+#line 1215 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::about_activate_h"
+{
+#line 732 "mn-main-window.gob"
+	
+    mn_shell_display_about_dialog(mn_shell, GTK_WINDOW(self));
+  }}
+#line 1223 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 736 "mn-main-window.gob"
+static void 
+mn_main_window_fullscreen (MNMainWindow * self)
+#line 1229 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::fullscreen"
+#line 736 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 736 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1236 "mn-main-window.c"
+{
+#line 738 "mn-main-window.gob"
+	
+    GtkWidget *button;
+
+    selfp->leave_fullscreen_popup = gtk_window_new(GTK_WINDOW_POPUP);
+    eel_add_weak_pointer(&selfp->leave_fullscreen_popup);
+
+    button = gtk_button_new_from_stock(MN_STOCK_LEAVE_FULLSCREEN);
+    gtk_container_add(GTK_CONTAINER(selfp->leave_fullscreen_popup), button);
+    gtk_widget_show(button);
+
+    g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_unfullscreen), self);
+
+    gtk_widget_hide(selfp->menubar);
+    self_update_toolbars_style(self);
+    self_update_statusbar_visibility(self);
+
+    selfp->leave_fullscreen_popup_visible = TRUE;
+    self_update_leave_fullscreen_popup_position(self);
+    gtk_widget_show(selfp->leave_fullscreen_popup);
+
+    g_signal_connect_swapped(gdk_screen_get_default(),
+			     "size-changed",
+			     G_CALLBACK(self_update_leave_fullscreen_popup_position),
+			     self);
+    g_signal_connect(self,
+		     "key-press-event",
+		     G_CALLBACK(self_fullscreen_key_press_event_h),
+		     NULL);
 
-  return toolbar;
-}
+    g_object_connect(selfp->leave_fullscreen_popup,
+		     "swapped-signal::enter-notify-event", self_leave_fullscreen_enter_notify_event_h, self,
+		     "swapped-signal::leave-notify-event", self_leave_fullscreen_leave_notify_event_h, self,
+		     NULL);
 
-void
-mn_main_window_edit_toolbars_response_h (GtkDialog *dialog,
-					 int response,
-					 gpointer user_data)
-{
-  switch (response)
-    {
-    case GTK_RESPONSE_HELP:
-      mn_display_help(GTK_WINDOW(self.edit_toolbars_dialog), "main-window-edit-toolbars");
-      break;
-
-    case 1:			/* use default */
-      /* recreate the model, discarding the dot file */
-      mn_main_window_create_toolbars_model(FALSE);
-      /* and recreate the editor, since the model has changed */
-      mn_main_window_edit_toolbars_create_editor();
-      break;
-
-    case 2:			/* add toolbar */
-      egg_toolbars_model_add_toolbar(self.toolbars_model, -1, "UserCreated");
-      break;
-
-    case GTK_RESPONSE_CLOSE:
-      gtk_widget_destroy(self.edit_toolbars_dialog);
-      break;
-    }
-}
+    selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+  }}
+#line 1275 "mn-main-window.c"
+#undef __GOB_FUNCTION__
 
-gboolean
-mn_main_window_window_state_event_h (GtkWidget *widget,
-				     GdkEventWindowState *event,
-				     gpointer user_data)
+#line 775 "mn-main-window.gob"
+static void 
+mn_main_window_unfullscreen (MNMainWindow * self)
+#line 1281 "mn-main-window.c"
 {
-  if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
-    {
-      if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
-	mn_main_window_fullscreen();
-      else
-	mn_main_window_unfullscreen();
-    }
-
-  return FALSE;			/* propagate event */
-}
+#define __GOB_FUNCTION__ "MN:Main:Window::unfullscreen"
+#line 775 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 775 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1288 "mn-main-window.c"
+{
+#line 777 "mn-main-window.gob"
+	
+    g_signal_handlers_disconnect_by_func(gdk_screen_get_default(), self_update_leave_fullscreen_popup_position, self);
+
+    mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+    gtk_widget_destroy(selfp->leave_fullscreen_popup);
+
+    g_signal_handlers_disconnect_by_func(self, self_fullscreen_key_press_event_h, NULL);
+      
+    gtk_widget_show(selfp->menubar);
+    self_update_toolbars_style(self);
+    self_update_statusbar_visibility(self);
+  }}
+#line 1303 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 790 "mn-main-window.gob"
+static gboolean 
+mn_main_window_leave_fullscreen_timeout_cb (MNMainWindow * self)
+#line 1309 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::leave_fullscreen_timeout_cb"
+#line 790 "mn-main-window.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 790 "mn-main-window.gob"
+	g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1316 "mn-main-window.c"
+{
+#line 792 "mn-main-window.gob"
+	
+    selfp->leave_fullscreen_popup_visible = FALSE;
+
+    GDK_THREADS_ENTER();
+    self_update_leave_fullscreen_popup_position(self);
+    GDK_THREADS_LEAVE();
+    
+    selfp->leave_fullscreen_timeout_id = 0;
+    return FALSE;		/* remove timeout */
+  }}
+#line 1329 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 803 "mn-main-window.gob"
+static gboolean 
+mn_main_window_leave_fullscreen_enter_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget)
+#line 1335 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::leave_fullscreen_enter_notify_event_h"
+#line 803 "mn-main-window.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 803 "mn-main-window.gob"
+	g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1342 "mn-main-window.c"
+{
+#line 807 "mn-main-window.gob"
+	
+    mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+    selfp->leave_fullscreen_popup_visible = TRUE;
+    self_update_leave_fullscreen_popup_position(self);
+
+    return FALSE;		/* propagate event */
+  }}
+#line 1352 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 815 "mn-main-window.gob"
+static gboolean 
+mn_main_window_leave_fullscreen_leave_notify_event_h (MNMainWindow * self, GdkEventCrossing * event, GtkWidget * widget)
+#line 1358 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::leave_fullscreen_leave_notify_event_h"
+#line 815 "mn-main-window.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 815 "mn-main-window.gob"
+	g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1365 "mn-main-window.c"
+{
+#line 819 "mn-main-window.gob"
+	
+    mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+    selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+
+    return FALSE;		/* propagate event */
+  }}
+#line 1374 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 826 "mn-main-window.gob"
+static void 
+mn_main_window_update_leave_fullscreen_popup_position (MNMainWindow * self)
+#line 1380 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::update_leave_fullscreen_popup_position"
+#line 826 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 826 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1387 "mn-main-window.c"
+{
+#line 828 "mn-main-window.gob"
+	
+    GdkScreen *screen;
+    int monitor_num;
+    GdkRectangle screen_rect;
+    int popup_width;
+    int popup_height;
+    int y;
+
+    g_return_if_fail(selfp->leave_fullscreen_popup != NULL);
+
+    screen = gdk_screen_get_default();
+    monitor_num = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(self)->window);
+    gdk_screen_get_monitor_geometry(screen, monitor_num, &screen_rect);
+    gtk_window_get_size(GTK_WINDOW(selfp->leave_fullscreen_popup), &popup_width, &popup_height);
+
+    y = screen_rect.y;
+    if (! selfp->leave_fullscreen_popup_visible)
+      y -= popup_height - 2;
+
+    gtk_window_move(GTK_WINDOW(selfp->leave_fullscreen_popup), screen_rect.width - popup_width, y);
+  }}
+#line 1411 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 850 "mn-main-window.gob"
+static gboolean 
+mn_main_window_fullscreen_key_press_event_h (MNMainWindow * self, GdkEventKey * event, gpointer user_data)
+#line 1417 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::fullscreen_key_press_event_h"
+#line 850 "mn-main-window.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 850 "mn-main-window.gob"
+	g_return_val_if_fail (MN_IS_MAIN_WINDOW (self), (gboolean )0);
+#line 1424 "mn-main-window.c"
+{
+#line 852 "mn-main-window.gob"
+	
+    unsigned int modifiers = gtk_accelerator_get_default_mod_mask();
+
+    if (event->keyval == GDK_Escape && (event->state & modifiers) == 0)
+      {
+	gtk_window_unfullscreen(GTK_WINDOW(self));
+	return TRUE;		/* do not propagate event */
+      }
+    else if (event->keyval == GDK_F10 && (event->state & modifiers) == 0)
+      {
+	g_signal_connect_swapped(selfp->menubar, "deactivate", G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+
+	gtk_widget_show(selfp->menubar);
+	gtk_menu_shell_select_first(GTK_MENU_SHELL(selfp->menubar), FALSE);
+
+	return TRUE;		/* do not propagate event */
+      }
+    else
+      return FALSE;		/* propagate event */
+  }}
+#line 1447 "mn-main-window.c"
+#undef __GOB_FUNCTION__
+
+#line 873 "mn-main-window.gob"
+static void 
+mn_main_window_fullscreen_menubar_deactivate_h (MNMainWindow * self, GtkMenuShell * menushell)
+#line 1453 "mn-main-window.c"
+{
+#define __GOB_FUNCTION__ "MN:Main:Window::fullscreen_menubar_deactivate_h"
+#line 873 "mn-main-window.gob"
+	g_return_if_fail (self != NULL);
+#line 873 "mn-main-window.gob"
+	g_return_if_fail (MN_IS_MAIN_WINDOW (self));
+#line 1460 "mn-main-window.c"
+{
+#line 875 "mn-main-window.gob"
+	
+    g_signal_handlers_disconnect_by_func(selfp->menubar, G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+    gtk_menu_shell_deselect(menushell);
+    gtk_widget_hide(selfp->menubar);
+  }}
+#line 1468 "mn-main-window.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-main-window.gob b/src/mn-main-window.gob
@@ -0,0 +1,880 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <gtk/gtk.h>
+%}
+
+%privateheader{
+#include "egg-toolbars-model.h"
+%}
+
+%{
+#include "config.h"
+#include <gnome.h>
+#include <eel/eel.h>
+#include "egg-editable-toolbar.h"
+#include "egg-toolbar-editor.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+#include "mn-shell.h"
+#include "mn-conf.h"
+#include "mn-properties-dialog.h"
+#include "mn-message-view.h"
+
+#define STATUS_PUSH(cid, str) \
+  gtk_statusbar_push(GTK_STATUSBAR(selfp->statusbar), (cid), (str))
+#define STATUS_POP(cid) \
+  gtk_statusbar_pop(GTK_STATUSBAR(selfp->statusbar), (cid))
+#define GET_ACTION(name) \
+  gtk_action_group_get_action(selfp->action_group, (name))
+#define FULLSCREEN \
+  (selfp->leave_fullscreen_popup != NULL)
+%}
+
+class MN:Main:Window from Gtk:Window
+{
+  private GtkWidget *menubar;
+  private GtkWidget *toolbar;
+  private GtkWidget *message_view;
+  private GtkWidget *statusbar;
+
+  private GtkUIManager *ui_manager unrefwith g_object_unref;
+  private GtkActionGroup *action_group unrefwith g_object_unref;
+
+  private EggToolbarsModel *toolbars_model unrefwith g_object_unref;
+  private unsigned int toolbars_model_save_idle_id;
+
+  private unsigned int help_cid;
+  private unsigned int count_cid;
+
+  private GtkWidget *leave_fullscreen_popup;
+  private gboolean leave_fullscreen_popup_visible;
+  private unsigned int leave_fullscreen_timeout_id;
+
+  private GtkWidget *edit_toolbars_dialog;
+  private GtkWidget *edit_toolbars_editor;
+
+  init (self)
+  {
+    GtkWidget *scrolled;
+    GtkWidget *vbox;
+
+    self_create_ui_manager(self);
+    self_create_toolbars_model(self, TRUE);
+
+    selfp->menubar = gtk_ui_manager_get_widget(selfp->ui_manager, "/menubar");
+    selfp->toolbar = egg_editable_toolbar_new_with_model(selfp->ui_manager, selfp->toolbars_model);
+
+    scrolled = gtk_scrolled_window_new(NULL, NULL);
+    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
+				   GTK_POLICY_AUTOMATIC,
+				   GTK_POLICY_AUTOMATIC);
+
+    selfp->message_view = mn_message_view_new(FALSE, TRUE);
+    gtk_widget_set_name(selfp->message_view, "mn-message-view");
+    gtk_container_set_border_width(GTK_CONTAINER(selfp->message_view), 12);
+    gtk_container_add(GTK_CONTAINER(scrolled), selfp->message_view);
+
+    selfp->statusbar = gtk_statusbar_new();
+
+    vbox = gtk_vbox_new(FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), selfp->menubar, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), selfp->toolbar, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), scrolled, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), selfp->statusbar, FALSE, FALSE, 0);
+    gtk_widget_show_all(vbox);
+    gtk_container_add(GTK_CONTAINER(self), vbox);
+
+    selfp->help_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Help messages"));
+    selfp->count_cid = gtk_statusbar_get_context_id(GTK_STATUSBAR(selfp->statusbar), _("Count messages"));
+
+    mn_conf_link(self, MN_CONF_MAIN_WINDOW_DIMENSIONS,
+		 GET_ACTION("ViewToolbars"), MN_CONF_MAIN_WINDOW_VIEW_TOOLBARS,
+		 GET_ACTION("ViewStatusbar"), MN_CONF_MAIN_WINDOW_VIEW_STATUSBAR,
+		 GET_ACTION("ViewToolbarsStyleDesktopDefault"), MN_CONF_MAIN_WINDOW_TOOLBARS_STYLE, MN_TYPE_TOOLBAR_STYLE,
+		 NULL);
+
+    self_update_toolbars_visibility(self);
+    self_update_statusbar_visibility(self);
+
+    g_signal_connect_swapped(GET_ACTION("ViewToolbars"), "toggled", G_CALLBACK(self_update_toolbars_visibility), self);
+    g_signal_connect_swapped(GET_ACTION("ViewStatusbar"), "toggled", G_CALLBACK(self_update_statusbar_visibility), self);
+
+    self_update_messages(self);
+    self_update_sensitivity(self);
+
+    mn_conf_notification_add(self,
+			     MN_CONF_COMMANDS_MAIL_READER_NAMESPACE,
+			     self_notify_mail_reader_cb,
+			     self);
+    mn_g_object_connect(self,
+			mn_shell->mailboxes,
+			"swapped-signal::notify::must-poll", self_update_sensitivity, self,
+			"swapped-signal::messages-changed", self_update_messages, self,
+			NULL);
+    g_signal_connect(self, "window-state-event", G_CALLBACK(self_window_state_event_h), NULL);
+
+    gtk_widget_grab_focus(selfp->message_view);
+  }
+
+  override (G:Object) void
+    dispose (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    mn_source_clear(&selfp->toolbars_model_save_idle_id);
+
+    if (FULLSCREEN)
+      self_unfullscreen(self);
+
+    PARENT_HANDLER(object);
+  }
+
+  private void
+    create_ui_manager (self)
+  {
+    static GtkActionEntry menu_entries[] = {
+      /* Toplevel */
+      { "Mail", NULL, N_("_Mail") },
+      { "Edit", NULL, N_("_Edit") },
+      { "View", NULL, N_("_View") },
+      { "Help", NULL, N_("_Help") },
+
+      /* Mail menu */
+      {
+	"MailMailReader",
+	MN_STOCK_MAIL_READER,
+	N_("_Mail Reader"),
+	"<control>M",
+	N_("Launch the mail reader"),
+	G_CALLBACK(self_mail_reader_activate_h)
+      },
+      {
+	"MailUpdate",
+	GTK_STOCK_REFRESH,
+	N_("_Update"),
+	"<control>R",		/* Reload */
+	N_("Update the mail status"),
+	G_CALLBACK(self_update_activate_h)
+      },
+      {
+	"MailClose",
+	GTK_STOCK_CLOSE,
+	N_("_Close"),
+	"<control>W",
+	N_("Close this window"),
+	G_CALLBACK(self_close_activate_h)
+      },
+      {
+	"MailQuit",
+	GTK_STOCK_QUIT,
+	N_("_Quit"),
+	"<control>Q",
+	N_("Quit Mail Notification"),
+	G_CALLBACK(self_quit_activate_h)
+      },
+
+      /* Edit menu */
+      {
+	"EditToolbars",
+	NULL,
+	N_("_Toolbars"),
+	NULL,
+	N_("Customize the toolbars"),
+	G_CALLBACK(self_edit_toolbars_activate_h)
+      },
+      {
+	"EditPreferences",
+	GTK_STOCK_PREFERENCES,
+	N_("_Preferences"),
+	NULL,
+	N_("Configure Mail Notification"),
+	G_CALLBACK(self_preferences_activate_h)
+      },
+
+      /* View menu */
+      {
+	"ViewToolbarsStyle",
+	NULL,
+	N_("Toolbars Styl_e"),
+	NULL,
+	N_("Customize the toolbars style"),
+	NULL
+      },
+
+      /* Help menu */
+      {
+	"HelpContents",
+	GTK_STOCK_HELP,
+	N_("_Contents"),
+	"F1",
+	N_("Display help"),
+	G_CALLBACK(self_help_contents_activate_h)
+      },
+      {
+	"HelpAbout",
+	GTK_STOCK_ABOUT,
+	N_("_About"),
+	NULL,
+	N_("Display credits"),
+	G_CALLBACK(self_about_activate_h)
+      }
+    };
+
+    static GtkToggleActionEntry toggle_entries[] = {
+      /* View menu */
+      {
+	"ViewToolbars",
+	NULL,
+	N_("_Toolbars"),
+	NULL,
+	N_("Show or hide the toolbars"),
+	NULL,
+	FALSE
+      },
+      {
+	"ViewStatusbar",
+	NULL,
+	N_("_Statusbar"),
+	NULL,
+	N_("Show or hide the statusbar"),
+	NULL,
+	FALSE
+      }
+    };
+
+    static GtkRadioActionEntry toolbars_style_entries[] = {
+      /* View menu */
+      {
+	"ViewToolbarsStyleDesktopDefault",
+	NULL,
+	N_("_Desktop Default"),
+	NULL,
+	N_("Set the toolbars style to the desktop default setting"),
+	MN_TOOLBAR_STYLE_DESKTOP_DEFAULT
+      },
+      {
+	"ViewToolbarsStyleIconsOnly",
+	NULL,
+	N_("I_cons Only"),
+	NULL,
+	N_("Only display the toolbars icons"),
+	MN_TOOLBAR_STYLE_ICONS
+      },
+      {
+	"ViewToolbarsStyleTextOnly",
+	NULL,
+	N_("_Text Only"),
+	NULL,
+	N_("Only display the toolbars text"),
+	MN_TOOLBAR_STYLE_TEXT
+      },
+      {
+	"ViewToolbarsStyleTextBelowIcons",
+	NULL,
+	N_("Text Belo_w Icons"),
+	NULL,
+	N_("Display the toolbars text below the icons"),
+	MN_TOOLBAR_STYLE_BOTH
+      },
+      {
+	"ViewToolbarsStyleTextBesideIcons",
+	NULL,
+	N_("Text Be_side Icons"),
+	NULL,
+	N_("Display the toolbars text beside the icons"),
+	MN_TOOLBAR_STYLE_BOTH_HORIZ
+      }
+    };
+
+    GError *err = NULL;
+    GtkAccelGroup *accel_group;
+
+    g_return_if_fail(selfp->ui_manager == NULL);
+
+    selfp->ui_manager = gtk_ui_manager_new();
+
+    g_object_connect(selfp->ui_manager,
+		     "swapped-signal::connect-proxy", self_ui_manager_connect_proxy_h, self,
+		     "swapped-signal::disconnect-proxy", self_ui_manager_disconnect_proxy_h, self,
+		     NULL);
+
+    selfp->action_group = gtk_action_group_new("MainWindowActions");
+    gtk_action_group_set_translation_domain(selfp->action_group, NULL);
+    
+    gtk_action_group_add_actions(selfp->action_group,
+				 menu_entries,
+				 G_N_ELEMENTS(menu_entries),
+				 self);
+    gtk_action_group_add_toggle_actions(selfp->action_group,
+					toggle_entries,
+					G_N_ELEMENTS(toggle_entries),
+					self);
+    gtk_action_group_add_radio_actions(selfp->action_group,
+				       toolbars_style_entries,
+				       G_N_ELEMENTS(toolbars_style_entries),
+				       -1,
+				       G_CALLBACK(self_update_toolbars_style_changed_h),
+				       self);
+    gtk_ui_manager_insert_action_group(selfp->ui_manager, selfp->action_group, 0);
+
+    g_object_set(G_OBJECT(GET_ACTION("MailMailReader")),
+		 "is-important", TRUE,
+		 NULL);
+
+    if (! gtk_ui_manager_add_ui_from_file(selfp->ui_manager, MN_INTERFACE_FILE("menus.xml"), &err))
+      {
+	g_critical(_("unable to load menus.xml: %s"), err->message);
+	g_error_free(err);
+      }
+
+    accel_group = gtk_ui_manager_get_accel_group(selfp->ui_manager);
+    gtk_window_add_accel_group(GTK_WINDOW(self), accel_group);
+
+    /*
+     * ~/.gnome2/accels/mail-notification is automatically loaded by
+     * the libgnomeui module, we just need to save it ourselves.
+     */
+    g_signal_connect(accel_group, "accel-changed", G_CALLBACK(gnome_accelerators_sync), NULL);
+  }
+
+  private void
+    create_toolbars_model (self, gboolean use_dot_file)
+  {
+    gboolean load_default_toolbars = TRUE;
+
+    if (selfp->toolbars_model)
+      g_object_unref(selfp->toolbars_model);
+
+    selfp->toolbars_model = egg_toolbars_model_new();
+
+    g_object_connect(selfp->toolbars_model,
+		     "swapped-signal-after::item-added", self_toolbars_model_save_changes, self,
+		     "swapped-signal-after::item-removed", self_toolbars_model_save_changes, self,
+		     "swapped-signal-after::toolbar-added", self_toolbars_model_update_flags_and_save_changes, self,
+		     "swapped-signal-after::toolbar-removed", self_toolbars_model_update_flags_and_save_changes, self,
+		     NULL);
+
+    if (use_dot_file)
+      {
+	char *filename;
+
+	filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+	load_default_toolbars = ! egg_toolbars_model_load(selfp->toolbars_model, filename);
+	g_free(filename);
+      }
+
+    if (load_default_toolbars)
+      {
+	if (! egg_toolbars_model_load(selfp->toolbars_model, MN_INTERFACE_FILE("toolbars.xml")))
+	  g_critical(_("unable to load toolbars.xml"));
+      }
+  
+  if (egg_toolbars_model_n_toolbars(selfp->toolbars_model) < 1)
+    egg_toolbars_model_add_toolbar(selfp->toolbars_model, 0, "DefaultToolbar");
+
+  if (selfp->toolbar)
+    egg_editable_toolbar_set_model(EGG_EDITABLE_TOOLBAR(selfp->toolbar), selfp->toolbars_model);
+  }
+  
+  private void
+    update_toolbars_visibility (self)
+  {
+    g_object_set(G_OBJECT(selfp->toolbar), "visible", gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewToolbars"))), NULL);
+  }
+
+  private void
+    update_statusbar_visibility (self)
+  {
+    g_object_set(G_OBJECT(selfp->statusbar), "visible", ! FULLSCREEN && gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(GET_ACTION("ViewStatusbar"))), NULL);
+  }
+
+  private void
+    notify_mail_reader_cb (GConfClient *client,
+			   unsigned int cnxn_id,
+			   GConfEntry *entry,
+			   gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+    self_update_sensitivity(self);
+    GDK_THREADS_LEAVE();
+  }
+
+  private void
+    update_messages (self)
+  {
+    GSList *messages;
+    int count;
+
+    messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
+    count = g_slist_length(messages);
+
+    mn_message_view_set_messages(MN_MESSAGE_VIEW(selfp->message_view), messages);
+    mn_g_object_slist_free(messages);
+
+    if (count > 0)
+      {
+	char *status;
+	
+	status = g_strdup_printf(ngettext("%i new message", "%i new messages", count), count);
+	STATUS_PUSH(selfp->count_cid, status);
+	g_free(status);
+      }
+    else
+      STATUS_POP(selfp->count_cid);
+  }
+
+  private void
+    update_sensitivity (self)
+  {
+    gtk_action_set_sensitive(GET_ACTION("MailMailReader"), mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE));
+    gtk_action_set_sensitive(GET_ACTION("MailUpdate"), mn_mailboxes_get_must_poll(mn_shell->mailboxes));
+  }
+
+  private void
+    ui_manager_connect_proxy_h (self,
+				GtkAction *action,
+				GtkWidget *proxy,
+				GtkUIManager *manager)
+  {
+    if (GTK_IS_MENU_ITEM(proxy))
+      g_object_connect(proxy,
+		       "swapped-signal::select", self_menu_item_select_h, self,
+		       "swapped-signal::deselect", self_menu_item_deselect_h, self,
+		       NULL);
+  }
+
+  private void
+    ui_manager_disconnect_proxy_h (self,
+				   GtkAction *action,
+				   GtkWidget *proxy,
+				   GtkUIManager *manager)
+  {
+    if (GTK_IS_MENU_ITEM(proxy))
+      g_object_disconnect(proxy,
+			  "any-signal", self_menu_item_select_h, self,
+			  "any-signal", self_menu_item_deselect_h, self,
+			  NULL);
+  }
+
+  private void
+    menu_item_select_h (self, GtkMenuItem *item)
+  {
+    GtkAction *action;
+    char *tooltip = NULL;
+
+    action = g_object_get_data(G_OBJECT(item), "gtk-action");
+    g_return_if_fail(action != NULL);
+  
+    g_object_get(G_OBJECT(action), "tooltip", &tooltip, NULL);
+    if (tooltip)
+      {
+	STATUS_PUSH(selfp->help_cid, tooltip);
+	g_free(tooltip);
+      }
+  }
+
+  private void
+    menu_item_deselect_h (self, GtkMenuItem *item)
+  {
+    STATUS_POP(selfp->help_cid);
+  }
+
+  private gboolean
+    window_state_event_h (self, GdkEventWindowState *event, gpointer user_data)
+  {
+    if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
+      {
+	if (event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
+	  self_fullscreen(self);
+	else
+	  self_unfullscreen(self);
+      }
+    
+    return FALSE;		/* propagate event */
+  }
+  
+  private void
+    update_toolbars_style_changed_h (GtkRadioAction *action,
+				     GtkRadioAction *current,
+				     Self *self)
+  {
+    self_update_toolbars_style(self);
+  }
+  
+  private void
+    update_toolbars_style (self)
+  {
+    MNToolbarStyle style;
+    EggTbModelFlags flag;
+    int n_toolbars;
+    int i;
+
+    style = gtk_radio_action_get_current_value(GTK_RADIO_ACTION(GET_ACTION("ViewToolbarsStyleDesktopDefault")));
+    if (style == MN_TOOLBAR_STYLE_DESKTOP_DEFAULT)
+      g_object_get(gtk_widget_get_settings(selfp->toolbar), "gtk-toolbar-style", &style, NULL);
+
+    if (FULLSCREEN && style == MN_TOOLBAR_STYLE_BOTH)
+      style = MN_TOOLBAR_STYLE_ICONS;
+
+    switch (style)
+      {
+      case MN_TOOLBAR_STYLE_ICONS:	flag = EGG_TB_MODEL_ICONS; break;
+      case MN_TOOLBAR_STYLE_TEXT:	flag = EGG_TB_MODEL_TEXT; break;
+      case MN_TOOLBAR_STYLE_BOTH:	flag = EGG_TB_MODEL_BOTH; break;
+      case MN_TOOLBAR_STYLE_BOTH_HORIZ:	flag = EGG_TB_MODEL_BOTH_HORIZ; break;
+      default:				g_assert_not_reached();
+      }
+    
+    n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
+
+    for (i = 0; i < n_toolbars; i++)
+      {
+	EggTbModelFlags flags;
+
+	flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+	flags &= ~ (EGG_TB_MODEL_ICONS
+		    | EGG_TB_MODEL_TEXT
+		    | EGG_TB_MODEL_BOTH
+		    | EGG_TB_MODEL_BOTH_HORIZ);
+	flags |= flag;
+	egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+      }
+  }
+
+  private void
+    toolbars_model_save_changes (self)
+  {
+    if (! selfp->toolbars_model_save_idle_id)
+      selfp->toolbars_model_save_idle_id = g_idle_add((GSourceFunc) self_toolbars_model_save_changes_cb, self);
+  }
+
+  private gboolean
+    toolbars_model_save_changes_cb (self)
+  {
+    char *filename;
+
+    GDK_THREADS_ENTER();
+
+    filename = g_build_filename(mn_conf_dot_dir, "toolbars.xml", NULL);
+    egg_toolbars_model_save(selfp->toolbars_model, filename, "1.0");
+    g_free(filename);
+
+    GDK_THREADS_LEAVE();
+
+    selfp->toolbars_model_save_idle_id = 0;
+    return FALSE;		/* remove */
+  }
+
+  private void
+    toolbars_model_update_flags_and_save_changes (self)
+  {
+    int i;
+    int n_toolbars;
+    EggTbModelFlags flag = EGG_TB_MODEL_ACCEPT_ITEMS_ONLY;
+
+    n_toolbars = egg_toolbars_model_n_toolbars(selfp->toolbars_model);
+  
+    if (n_toolbars <= 1)
+      flag |= EGG_TB_MODEL_NOT_REMOVABLE;
+
+    for (i = 0; i < n_toolbars; i++)
+      {
+	EggTbModelFlags flags;
+	
+	flags = egg_toolbars_model_get_flags(selfp->toolbars_model, i);
+	flags &= ~EGG_TB_MODEL_NOT_REMOVABLE;
+	flags |= flag;
+	egg_toolbars_model_set_flags(selfp->toolbars_model, i, flags);
+      }
+
+    self_toolbars_model_save_changes(self);
+  }
+
+  private void
+    mail_reader_activate_h (GtkAction *action, Self *self)
+  {
+    mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
+  }
+
+  private void
+    update_activate_h (GtkAction *action, Self *self)
+  {
+    mn_mailboxes_check(mn_shell->mailboxes);
+  }
+
+  private void
+    close_activate_h (GtkAction *action, Self *self)
+  {
+    gtk_widget_destroy(GTK_WIDGET(self));
+  }
+  
+  private void
+    quit_activate_h (GtkAction *action, Self *self)
+  {
+    g_object_unref(mn_shell);
+  }
+
+  private void
+    edit_toolbars_activate_h (GtkAction *action, Self *self)
+  {
+    if (selfp->edit_toolbars_dialog)
+      {
+	gtk_window_present(GTK_WINDOW(selfp->edit_toolbars_dialog));
+	return;
+      }
+  
+    mn_create_interface(MN_INTERFACE_FILE("edit-toolbars-dialog.glade"),
+			"dialog", &selfp->edit_toolbars_dialog,
+			NULL);
+
+    eel_add_weak_pointer(&selfp->edit_toolbars_dialog);
+    g_object_weak_ref(G_OBJECT(selfp->edit_toolbars_dialog), (GWeakNotify) self_edit_toolbars_weak_notify_cb, self);
+    
+    gtk_window_set_transient_for(GTK_WINDOW(selfp->edit_toolbars_dialog), GTK_WINDOW(self));
+
+    self_edit_toolbars_create_editor(self);
+    egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), TRUE);
+
+    mn_conf_link(selfp->edit_toolbars_dialog, MN_CONF_MAIN_WINDOW_EDIT_TOOLBARS_DIALOG, NULL);
+
+    g_signal_connect_swapped(selfp->edit_toolbars_dialog, "response", G_CALLBACK(self_edit_toolbars_response_h), self);
+
+    gtk_widget_show(selfp->edit_toolbars_dialog);
+  }
+
+  private void
+    edit_toolbars_response_h (self, int response, GtkDialog *dialog)
+  {
+    switch (response)
+      {
+      case GTK_RESPONSE_HELP:
+	mn_display_help(GTK_WINDOW(dialog), "main-window-edit-toolbars");
+	break;
+
+      case 1:			/* use default */
+	/* recreate the model, discarding the dot file */
+	self_create_toolbars_model(self, FALSE);
+	/* and recreate the editor, since the model has changed */
+	self_edit_toolbars_create_editor(self);
+	break;
+
+      case 2:			/* add toolbar */
+	egg_toolbars_model_add_toolbar(selfp->toolbars_model, -1, "UserCreated");
+	break;
+	
+      case GTK_RESPONSE_CLOSE:
+	gtk_widget_destroy(GTK_WIDGET(dialog));
+	break;
+      }
+  }
+  
+  private void
+    edit_toolbars_create_editor (self)
+  {
+    g_return_if_fail(selfp->edit_toolbars_dialog != NULL);
+
+    if (selfp->edit_toolbars_editor)
+      gtk_widget_destroy(selfp->edit_toolbars_editor);
+
+    selfp->edit_toolbars_editor = egg_toolbar_editor_new(selfp->ui_manager, selfp->toolbars_model);
+    eel_add_weak_pointer(&selfp->edit_toolbars_editor);
+
+    gtk_container_set_border_width(GTK_CONTAINER(selfp->edit_toolbars_editor), 5);
+    gtk_box_set_spacing(GTK_BOX(selfp->edit_toolbars_editor), 6);
+  
+    egg_toolbar_editor_load_actions(EGG_TOOLBAR_EDITOR(selfp->edit_toolbars_editor), MN_INTERFACE_FILE("toolbars.xml"));
+
+    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(selfp->edit_toolbars_dialog)->vbox), selfp->edit_toolbars_editor);
+    gtk_widget_show(selfp->edit_toolbars_editor);
+  }
+
+  private void
+    edit_toolbars_weak_notify_cb (self, GObject *former_object)
+  {
+    egg_editable_toolbar_set_edit_mode(EGG_EDITABLE_TOOLBAR(selfp->toolbar), FALSE);
+  }
+
+  private void
+    preferences_activate_h (GtkAction *action, Self *self)
+  {
+    mn_shell_display_properties_dialog(mn_shell, GTK_WINDOW(self));
+  }
+
+  private void
+    help_contents_activate_h (GtkAction *action, Self *self)
+  {
+    mn_display_help(GTK_WINDOW(self), "main-window");
+  }
+
+  private void
+    about_activate_h (GtkAction *action, Self *self)
+  {
+    mn_shell_display_about_dialog(mn_shell, GTK_WINDOW(self));
+  }
+
+  private void
+    fullscreen (self)
+  {
+    GtkWidget *button;
+
+    selfp->leave_fullscreen_popup = gtk_window_new(GTK_WINDOW_POPUP);
+    eel_add_weak_pointer(&selfp->leave_fullscreen_popup);
+
+    button = gtk_button_new_from_stock(MN_STOCK_LEAVE_FULLSCREEN);
+    gtk_container_add(GTK_CONTAINER(selfp->leave_fullscreen_popup), button);
+    gtk_widget_show(button);
+
+    g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_window_unfullscreen), self);
+
+    gtk_widget_hide(selfp->menubar);
+    self_update_toolbars_style(self);
+    self_update_statusbar_visibility(self);
+
+    selfp->leave_fullscreen_popup_visible = TRUE;
+    self_update_leave_fullscreen_popup_position(self);
+    gtk_widget_show(selfp->leave_fullscreen_popup);
+
+    g_signal_connect_swapped(gdk_screen_get_default(),
+			     "size-changed",
+			     G_CALLBACK(self_update_leave_fullscreen_popup_position),
+			     self);
+    g_signal_connect(self,
+		     "key-press-event",
+		     G_CALLBACK(self_fullscreen_key_press_event_h),
+		     NULL);
+
+    g_object_connect(selfp->leave_fullscreen_popup,
+		     "swapped-signal::enter-notify-event", self_leave_fullscreen_enter_notify_event_h, self,
+		     "swapped-signal::leave-notify-event", self_leave_fullscreen_leave_notify_event_h, self,
+		     NULL);
+
+    selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+  }
+
+  private void
+    unfullscreen (self)
+  {
+    g_signal_handlers_disconnect_by_func(gdk_screen_get_default(), self_update_leave_fullscreen_popup_position, self);
+
+    mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+    gtk_widget_destroy(selfp->leave_fullscreen_popup);
+
+    g_signal_handlers_disconnect_by_func(self, self_fullscreen_key_press_event_h, NULL);
+      
+    gtk_widget_show(selfp->menubar);
+    self_update_toolbars_style(self);
+    self_update_statusbar_visibility(self);
+  }
+
+  private gboolean
+    leave_fullscreen_timeout_cb (self)
+  {
+    selfp->leave_fullscreen_popup_visible = FALSE;
+
+    GDK_THREADS_ENTER();
+    self_update_leave_fullscreen_popup_position(self);
+    GDK_THREADS_LEAVE();
+    
+    selfp->leave_fullscreen_timeout_id = 0;
+    return FALSE;		/* remove timeout */
+  }
+
+  private gboolean
+    leave_fullscreen_enter_notify_event_h (self,
+					   GdkEventCrossing *event,
+					   GtkWidget *widget)
+  {
+    mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+    selfp->leave_fullscreen_popup_visible = TRUE;
+    self_update_leave_fullscreen_popup_position(self);
+
+    return FALSE;		/* propagate event */
+  }
+
+  private gboolean
+    leave_fullscreen_leave_notify_event_h (self,
+					   GdkEventCrossing *event,
+					   GtkWidget *widget)
+  {
+    mn_source_clear(&selfp->leave_fullscreen_timeout_id);
+    selfp->leave_fullscreen_timeout_id = g_timeout_add(5000, (GSourceFunc) self_leave_fullscreen_timeout_cb, self);
+
+    return FALSE;		/* propagate event */
+  }
+  
+  private void
+    update_leave_fullscreen_popup_position (self)
+  {
+    GdkScreen *screen;
+    int monitor_num;
+    GdkRectangle screen_rect;
+    int popup_width;
+    int popup_height;
+    int y;
+
+    g_return_if_fail(selfp->leave_fullscreen_popup != NULL);
+
+    screen = gdk_screen_get_default();
+    monitor_num = gdk_screen_get_monitor_at_window(screen, GTK_WIDGET(self)->window);
+    gdk_screen_get_monitor_geometry(screen, monitor_num, &screen_rect);
+    gtk_window_get_size(GTK_WINDOW(selfp->leave_fullscreen_popup), &popup_width, &popup_height);
+
+    y = screen_rect.y;
+    if (! selfp->leave_fullscreen_popup_visible)
+      y -= popup_height - 2;
+
+    gtk_window_move(GTK_WINDOW(selfp->leave_fullscreen_popup), screen_rect.width - popup_width, y);
+  }
+
+  private gboolean
+    fullscreen_key_press_event_h (self, GdkEventKey *event, gpointer user_data)
+  {
+    unsigned int modifiers = gtk_accelerator_get_default_mod_mask();
+
+    if (event->keyval == GDK_Escape && (event->state & modifiers) == 0)
+      {
+	gtk_window_unfullscreen(GTK_WINDOW(self));
+	return TRUE;		/* do not propagate event */
+      }
+    else if (event->keyval == GDK_F10 && (event->state & modifiers) == 0)
+      {
+	g_signal_connect_swapped(selfp->menubar, "deactivate", G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+
+	gtk_widget_show(selfp->menubar);
+	gtk_menu_shell_select_first(GTK_MENU_SHELL(selfp->menubar), FALSE);
+
+	return TRUE;		/* do not propagate event */
+      }
+    else
+      return FALSE;		/* propagate event */
+  }
+
+  private void
+    fullscreen_menubar_deactivate_h (self, GtkMenuShell *menushell)
+  {
+    g_signal_handlers_disconnect_by_func(selfp->menubar, G_CALLBACK(self_fullscreen_menubar_deactivate_h), self);
+    gtk_menu_shell_deselect(menushell);
+    gtk_widget_hide(selfp->menubar);
+  }
+}
diff --git a/src/mn-main-window.h b/src/mn-main-window.h
@@ -1,29 +1,62 @@
-/* 
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
 
-#ifndef _MN_MAIN_WINDOW_H
-#define _MN_MAIN_WINDOW_H
 
 #include <gtk/gtk.h>
 
-void		mn_main_window_display		(void);
-gboolean	mn_main_window_is_displayed	(void);
+#ifndef __MN_MAIN_WINDOW_H__
+#define __MN_MAIN_WINDOW_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MAIN_WINDOW	(mn_main_window_get_type())
+#define MN_MAIN_WINDOW(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_main_window_get_type(), MNMainWindow)
+#define MN_MAIN_WINDOW_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_main_window_get_type(), MNMainWindow const)
+#define MN_MAIN_WINDOW_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_main_window_get_type(), MNMainWindowClass)
+#define MN_IS_MAIN_WINDOW(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_main_window_get_type ())
+
+#define MN_MAIN_WINDOW_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_main_window_get_type(), MNMainWindowClass)
+
+/* Private structure type */
+typedef struct _MNMainWindowPrivate MNMainWindowPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MAIN_WINDOW__
+#define __TYPEDEF_MN_MAIN_WINDOW__
+typedef struct _MNMainWindow MNMainWindow;
+#endif
+struct _MNMainWindow {
+	GtkWindow __parent__;
+	/*< private >*/
+	MNMainWindowPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMainWindowClass MNMainWindowClass;
+struct _MNMainWindowClass {
+	GtkWindowClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_main_window_get_type	(void);
 
-void		mn_main_window_add_transient	(GtkWindow *window);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
-#endif /* _MN_MAIN_WINDOW_H */
+#endif
diff --git a/src/mn-main.c b/src/mn-main.c
@@ -21,20 +21,22 @@
 #include <signal.h>
 #include <gnome.h>
 #include <libgnomevfs/gnome-vfs.h>
-#ifdef WITH_GMAIL
-#include <libsoup/soup.h>
-#endif
 #ifdef WITH_MIME
 #include <gmime/gmime.h>
 #include "mn-gmime-stream-vfs.h"
 #endif
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+#include "mn-vfs-mailbox.h"
+#endif
+#ifdef WITH_EVOLUTION
+#include "mn-corba-object.h"
+#endif
 #include "mn-conf.h"
 #include "mn-util.h"
 #include "mn-stock.h"
 #include "mn-automation.h"
 #include "mn-shell.h"
-#include "mn-pending-mailbox.h"
-#include "mn-unsupported-mailbox.h"
+#include "mn-message.h"
 
 /*** cpp *********************************************************************/
 
@@ -74,47 +76,65 @@ mn_main_automation_factory_cb (BonoboGenericFactory *factory,
 static void
 mn_main_list_features (void)
 {
-  GString *backends;
-  GString *features;
-  int i;
-
-#define ADD_FEATURE(string, feature)		\
-  {						\
-    if (*(string)->str)				\
-      g_string_append((string), ", ");		\
-    g_string_append((string), (feature));	\
+  gboolean first;
+
+#define PRINT_COMPONENT(feature)	\
+  {					\
+    if (first)				\
+      first = FALSE;			\
+    else				\
+      g_print(", ");			\
+					\
+    g_print("%s", (feature));		\
   }
 
-  backends = g_string_new(NULL);
+  /*
+   * Here and everywhere else, we order the backends by descending
+   * order of (believed) popularity.
+   */
 
-  for (i = 0; mn_mailbox_types[i]; i++)
-    {
-      MNMailboxClass *class;
-      
-      class = g_type_class_ref(mn_mailbox_types[i]);
-      ADD_FEATURE(backends, class->format);
-      g_type_class_unref(class);
-    }
-
-  g_print(_("Compiled-in mailbox backends: %s\n"), backends->str);
-  g_string_free(backends, TRUE);
-
-  features = g_string_new(NULL);
+  first = TRUE; g_print(_("Compiled-in mailbox backends: "));
+#ifdef WITH_MBOX
+  PRINT_COMPONENT("mbox");
+#endif
+#ifdef WITH_MH
+  PRINT_COMPONENT("MH");
+#endif
+#ifdef WITH_MAILDIR
+  PRINT_COMPONENT("Maildir");
+#endif
+#ifdef WITH_POP3
+  PRINT_COMPONENT("POP3");
+#endif
+#ifdef WITH_IMAP
+  PRINT_COMPONENT("IMAP");
+#endif
+#ifdef WITH_GMAIL
+  PRINT_COMPONENT("Gmail");
+#endif
+#ifdef WITH_EVOLUTION
+  PRINT_COMPONENT("Evolution");
+#endif
+#ifdef WITH_SYLPHEED
+  PRINT_COMPONENT("Sylpheed");
+#endif
+  g_print("\n");
+  
+#if defined(WITH_POP3) || defined(WITH_IMAP)
+  first = TRUE; g_print(_("Compiled-in POP3 and IMAP features: "));
 #ifdef WITH_SSL
-  ADD_FEATURE(features, "SSL/TLS");
+  PRINT_COMPONENT("SSL/TLS");
 #endif
 #ifdef WITH_SASL
-  ADD_FEATURE(features, "SASL");
+  PRINT_COMPONENT("SASL");
 #endif
 #ifdef WITH_IPV6
-  ADD_FEATURE(features, "IPv6");
-#endif
-#ifdef WITH_GMAIL_TIMESTAMPS
-  ADD_FEATURE(features, _("Gmail timestamps"));
+  PRINT_COMPONENT("IPv6");
 #endif
+  g_print("\n");
+#endif /* WITH_POP3 || WITH_IMAP */
 
-  g_print(_("Compiled-in features: %s\n"), features->str);
-  g_string_free(features, TRUE);
+#undef PRINT_COMPONENT
 }
 
 static void
@@ -139,19 +159,18 @@ mn_main_init_classes (void)
   g_type_class_ref(GMIME_TYPE_STREAM_MEM);
   g_type_class_ref(GMIME_TYPE_MESSAGE);
 #endif /* WITH_MIME */
-  g_type_class_ref(MN_TYPE_MAILBOX);
   for (i = 0; mn_mailbox_types[i]; i++)
     g_type_class_ref(mn_mailbox_types[i]);
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+  for (i = 0; mn_vfs_mailbox_backend_types[i]; i++)
+    g_type_class_ref(mn_vfs_mailbox_backend_types[i]);
+#endif
+#ifdef WITH_EVOLUTION
+  g_type_class_ref(MN_TYPE_CORBA_OBJECT);
+#endif
   g_type_class_ref(MN_TYPE_MAILBOXES);
   g_type_class_ref(MN_TYPE_MESSAGE);
-  g_type_class_ref(MN_TYPE_PENDING_MAILBOX);
   g_type_class_ref(MN_TYPE_SHELL);
-  g_type_class_ref(MN_TYPE_UNSUPPORTED_MAILBOX);
-  g_type_class_ref(MN_TYPE_URI);
-#ifdef WITH_GMAIL
-  g_type_class_ref(SOUP_TYPE_SESSION_SYNC);
-  g_type_class_ref(SOUP_TYPE_MESSAGE);
-#endif /* WITH_GMAIL */
 }
 
 int
@@ -163,7 +182,6 @@ main (int argc, char **argv)
   gboolean arg_display_about = FALSE;
   gboolean arg_close_popup = FALSE;
   gboolean arg_update = FALSE;
-  gboolean arg_report = FALSE;
   gboolean arg_unset_obsolete_configuration = FALSE;
   gboolean arg_quit = FALSE;
   const struct poptOption popt_options[] = {
@@ -231,15 +249,6 @@ main (int argc, char **argv)
       NULL
     },
     {
-      "report",
-      'r',
-      POPT_ARG_NONE,
-      &arg_report,
-      0,
-      N_("Report the mail status"),
-      NULL
-    },
-    {
       "unset-obsolete-configuration",
       '\0',
       POPT_ARG_NONE,
@@ -262,8 +271,6 @@ main (int argc, char **argv)
   GdkPixbuf *icon;
   BonoboGenericFactory *automation_factory;
   GClosure *automation_factory_closure;
-  CORBA_Environment ev;
-  GNOME_MNAutomation automation;
   Bonobo_RegistrationResult result;
       
   g_log_set_fatal_mask(G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL);
@@ -275,6 +282,8 @@ main (int argc, char **argv)
   textdomain(GETTEXT_PACKAGE);
 #endif
 
+  g_set_application_name(_("Mail Notification"));
+
   g_thread_init(NULL);
   if (! g_thread_supported())
     /*
@@ -295,6 +304,9 @@ main (int argc, char **argv)
 		     NULL);
 
   mn_mailbox_init_types();
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
+  mn_vfs_mailbox_init_types();
+#endif
 
   if (arg_list_features)
     {
@@ -327,104 +339,98 @@ main (int argc, char **argv)
   automation_factory_closure = g_cclosure_new(G_CALLBACK(mn_main_automation_factory_cb), NULL, NULL);
   bonobo_generic_factory_construct_noreg(automation_factory, AUTOMATION_FACTORY_IID, automation_factory_closure);
 
-  CORBA_exception_init(&ev);
   result = bonobo_activation_register_active_server(AUTOMATION_FACTORY_IID, BONOBO_OBJREF(automation_factory), NULL);
   switch (result)
     {
     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(NULL, _("Bonobo could not locate the automation object. Please check your Mail Notification installation."));
-
-      if (arg_quit)
-	{
-	  if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
-	    {
-	      g_message(_("quitting Mail Notification"));
-	      GNOME_MNAutomation_quit(automation, &ev);
-	    }
-	  else
-	    g_message(_("Mail Notification is not running"));
-	}
-      else
-	{
-	  if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
-	    {
-	      if (! gnome_vfs_init())
-		mn_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+      {
+	CORBA_Environment env;
+	GNOME_MailNotification_Automation automation;
+	
+	CORBA_exception_init(&env);
+
+	automation = bonobo_activation_activate_from_id(AUTOMATION_IID, 0, NULL, &env);
+	if (automation == CORBA_OBJECT_NIL)
+	  mn_fatal_error_dialog(NULL, _("Bonobo could not locate the automation object. Please check your Mail Notification installation."));
+
+	if (arg_quit)
+	  {
+	    if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
+	      {
+		g_message(_("quitting Mail Notification"));
+		GNOME_MailNotification_Automation_quit(automation, &env);
+	      }
+	    else
+	      g_message(_("Mail Notification is not running"));
+	  }
+	else
+	  {
+	    if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
+	      {
+		if (! gnome_vfs_init())
+		  mn_fatal_error_dialog(NULL, _("Unable to initialize the GnomeVFS library."));
+
+		gnome_authentication_manager_init();
+
 #ifdef WITH_MIME
-	      g_mime_init(0);
+		g_mime_init(0);
 #endif
 	      
-	      mn_conf_init();
-	      /*
-	       * Work around
-	       * http://bugzilla.gnome.org/show_bug.cgi?id=64764:
-	       * initialize our non GTK-based classes before any
-	       * thread is created.
-	       */
-	      mn_main_init_classes();
-	      mn_shell_new();
-	      
-	      if (! eel_gconf_get_boolean(MN_CONF_ALREADY_RUN))
-		{
-		  if (! arg_display_properties)
-		    mn_shell_display_welcome_dialog(mn_shell);
-		  eel_gconf_set_boolean(MN_CONF_ALREADY_RUN, TRUE);
-		}
-	    }
+		mn_conf_init();
+		/*
+		 * Work around
+		 * http://bugzilla.gnome.org/show_bug.cgi?id=64764:
+		 * initialize our non GTK-based classes before any
+		 * thread is created.
+		 */
+		mn_main_init_classes();
+		mn_shell_new();
+	      }
       
-	  if (arg_display_main_window)
-	    GNOME_MNAutomation_displayMainWindow(automation, &ev);
-	  if (arg_display_properties)
-	    GNOME_MNAutomation_displayProperties(automation, &ev);
-	  if (arg_display_about)
-	    GNOME_MNAutomation_displayAbout(automation, &ev);
-	  if (arg_close_popup)
-	    GNOME_MNAutomation_closePopup(automation, &ev);
-
-	  if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
-	    {
-	      if (arg_update)
-		{
-		  g_message(_("updating the mail status"));
-		  GNOME_MNAutomation_update(automation, &ev);
-		}
-	      if (arg_report)
-		{
-		  CORBA_char *report;
-		  
-		  GNOME_MNAutomation_report(automation, &report, &ev);
-		  g_print("%s", report);
-		  CORBA_free(report);
-		}
-	      
-	      if (! (arg_display_main_window
-		     || arg_display_properties
-		     || arg_display_about
-		     || arg_close_popup
-		     || arg_update
-		     || arg_report))
-		g_message(_("Mail Notification is already running"));
-	    }
-	}
+	    if (arg_display_main_window)
+	      GNOME_MailNotification_Automation_displayMainWindow(automation, &env);
+	    if (arg_display_properties)
+	      GNOME_MailNotification_Automation_displayProperties(automation, &env);
+	    if (arg_display_about)
+	      GNOME_MailNotification_Automation_displayAbout(automation, &env);
+	    if (arg_close_popup)
+	      GNOME_MailNotification_Automation_closePopup(automation, &env);
+	    
+	    if (result == Bonobo_ACTIVATION_REG_ALREADY_ACTIVE)
+	      {
+		if (arg_update)
+		  {
+		    g_message(_("updating the mail status"));
+		    GNOME_MailNotification_Automation_update(automation, &env);
+		  }
+		
+		if (! (arg_display_main_window
+		       || arg_display_properties
+		       || arg_display_about
+		       || arg_close_popup
+		       || arg_update))
+		  g_message(_("Mail Notification is already running"));
+	      }
+	  }
       
-      bonobo_object_release_unref(automation, &ev);
+	bonobo_object_release_unref(automation, &env);
+	CORBA_exception_free(&env);
+      }
       break;
 
     case Bonobo_ACTIVATION_REG_NOT_LISTED:
-      mn_fatal_error_dialog(NULL, _("Bonobo could not locate the GNOME_MailNotification_Automation.server file. Please check your Mail Notification installation."));
+      mn_fatal_error_dialog(NULL, _("Bonobo could not locate the %s file. Please check your Mail Notification installation."), "GNOME_MailNotification.server");
       break;
 
     case Bonobo_ACTIVATION_REG_ERROR:
-      mn_fatal_error_dialog(NULL, _("Bonobo was unable to register the automation server. Please check your Mail Notification installation."));
+      mn_fatal_error_dialog(NULL, _("Bonobo was unable to register the %s server. Please check your Mail Notification installation."), AUTOMATION_FACTORY_IID);
       break;
 
     default:
       g_return_val_if_reached(1);
     }
-  CORBA_exception_free(&ev);
+
   gdk_notify_startup_complete();
   
   if (result != Bonobo_ACTIVATION_REG_ALREADY_ACTIVE && ! arg_quit)
diff --git a/src/mn-mbox-mailbox-backend-private.h b/src/mn-mbox-mailbox-backend-private.h
@@ -0,0 +1,26 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MBOX_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_MBOX_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-mbox-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNmboxMailboxBackendPrivate {
+#line 39 "mn-mbox-mailbox-backend.gob"
+	GnomeVFSFileSize last_size;
+#line 40 "mn-mbox-mailbox-backend.gob"
+	time_t last_mtime;
+#line 41 "mn-mbox-mailbox-backend.gob"
+	time_t last_ctime;
+#line 20 "mn-mbox-mailbox-backend-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mbox-mailbox-backend.c b/src/mn-mbox-mailbox-backend.c
@@ -0,0 +1,346 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:55 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mbox-mailbox-backend.h"
+
+#include "mn-mbox-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+/* self casting macros */
+#define SELF(x) MN_MBOX_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_MBOX_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_MBOX_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_MBOX_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_MBOX_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MBOX_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNmboxMailboxBackend Self;
+typedef MNmboxMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_mbox_mailbox_backend_init (MNmboxMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_mbox_mailbox_backend_class_init (MNmboxMailboxBackendClass * class) G_GNUC_UNUSED;
+static gboolean ___2_mn_mbox_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_mbox_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+GType
+mn_mbox_mailbox_backend_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNmboxMailboxBackendClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_mbox_mailbox_backend_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNmboxMailboxBackend),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_mbox_mailbox_backend_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNmboxMailboxBackend", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNmboxMailboxBackend *)g_object_new(mn_mbox_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNmboxMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNmboxMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNmboxMailboxBackend *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNmboxMailboxBackend *)g_object_new_valist (mn_mbox_mailbox_backend_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::finalize"
+	MNmboxMailboxBackend *self G_GNUC_UNUSED = MN_MBOX_MAILBOX_BACKEND (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_mbox_mailbox_backend_init (MNmboxMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_MBOX_MAILBOX_BACKEND,MNmboxMailboxBackendPrivate);
+}
+#undef __GOB_FUNCTION__
+#line 43 "mn-mbox-mailbox-backend.gob"
+static void 
+mn_mbox_mailbox_backend_class_init (MNmboxMailboxBackendClass * class G_GNUC_UNUSED)
+#line 112 "mn-mbox-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+	g_type_class_add_private(class,sizeof(MNmboxMailboxBackendPrivate));
+
+	parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 48 "mn-mbox-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->is = ___2_mn_mbox_mailbox_backend_is;
+#line 82 "mn-mbox-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->check = ___3_mn_mbox_mailbox_backend_check;
+#line 126 "mn-mbox-mailbox-backend.c"
+	g_object_class->finalize = ___finalize;
+ {
+#line 44 "mn-mbox-mailbox-backend.gob"
+
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "mbox";
+  
+#line 133 "mn-mbox-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 48 "mn-mbox-mailbox-backend.gob"
+static gboolean 
+___2_mn_mbox_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 143 "mn-mbox-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+	((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+		((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::is"
+{
+#line 50 "mn-mbox-mailbox-backend.gob"
+	
+    gboolean is = FALSE;
+    GnomeVFSFileInfo *file_info;
+	
+    file_info = gnome_vfs_file_info_new();
+    if (gnome_vfs_get_file_info_uri(mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
+	&& (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) != 0
+	&& file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
+      {
+	GnomeVFSHandle *handle;
+		
+	if (gnome_vfs_open_uri(&handle, mailbox->vfs_uri, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
+	  {
+	    char buf[5];
+	    GnomeVFSResult result;
+	    GnomeVFSFileSize bytes_read;
+		
+	    result = gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read);
+	    if ((result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
+		&& (bytes_read == 0
+		    || (bytes_read == sizeof(buf)
+			&& ! strncmp(buf, "From ", sizeof(buf)))))
+	      is = TRUE;
+		
+	    gnome_vfs_close(handle);
+	  }
+      }
+    gnome_vfs_file_info_unref(file_info);
+    
+    return is;
+  }}
+#line 183 "mn-mbox-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 82 "mn-mbox-mailbox-backend.gob"
+static void 
+___3_mn_mbox_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 190 "mn-mbox-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:mbox:Mailbox:Backend::check"
+{
+#line 84 "mn-mbox-mailbox-backend.gob"
+	
+    Self *self = SELF(backend);
+    gboolean aborted;
+    gboolean must_poll;
+    GnomeVFSResult result;
+    GnomeVFSHandle *handle;
+    
+    mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_FILE);
+
+    GDK_THREADS_ENTER();
+
+    if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      aborted = TRUE;
+    else
+      {
+	aborted = FALSE;
+	must_poll = MN_MAILBOX(backend->mailbox)->must_poll;
+      }
+    
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+    if (aborted)
+      return;
+
+    if (must_poll)
+      {
+	GnomeVFSFileInfo *file_info;
+	GnomeVFSResult result;
+	gboolean check;
+
+	/*
+	 * We are here because the mailbox has to be polled; only
+	 * check it if necessary.
+	 */
+
+	file_info = gnome_vfs_file_info_new();
+	result = gnome_vfs_get_file_info_uri(backend->mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+
+	mn_vfs_mailbox_backend_lock(backend);
+
+	if (result == GNOME_VFS_OK
+	    && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) != 0
+	    && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MTIME) != 0
+	    && file_info->size == selfp->last_size
+	    && file_info->mtime == selfp->last_mtime)
+	  {
+	    if ((file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_CTIME) != 0)
+	      check = file_info->ctime != selfp->last_ctime;
+	    else
+	      /*
+	       * The ctime is often missing for remote mailboxes;
+	       * since anyway the size and mtime do not have changed,
+	       * we do not check the mailbox.
+	       */
+	      check = FALSE;
+	  }
+	else
+	  check = TRUE;
+
+	if (check)
+	  {
+	    selfp->last_size = file_info->size;
+	    selfp->last_mtime = file_info->mtime;
+	    selfp->last_ctime = file_info->ctime;
+
+	    if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	      check = FALSE;
+	  }
+
+	mn_vfs_mailbox_backend_unlock(backend);
+
+	gnome_vfs_file_info_unref(file_info);
+
+	if (! check)
+	  return;
+      }
+
+    result = gnome_vfs_open_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_OPEN_READ);
+    if (result == GNOME_VFS_OK)
+      {
+	GMimeStream *stream;
+	
+	stream = mn_gmime_stream_vfs_new(handle, backend->mailbox->vfs_uri, &result);
+	if (stream)
+	  {
+	    GMimeParser *parser;
+	    GSList *messages = NULL;
+	    GnomeVFSResult close_result;
+	    
+	    parser = g_mime_parser_new_with_stream(stream);
+	    g_object_unref(stream);
+	
+	    g_mime_parser_set_scan_from(parser, TRUE);
+	
+	    while (! g_mime_parser_eos(parser))
+	      {
+		GMimeMessage *mime_message;
+		
+		if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+		  break;
+		
+		mime_message = g_mime_parser_construct_message(parser);
+		if (mime_message)
+		  {
+		    const char *status;
+		    
+		    status = g_mime_message_get_header(mime_message, "Status");
+		    if (! (status && strpbrk(status, "OR")))
+		      messages = g_slist_append(messages, mn_message_new_from_mime_message(MN_MAILBOX(backend->mailbox), mime_message));
+		    
+		    g_object_unref(mime_message);
+		  }
+	      }
+	    
+	    g_object_unref(parser);
+	    close_result = gnome_vfs_close(handle);
+	    
+	    GDK_THREADS_ENTER();
+	    
+	    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	      {
+		if (close_result == GNOME_VFS_OK)
+		  mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+		else
+		  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close file: %s"), gnome_vfs_result_to_string(close_result));
+	      }
+	    
+	    mn_g_object_slist_free(messages);
+	    
+	    gdk_flush();
+	    GDK_THREADS_LEAVE();
+
+	    return;
+	  }
+	else
+	  gnome_vfs_close(handle);
+      }
+
+    GDK_THREADS_ENTER();
+	
+    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
+	
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+  }}
+#line 345 "mn-mbox-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-mbox-mailbox-backend.gob b/src/mn-mbox-mailbox-backend.gob
@@ -0,0 +1,231 @@
+/* 
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%h{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-message-mime.h"
+#include "mn-gmime-stream-vfs.h"
+#include "mn-util.h"
+%}
+
+class MN:mbox:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+  private GnomeVFSFileSize last_size;
+  private time_t last_mtime;
+  private time_t last_ctime;
+
+  class_init (class)
+  {
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "mbox";
+  }
+
+  override (MN:VFS:Mailbox:Backend) gboolean
+    is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+  {
+    gboolean is = FALSE;
+    GnomeVFSFileInfo *file_info;
+	
+    file_info = gnome_vfs_file_info_new();
+    if (gnome_vfs_get_file_info_uri(mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
+	&& (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE) != 0
+	&& file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
+      {
+	GnomeVFSHandle *handle;
+		
+	if (gnome_vfs_open_uri(&handle, mailbox->vfs_uri, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
+	  {
+	    char buf[5];
+	    GnomeVFSResult result;
+	    GnomeVFSFileSize bytes_read;
+		
+	    result = gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read);
+	    if ((result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
+		&& (bytes_read == 0
+		    || (bytes_read == sizeof(buf)
+			&& ! strncmp(buf, "From ", sizeof(buf)))))
+	      is = TRUE;
+		
+	    gnome_vfs_close(handle);
+	  }
+      }
+    gnome_vfs_file_info_unref(file_info);
+    
+    return is;
+  }
+
+  override (MN:VFS:Mailbox:Backend) void
+    check (MNVFSMailboxBackend *backend, unsigned long check_id)
+  {
+    Self *self = SELF(backend);
+    gboolean aborted;
+    gboolean must_poll;
+    GnomeVFSResult result;
+    GnomeVFSHandle *handle;
+    
+    mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_FILE);
+
+    GDK_THREADS_ENTER();
+
+    if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      aborted = TRUE;
+    else
+      {
+	aborted = FALSE;
+	must_poll = MN_MAILBOX(backend->mailbox)->must_poll;
+      }
+    
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+    if (aborted)
+      return;
+
+    if (must_poll)
+      {
+	GnomeVFSFileInfo *file_info;
+	GnomeVFSResult result;
+	gboolean check;
+
+	/*
+	 * We are here because the mailbox has to be polled; only
+	 * check it if necessary.
+	 */
+
+	file_info = gnome_vfs_file_info_new();
+	result = gnome_vfs_get_file_info_uri(backend->mailbox->vfs_uri, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+
+	mn_vfs_mailbox_backend_lock(backend);
+
+	if (result == GNOME_VFS_OK
+	    && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE) != 0
+	    && (file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_MTIME) != 0
+	    && file_info->size == selfp->last_size
+	    && file_info->mtime == selfp->last_mtime)
+	  {
+	    if ((file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_CTIME) != 0)
+	      check = file_info->ctime != selfp->last_ctime;
+	    else
+	      /*
+	       * The ctime is often missing for remote mailboxes;
+	       * since anyway the size and mtime do not have changed,
+	       * we do not check the mailbox.
+	       */
+	      check = FALSE;
+	  }
+	else
+	  check = TRUE;
+
+	if (check)
+	  {
+	    selfp->last_size = file_info->size;
+	    selfp->last_mtime = file_info->mtime;
+	    selfp->last_ctime = file_info->ctime;
+
+	    if (mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	      check = FALSE;
+	  }
+
+	mn_vfs_mailbox_backend_unlock(backend);
+
+	gnome_vfs_file_info_unref(file_info);
+
+	if (! check)
+	  return;
+      }
+
+    result = gnome_vfs_open_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_OPEN_READ);
+    if (result == GNOME_VFS_OK)
+      {
+	GMimeStream *stream;
+	
+	stream = mn_gmime_stream_vfs_new(handle, backend->mailbox->vfs_uri, &result);
+	if (stream)
+	  {
+	    GMimeParser *parser;
+	    GSList *messages = NULL;
+	    GnomeVFSResult close_result;
+	    
+	    parser = g_mime_parser_new_with_stream(stream);
+	    g_object_unref(stream);
+	
+	    g_mime_parser_set_scan_from(parser, TRUE);
+	
+	    while (! g_mime_parser_eos(parser))
+	      {
+		GMimeMessage *mime_message;
+		
+		if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+		  break;
+		
+		mime_message = g_mime_parser_construct_message(parser);
+		if (mime_message)
+		  {
+		    const char *status;
+		    
+		    status = g_mime_message_get_header(mime_message, "Status");
+		    if (! (status && strpbrk(status, "OR")))
+		      messages = g_slist_append(messages, mn_message_new_from_mime_message(MN_MAILBOX(backend->mailbox), mime_message));
+		    
+		    g_object_unref(mime_message);
+		  }
+	      }
+	    
+	    g_object_unref(parser);
+	    close_result = gnome_vfs_close(handle);
+	    
+	    GDK_THREADS_ENTER();
+	    
+	    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	      {
+		if (close_result == GNOME_VFS_OK)
+		  mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+		else
+		  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close file: %s"), gnome_vfs_result_to_string(close_result));
+	      }
+	    
+	    mn_g_object_slist_free(messages);
+	    
+	    gdk_flush();
+	    GDK_THREADS_LEAVE();
+
+	    return;
+	  }
+	else
+	  gnome_vfs_close(handle);
+      }
+
+    GDK_THREADS_ENTER();
+	
+    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
+	
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+  }
+}
diff --git a/src/mn-mbox-mailbox-backend.h b/src/mn-mbox-mailbox-backend.h
@@ -0,0 +1,74 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_MBOX_MAILBOX_BACKEND_H__
+#define __MN_MBOX_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-message-mime.h"
+#include "mn-gmime-stream-vfs.h"
+#include "mn-util.h"
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MBOX_MAILBOX_BACKEND	(mn_mbox_mailbox_backend_get_type())
+#define MN_MBOX_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackend)
+#define MN_MBOX_MAILBOX_BACKEND_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackend const)
+#define MN_MBOX_MAILBOX_BACKEND_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackendClass)
+#define MN_IS_MBOX_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mbox_mailbox_backend_get_type ())
+
+#define MN_MBOX_MAILBOX_BACKEND_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mbox_mailbox_backend_get_type(), MNmboxMailboxBackendClass)
+
+/* Private structure type */
+typedef struct _MNmboxMailboxBackendPrivate MNmboxMailboxBackendPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MBOX_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_MBOX_MAILBOX_BACKEND__
+typedef struct _MNmboxMailboxBackend MNmboxMailboxBackend;
+#endif
+struct _MNmboxMailboxBackend {
+	MNVFSMailboxBackend __parent__;
+	/*< private >*/
+	MNmboxMailboxBackendPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNmboxMailboxBackendClass MNmboxMailboxBackendClass;
+struct _MNmboxMailboxBackendClass {
+	MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_mbox_mailbox_backend_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mbox-mailbox-private.h b/src/mn-mbox-mailbox-private.h
@@ -1,28 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_MBOX_MAILBOX_PRIVATE_H__
-#define __MN_MBOX_MAILBOX_PRIVATE_H__
-
-#include "mn-mbox-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#line 24 "mn-mbox-mailbox.gob"
-
-#include <libgnomevfs/gnome-vfs.h>
-
-#line 18 "mn-mbox-mailbox-private.h"
-struct _MNmboxMailboxPrivate {
-#line 41 "mn-mbox-mailbox.gob"
-	time_t last_mtime;
-#line 22 "mn-mbox-mailbox-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-mbox-mailbox.c b/src/mn-mbox-mailbox.c
@@ -1,348 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:26 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include "mn-mbox-mailbox.h"
-
-#include "mn-mbox-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 27 "mn-mbox-mailbox.gob"
-
-#include "config.h"
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-message-mime.h"
-#include "mn-gmime-stream-vfs.h"
-#include "mn-util.h"
-
-#line 37 "mn-mbox-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_MBOX_MAILBOX(x)
-#define SELF_CONST(x) MN_MBOX_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_MBOX_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_MBOX_MAILBOX
-#define SELF_CLASS(x) MN_MBOX_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MBOX_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNmboxMailbox Self;
-typedef MNmboxMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_mbox_mailbox_init (MNmboxMailbox * o) G_GNUC_UNUSED;
-static void mn_mbox_mailbox_class_init (MNmboxMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_mbox_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_mbox_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-GType
-mn_mbox_mailbox_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNmboxMailboxClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_mbox_mailbox_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNmboxMailbox),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_mbox_mailbox_init,
-			NULL
-		};
-
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNmboxMailbox", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNmboxMailbox *)g_object_new(mn_mbox_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNmboxMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNmboxMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNmboxMailbox *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNmboxMailbox *)g_object_new_valist (mn_mbox_mailbox_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::finalize"
-	MNmboxMailbox *self G_GNUC_UNUSED = MN_MBOX_MAILBOX (obj_self);
-	gpointer priv G_GNUC_UNUSED = self->_priv;
-	if(G_OBJECT_CLASS(parent_class)->finalize) \
-		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-}
-#undef __GOB_FUNCTION__
-
-static void 
-mn_mbox_mailbox_init (MNmboxMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNmboxMailboxPrivate);
-}
-#undef __GOB_FUNCTION__
-#line 43 "mn-mbox-mailbox.gob"
-static void 
-mn_mbox_mailbox_class_init (MNmboxMailboxClass * class G_GNUC_UNUSED)
-#line 125 "mn-mbox-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
-	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
-	g_type_class_add_private(class,sizeof(MNmboxMailboxPrivate));
-
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 48 "mn-mbox-mailbox.gob"
-	g_object_class->constructor = ___2_mn_mbox_mailbox_constructor;
-#line 72 "mn-mbox-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_mbox_mailbox_impl_is;
-#line 113 "mn-mbox-mailbox.gob"
-	mn_mailbox_class->impl_check = ___4_mn_mbox_mailbox_impl_check;
-#line 141 "mn-mbox-mailbox.c"
-	g_object_class->finalize = ___finalize;
- {
-#line 44 "mn-mbox-mailbox.gob"
-
-    MN_MAILBOX_CLASS(class)->format = "mbox";
-  
-#line 148 "mn-mbox-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 48 "mn-mbox-mailbox.gob"
-static GObject * 
-___2_mn_mbox_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 158 "mn-mbox-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): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::constructor"
-{
-#line 50 "mn-mbox-mailbox.gob"
-	
-    GObject *object;
-    MNMailbox *self;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-    
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       self->uri->text,
-		       GNOME_VFS_MONITOR_FILE,
-		       MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    return object;
-  }}
-#line 188 "mn-mbox-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 72 "mn-mbox-mailbox.gob"
-static gboolean 
-___3_mn_mbox_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 195 "mn-mbox-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::impl_is"
-#line 72 "mn-mbox-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 72 "mn-mbox-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 206 "mn-mbox-mailbox.c"
-{
-#line 74 "mn-mbox-mailbox.gob"
-	
-    gboolean is = FALSE;
-    
-    if (uri->vfs)
-      {
-	GnomeVFSFileInfo *file_info;
-	
-	file_info = gnome_vfs_file_info_new();
-	if (gnome_vfs_get_file_info_uri(uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
-	    && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE
-	    && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE
-	    && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
-	  {
-	    if (file_info->size == 0) /* can be an empty mbox */
-	      is = TRUE;
-	    else
-	      {
-		GnomeVFSHandle *handle;
-		
-		if (gnome_vfs_open_uri(&handle, uri->vfs, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
-		  {
-		    char buf[5];
-		    GnomeVFSFileSize bytes_read;
-		
-		    if (gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read) == GNOME_VFS_OK
-			&& bytes_read == sizeof(buf)
-			&& ! strncmp(buf, "From ", sizeof(buf)))
-		      is = TRUE;
-		
-		    gnome_vfs_close(handle);
-		  }
-	      }
-	  }
-	gnome_vfs_file_info_unref(file_info);
-      }
-    
-    return is;
-  }}
-#line 247 "mn-mbox-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 113 "mn-mbox-mailbox.gob"
-static void 
-___4_mn_mbox_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 254 "mn-mbox-mailbox.c"
-#define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
-{
-#define __GOB_FUNCTION__ "MN:mbox:Mailbox::impl_check"
-#line 113 "mn-mbox-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 113 "mn-mbox-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 264 "mn-mbox-mailbox.c"
-{
-#line 115 "mn-mbox-mailbox.gob"
-	
-    Self *self = SELF(mailbox);
-    gboolean check = TRUE;
-    
-    if (mn_mailbox_get_must_poll(mailbox))
-      {
-	GnomeVFSFileInfo *file_info;
-
-	/* we're polling, so check only if the mailbox has changed since our last check */
-
-	file_info = gnome_vfs_file_info_new();
-	if (gnome_vfs_get_file_info_uri(mailbox->uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK)
-	  {
-	    if (file_info->mtime == selfp->last_mtime)
-	      check = FALSE;
-	    else
-	      selfp->last_mtime = file_info->mtime;
-	  }
-	gnome_vfs_file_info_unref(file_info);
-      }
-
-    if (check)
-      {
-	GnomeVFSResult result;
-	GnomeVFSHandle *handle;
-
-	result = gnome_vfs_open_uri(&handle, mailbox->uri->vfs, GNOME_VFS_OPEN_READ);
-	if (result == GNOME_VFS_OK)
-	  {
-	    GMimeStream *stream;
-	    GMimeParser *parser;
-	    GSList *messages = NULL;
-
-	    stream = mn_gmime_stream_vfs_new(handle, mailbox->uri->text);
-	    parser = g_mime_parser_new_with_stream(stream);
-	    g_object_unref(stream);
-
-	    g_mime_parser_set_scan_from(parser, TRUE);
-	    
-	    while (! g_mime_parser_eos(parser))
-	      {
-		GMimeMessage *mime_message;
-
-		mime_message = g_mime_parser_construct_message(parser);
-		if (mime_message)
-		  {
-		    const char *status;
-		    
-		    status = g_mime_message_get_header(mime_message, "Status");
-		    if (! (status && (strchr(status, 'O') || strchr(status, 'R'))))
-		      messages = g_slist_append(messages, mn_message_new_from_mime_message(mailbox->uri, mime_message));
-
-		    g_object_unref(mime_message);
-		  }
-	      }
-
-	    g_object_unref(parser);
-	    gnome_vfs_close(handle);
-	    
-	    GDK_THREADS_ENTER();
-	    mn_mailbox_set_messages(mailbox, messages);
-	    gdk_flush();
-	    GDK_THREADS_LEAVE();
-
-	    mn_g_object_slist_free(messages);
-	  }
-	else
-	  {
-	    GDK_THREADS_ENTER();
-	    mn_mailbox_set_error(mailbox, _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
-	    gdk_flush();
-	    GDK_THREADS_LEAVE();
-	  }
-      }
-
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(mailbox);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-  }}
-#line 347 "mn-mbox-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
diff --git a/src/mn-mbox-mailbox.gob b/src/mn-mbox-mailbox.gob
@@ -1,195 +0,0 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%privateheader{
-#include <libgnomevfs/gnome-vfs.h>
-%}
-%{
-#include "config.h"
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-message-mime.h"
-#include "mn-gmime-stream-vfs.h"
-#include "mn-util.h"
-%}
-
-class MN:mbox:Mailbox from MN:Mailbox
-{
-  private time_t last_mtime;
-
-  class_init (class)
-  {
-    MN_MAILBOX_CLASS(class)->format = "mbox";
-  }
-
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
-  {
-    GObject *object;
-    MNMailbox *self;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-    
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       self->uri->text,
-		       GNOME_VFS_MONITOR_FILE,
-		       MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    return object;
-  }
-
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
-  {
-    gboolean is = FALSE;
-    
-    if (uri->vfs)
-      {
-	GnomeVFSFileInfo *file_info;
-	
-	file_info = gnome_vfs_file_info_new();
-	if (gnome_vfs_get_file_info_uri(uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK
-	    && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_TYPE
-	    && file_info->valid_fields & GNOME_VFS_FILE_INFO_FIELDS_SIZE
-	    && file_info->type == GNOME_VFS_FILE_TYPE_REGULAR)
-	  {
-	    if (file_info->size == 0) /* can be an empty mbox */
-	      is = TRUE;
-	    else
-	      {
-		GnomeVFSHandle *handle;
-		
-		if (gnome_vfs_open_uri(&handle, uri->vfs, GNOME_VFS_OPEN_READ) == GNOME_VFS_OK)
-		  {
-		    char buf[5];
-		    GnomeVFSFileSize bytes_read;
-		
-		    if (gnome_vfs_read(handle, buf, sizeof(buf), &bytes_read) == GNOME_VFS_OK
-			&& bytes_read == sizeof(buf)
-			&& ! strncmp(buf, "From ", sizeof(buf)))
-		      is = TRUE;
-		
-		    gnome_vfs_close(handle);
-		  }
-	      }
-	  }
-	gnome_vfs_file_info_unref(file_info);
-      }
-    
-    return is;
-  }
-
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *mailbox (check null type))
-  {
-    Self *self = SELF(mailbox);
-    gboolean check = TRUE;
-    
-    if (mn_mailbox_get_must_poll(mailbox))
-      {
-	GnomeVFSFileInfo *file_info;
-
-	/* we're polling, so check only if the mailbox has changed since our last check */
-
-	file_info = gnome_vfs_file_info_new();
-	if (gnome_vfs_get_file_info_uri(mailbox->uri->vfs, file_info, GNOME_VFS_FILE_INFO_FOLLOW_LINKS) == GNOME_VFS_OK)
-	  {
-	    if (file_info->mtime == selfp->last_mtime)
-	      check = FALSE;
-	    else
-	      selfp->last_mtime = file_info->mtime;
-	  }
-	gnome_vfs_file_info_unref(file_info);
-      }
-
-    if (check)
-      {
-	GnomeVFSResult result;
-	GnomeVFSHandle *handle;
-
-	result = gnome_vfs_open_uri(&handle, mailbox->uri->vfs, GNOME_VFS_OPEN_READ);
-	if (result == GNOME_VFS_OK)
-	  {
-	    GMimeStream *stream;
-	    GMimeParser *parser;
-	    GSList *messages = NULL;
-
-	    stream = mn_gmime_stream_vfs_new(handle, mailbox->uri->text);
-	    parser = g_mime_parser_new_with_stream(stream);
-	    g_object_unref(stream);
-
-	    g_mime_parser_set_scan_from(parser, TRUE);
-	    
-	    while (! g_mime_parser_eos(parser))
-	      {
-		GMimeMessage *mime_message;
-
-		mime_message = g_mime_parser_construct_message(parser);
-		if (mime_message)
-		  {
-		    const char *status;
-		    
-		    status = g_mime_message_get_header(mime_message, "Status");
-		    if (! (status && (strchr(status, 'O') || strchr(status, 'R'))))
-		      messages = g_slist_append(messages, mn_message_new_from_mime_message(mailbox->uri, mime_message));
-
-		    g_object_unref(mime_message);
-		  }
-	      }
-
-	    g_object_unref(parser);
-	    gnome_vfs_close(handle);
-	    
-	    GDK_THREADS_ENTER();
-	    mn_mailbox_set_messages(mailbox, messages);
-	    gdk_flush();
-	    GDK_THREADS_LEAVE();
-
-	    mn_g_object_slist_free(messages);
-	  }
-	else
-	  {
-	    GDK_THREADS_ENTER();
-	    mn_mailbox_set_error(mailbox, _("unable to open mailbox: %s"), gnome_vfs_result_to_string(result));
-	    gdk_flush();
-	    GDK_THREADS_LEAVE();
-	  }
-      }
-
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(mailbox);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-  }
-}
diff --git a/src/mn-mbox-mailbox.h b/src/mn-mbox-mailbox.h
@@ -1,62 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_MBOX_MAILBOX_H__
-#define __MN_MBOX_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MBOX_MAILBOX	(mn_mbox_mailbox_get_type())
-#define MN_MBOX_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_get_type(), MNmboxMailbox)
-#define MN_MBOX_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mbox_mailbox_get_type(), MNmboxMailbox const)
-#define MN_MBOX_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mbox_mailbox_get_type(), MNmboxMailboxClass)
-#define MN_IS_MBOX_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mbox_mailbox_get_type ())
-
-#define MN_MBOX_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mbox_mailbox_get_type(), MNmboxMailboxClass)
-
-/* Private structure type */
-typedef struct _MNmboxMailboxPrivate MNmboxMailboxPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MBOX_MAILBOX__
-#define __TYPEDEF_MN_MBOX_MAILBOX__
-typedef struct _MNmboxMailbox MNmboxMailbox;
-#endif
-struct _MNmboxMailbox {
-	MNMailbox __parent__;
-	/*< private >*/
-	MNmboxMailboxPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNmboxMailboxClass MNmboxMailboxClass;
-struct _MNmboxMailboxClass {
-	MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_mbox_mailbox_get_type	(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-message-mime.c b/src/mn-message-mime.c
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,7 +51,7 @@ mn_message_mime_header_decode_text (const char *str)
 }
 
 MNMessage *
-mn_message_new_from_mime_message (MNURI *mailbox_uri,
+mn_message_new_from_mime_message (MNMailbox *mailbox,
 				  GMimeMessage *mime_message)
 {
   MNMessage *message;
@@ -62,7 +62,7 @@ mn_message_new_from_mime_message (MNURI *mailbox_uri,
   char *decoded_from;
   char *decoded_subject;
 
-  g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+  g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
   g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), NULL);
   
   message_id = g_mime_message_get_message_id(mime_message);
@@ -73,7 +73,7 @@ mn_message_new_from_mime_message (MNURI *mailbox_uri,
   decoded_from = from ? mn_message_mime_header_decode_text(from) : NULL;
   decoded_subject = subject ? mn_message_mime_header_decode_text(subject) : NULL;
 
-  message = mn_message_new(mailbox_uri, NULL, sent_time, message_id, decoded_from, decoded_subject);
+  message = mn_message_new(mailbox, NULL, sent_time, message_id, decoded_from, decoded_subject);
 
   g_free(decoded_from);
   g_free(decoded_subject);
@@ -82,14 +82,13 @@ mn_message_new_from_mime_message (MNURI *mailbox_uri,
 }
 
 MNMessage *
-mn_message_new_from_mime_stream (MNURI *mailbox_uri,
-				 GMimeStream *mime_stream)
+mn_message_new_from_mime_stream (MNMailbox *mailbox, GMimeStream *mime_stream)
 {
   GMimeParser *parser;
   GMimeMessage *mime_message;
   MNMessage *message;
 
-  g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+  g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
   g_return_val_if_fail(GMIME_IS_STREAM(mime_stream), NULL);
 
   parser = g_mime_parser_new_with_stream(mime_stream);
@@ -98,60 +97,63 @@ mn_message_new_from_mime_stream (MNURI *mailbox_uri,
 
   if (mime_message)
     {
-      message = mn_message_new_from_mime_message(mailbox_uri, mime_message);
+      message = mn_message_new_from_mime_message(mailbox, mime_message);
       g_object_unref(mime_message);
     }
   else
-    message = mn_message_new_from_error(mailbox_uri, _("unable to parse MIME message"));
+    message = mn_message_new_from_error(mailbox, _("unable to parse MIME message"));
     
   return message;
 }
 
 MNMessage *
-mn_message_new_from_uri (MNURI *mailbox_uri,
-			 GnomeVFSURI *uri)
+mn_message_new_from_uri (MNMailbox *mailbox, GnomeVFSURI *uri)
 {
   GnomeVFSResult result;
   GnomeVFSHandle *handle;
-  MNMessage *message;
 
-  g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+  g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
   g_return_val_if_fail(uri != NULL, NULL);
 
   result = gnome_vfs_open_uri(&handle, uri, GNOME_VFS_OPEN_READ | GNOME_VFS_OPEN_RANDOM);
   if (result == GNOME_VFS_OK)
     {
       GMimeStream *stream;
-      char *text_uri;
-
-      text_uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
-      stream = mn_gmime_stream_vfs_new(handle, text_uri);
-      g_free(text_uri);
 
-      message = mn_message_new_from_mime_stream(mailbox_uri, stream);
-      g_object_unref(stream);
-
-      gnome_vfs_close(handle);
+      stream = mn_gmime_stream_vfs_new(handle, uri, &result);
+      if (stream)
+	{
+	  MNMessage *message;
+
+	  message = mn_message_new_from_mime_stream(mailbox, stream);
+	  g_object_unref(stream);
+
+	  result = gnome_vfs_close(handle);
+	  if (result == GNOME_VFS_OK)
+	    return message;
+	  else
+	    g_object_unref(message);
+	}
+      else
+	gnome_vfs_close(handle);
     }
-  else
-    message = mn_message_new_from_error(mailbox_uri, gnome_vfs_result_to_string(result));
-    
-  return message;
+
+  return mn_message_new_from_error(mailbox, gnome_vfs_result_to_string(result));
 }
 
 MNMessage *
-mn_message_new_from_buffer (MNURI *mailbox_uri,
+mn_message_new_from_buffer (MNMailbox *mailbox,
 			    const char *buffer,
 			    unsigned int len)
 {
   GMimeStream *stream;
   MNMessage *message;
 
-  g_return_val_if_fail(MN_IS_URI(mailbox_uri), NULL);
+  g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
   g_return_val_if_fail(buffer != NULL, NULL);
 
   stream = g_mime_stream_mem_new_with_buffer(buffer, len);
-  message = mn_message_new_from_mime_stream(mailbox_uri, stream);
+  message = mn_message_new_from_mime_stream(mailbox, stream);
   g_object_unref(stream);
 
   return message;
diff --git a/src/mn-message-mime.h b/src/mn-message-mime.h
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,13 +22,13 @@
 #include <gmime/gmime.h>
 #include "mn-message.h"
 
-MNMessage *mn_message_new_from_mime_message (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_mime_message (MNMailbox *mailbox,
 					     GMimeMessage *mime_message);
-MNMessage *mn_message_new_from_mime_stream (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_mime_stream (MNMailbox *mailbox,
 					    GMimeStream *mime_stream);
-MNMessage *mn_message_new_from_uri (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_uri (MNMailbox *mailbox,
 				    GnomeVFSURI *uri);
-MNMessage *mn_message_new_from_buffer (MNURI *mailbox_uri,
+MNMessage *mn_message_new_from_buffer (MNMailbox *mailbox,
 				       const char *buffer,
 				       unsigned int len);
 
diff --git a/src/mn-message-private.h b/src/mn-message-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_MESSAGE_PRIVATE_H__
 #define __MN_MESSAGE_PRIVATE_H__
diff --git a/src/mn-message-view-private.h b/src/mn-message-view-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_MESSAGE_VIEW_PRIVATE_H__
 #define __MN_MESSAGE_VIEW_PRIVATE_H__
@@ -10,19 +10,19 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNMessageViewPrivate {
-#line 43 "mn-message-view.gob"
-	GtkTextBuffer * buffer;
 #line 44 "mn-message-view.gob"
-	GtkTextTag * header_tag;
+	GtkTextBuffer * buffer;
 #line 45 "mn-message-view.gob"
-	unsigned int update_tabs_idle_id;
+	GtkTextTag * header_tag;
 #line 46 "mn-message-view.gob"
+	unsigned int update_tabs_idle_id;
+#line 47 "mn-message-view.gob"
 	unsigned int update_sent_timeout_id;
-#line 48 "mn-message-view.gob"
+#line 49 "mn-message-view.gob"
 	gboolean transparent;
-#line 51 "mn-message-view.gob"
+#line 52 "mn-message-view.gob"
 	gboolean text_pointer;
-#line 54 "mn-message-view.gob"
+#line 55 "mn-message-view.gob"
 	GSList * messages;
 #line 28 "mn-message-view-private.h"
 };
diff --git a/src/mn-message-view.c b/src/mn-message-view.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,7 +23,7 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-message-view.gob"
+#line 25 "mn-message-view.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
@@ -31,14 +31,14 @@
 #include "mn-message.h"
 #include "mn-util.h"
 
-  typedef struct
-  {
-    MNMessage		*message;
-    GSList		*header_marks;
-    char		*last_sent;
-    GtkTextMark		*sent_start;
-    GtkTextMark		*sent_end;
-  } MessageInfo;
+typedef struct
+{
+  MNMessage	*message;
+  GSList	*header_marks;
+  char		*last_sent;
+  GtkTextMark	*sent_start;
+  GtkTextMark	*sent_end;
+} MessageInfo;
 
 #line 44 "mn-message-view.c"
 /* self casting macros */
@@ -144,7 +144,7 @@ ___finalize(GObject *obj_self)
 #define __GOB_FUNCTION__ "MN:Message:View::finalize"
 	MNMessageView *self G_GNUC_UNUSED = MN_MESSAGE_VIEW (obj_self);
 	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 232 "mn-message-view.gob"
+#line 233 "mn-message-view.gob"
 	___8_mn_message_view_finalize(obj_self);
 #line 150 "mn-message-view.c"
 }
@@ -154,7 +154,7 @@ static void
 mn_message_view_init (MNMessageView * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Message:View::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNMessageViewPrivate);
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_MESSAGE_VIEW,MNMessageViewPrivate);
 }
 #undef __GOB_FUNCTION__
 static void 
@@ -167,9 +167,9 @@ mn_message_view_class_init (MNMessageViewClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (GTK_TYPE_TEXT_VIEW);
 
-#line 94 "mn-message-view.gob"
+#line 95 "mn-message-view.gob"
 	g_object_class->constructor = ___2_mn_message_view_constructor;
-#line 232 "mn-message-view.gob"
+#line 233 "mn-message-view.gob"
 	g_object_class->finalize = ___finalize;
 #line 175 "mn-message-view.c"
 	g_object_class->get_property = ___object_get_property;
@@ -221,21 +221,21 @@ ___object_set_property (GObject *object,
 	switch (property_id) {
 	case PROP_TRANSPARENT:
 		{
-#line 49 "mn-message-view.gob"
+#line 50 "mn-message-view.gob"
 self->_priv->transparent = g_value_get_boolean (VAL);
 #line 227 "mn-message-view.c"
 		}
 		break;
 	case PROP_TEXT_POINTER:
 		{
-#line 52 "mn-message-view.gob"
+#line 53 "mn-message-view.gob"
 self->_priv->text_pointer = g_value_get_boolean (VAL);
 #line 234 "mn-message-view.c"
 		}
 		break;
 	case PROP_MESSAGES:
 		{
-#line 57 "mn-message-view.gob"
+#line 58 "mn-message-view.gob"
 
       GSList *messages;
       MessageInfo *info;
@@ -270,7 +270,7 @@ self->_priv->text_pointer = g_value_get_boolean (VAL);
 	    selfp->update_sent_timeout_id = g_timeout_add(500, self_update_sent_cb, self);
 	}
       else
-	mn_source_remove(&selfp->update_sent_timeout_id);
+	mn_source_clear(&selfp->update_sent_timeout_id);
     
 #line 276 "mn-message-view.c"
 		}
@@ -301,14 +301,14 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_TRANSPARENT:
 		{
-#line 49 "mn-message-view.gob"
+#line 50 "mn-message-view.gob"
 g_value_set_boolean (VAL, self->_priv->transparent);
 #line 307 "mn-message-view.c"
 		}
 		break;
 	case PROP_TEXT_POINTER:
 		{
-#line 52 "mn-message-view.gob"
+#line 53 "mn-message-view.gob"
 g_value_set_boolean (VAL, self->_priv->text_pointer);
 #line 314 "mn-message-view.c"
 		}
@@ -327,20 +327,20 @@ g_value_set_boolean (VAL, self->_priv->text_pointer);
 
 
 
-#line 57 "mn-message-view.gob"
+#line 58 "mn-message-view.gob"
 void 
 mn_message_view_set_messages (MNMessageView * self, gpointer val)
 #line 334 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::set_messages"
 {
-#line 55 "mn-message-view.gob"
+#line 56 "mn-message-view.gob"
 		g_object_set (G_OBJECT (self), "messages", val, NULL);
 }}
 #line 341 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 94 "mn-message-view.gob"
+#line 95 "mn-message-view.gob"
 static GObject * 
 ___2_mn_message_view_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
 #line 347 "mn-message-view.c"
@@ -351,7 +351,7 @@ ___2_mn_message_view_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
 {
 #define __GOB_FUNCTION__ "MN:Message:View::constructor"
 {
-#line 96 "mn-message-view.gob"
+#line 97 "mn-message-view.gob"
 	
     GObject *object;
     Self *self;
@@ -380,19 +380,19 @@ ___2_mn_message_view_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 121 "mn-message-view.gob"
+#line 122 "mn-message-view.gob"
 static void 
 mn_message_view_update_tabs (MNMessageView * self)
 #line 387 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::update_tabs"
-#line 121 "mn-message-view.gob"
+#line 122 "mn-message-view.gob"
 	g_return_if_fail (self != NULL);
-#line 121 "mn-message-view.gob"
+#line 122 "mn-message-view.gob"
 	g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
 #line 394 "mn-message-view.c"
 {
-#line 123 "mn-message-view.gob"
+#line 124 "mn-message-view.gob"
 	
     GSList *l;
     int longest_header_len = 0;
@@ -424,19 +424,14 @@ mn_message_view_update_tabs (MNMessageView * self)
 #line 425 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 152 "mn-message-view.gob"
+#line 153 "mn-message-view.gob"
 static void 
 mn_message_view_style_set_h (GtkWidget * widget, GtkStyle * previous_style, gpointer user_data)
 #line 431 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::style_set_h"
-#line 152 "mn-message-view.gob"
-	g_return_if_fail (widget != NULL);
-#line 152 "mn-message-view.gob"
-	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 438 "mn-message-view.c"
 {
-#line 156 "mn-message-view.gob"
+#line 157 "mn-message-view.gob"
 	
     Self *self = SELF(widget);
 
@@ -445,20 +440,17 @@ mn_message_view_style_set_h (GtkWidget * widget, GtkStyle * previous_style, gpoi
 
     selfp->update_tabs_idle_id = g_idle_add(self_update_tabs_cb, self);
   }}
-#line 449 "mn-message-view.c"
+#line 444 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 165 "mn-message-view.gob"
+#line 166 "mn-message-view.gob"
 static gboolean 
 mn_message_view_update_tabs_cb (gpointer data)
-#line 455 "mn-message-view.c"
+#line 450 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::update_tabs_cb"
-#line 165 "mn-message-view.gob"
-	g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 460 "mn-message-view.c"
 {
-#line 167 "mn-message-view.gob"
+#line 168 "mn-message-view.gob"
 	
     Self *self = data;
 
@@ -469,22 +461,17 @@ mn_message_view_update_tabs_cb (gpointer data)
 
     return FALSE;		/* remove */
   }}
-#line 473 "mn-message-view.c"
+#line 465 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 178 "mn-message-view.gob"
+#line 179 "mn-message-view.gob"
 static void 
 mn_message_view_realize_h (GtkWidget * widget, gpointer user_data)
-#line 479 "mn-message-view.c"
+#line 471 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::realize_h"
-#line 178 "mn-message-view.gob"
-	g_return_if_fail (widget != NULL);
-#line 178 "mn-message-view.gob"
-	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 486 "mn-message-view.c"
 {
-#line 180 "mn-message-view.gob"
+#line 181 "mn-message-view.gob"
 	
     Self *self = SELF(widget);
     GtkStateType state;
@@ -515,20 +502,20 @@ mn_message_view_realize_h (GtkWidget * widget, gpointer user_data)
     for (state = GTK_STATE_NORMAL; state <= GTK_STATE_INSENSITIVE; state++)
       gtk_widget_modify_bg(widget, state, &widget->style->base[state]);
   }}
-#line 519 "mn-message-view.c"
+#line 506 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 211 "mn-message-view.gob"
+#line 212 "mn-message-view.gob"
 static void 
 mn_message_view_message_info_free (MessageInfo * info)
-#line 525 "mn-message-view.c"
+#line 512 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::message_info_free"
-#line 211 "mn-message-view.gob"
+#line 212 "mn-message-view.gob"
 	g_return_if_fail (info != NULL);
-#line 530 "mn-message-view.c"
+#line 517 "mn-message-view.c"
 {
-#line 213 "mn-message-view.gob"
+#line 214 "mn-message-view.gob"
 	
     GSList *l;
 
@@ -547,25 +534,20 @@ mn_message_view_message_info_free (MessageInfo * info)
     g_free(info->last_sent);
     g_free(info);
   }}
-#line 551 "mn-message-view.c"
+#line 538 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 232 "mn-message-view.gob"
+#line 233 "mn-message-view.gob"
 static void 
 ___8_mn_message_view_finalize (GObject * object G_GNUC_UNUSED)
-#line 557 "mn-message-view.c"
+#line 544 "mn-message-view.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Message:View::finalize"
-#line 232 "mn-message-view.gob"
-	g_return_if_fail (object != NULL);
-#line 232 "mn-message-view.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 567 "mn-message-view.c"
 {
-#line 234 "mn-message-view.gob"
+#line 235 "mn-message-view.gob"
 	
     Self *self = SELF(object);
 
@@ -579,21 +561,18 @@ ___8_mn_message_view_finalize (GObject * object G_GNUC_UNUSED)
 
     PARENT_HANDLER(object);
   }}
-#line 583 "mn-message-view.c"
+#line 565 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 248 "mn-message-view.gob"
+#line 249 "mn-message-view.gob"
 static gboolean 
 mn_message_view_update_sent_cb (gpointer data)
-#line 590 "mn-message-view.c"
+#line 572 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::update_sent_cb"
-#line 248 "mn-message-view.gob"
-	g_return_val_if_fail (data != NULL, (gboolean )0);
-#line 595 "mn-message-view.c"
 {
-#line 250 "mn-message-view.gob"
+#line 251 "mn-message-view.gob"
 	
     Self *self = data;
     GSList *l;
@@ -635,22 +614,22 @@ mn_message_view_update_sent_cb (gpointer data)
 
     return TRUE;		/* continue */
   }}
-#line 639 "mn-message-view.c"
+#line 618 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 292 "mn-message-view.gob"
+#line 293 "mn-message-view.gob"
 static void 
 mn_message_view_clear (MNMessageView * self)
-#line 645 "mn-message-view.c"
+#line 624 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::clear"
-#line 292 "mn-message-view.gob"
+#line 293 "mn-message-view.gob"
 	g_return_if_fail (self != NULL);
-#line 292 "mn-message-view.gob"
+#line 293 "mn-message-view.gob"
 	g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
-#line 652 "mn-message-view.c"
+#line 631 "mn-message-view.c"
 {
-#line 294 "mn-message-view.gob"
+#line 295 "mn-message-view.gob"
 	
     GtkTextIter start;
     GtkTextIter end;
@@ -659,26 +638,26 @@ mn_message_view_clear (MNMessageView * self)
     gtk_text_buffer_get_end_iter(selfp->buffer, &end);
     gtk_text_buffer_delete(selfp->buffer, &start, &end);
   }}
-#line 663 "mn-message-view.c"
+#line 642 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
 static MessageInfo * 
 mn_message_view_append_message (MNMessageView * self, MNMessage * message)
-#line 669 "mn-message-view.c"
+#line 648 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::append_message"
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
 	g_return_val_if_fail (self != NULL, (MessageInfo * )0);
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
 	g_return_val_if_fail (MN_IS_MESSAGE_VIEW (self), (MessageInfo * )0);
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
 	g_return_val_if_fail (message != NULL, (MessageInfo * )0);
-#line 303 "mn-message-view.gob"
+#line 304 "mn-message-view.gob"
 	g_return_val_if_fail (MN_IS_MESSAGE (message), (MessageInfo * )0);
-#line 680 "mn-message-view.c"
+#line 659 "mn-message-view.c"
 {
-#line 305 "mn-message-view.gob"
+#line 306 "mn-message-view.gob"
 	
     MessageInfo *info;
 
@@ -687,7 +666,7 @@ mn_message_view_append_message (MNMessageView * self, MNMessage * message)
 
     self_append_row(self,
 		    _("Mailbox"),
-		    message->mailbox_uri->human_readable,
+		    message->mailbox_name,
 		    &info->header_marks,
 		    NULL,
 		    NULL);
@@ -734,52 +713,52 @@ mn_message_view_append_message (MNMessageView * self, MNMessage * message)
     
     return info;
   }}
-#line 738 "mn-message-view.c"
+#line 717 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
 static void 
 mn_message_view_append (MNMessageView * self, const char * text)
-#line 744 "mn-message-view.c"
+#line 723 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::append"
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
 	g_return_if_fail (self != NULL);
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
 	g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
-#line 361 "mn-message-view.gob"
+#line 362 "mn-message-view.gob"
 	g_return_if_fail (text != NULL);
-#line 753 "mn-message-view.c"
+#line 732 "mn-message-view.c"
 {
-#line 363 "mn-message-view.gob"
+#line 364 "mn-message-view.gob"
 	
     GtkTextIter end;
     
     gtk_text_buffer_get_end_iter(selfp->buffer, &end);
     gtk_text_buffer_insert(selfp->buffer, &end, text, -1);
   }}
-#line 762 "mn-message-view.c"
+#line 741 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
 static void 
 mn_message_view_append_row (MNMessageView * self, const char * name, const char * value, GSList ** header_marks, GtkTextMark ** value_start_mark, GtkTextMark ** value_end_mark)
-#line 768 "mn-message-view.c"
+#line 747 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::append_row"
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
 	g_return_if_fail (self != NULL);
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
 	g_return_if_fail (MN_IS_MESSAGE_VIEW (self));
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
 	g_return_if_fail (name != NULL);
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
 	g_return_if_fail (value != NULL);
-#line 370 "mn-message-view.gob"
+#line 371 "mn-message-view.gob"
 	g_return_if_fail (header_marks != NULL);
-#line 781 "mn-message-view.c"
+#line 760 "mn-message-view.c"
 {
-#line 377 "mn-message-view.gob"
+#line 378 "mn-message-view.gob"
 	
     GtkTextIter end;
 
@@ -799,21 +778,21 @@ mn_message_view_append_row (MNMessageView * self, const char * name, const char 
     if (value_end_mark)
       *value_end_mark = gtk_text_buffer_create_mark(selfp->buffer, NULL, &end, TRUE);
   }}
-#line 803 "mn-message-view.c"
+#line 782 "mn-message-view.c"
 #undef __GOB_FUNCTION__
 
-#line 397 "mn-message-view.gob"
+#line 398 "mn-message-view.gob"
 GtkWidget * 
 mn_message_view_new (gboolean transparent, gboolean text_pointer)
-#line 809 "mn-message-view.c"
+#line 788 "mn-message-view.c"
 {
 #define __GOB_FUNCTION__ "MN:Message:View::new"
 {
-#line 399 "mn-message-view.gob"
+#line 400 "mn-message-view.gob"
 	
     return GTK_WIDGET(GET_NEW_VARG(MN_MESSAGE_VIEW_PROP_TRANSPARENT(transparent),
 				   MN_MESSAGE_VIEW_PROP_TEXT_POINTER(text_pointer),
 				   NULL));
   }}
-#line 819 "mn-message-view.c"
+#line 798 "mn-message-view.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-message-view.gob b/src/mn-message-view.gob
@@ -16,11 +16,12 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
@@ -28,14 +29,14 @@ requires 2.0.10
 #include "mn-message.h"
 #include "mn-util.h"
 
-  typedef struct
-  {
-    MNMessage		*message;
-    GSList		*header_marks;
-    char		*last_sent;
-    GtkTextMark		*sent_start;
-    GtkTextMark		*sent_end;
-  } MessageInfo;
+typedef struct
+{
+  MNMessage	*message;
+  GSList	*header_marks;
+  char		*last_sent;
+  GtkTextMark	*sent_start;
+  GtkTextMark	*sent_end;
+} MessageInfo;
 %}
 
 class MN:Message:View from Gtk:Text:View
@@ -88,7 +89,7 @@ class MN:Message:View from Gtk:Text:View
 	    selfp->update_sent_timeout_id = g_timeout_add(500, self_update_sent_cb, self);
 	}
       else
-	mn_source_remove(&selfp->update_sent_timeout_id);
+	mn_source_clear(&selfp->update_sent_timeout_id);
     };
 
   override (G:Object) GObject *
@@ -150,7 +151,7 @@ class MN:Message:View from Gtk:Text:View
   }
   
   private void
-    style_set_h (Gtk:Widget *widget (check null type),
+    style_set_h (GtkWidget *widget,
 		 GtkStyle *previous_style,
 		 gpointer user_data)
   {
@@ -163,7 +164,7 @@ class MN:Message:View from Gtk:Text:View
   }
 
   private gboolean
-    update_tabs_cb (gpointer data (check null))
+    update_tabs_cb (gpointer data)
   {
     Self *self = data;
 
@@ -176,7 +177,7 @@ class MN:Message:View from Gtk:Text:View
   }
   
   private void
-    realize_h (Gtk:Widget *widget (check null type), gpointer user_data)
+    realize_h (GtkWidget *widget, gpointer user_data)
   {
     Self *self = SELF(widget);
     GtkStateType state;
@@ -230,7 +231,7 @@ class MN:Message:View from Gtk:Text:View
   }
   
   override (G:Object) void
-    finalize (G:Object *object (check null type))
+    finalize (GObject *object)
   {
     Self *self = SELF(object);
 
@@ -246,7 +247,7 @@ class MN:Message:View from Gtk:Text:View
   }
 
   private gboolean
-    update_sent_cb (gpointer data (check null))
+    update_sent_cb (gpointer data)
   {
     Self *self = data;
     GSList *l;
@@ -310,7 +311,7 @@ class MN:Message:View from Gtk:Text:View
 
     self_append_row(self,
 		    _("Mailbox"),
-		    message->mailbox_uri->human_readable,
+		    message->mailbox_name,
 		    &info->header_marks,
 		    NULL,
 		    NULL);
diff --git a/src/mn-message-view.h b/src/mn-message-view.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/mn-message.c b/src/mn-message.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -54,7 +54,7 @@ static int mn_message_slist_sort_by_sent_time_compare_func (gconstpointer a, gco
 
 enum {
 	PROP_0,
-	PROP_MAILBOX_URI,
+	PROP_MAILBOX_NAME,
 	PROP_ERROR,
 	PROP_SENT_TIME,
 	PROP_ID,
@@ -117,38 +117,27 @@ GET_NEW_VARG (const char *first, ...)
 
 
 static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Message::dispose"
-	MNMessage *self G_GNUC_UNUSED = MN_MESSAGE (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 35 "mn-message.gob"
-	if(self->mailbox_uri) { g_object_unref ((gpointer) self->mailbox_uri); self->mailbox_uri = NULL; }
-#line 129 "mn-message.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
 ___finalize(GObject *obj_self)
 {
 #define __GOB_FUNCTION__ "MN:Message::finalize"
 	MNMessage *self G_GNUC_UNUSED = MN_MESSAGE (obj_self);
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 41 "mn-message.gob"
+#line 35 "mn-message.gob"
+	if(self->mailbox_name) { g_free ((gpointer) self->mailbox_name); self->mailbox_name = NULL; }
+#line 129 "mn-message.c"
+#line 39 "mn-message.gob"
 	if(self->error) { g_free ((gpointer) self->error); self->error = NULL; }
-#line 143 "mn-message.c"
-#line 49 "mn-message.gob"
+#line 132 "mn-message.c"
+#line 47 "mn-message.gob"
 	if(self->id) { g_free ((gpointer) self->id); self->id = NULL; }
-#line 146 "mn-message.c"
-#line 53 "mn-message.gob"
+#line 135 "mn-message.c"
+#line 51 "mn-message.gob"
 	if(self->from) { g_free ((gpointer) self->from); self->from = NULL; }
-#line 149 "mn-message.c"
-#line 57 "mn-message.gob"
+#line 138 "mn-message.c"
+#line 55 "mn-message.gob"
 	if(self->subject) { g_free ((gpointer) self->subject); self->subject = NULL; }
-#line 152 "mn-message.c"
+#line 141 "mn-message.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -166,24 +155,23 @@ mn_message_class_init (MNMessageClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (G_TYPE_OBJECT);
 
-#line 60 "mn-message.gob"
+#line 58 "mn-message.gob"
 	g_object_class->constructor = ___1_mn_message_constructor;
-#line 172 "mn-message.c"
-	g_object_class->dispose = ___dispose;
+#line 161 "mn-message.c"
 	g_object_class->finalize = ___finalize;
 	g_object_class->get_property = ___object_get_property;
 	g_object_class->set_property = ___object_set_property;
     {
 	GParamSpec   *param_spec;
 
-	param_spec = g_param_spec_object
-		("mailbox_uri" /* name */,
+	param_spec = g_param_spec_string
+		("mailbox_name" /* name */,
 		 NULL /* nick */,
 		 NULL /* blurb */,
-		 MN_TYPE_URI /* object_type */,
+		 NULL /* default_value */,
 		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
 	g_object_class_install_property (g_object_class,
-		PROP_MAILBOX_URI,
+		PROP_MAILBOX_NAME,
 		param_spec);
 	param_spec = g_param_spec_string
 		("error" /* name */,
@@ -248,46 +236,46 @@ ___object_set_property (GObject *object,
 	self = MN_MESSAGE (object);
 
 	switch (property_id) {
-	case PROP_MAILBOX_URI:
+	case PROP_MAILBOX_NAME:
 		{
 #line 36 "mn-message.gob"
-{ GObject *___old = (GObject *)self->mailbox_uri; self->mailbox_uri = (MNURI *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 256 "mn-message.c"
+{ char *old = self->mailbox_name; self->mailbox_name = g_value_dup_string (VAL); g_free (old); }
+#line 244 "mn-message.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
-#line 42 "mn-message.gob"
+#line 40 "mn-message.gob"
 { char *old = self->error; self->error = g_value_dup_string (VAL); g_free (old); }
-#line 263 "mn-message.c"
+#line 251 "mn-message.c"
 		}
 		break;
 	case PROP_SENT_TIME:
 		{
-#line 46 "mn-message.gob"
+#line 44 "mn-message.gob"
 self->sent_time = g_value_get_ulong (VAL);
-#line 270 "mn-message.c"
+#line 258 "mn-message.c"
 		}
 		break;
 	case PROP_ID:
 		{
-#line 50 "mn-message.gob"
+#line 48 "mn-message.gob"
 { char *old = self->id; self->id = g_value_dup_string (VAL); g_free (old); }
-#line 277 "mn-message.c"
+#line 265 "mn-message.c"
 		}
 		break;
 	case PROP_FROM:
 		{
-#line 54 "mn-message.gob"
+#line 52 "mn-message.gob"
 { char *old = self->from; self->from = g_value_dup_string (VAL); g_free (old); }
-#line 284 "mn-message.c"
+#line 272 "mn-message.c"
 		}
 		break;
 	case PROP_SUBJECT:
 		{
-#line 58 "mn-message.gob"
+#line 56 "mn-message.gob"
 { char *old = self->subject; self->subject = g_value_dup_string (VAL); g_free (old); }
-#line 291 "mn-message.c"
+#line 279 "mn-message.c"
 		}
 		break;
 	default:
@@ -314,46 +302,46 @@ ___object_get_property (GObject *object,
 	self = MN_MESSAGE (object);
 
 	switch (property_id) {
-	case PROP_MAILBOX_URI:
+	case PROP_MAILBOX_NAME:
 		{
 #line 36 "mn-message.gob"
-g_value_set_object (VAL, (gpointer)self->mailbox_uri);
-#line 322 "mn-message.c"
+g_value_set_string (VAL, self->mailbox_name);
+#line 310 "mn-message.c"
 		}
 		break;
 	case PROP_ERROR:
 		{
-#line 42 "mn-message.gob"
+#line 40 "mn-message.gob"
 g_value_set_string (VAL, self->error);
-#line 329 "mn-message.c"
+#line 317 "mn-message.c"
 		}
 		break;
 	case PROP_SENT_TIME:
 		{
-#line 46 "mn-message.gob"
+#line 44 "mn-message.gob"
 g_value_set_ulong (VAL, self->sent_time);
-#line 336 "mn-message.c"
+#line 324 "mn-message.c"
 		}
 		break;
 	case PROP_ID:
 		{
-#line 50 "mn-message.gob"
+#line 48 "mn-message.gob"
 g_value_set_string (VAL, self->id);
-#line 343 "mn-message.c"
+#line 331 "mn-message.c"
 		}
 		break;
 	case PROP_FROM:
 		{
-#line 54 "mn-message.gob"
+#line 52 "mn-message.gob"
 g_value_set_string (VAL, self->from);
-#line 350 "mn-message.c"
+#line 338 "mn-message.c"
 		}
 		break;
 	case PROP_SUBJECT:
 		{
-#line 58 "mn-message.gob"
+#line 56 "mn-message.gob"
 g_value_set_string (VAL, self->subject);
-#line 357 "mn-message.c"
+#line 345 "mn-message.c"
 		}
 		break;
 	default:
@@ -370,10 +358,10 @@ g_value_set_string (VAL, self->subject);
 
 
 
-#line 60 "mn-message.gob"
+#line 58 "mn-message.gob"
 static GObject * 
 ___1_mn_message_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 377 "mn-message.c"
+#line 365 "mn-message.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -381,7 +369,7 @@ ___1_mn_message_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_
 {
 #define __GOB_FUNCTION__ "MN:Message::constructor"
 {
-#line 62 "mn-message.gob"
+#line 60 "mn-message.gob"
 	
     GObject *object;
     Self *self;
@@ -427,23 +415,23 @@ ___1_mn_message_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_
 
     return object;
   }}
-#line 431 "mn-message.c"
+#line 419 "mn-message.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 108 "mn-message.gob"
+#line 106 "mn-message.gob"
 char * 
 mn_message_format_sent_time (MNMessage * self)
-#line 438 "mn-message.c"
+#line 426 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::format_sent_time"
-#line 108 "mn-message.gob"
+#line 106 "mn-message.gob"
 	g_return_val_if_fail (self != NULL, (char * )0);
-#line 108 "mn-message.gob"
+#line 106 "mn-message.gob"
 	g_return_val_if_fail (MN_IS_MESSAGE (self), (char * )0);
-#line 445 "mn-message.c"
+#line 433 "mn-message.c"
 {
-#line 110 "mn-message.gob"
+#line 108 "mn-message.gob"
 	
     char *formatted = NULL;
 
@@ -487,24 +475,22 @@ mn_message_format_sent_time (MNMessage * self)
 
     return formatted;
   }}
-#line 491 "mn-message.c"
+#line 479 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 154 "mn-message.gob"
+#line 152 "mn-message.gob"
 MNMessage * 
-mn_message_new (MNURI * mailbox_uri, const char * error, time_t sent_time, const char * id, const char * from, const char * subject)
-#line 497 "mn-message.c"
+mn_message_new (MNMailbox * mailbox, const char * error, time_t sent_time, const char * id, const char * from, const char * subject)
+#line 485 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::new"
-#line 154 "mn-message.gob"
-	g_return_val_if_fail (mailbox_uri != NULL, (MNMessage * )0);
-#line 154 "mn-message.gob"
-	g_return_val_if_fail (MN_IS_URI (mailbox_uri), (MNMessage * )0);
-#line 504 "mn-message.c"
 {
-#line 161 "mn-message.gob"
+#line 159 "mn-message.gob"
 	
-    return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_URI(G_OBJECT(mailbox_uri)),
+    g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+    /* translators: "none" is used like "Mailbox: none" */
+    return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_NAME(mailbox ? mailbox->runtime_name : _("none")),
 			MN_MESSAGE_PROP_ERROR((char *) error),
 			MN_MESSAGE_PROP_SENT_TIME(sent_time),
 			MN_MESSAGE_PROP_ID((char *) id),
@@ -512,93 +498,91 @@ mn_message_new (MNURI * mailbox_uri, const char * error, time_t sent_time, const
 			MN_MESSAGE_PROP_SUBJECT((char *) subject),
 			NULL);
   }}
-#line 516 "mn-message.c"
+#line 502 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 171 "mn-message.gob"
+#line 172 "mn-message.gob"
 MNMessage * 
-mn_message_new_from_error (MNURI * mailbox_uri, const char * error)
-#line 522 "mn-message.c"
+mn_message_new_from_error (MNMailbox * mailbox, const char * error)
+#line 508 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::new_from_error"
-#line 171 "mn-message.gob"
-	g_return_val_if_fail (mailbox_uri != NULL, (MNMessage * )0);
-#line 171 "mn-message.gob"
-	g_return_val_if_fail (MN_IS_URI (mailbox_uri), (MNMessage * )0);
-#line 171 "mn-message.gob"
+#line 172 "mn-message.gob"
 	g_return_val_if_fail (error != NULL, (MNMessage * )0);
-#line 531 "mn-message.c"
+#line 513 "mn-message.c"
 {
 #line 174 "mn-message.gob"
 	
-    return self_new(mailbox_uri, error, 0, NULL, NULL, NULL);
+    g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+    return self_new(mailbox, error, 0, NULL, NULL, NULL);
   }}
-#line 537 "mn-message.c"
+#line 521 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 178 "mn-message.gob"
+#line 180 "mn-message.gob"
 GSList * 
 mn_message_slist_find_by_id (GSList * list, MNMessage * self)
-#line 543 "mn-message.c"
+#line 527 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_find_by_id"
-#line 178 "mn-message.gob"
+#line 180 "mn-message.gob"
 	g_return_val_if_fail (self != NULL, (GSList * )0);
-#line 178 "mn-message.gob"
+#line 180 "mn-message.gob"
 	g_return_val_if_fail (MN_IS_MESSAGE (self), (GSList * )0);
-#line 550 "mn-message.c"
+#line 534 "mn-message.c"
 {
-#line 180 "mn-message.gob"
+#line 182 "mn-message.gob"
 	
     return g_slist_find_custom(list, self, self_slist_find_by_id_compare_func);
   }}
-#line 556 "mn-message.c"
+#line 540 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 184 "mn-message.gob"
+#line 186 "mn-message.gob"
 static int 
 mn_message_slist_find_by_id_compare_func (gconstpointer a, gconstpointer b)
-#line 562 "mn-message.c"
+#line 546 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_find_by_id_compare_func"
 {
-#line 186 "mn-message.gob"
+#line 188 "mn-message.gob"
 	
     Self *message_a = (Self *) a;
     Self *message_b = (Self *) b;
 
     return strcmp(message_a->id, message_b->id);
   }}
-#line 573 "mn-message.c"
+#line 557 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 193 "mn-message.gob"
+#line 195 "mn-message.gob"
 GSList * 
 mn_message_slist_sort_by_sent_time (GSList * list)
-#line 579 "mn-message.c"
+#line 563 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_sort_by_sent_time"
 {
-#line 195 "mn-message.gob"
+#line 197 "mn-message.gob"
 	
     return g_slist_sort(list, self_slist_sort_by_sent_time_compare_func);
   }}
-#line 587 "mn-message.c"
+#line 571 "mn-message.c"
 #undef __GOB_FUNCTION__
 
-#line 199 "mn-message.gob"
+#line 201 "mn-message.gob"
 static int 
 mn_message_slist_sort_by_sent_time_compare_func (gconstpointer a, gconstpointer b)
-#line 593 "mn-message.c"
+#line 577 "mn-message.c"
 {
 #define __GOB_FUNCTION__ "MN:Message::slist_sort_by_sent_time_compare_func"
 {
-#line 201 "mn-message.gob"
+#line 203 "mn-message.gob"
 	
     Self *message_a = (Self *) a;
     Self *message_b = (Self *) b;
 
     return message_a->sent_time - message_b->sent_time;
   }}
-#line 604 "mn-message.c"
+#line 588 "mn-message.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-message.gob b/src/mn-message.gob
@@ -16,11 +16,11 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <time.h>
-#include "mn-uri.h"
+#include "mn-mailbox.h"
 %}
 
 %{
@@ -32,10 +32,8 @@ requires 2.0.10
 class MN:Message from G:Object
 {
   /* always set */
-  public MNURI *mailbox_uri unrefwith g_object_unref;
-  property OBJECT mailbox_uri (flags = CONSTRUCT_ONLY,
-			       object_type = MN:URI,
-			       link);
+  public char *mailbox_name destroywith g_free;
+  property STRING mailbox_name (flags = CONSTRUCT_ONLY, link);
   
   /* may be NULL */
   public char *error destroywith g_free;
@@ -43,7 +41,7 @@ class MN:Message from G:Object
 
   /* sent time, may be 0 */
   public time_t sent_time;
-  property ULONG sent_time (flags = CONSTRUCT_ONLY, link);
+  property ULONG sent_time (flags = CONSTRUCT_ONLY, link, type = time_t);
 
   /* always set */
   public char *id destroywith g_free;
@@ -152,14 +150,17 @@ class MN:Message from G:Object
   }
   
   public MNMessage *
-    new (MN:URI *mailbox_uri (check null type),
+    new (MNMailbox *mailbox,
 	 const char *error,
 	 time_t sent_time,
 	 const char *id,
 	 const char *from,
 	 const char *subject)
   {
-    return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_URI(G_OBJECT(mailbox_uri)),
+    g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+    /* translators: "none" is used like "Mailbox: none" */
+    return GET_NEW_VARG(MN_MESSAGE_PROP_MAILBOX_NAME(mailbox ? mailbox->runtime_name : _("none")),
 			MN_MESSAGE_PROP_ERROR((char *) error),
 			MN_MESSAGE_PROP_SENT_TIME(sent_time),
 			MN_MESSAGE_PROP_ID((char *) id),
@@ -169,10 +170,11 @@ class MN:Message from G:Object
   }
 
   public MNMessage *
-    new_from_error (MN:URI *mailbox_uri (check null type),
-		    const char *error (check null))
+    new_from_error (MNMailbox *mailbox, const char *error (check null))
   {
-    return self_new(mailbox_uri, error, 0, NULL, NULL, NULL);
+    g_return_val_if_fail(mailbox == NULL || MN_IS_MAILBOX(mailbox), NULL);
+
+    return self_new(mailbox, error, 0, NULL, NULL, NULL);
   }
   
   public GSList *
diff --git a/src/mn-message.h b/src/mn-message.h
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
 #include <time.h>
-#include "mn-uri.h"
+#include "mn-mailbox.h"
 
 #ifndef __MN_MESSAGE_H__
 #define __MN_MESSAGE_H__
@@ -36,7 +36,7 @@ typedef struct _MNMessage MNMessage;
 struct _MNMessage {
 	GObject __parent__;
 	/*< public >*/
-	MNURI * mailbox_uri;
+	char * mailbox_name;
 	char * error;
 	time_t sent_time;
 	char * id;
@@ -58,13 +58,13 @@ struct _MNMessageClass {
  */
 GType	mn_message_get_type	(void);
 char * 	mn_message_format_sent_time	(MNMessage * self);
-MNMessage * 	mn_message_new	(MNURI * mailbox_uri,
+MNMessage * 	mn_message_new	(MNMailbox * mailbox,
 					const char * error,
 					time_t sent_time,
 					const char * id,
 					const char * from,
 					const char * subject);
-MNMessage * 	mn_message_new_from_error	(MNURI * mailbox_uri,
+MNMessage * 	mn_message_new_from_error	(MNMailbox * mailbox,
 					const char * error);
 GSList * 	mn_message_slist_find_by_id	(GSList * list,
 					MNMessage * self);
@@ -74,12 +74,12 @@ GSList * 	mn_message_slist_sort_by_sent_time	(GSList * list);
  * Argument wrapping macros
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_MESSAGE_PROP_MAILBOX_URI(arg)    	"mailbox_uri", __extension__ ({GObject *z = (arg); z;})
-#define MN_MESSAGE_GET_PROP_MAILBOX_URI(arg)	"mailbox_uri", __extension__ ({GObject **z = (arg); z;})
+#define MN_MESSAGE_PROP_MAILBOX_NAME(arg)    	"mailbox_name", __extension__ ({gchar *z = (arg); z;})
+#define MN_MESSAGE_GET_PROP_MAILBOX_NAME(arg)	"mailbox_name", __extension__ ({gchar **z = (arg); z;})
 #define MN_MESSAGE_PROP_ERROR(arg)    	"error", __extension__ ({gchar *z = (arg); z;})
 #define MN_MESSAGE_GET_PROP_ERROR(arg)	"error", __extension__ ({gchar **z = (arg); z;})
-#define MN_MESSAGE_PROP_SENT_TIME(arg)    	"sent_time", __extension__ ({gulong z = (arg); z;})
-#define MN_MESSAGE_GET_PROP_SENT_TIME(arg)	"sent_time", __extension__ ({gulong *z = (arg); z;})
+#define MN_MESSAGE_PROP_SENT_TIME(arg)    	"sent_time", __extension__ ({time_t z = (arg); z;})
+#define MN_MESSAGE_GET_PROP_SENT_TIME(arg)	"sent_time", __extension__ ({time_t *z = (arg); z;})
 #define MN_MESSAGE_PROP_ID(arg)    	"id", __extension__ ({gchar *z = (arg); z;})
 #define MN_MESSAGE_GET_PROP_ID(arg)	"id", __extension__ ({gchar **z = (arg); z;})
 #define MN_MESSAGE_PROP_FROM(arg)    	"from", __extension__ ({gchar *z = (arg); z;})
@@ -87,12 +87,12 @@ GSList * 	mn_message_slist_sort_by_sent_time	(GSList * list);
 #define MN_MESSAGE_PROP_SUBJECT(arg)    	"subject", __extension__ ({gchar *z = (arg); z;})
 #define MN_MESSAGE_GET_PROP_SUBJECT(arg)	"subject", __extension__ ({gchar **z = (arg); z;})
 #else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_MESSAGE_PROP_MAILBOX_URI(arg)    	"mailbox_uri",(GObject *)(arg)
-#define MN_MESSAGE_GET_PROP_MAILBOX_URI(arg)	"mailbox_uri",(GObject **)(arg)
+#define MN_MESSAGE_PROP_MAILBOX_NAME(arg)    	"mailbox_name",(gchar *)(arg)
+#define MN_MESSAGE_GET_PROP_MAILBOX_NAME(arg)	"mailbox_name",(gchar **)(arg)
 #define MN_MESSAGE_PROP_ERROR(arg)    	"error",(gchar *)(arg)
 #define MN_MESSAGE_GET_PROP_ERROR(arg)	"error",(gchar **)(arg)
-#define MN_MESSAGE_PROP_SENT_TIME(arg)    	"sent_time",(gulong )(arg)
-#define MN_MESSAGE_GET_PROP_SENT_TIME(arg)	"sent_time",(gulong *)(arg)
+#define MN_MESSAGE_PROP_SENT_TIME(arg)    	"sent_time",(time_t )(arg)
+#define MN_MESSAGE_GET_PROP_SENT_TIME(arg)	"sent_time",(time_t *)(arg)
 #define MN_MESSAGE_PROP_ID(arg)    	"id",(gchar *)(arg)
 #define MN_MESSAGE_GET_PROP_ID(arg)	"id",(gchar **)(arg)
 #define MN_MESSAGE_PROP_FROM(arg)    	"from",(gchar *)(arg)
diff --git a/src/mn-mh-mailbox-backend-private.h b/src/mn-mh-mailbox-backend-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_MH_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_MH_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-mh-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mh-mailbox-backend.c b/src/mn-mh-mailbox-backend.c
@@ -0,0 +1,309 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:55 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-mh-mailbox-backend.h"
+
+#include "mn-mh-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-mh-mailbox-backend.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+#define SEQUENCES_FILE			".mh_sequences"
+
+#line 41 "mn-mh-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_MH_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_MH_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_MH_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_MH_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_MH_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_MH_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNMHMailboxBackend Self;
+typedef MNMHMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_mh_mailbox_backend_init (MNMHMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_mh_mailbox_backend_class_init (MNMHMailboxBackendClass * class) G_GNUC_UNUSED;
+static void ___2_mn_mh_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+static gboolean ___3_mn_mh_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___4_mn_mh_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+GType
+mn_mh_mailbox_backend_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNMHMailboxBackendClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_mh_mailbox_backend_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNMHMailboxBackend),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_mh_mailbox_backend_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNMHMailboxBackend", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNMHMailboxBackend *)g_object_new(mn_mh_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNMHMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNMHMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNMHMailboxBackend *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNMHMailboxBackend *)g_object_new_valist (mn_mh_mailbox_backend_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+static void 
+mn_mh_mailbox_backend_init (MNMHMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::init"
+}
+#undef __GOB_FUNCTION__
+#line 41 "mn-mh-mailbox-backend.gob"
+static void 
+mn_mh_mailbox_backend_class_init (MNMHMailboxBackendClass * class G_GNUC_UNUSED)
+#line 116 "mn-mh-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::class_init"
+	MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+	parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 46 "mn-mh-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->monitor_cb = ___2_mn_mh_mailbox_backend_monitor_cb;
+#line 68 "mn-mh-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->is = ___3_mn_mh_mailbox_backend_is;
+#line 81 "mn-mh-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->check = ___4_mn_mh_mailbox_backend_check;
+#line 129 "mn-mh-mailbox-backend.c"
+ {
+#line 42 "mn-mh-mailbox-backend.gob"
+
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "MH";
+  
+#line 135 "mn-mh-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 46 "mn-mh-mailbox-backend.gob"
+static void 
+___2_mn_mh_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 145 "mn-mh-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___info_uri,___event_type) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb)(___backend,___info_uri,___event_type); }
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::monitor_cb"
+{
+#line 50 "mn-mh-mailbox-backend.gob"
+	
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	char *filename;
+	
+	filename = eel_uri_get_basename(info_uri);
+	if (filename)
+	  {
+	    if (! strcmp(filename, SEQUENCES_FILE) || mn_str_isnumeric(filename))
+	      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+		
+	    g_free(filename);
+	  }
+      }
+  }}
+#line 170 "mn-mh-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 68 "mn-mh-mailbox-backend.gob"
+static gboolean 
+___3_mn_mh_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 177 "mn-mh-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+	((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+		((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::is"
+{
+#line 70 "mn-mh-mailbox-backend.gob"
+	
+    GnomeVFSURI *sequences_uri;
+    gboolean is;
+
+    sequences_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SEQUENCES_FILE);
+    is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
+    gnome_vfs_uri_unref(sequences_uri);
+
+    return is;
+  }}
+#line 196 "mn-mh-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 81 "mn-mh-mailbox-backend.gob"
+static void 
+___4_mn_mh_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 203 "mn-mh-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:MH:Mailbox:Backend::check"
+{
+#line 83 "mn-mh-mailbox-backend.gob"
+	
+    GnomeVFSURI *sequences_uri;
+    GnomeVFSResult result;
+    GnomeVFSHandle *handle;
+
+    mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+    sequences_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, SEQUENCES_FILE);
+    result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
+    gnome_vfs_uri_unref(sequences_uri);
+
+    if (result == GNOME_VFS_OK)
+      {
+	MNVFSReadLineContext *context = NULL;
+	const char *line;
+	GSList *messages = NULL;
+	GnomeVFSResult close_result;
+
+	while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
+	  if (g_str_has_prefix(line, "unseen: "))
+	    {
+	      int first;
+	      char **elements;
+	      int i;
+	      
+	      elements = g_strsplit(line + 8, " ", 0);
+	      for (i = 0; elements[i]; i++)
+		{
+		  int last;
+		  int n;
+
+		  n = sscanf(elements[i], "%d-%d", &first, &last);
+		  if (n >= 1)
+		    {
+		      int j;
+
+		      if (n == 1)
+			last = first;
+		  
+		      for (j = first; j <= last; j++)
+			{
+			  char *filename;
+			  GnomeVFSURI *message_uri;
+
+			  if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+			    {
+			      g_strfreev(elements);
+			      goto loop_end;
+			    }
+			  
+			  filename = g_strdup_printf("%i", j);
+			  message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, filename);
+			  g_free(filename);
+
+			  messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+			  gnome_vfs_uri_unref(message_uri);
+			}
+		    }
+		}
+	      g_strfreev(elements);
+	    }
+
+      loop_end:
+	mn_vfs_read_line_context_free(context);
+	close_result = gnome_vfs_close(handle);
+
+	GDK_THREADS_ENTER();
+	    
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  {
+	    if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+	      {
+		if (close_result == GNOME_VFS_OK)
+		  mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+		else
+		  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(close_result));
+	      }
+	    else
+	      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+	  }
+	    
+	mn_g_object_slist_free(messages);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+    else
+      {
+	GDK_THREADS_ENTER();
+	
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+	
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+  }}
+#line 308 "mn-mh-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
diff --git a/src/mn-mh-mailbox-backend.gob b/src/mn-mh-mailbox-backend.gob
@@ -0,0 +1,180 @@
+/* 
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+#define SEQUENCES_FILE			".mh_sequences"
+%}
+
+class MN:MH:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+  class_init (class)
+  {
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "MH";
+  }
+
+  override (MN:VFS:Mailbox:Backend) void
+    monitor_cb (MNVFSMailbox:Backend *backend,
+		const char *info_uri,
+		GnomeVFSMonitorEventType event_type)
+  {
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	char *filename;
+	
+	filename = eel_uri_get_basename(info_uri);
+	if (filename)
+	  {
+	    if (! strcmp(filename, SEQUENCES_FILE) || mn_str_isnumeric(filename))
+	      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+		
+	    g_free(filename);
+	  }
+      }
+  }
+
+  override (MN:VFS:Mailbox:Backend) gboolean
+    is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+  {
+    GnomeVFSURI *sequences_uri;
+    gboolean is;
+
+    sequences_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SEQUENCES_FILE);
+    is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
+    gnome_vfs_uri_unref(sequences_uri);
+
+    return is;
+  }
+
+  override (MN:VFS:Mailbox:Backend) void
+    check (MNVFSMailboxBackend *backend, unsigned long check_id)
+  {
+    GnomeVFSURI *sequences_uri;
+    GnomeVFSResult result;
+    GnomeVFSHandle *handle;
+
+    mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+    sequences_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, SEQUENCES_FILE);
+    result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
+    gnome_vfs_uri_unref(sequences_uri);
+
+    if (result == GNOME_VFS_OK)
+      {
+	MNVFSReadLineContext *context = NULL;
+	const char *line;
+	GSList *messages = NULL;
+	GnomeVFSResult close_result;
+
+	while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
+	  if (g_str_has_prefix(line, "unseen: "))
+	    {
+	      int first;
+	      char **elements;
+	      int i;
+	      
+	      elements = g_strsplit(line + 8, " ", 0);
+	      for (i = 0; elements[i]; i++)
+		{
+		  int last;
+		  int n;
+
+		  n = sscanf(elements[i], "%d-%d", &first, &last);
+		  if (n >= 1)
+		    {
+		      int j;
+
+		      if (n == 1)
+			last = first;
+		  
+		      for (j = first; j <= last; j++)
+			{
+			  char *filename;
+			  GnomeVFSURI *message_uri;
+
+			  if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+			    {
+			      g_strfreev(elements);
+			      goto loop_end;
+			    }
+			  
+			  filename = g_strdup_printf("%i", j);
+			  message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, filename);
+			  g_free(filename);
+
+			  messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+			  gnome_vfs_uri_unref(message_uri);
+			}
+		    }
+		}
+	      g_strfreev(elements);
+	    }
+
+      loop_end:
+	mn_vfs_read_line_context_free(context);
+	close_result = gnome_vfs_close(handle);
+
+	GDK_THREADS_ENTER();
+	    
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  {
+	    if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+	      {
+		if (close_result == GNOME_VFS_OK)
+		  mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+		else
+		  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(close_result));
+	      }
+	    else
+	      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+	  }
+	    
+	mn_g_object_slist_free(messages);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+    else
+      {
+	GDK_THREADS_ENTER();
+	
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open %s: %s"), SEQUENCES_FILE, gnome_vfs_result_to_string(result));
+	
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+  }
+}
diff --git a/src/mn-mh-mailbox-backend.h b/src/mn-mh-mailbox-backend.h
@@ -0,0 +1,57 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_MH_MAILBOX_BACKEND_H__
+#define __MN_MH_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_MH_MAILBOX_BACKEND	(mn_mh_mailbox_backend_get_type())
+#define MN_MH_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackend)
+#define MN_MH_MAILBOX_BACKEND_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackend const)
+#define MN_MH_MAILBOX_BACKEND_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackendClass)
+#define MN_IS_MH_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mh_mailbox_backend_get_type ())
+
+#define MN_MH_MAILBOX_BACKEND_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mh_mailbox_backend_get_type(), MNMHMailboxBackendClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_MH_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_MH_MAILBOX_BACKEND__
+typedef struct _MNMHMailboxBackend MNMHMailboxBackend;
+#endif
+struct _MNMHMailboxBackend {
+	MNVFSMailboxBackend __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNMHMailboxBackendClass MNMHMailboxBackendClass;
+struct _MNMHMailboxBackendClass {
+	MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_mh_mailbox_backend_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-mh-mailbox-private.h b/src/mn-mh-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_MH_MAILBOX_PRIVATE_H__
-#define __MN_MH_MAILBOX_PRIVATE_H__
-
-#include "mn-mh-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-mh-mailbox.c b/src/mn-mh-mailbox.c
@@ -1,309 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:26 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include "mn-mh-mailbox.h"
-
-#include "mn-mh-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-mh-mailbox.gob"
-
-#include "config.h"
-#include <stdio.h>
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-#line 37 "mn-mh-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_MH_MAILBOX(x)
-#define SELF_CONST(x) MN_MH_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_MH_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_MH_MAILBOX
-#define SELF_CLASS(x) MN_MH_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_MH_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNMHMailbox Self;
-typedef MNMHMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_mh_mailbox_init (MNMHMailbox * o) G_GNUC_UNUSED;
-static void mn_mh_mailbox_class_init (MNMHMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_mh_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_mh_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_mh_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-GType
-mn_mh_mailbox_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNMHMailboxClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_mh_mailbox_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNMHMailbox),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_mh_mailbox_init,
-			NULL
-		};
-
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNMHMailbox", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNMHMailbox *)g_object_new(mn_mh_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNMHMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNMHMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNMHMailbox *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNMHMailbox *)g_object_new_valist (mn_mh_mailbox_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-static void 
-mn_mh_mailbox_init (MNMHMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 38 "mn-mh-mailbox.gob"
-static void 
-mn_mh_mailbox_class_init (MNMHMailboxClass * class G_GNUC_UNUSED)
-#line 112 "mn-mh-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::class_init"
-	GObjectClass *g_object_class = (GObjectClass *)class;
-	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 43 "mn-mh-mailbox.gob"
-	g_object_class->constructor = ___2_mn_mh_mailbox_constructor;
-#line 67 "mn-mh-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_mh_mailbox_impl_is;
-#line 84 "mn-mh-mailbox.gob"
-	mn_mailbox_class->impl_check = ___4_mn_mh_mailbox_impl_check;
-#line 126 "mn-mh-mailbox.c"
- {
-#line 39 "mn-mh-mailbox.gob"
-
-    MN_MAILBOX_CLASS(class)->format = "MH";
-  
-#line 132 "mn-mh-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 43 "mn-mh-mailbox.gob"
-static GObject * 
-___2_mn_mh_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 142 "mn-mh-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): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::constructor"
-{
-#line 45 "mn-mh-mailbox.gob"
-	
-    GObject *object;
-    MNMailbox *self;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       self->uri->text,
-		       GNOME_VFS_MONITOR_DIRECTORY,
-		       MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    return object;
-  }}
-#line 172 "mn-mh-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 67 "mn-mh-mailbox.gob"
-static gboolean 
-___3_mn_mh_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 179 "mn-mh-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::impl_is"
-#line 67 "mn-mh-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 67 "mn-mh-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 190 "mn-mh-mailbox.c"
-{
-#line 69 "mn-mh-mailbox.gob"
-	
-    gboolean is = FALSE;
-
-    if (uri->vfs)
-      {
-	GnomeVFSURI *sequences_uri;
-
-	sequences_uri = gnome_vfs_uri_append_file_name(uri->vfs, ".mh_sequences");
-	is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
-	gnome_vfs_uri_unref(sequences_uri);
-      }
-    
-    return is;
-  }}
-#line 207 "mn-mh-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 84 "mn-mh-mailbox.gob"
-static void 
-___4_mn_mh_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
-#line 214 "mn-mh-mailbox.c"
-#define PARENT_HANDLER(___self) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
-{
-#define __GOB_FUNCTION__ "MN:MH:Mailbox::impl_check"
-#line 84 "mn-mh-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 84 "mn-mh-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 224 "mn-mh-mailbox.c"
-{
-#line 86 "mn-mh-mailbox.gob"
-	
-    GnomeVFSURI *sequences_uri;
-    GnomeVFSResult result;
-    GnomeVFSHandle *handle;
-  
-    sequences_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, ".mh_sequences");
-    result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
-    gnome_vfs_uri_unref(sequences_uri);
-
-    if (result == GNOME_VFS_OK)
-      {
-	MNVFSReadLineContext *context = NULL;
-	const char *line;
-	GSList *messages = NULL;
-
-	while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
-	  if (g_str_has_prefix(line, "unseen: "))
-	    {
-	      int first;
-	      char **elements;
-	      int i;
-	      
-	      elements = g_strsplit(line + 8, " ", 0);
-	      for (i = 0; elements[i]; i++)
-		{
-		  int last;
-		  int n;
-
-		  n = sscanf(elements[i], "%d-%d", &first, &last);
-		  if (n >= 1)
-		    {
-		      int j;
-
-		      if (n == 1)
-			last = first;
-		  
-		      for (j = first; j <= last; j++)
-			{
-			  char *filename;
-			  GnomeVFSURI *message_uri;
-
-			  filename = g_strdup_printf("%i", j);
-			  message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, filename);
-			  g_free(filename);
-
-			  messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
-			  gnome_vfs_uri_unref(message_uri);
-			}
-		    }
-		}
-	      g_strfreev(elements);
-	    }
-
-	mn_vfs_read_line_context_free(context);
-	gnome_vfs_close(handle);
-
-	GDK_THREADS_ENTER();
-      
-	if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
-	  mn_mailbox_set_messages(self, messages);
-	else
-	  mn_mailbox_set_error(self, _("error while reading .mh_sequences: %s"), gnome_vfs_result_to_string(result));
-	
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-
-	mn_g_object_slist_free(messages);
-      }
-    else
-      {
-	GDK_THREADS_ENTER();
-	mn_mailbox_set_error(self, _("unable to open .mh_sequences: %s"), gnome_vfs_result_to_string(result));
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-      }
-
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(self);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-  }}
-#line 308 "mn-mh-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
diff --git a/src/mn-mh-mailbox.gob b/src/mn-mh-mailbox.gob
@@ -1,167 +0,0 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <stdio.h>
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-%}
-
-class MN:MH:Mailbox from MN:Mailbox
-{
-  class_init (class)
-  {
-    MN_MAILBOX_CLASS(class)->format = "MH";
-  }
-  
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
-  {
-    GObject *object;
-    MNMailbox *self;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       self->uri->text,
-		       GNOME_VFS_MONITOR_DIRECTORY,
-		       MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    return object;
-  }
-
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
-  {
-    gboolean is = FALSE;
-
-    if (uri->vfs)
-      {
-	GnomeVFSURI *sequences_uri;
-
-	sequences_uri = gnome_vfs_uri_append_file_name(uri->vfs, ".mh_sequences");
-	is = mn_vfs_test(sequences_uri, G_FILE_TEST_IS_REGULAR);
-	gnome_vfs_uri_unref(sequences_uri);
-      }
-    
-    return is;
-  }
-  
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *self (check null type))
-  {
-    GnomeVFSURI *sequences_uri;
-    GnomeVFSResult result;
-    GnomeVFSHandle *handle;
-  
-    sequences_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, ".mh_sequences");
-    result = gnome_vfs_open_uri(&handle, sequences_uri, GNOME_VFS_OPEN_READ);
-    gnome_vfs_uri_unref(sequences_uri);
-
-    if (result == GNOME_VFS_OK)
-      {
-	MNVFSReadLineContext *context = NULL;
-	const char *line;
-	GSList *messages = NULL;
-
-	while ((result = mn_vfs_read_line(&context, handle, &line)) == GNOME_VFS_OK)
-	  if (g_str_has_prefix(line, "unseen: "))
-	    {
-	      int first;
-	      char **elements;
-	      int i;
-	      
-	      elements = g_strsplit(line + 8, " ", 0);
-	      for (i = 0; elements[i]; i++)
-		{
-		  int last;
-		  int n;
-
-		  n = sscanf(elements[i], "%d-%d", &first, &last);
-		  if (n >= 1)
-		    {
-		      int j;
-
-		      if (n == 1)
-			last = first;
-		  
-		      for (j = first; j <= last; j++)
-			{
-			  char *filename;
-			  GnomeVFSURI *message_uri;
-
-			  filename = g_strdup_printf("%i", j);
-			  message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, filename);
-			  g_free(filename);
-
-			  messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
-			  gnome_vfs_uri_unref(message_uri);
-			}
-		    }
-		}
-	      g_strfreev(elements);
-	    }
-
-	mn_vfs_read_line_context_free(context);
-	gnome_vfs_close(handle);
-
-	GDK_THREADS_ENTER();
-      
-	if (result == GNOME_VFS_OK || result == GNOME_VFS_ERROR_EOF)
-	  mn_mailbox_set_messages(self, messages);
-	else
-	  mn_mailbox_set_error(self, _("error while reading .mh_sequences: %s"), gnome_vfs_result_to_string(result));
-	
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-
-	mn_g_object_slist_free(messages);
-      }
-    else
-      {
-	GDK_THREADS_ENTER();
-	mn_mailbox_set_error(self, _("unable to open .mh_sequences: %s"), gnome_vfs_result_to_string(result));
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-      }
-
-    GDK_THREADS_ENTER();
-    mn_mailbox_end_check(self);
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-  }
-}
diff --git a/src/mn-mh-mailbox.h b/src/mn-mh-mailbox.h
@@ -1,57 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_MH_MAILBOX_H__
-#define __MN_MH_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_MH_MAILBOX	(mn_mh_mailbox_get_type())
-#define MN_MH_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_get_type(), MNMHMailbox)
-#define MN_MH_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_mh_mailbox_get_type(), MNMHMailbox const)
-#define MN_MH_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_mh_mailbox_get_type(), MNMHMailboxClass)
-#define MN_IS_MH_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_mh_mailbox_get_type ())
-
-#define MN_MH_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_mh_mailbox_get_type(), MNMHMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_MH_MAILBOX__
-#define __TYPEDEF_MN_MH_MAILBOX__
-typedef struct _MNMHMailbox MNMHMailbox;
-#endif
-struct _MNMHMailbox {
-	MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNMHMailboxClass MNMHMailboxClass;
-struct _MNMHMailboxClass {
-	MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_mh_mailbox_get_type	(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-pending-mailbox-private.h b/src/mn-pending-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_PENDING_MAILBOX_PRIVATE_H__
-#define __MN_PENDING_MAILBOX_PRIVATE_H__
-
-#include "mn-pending-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-pending-mailbox.c b/src/mn-pending-mailbox.c
@@ -1,142 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-pending-mailbox.h"
-
-#include "mn-pending-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-pending-mailbox.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-
-#line 33 "mn-pending-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_PENDING_MAILBOX(x)
-#define SELF_CONST(x) MN_PENDING_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_PENDING_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_PENDING_MAILBOX
-#define SELF_CLASS(x) MN_PENDING_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_PENDING_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNPendingMailbox Self;
-typedef MNPendingMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_pending_mailbox_init (MNPendingMailbox * o) G_GNUC_UNUSED;
-static void mn_pending_mailbox_class_init (MNPendingMailboxClass * class) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_new mn_pending_mailbox_new
-GType
-mn_pending_mailbox_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNPendingMailboxClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_pending_mailbox_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNPendingMailbox),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_pending_mailbox_init,
-			NULL
-		};
-
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNPendingMailbox", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNPendingMailbox *)g_object_new(mn_pending_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNPendingMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNPendingMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNPendingMailbox *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNPendingMailbox *)g_object_new_valist (mn_pending_mailbox_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-static void 
-mn_pending_mailbox_init (MNPendingMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Pending:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 32 "mn-pending-mailbox.gob"
-static void 
-mn_pending_mailbox_class_init (MNPendingMailboxClass * class G_GNUC_UNUSED)
-#line 107 "mn-pending-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Pending:Mailbox::class_init"
-
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
- {
-#line 33 "mn-pending-mailbox.gob"
-
-    MN_MAILBOX_CLASS(class)->stock_id = GTK_STOCK_EXECUTE;
-    MN_MAILBOX_CLASS(class)->format = _("detecting");
-  
-#line 119 "mn-pending-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 38 "mn-pending-mailbox.gob"
-MNMailbox * 
-mn_pending_mailbox_new (MNURI * uri)
-#line 129 "mn-pending-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Pending:Mailbox::new"
-#line 38 "mn-pending-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
-#line 38 "mn-pending-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (MNMailbox * )0);
-#line 136 "mn-pending-mailbox.c"
-{
-#line 40 "mn-pending-mailbox.gob"
-	
-    return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)), NULL));
-  }}
-#line 142 "mn-pending-mailbox.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-pending-mailbox.gob b/src/mn-pending-mailbox.gob
@@ -1,43 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-%}
-
-class MN:Pending:Mailbox from MN:Mailbox
-{
-  class_init (class)
-  {
-    MN_MAILBOX_CLASS(class)->stock_id = GTK_STOCK_EXECUTE;
-    MN_MAILBOX_CLASS(class)->format = _("detecting");
-  }
-
-  public MNMailbox *
-    new (MN:URI *uri (check null type))
-  {
-    return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)), NULL));
-  }
-}
diff --git a/src/mn-pending-mailbox.h b/src/mn-pending-mailbox.h
@@ -1,58 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_PENDING_MAILBOX_H__
-#define __MN_PENDING_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_PENDING_MAILBOX	(mn_pending_mailbox_get_type())
-#define MN_PENDING_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pending_mailbox_get_type(), MNPendingMailbox)
-#define MN_PENDING_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pending_mailbox_get_type(), MNPendingMailbox const)
-#define MN_PENDING_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_pending_mailbox_get_type(), MNPendingMailboxClass)
-#define MN_IS_PENDING_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_pending_mailbox_get_type ())
-
-#define MN_PENDING_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_pending_mailbox_get_type(), MNPendingMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_PENDING_MAILBOX__
-#define __TYPEDEF_MN_PENDING_MAILBOX__
-typedef struct _MNPendingMailbox MNPendingMailbox;
-#endif
-struct _MNPendingMailbox {
-	MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNPendingMailboxClass MNPendingMailboxClass;
-struct _MNPendingMailboxClass {
-	MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_pending_mailbox_get_type	(void);
-MNMailbox * 	mn_pending_mailbox_new	(MNURI * uri);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-pi-mailbox-private.h b/src/mn-pi-mailbox-private.h
@@ -0,0 +1,20 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_PI_MAILBOX_PRIVATE_H__
+#define __MN_PI_MAILBOX_PRIVATE_H__
+
+#include "mn-pi-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+gboolean 	mn_pi_mailbox_split_uri	(const char * uri, int maxlen, char * scheme, char * auth, char * location, gboolean * has_auth);
+gboolean 	mn_pi_mailbox_split_uri_auth	(const char * auth, int maxlen, char * username, char * authmech, gboolean * has_username, gboolean * has_authmech);
+void 	mn_pi_mailbox_split_uri_hostport	(const char * hostport, int maxlen, char * hostname, int * port);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-pi-mailbox-properties-private.h b/src/mn-pi-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_PI_MAILBOX_PROPERTIES_PRIVATE_H__
 #define __MN_PI_MAILBOX_PROPERTIES_PRIVATE_H__
@@ -9,9 +9,7 @@
 extern "C" {
 #endif /* __cplusplus */
 
-void 	mn_pi_mailbox_properties_entry_changed_h	(GtkEditable * editable, gpointer user_data);
-void 	mn_pi_mailbox_properties_set_contents	(MNPIMailboxProperties * self, gboolean ssl, gboolean inband_ssl, const char * username, const char * password, const char * authmech, const char * hostname, int port);
-void 	mn_pi_mailbox_properties_get_contents	(MNPIMailboxProperties * self, gboolean * ssl, gboolean * inband_ssl, const char ** username, const char ** password, char ** authmech, const char ** hostname, int * port);
+void 	mn_pi_mailbox_properties_get_contents	(MNPIMailboxProperties * self, MNPIMailboxConnectionType * connection_type, char ** authmech, const char ** hostname, int * port);
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-pi-mailbox-properties.c b/src/mn-pi-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,16 +23,17 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-pi-mailbox-properties.gob"
+#line 27 "mn-pi-mailbox-properties.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
-#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
 #include "mn-auth-combo-box.h"
 #include "mn-util.h"
+#include "mn-stock.h"
 
-#line 36 "mn-pi-mailbox-properties.c"
+#line 37 "mn-pi-mailbox-properties.c"
 /* self casting macros */
 #define SELF(x) MN_PI_MAILBOX_PROPERTIES(x)
 #define SELF_CONST(x) MN_PI_MAILBOX_PROPERTIES_CONST(x)
@@ -47,37 +48,24 @@ typedef MNPIMailboxProperties Self;
 typedef MNPIMailboxPropertiesClass SelfClass;
 
 /* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_pi_mailbox_properties_init (MNPIMailboxProperties * o) G_GNUC_UNUSED;
-static void mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static GObject * ___1_mn_pi_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_init (MNPIMailboxProperties * self) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_add_connection_type (MNPIMailboxProperties * self, MNPIMailboxConnectionType type, const char * mnemonic) G_GNUC_UNUSED;
+static void mn_pi_mailbox_properties_add_authentication (MNPIMailboxProperties * self) G_GNUC_UNUSED;
 static void mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data) G_GNUC_UNUSED;
 static void mn_pi_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data) G_GNUC_UNUSED;
-
-enum {
-	PROP_0,
-	PROP_COMPLETE,
-	PROP_LABEL,
-	PROP_SIZE_GROUP
-};
+static void ___7_mn_pi_mailbox_properties_set_mailbox (MNMailboxProperties * properties, MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___8_mn_pi_mailbox_properties_get_mailbox (MNMailboxProperties * properties) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
-static GtkVBoxClass *parent_class = NULL;
+static MNAuthenticatedMailboxPropertiesClass *parent_class = NULL;
 
 /* Short form macros */
+#define self_add_connection_type mn_pi_mailbox_properties_add_connection_type
+#define self_add_authentication mn_pi_mailbox_properties_add_authentication
 #define self_notify_expanded_h mn_pi_mailbox_properties_notify_expanded_h
-#define self_entry_changed_h mn_pi_mailbox_properties_entry_changed_h
 #define self_radio_toggled_h mn_pi_mailbox_properties_radio_toggled_h
-#define self_set_contents mn_pi_mailbox_properties_set_contents
 #define self_get_contents mn_pi_mailbox_properties_get_contents
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-}
-
 GType
 mn_pi_mailbox_properties_get_type (void)
 {
@@ -97,16 +85,7 @@ mn_pi_mailbox_properties_get_type (void)
 			NULL
 		};
 
-		static const GInterfaceInfo MN_Mailbox_Properties_info = {
-			(GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
-			NULL,
-			NULL
-		};
-
-		type = g_type_register_static (GTK_TYPE_VBOX, "MNPIMailboxProperties", &info, (GTypeFlags)0);
-		g_type_add_interface_static (type,
-			MN_TYPE_MAILBOX_PROPERTIES,
-			&MN_Mailbox_Properties_info);
+		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES, "MNPIMailboxProperties", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -129,178 +108,78 @@ GET_NEW_VARG (const char *first, ...)
 	return ret;
 }
 
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::dispose"
-	MNPIMailboxProperties *self G_GNUC_UNUSED = MN_PI_MAILBOX_PROPERTIES (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 44 "mn-pi-mailbox-properties.gob"
-	if(self->size_group) { g_object_unref ((gpointer) self->size_group); self->size_group = NULL; }
-#line 143 "mn-pi-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
+#line 46 "mn-pi-mailbox-properties.gob"
 static void 
-mn_pi_mailbox_properties_init (MNPIMailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::init"
-}
-#undef __GOB_FUNCTION__
-static void 
-mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * c G_GNUC_UNUSED)
+mn_pi_mailbox_properties_class_init (MNPIMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 115 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+	MNMailboxPropertiesClass *mn_mailbox_properties_class = (MNMailboxPropertiesClass *)class;
 
-	parent_class = g_type_class_ref (GTK_TYPE_VBOX);
+	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX_PROPERTIES);
 
-#line 56 "mn-pi-mailbox-properties.gob"
-	g_object_class->constructor = ___1_mn_pi_mailbox_properties_constructor;
-#line 163 "mn-pi-mailbox-properties.c"
-	g_object_class->dispose = ___dispose;
-	g_object_class->get_property = ___object_get_property;
-	g_object_class->set_property = ___object_set_property;
-    {
-	g_object_class_override_property (g_object_class,
-		PROP_COMPLETE,
-		"complete");
-	g_object_class_override_property (g_object_class,
-		PROP_LABEL,
-		"label");
-	g_object_class_override_property (g_object_class,
-		PROP_SIZE_GROUP,
-		"size_group");
-    }
-}
-#undef __GOB_FUNCTION__
+#line 216 "mn-pi-mailbox-properties.gob"
+	mn_mailbox_properties_class->set_mailbox = ___7_mn_pi_mailbox_properties_set_mailbox;
+#line 231 "mn-pi-mailbox-properties.gob"
+	mn_mailbox_properties_class->get_mailbox = ___8_mn_pi_mailbox_properties_get_mailbox;
+#line 126 "mn-pi-mailbox-properties.c"
+ {
+#line 47 "mn-pi-mailbox-properties.gob"
 
-static void
-___object_set_property (GObject *object,
-	guint property_id,
-	const GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_property"
-{
-	MNPIMailboxProperties *self G_GNUC_UNUSED;
-
-	self = MN_PI_MAILBOX_PROPERTIES (object);
-
-	switch (property_id) {
-	case PROP_SIZE_GROUP:
-		{
-#line 45 "mn-pi-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->size_group; self->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 197 "mn-pi-mailbox-properties.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-#undef __GOB_FUNCTION__
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-static void
-___object_get_property (GObject *object,
-	guint property_id,
-	GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_property"
-{
-	MNPIMailboxProperties *self G_GNUC_UNUSED;
-
-	self = MN_PI_MAILBOX_PROPERTIES (object);
-
-	switch (property_id) {
-	case PROP_COMPLETE:
-		{
-#line 39 "mn-pi-mailbox-properties.gob"
-
-#line 228 "mn-pi-mailbox-properties.c"
-		}
-		break;
-	case PROP_LABEL:
-		{
-#line 42 "mn-pi-mailbox-properties.gob"
- g_value_set_string(VAL, SELF_GET_CLASS(self)->label); 
-#line 235 "mn-pi-mailbox-properties.c"
-		}
-		break;
-	case PROP_SIZE_GROUP:
-		{
-#line 45 "mn-pi-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->size_group);
-#line 242 "mn-pi-mailbox-properties.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
+    p_class->stock_id = MN_STOCK_REMOTE;
+  
+#line 134 "mn-pi-mailbox-properties.c"
+ }
 }
 #undef __GOB_FUNCTION__
-
-
-
-#line 56 "mn-pi-mailbox-properties.gob"
-static GObject * 
-___1_mn_pi_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 262 "mn-pi-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
-	((G_OBJECT_CLASS(parent_class)->constructor)? \
-		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::constructor"
+#line 53 "mn-pi-mailbox-properties.gob"
+static void 
+mn_pi_mailbox_properties_init (MNPIMailboxProperties * self G_GNUC_UNUSED)
+#line 141 "mn-pi-mailbox-properties.c"
 {
-#line 58 "mn-pi-mailbox-properties.gob"
-	
-    GObject *object;
-    Self *self;
-    GtkWidget *label1;
-    GtkWidget *label2;
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::init"
+ {
+#line 54 "mn-pi-mailbox-properties.gob"
+
+    MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+    MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
+    GtkWidget *hbox;
+    GtkWidget *label;
     GtkWidget *expander;
     GtkSizeGroup *radio_size_group;
     int i;
+    const struct
+    {
+      MNPIMailboxConnectionType	type;
+      const char		*mnemonic;
+    } connection_types[] = {
+      { MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL,		N_("sta_ndard")			},
+      { MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL,	N_("_in-band SSL/TLS")		},
+      { MN_PI_MAILBOX_CONNECTION_TYPE_SSL,		N_("SSL/TLS on sepa_rate port")	}
+    };
+      
+    hbox = mn_authenticated_mailbox_properties_field_new(auth,
+							 _("_Hostname:"),
+							 &label,
+							 &self->hostname_entry);
+
+    gtk_box_pack_start(GTK_BOX(self), hbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
 
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-
-    gtk_box_set_spacing(GTK_BOX(self), 6);
-    
     self->details_size_group = gtk_size_group_new(GTK_SIZE_GROUP_NONE);
 
-    mn_mailbox_properties_field_new(GTK_VBOX(self),
-				    _("_Hostname:"),
-				    &label1,
-				    &self->hostname_entry);
-
-    gtk_size_group_add_widget(self->size_group, label1);
-    gtk_size_group_add_widget(self->details_size_group, label1);
+    gtk_size_group_add_widget(self->details_size_group, auth->username_label);
+    gtk_size_group_add_widget(self->details_size_group, auth->password_label);
+    gtk_size_group_add_widget(self->details_size_group, label);
 
-    mn_mailbox_properties_credentials_new(GTK_VBOX(self),
-					  &label1,
-					  &self->username_entry,
-					  &label2,
-					  &self->password_entry);
-
-    gtk_size_group_add_widget(self->size_group, label1);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(self->size_group, label2);
-    gtk_size_group_add_widget(self->details_size_group, label2);
+    mn_mailbox_properties_add_entries(properties,
+				      GTK_ENTRY(self->hostname_entry),
+				      GTK_ENTRY(auth->username_entry),
+				      GTK_ENTRY(auth->password_entry),
+				      NULL);
 
     expander = gtk_expander_new_with_mnemonic(_("_Details"));
     gtk_expander_set_spacing(GTK_EXPANDER(expander), 6);
@@ -313,219 +192,289 @@ ___1_mn_pi_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned in
     
     radio_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
-    mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
-					      _("sta_ndard"),
-					      SELF_GET_CLASS(self)->default_port[0],
-					      NULL,
-					      &label1,
-					      &self->conn_radio[0],
-					      &self->port_spin[0]);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(radio_size_group, self->conn_radio[0]);
-
-    mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
-					      _("_in-band SSL/TLS"),
-					      SELF_GET_CLASS(self)->default_port[0],
-					      GTK_RADIO_BUTTON(self->conn_radio[0]),
-					      &label1,
-					      &self->conn_radio[1],
-					      &self->port_spin[1]);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(radio_size_group, self->conn_radio[1]);
-
-    mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
-					      _("SSL/TLS on sepa_rate port"),
-					      SELF_GET_CLASS(self)->default_port[1],
-					      GTK_RADIO_BUTTON(self->conn_radio[0]),
-					      &label1,
-					      &self->conn_radio[2],
-					      &self->port_spin[2]);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(radio_size_group, self->conn_radio[2]);
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+      {
+	self_add_connection_type(self,
+				 connection_types[i].type,
+				 _(connection_types[i].mnemonic));
+
+	gtk_size_group_add_widget(radio_size_group, self->conn_radio[i]);
 
-    g_object_unref(radio_size_group);
+	mn_mailbox_properties_add_entry(properties, GTK_ENTRY(self->port_spin[i]));
+	g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
+      }
     
+    g_object_unref(radio_size_group);
+
 #ifndef WITH_SSL
-    gtk_widget_set_sensitive(self->conn_radio[1], FALSE);
-    gtk_widget_set_sensitive(self->conn_radio[2], FALSE);
+    gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+    gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
 #endif
 
     /* by default, standard is enabled */
-    gtk_widget_set_sensitive(self->port_spin[1], FALSE);
-    gtk_widget_set_sensitive(self->port_spin[2], FALSE);
+    gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+    gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
 
-    mn_mailbox_properties_authentication_new(GTK_VBOX(self->details_vbox),
-					     &label1,
-					     &self->auth_combo);
-    gtk_size_group_add_widget(self->details_size_group, label1);
+    self_add_authentication(self);
 
-    mn_mailbox_properties_link_entries(GTK_ENTRY(self->hostname_entry),
-				       GTK_ENTRY(self->username_entry),
-				       GTK_ENTRY(self->password_entry),
-				       NULL);
+    g_object_connect(self->hostname_entry,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+		     NULL);
+
+    g_signal_connect_swapped(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
 
     g_signal_connect(expander, "notify::expanded", G_CALLBACK(self_notify_expanded_h), self);
+  
+#line 230 "mn-pi-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
 
-    for (i = 0; i < 3; i++)
-      g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
-    
-    g_signal_connect(self->hostname_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(self->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
 
-    return object;
+
+#line 139 "mn-pi-mailbox-properties.gob"
+static void 
+mn_pi_mailbox_properties_add_connection_type (MNPIMailboxProperties * self, MNPIMailboxConnectionType type, const char * mnemonic)
+#line 240 "mn-pi-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::add_connection_type"
+#line 139 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 139 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
+#line 139 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (mnemonic != NULL);
+#line 249 "mn-pi-mailbox-properties.c"
+{
+#line 143 "mn-pi-mailbox-properties.gob"
+	
+    GtkWidget *label;
+    GtkWidget *hbox;
+    GtkWidget *port_label;
+
+    label = gtk_label_new(type == 0 ? _("Connection type:") : NULL);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    self->conn_radio[type] = type == 0
+      ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+      : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(self->conn_radio[0]), mnemonic);
+
+    port_label = gtk_label_new(_("Port:"));
+
+    self->port_spin[type] = gtk_spin_button_new_with_range(0, 0xFFFF, 1);
+    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(self->port_spin[type]), TRUE);
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), self->conn_radio[type], TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), port_label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), self->port_spin[type], FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(self->details_size_group, label);
   }}
-#line 378 "mn-pi-mailbox-properties.c"
+#line 279 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
 
-#line 166 "mn-pi-mailbox-properties.gob"
+#line 171 "mn-pi-mailbox-properties.gob"
 static void 
-mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data)
-#line 385 "mn-pi-mailbox-properties.c"
+mn_pi_mailbox_properties_add_authentication (MNPIMailboxProperties * self)
+#line 285 "mn-pi-mailbox-properties.c"
 {
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::notify_expanded_h"
-#line 166 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (object != NULL);
-#line 166 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 166 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (pspec != NULL);
-#line 166 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 396 "mn-pi-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::add_authentication"
+#line 171 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (self != NULL);
+#line 171 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
+#line 292 "mn-pi-mailbox-properties.c"
 {
-#line 170 "mn-pi-mailbox-properties.gob"
+#line 173 "mn-pi-mailbox-properties.gob"
 	
-    Self *self = user_data;
+    GtkWidget *hbox;
+    GtkWidget *label;
 
-    gtk_size_group_set_mode(self->details_size_group,
-			    gtk_expander_get_expanded(GTK_EXPANDER(object))
-			    ? GTK_SIZE_GROUP_HORIZONTAL
-			    : GTK_SIZE_GROUP_NONE);
+    hbox = gtk_hbox_new(FALSE, 12);
+    label = gtk_label_new_with_mnemonic(_("_Authentication mechanism:"));
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    self->auth_combo = mn_auth_combo_box_new();
+    gtk_label_set_mnemonic_widget(GTK_LABEL(label), self->auth_combo);
+
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), self->auth_combo, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(self->details_size_group, label);
   }}
-#line 407 "mn-pi-mailbox-properties.c"
+#line 313 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 179 "mn-pi-mailbox-properties.gob"
-void 
-mn_pi_mailbox_properties_entry_changed_h (GtkEditable * editable, gpointer user_data)
-#line 413 "mn-pi-mailbox-properties.c"
+#line 192 "mn-pi-mailbox-properties.gob"
+static void 
+mn_pi_mailbox_properties_notify_expanded_h (GObject * object, GParamSpec * pspec, gpointer user_data)
+#line 319 "mn-pi-mailbox-properties.c"
 {
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::entry_changed_h"
-#line 179 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (editable != NULL);
-#line 179 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (GTK_IS_EDITABLE (editable));
-#line 179 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (user_data != NULL);
-#line 422 "mn-pi-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::notify_expanded_h"
 {
-#line 182 "mn-pi-mailbox-properties.gob"
+#line 194 "mn-pi-mailbox-properties.gob"
 	
     Self *self = user_data;
-    g_object_notify(G_OBJECT(self), "complete");
+
+    gtk_size_group_set_mode(self->details_size_group,
+			    gtk_expander_get_expanded(GTK_EXPANDER(object))
+			    ? GTK_SIZE_GROUP_HORIZONTAL
+			    : GTK_SIZE_GROUP_NONE);
   }}
-#line 429 "mn-pi-mailbox-properties.c"
+#line 332 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
 static void 
 mn_pi_mailbox_properties_radio_toggled_h (GtkToggleButton * togglebutton, gpointer user_data)
-#line 435 "mn-pi-mailbox-properties.c"
+#line 338 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::radio_toggled_h"
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (togglebutton != NULL);
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (GTK_IS_TOGGLE_BUTTON (togglebutton));
-#line 187 "mn-pi-mailbox-properties.gob"
+#line 203 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (user_data != NULL);
-#line 444 "mn-pi-mailbox-properties.c"
+#line 347 "mn-pi-mailbox-properties.c"
 {
-#line 190 "mn-pi-mailbox-properties.gob"
+#line 206 "mn-pi-mailbox-properties.gob"
 	
     Self *self = user_data;
     int i;
 
-    for (i = 0; i < 3; i++)
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
       gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
 
     g_object_notify(G_OBJECT(self), "complete");
   }}
-#line 456 "mn-pi-mailbox-properties.c"
+#line 359 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
 
-#line 200 "mn-pi-mailbox-properties.gob"
-void 
-mn_pi_mailbox_properties_set_contents (MNPIMailboxProperties * self, gboolean ssl, gboolean inband_ssl, const char * username, const char * password, const char * authmech, const char * hostname, int port)
-#line 462 "mn-pi-mailbox-properties.c"
+#line 216 "mn-pi-mailbox-properties.gob"
+static void 
+___7_mn_pi_mailbox_properties_set_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED, MNMailbox * mailbox)
+#line 365 "mn-pi-mailbox-properties.c"
+#define PARENT_HANDLER(___properties,___mailbox) \
+	{ if(MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox) \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->set_mailbox)(___properties,___mailbox); }
 {
-#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_contents"
-#line 200 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (self != NULL);
-#line 200 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
-#line 200 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (username != NULL);
-#line 200 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (hostname != NULL);
-#line 200 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (port >= 0);
-#line 200 "mn-pi-mailbox-properties.gob"
-	g_return_if_fail (port <= 0xFFFF);
-#line 477 "mn-pi-mailbox-properties.c"
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::set_mailbox"
+#line 216 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (properties != NULL);
+#line 216 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES (properties));
+#line 216 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (mailbox != NULL);
+#line 216 "mn-pi-mailbox-properties.gob"
+	g_return_if_fail (MN_IS_MAILBOX (mailbox));
+#line 379 "mn-pi-mailbox-properties.c"
 {
-#line 209 "mn-pi-mailbox-properties.gob"
+#line 219 "mn-pi-mailbox-properties.gob"
 	
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[ssl ? 2 : (inband_ssl ? 1 : 0)]), TRUE);
-    gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
-    gtk_entry_set_text(GTK_ENTRY(self->password_entry), password ? password : "");
-    mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), (char *) authmech);
-    gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), hostname);
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
+    Self *self = SELF(properties);
+    MNPIMailbox *pi_mailbox = MN_PI_MAILBOX(mailbox);
+
+    PARENT_HANDLER(properties, mailbox);
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[pi_mailbox->connection_type]), TRUE);
+    mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), pi_mailbox->authmech);
+    gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), pi_mailbox->hostname);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[pi_mailbox->connection_type]), pi_mailbox->runtime_port);
   }}
-#line 488 "mn-pi-mailbox-properties.c"
+#line 393 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
 
-#line 218 "mn-pi-mailbox-properties.gob"
+#line 231 "mn-pi-mailbox-properties.gob"
+static MNMailbox * 
+___8_mn_pi_mailbox_properties_get_mailbox (MNMailboxProperties * properties G_GNUC_UNUSED)
+#line 400 "mn-pi-mailbox-properties.c"
+#define PARENT_HANDLER(___properties) \
+	((MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)? \
+		(* MN_MAILBOX_PROPERTIES_CLASS(parent_class)->get_mailbox)(___properties): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_mailbox"
+{
+#line 233 "mn-pi-mailbox-properties.gob"
+	
+    MNMailbox *mailbox;
+    MNPIMailboxConnectionType connection_type;
+    char *authmech;
+    const char *hostname;
+    int port;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    self_get_contents(SELF(properties),
+		      &connection_type,
+		      &authmech,
+		      &hostname,
+		      &port);
+
+    g_object_set(mailbox,
+		 "connection-type", connection_type,
+		 "authmech", authmech,
+		 "hostname", hostname,
+		 "port", port,
+		 NULL);
+
+    g_free(authmech);
+
+    return mailbox;
+  }}
+#line 435 "mn-pi-mailbox-properties.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 260 "mn-pi-mailbox-properties.gob"
 void 
-mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, gboolean * ssl, gboolean * inband_ssl, const char ** username, const char ** password, char ** authmech, const char ** hostname, int * port)
-#line 494 "mn-pi-mailbox-properties.c"
+mn_pi_mailbox_properties_get_contents (MNPIMailboxProperties * self, MNPIMailboxConnectionType * connection_type, char ** authmech, const char ** hostname, int * port)
+#line 442 "mn-pi-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:PI:Mailbox:Properties::get_contents"
-#line 218 "mn-pi-mailbox-properties.gob"
+#line 260 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (self != NULL);
-#line 218 "mn-pi-mailbox-properties.gob"
+#line 260 "mn-pi-mailbox-properties.gob"
 	g_return_if_fail (MN_IS_PI_MAILBOX_PROPERTIES (self));
-#line 501 "mn-pi-mailbox-properties.c"
+#line 449 "mn-pi-mailbox-properties.c"
 {
-#line 227 "mn-pi-mailbox-properties.gob"
+#line 266 "mn-pi-mailbox-properties.gob"
 	
-    gboolean _ssl;
-    gboolean _inband_ssl;
-
-    _ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[2]));
-    _inband_ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[1]));
-
-    if (ssl)
-      *ssl = _ssl;
-    if (inband_ssl)
-      *inband_ssl = _inband_ssl;
-    if (username)
-      *username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
-    if (password)
+    MNPIMailboxConnectionType _connection_type;
+
+    if (connection_type || port)
       {
-	const char *_password;
+	int i;
+	
+	_connection_type = -1;
+
+	for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+	  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])))
+	    {
+	      _connection_type = i;
+	      break;
+	    }
 
-	_password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
-	*password = *_password ? _password : NULL;
+	g_return_if_fail(_connection_type != -1);
       }
+    
+    if (connection_type)
+      *connection_type = _connection_type;
     if (authmech)
       *authmech = mn_auth_combo_box_get_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo));
     if (hostname)
       *hostname = gtk_entry_get_text(GTK_ENTRY(self->hostname_entry));
     if (port)
-      *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_ssl ? 2 : (_inband_ssl ? 1 : 0)]));
+      *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_connection_type]));
   }}
-#line 531 "mn-pi-mailbox-properties.c"
+#line 480 "mn-pi-mailbox-properties.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-pi-mailbox-properties.gob b/src/mn-pi-mailbox-properties.gob
@@ -16,79 +16,79 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
+#include "mn-pi-mailbox.h"
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
-#include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
+#include "mn-mailbox-properties-private.h"
+#include "mn-authenticated-mailbox-properties-private.h"
 #include "mn-auth-combo-box.h"
 #include "mn-util.h"
+#include "mn-stock.h"
 %}
 
-class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
+class MN:PI:Mailbox:Properties from MN:Authenticated:Mailbox:Properties
 {
-  classwide const char *label;
-  classwide int default_port[2]; /* 0: standard, 1: SSL/TLS */
-
-  property BOOLEAN complete (override)
-    get {};			/* dummy, implemented by subclasses */
-  
-  property STRING label (override)
-    get { g_value_set_string(VAL, SELF_GET_CLASS(self)->label); };
-
-  protected GtkSizeGroup *size_group unrefwith g_object_unref;
-  property OBJECT size_group (override, link);
-
   protected GtkWidget *hostname_entry;
-  protected GtkWidget *username_entry;
-  protected GtkWidget *password_entry;
   protected GtkWidget *details_vbox;
   protected GtkSizeGroup *details_size_group;
-  protected GtkWidget *conn_radio[3];
-  protected GtkWidget *port_spin[3];
+  protected GtkWidget *conn_radio[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+  protected GtkWidget *port_spin[MN_PI_MAILBOX_N_CONNECTION_TYPES];
   protected GtkWidget *auth_combo;
 
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  class_init (class)
+  {
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->stock_id = MN_STOCK_REMOTE;
+  }
+
+  init (self)
   {
-    GObject *object;
-    Self *self;
-    GtkWidget *label1;
-    GtkWidget *label2;
+    MNMailboxProperties *properties = MN_MAILBOX_PROPERTIES(self);
+    MNAuthenticatedMailboxProperties *auth = MN_AUTHENTICATED_MAILBOX_PROPERTIES(self);
+    GtkWidget *hbox;
+    GtkWidget *label;
     GtkWidget *expander;
     GtkSizeGroup *radio_size_group;
     int i;
+    const struct
+    {
+      MNPIMailboxConnectionType	type;
+      const char		*mnemonic;
+    } connection_types[] = {
+      { MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL,		N_("sta_ndard")			},
+      { MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL,	N_("_in-band SSL/TLS")		},
+      { MN_PI_MAILBOX_CONNECTION_TYPE_SSL,		N_("SSL/TLS on sepa_rate port")	}
+    };
+      
+    hbox = mn_authenticated_mailbox_properties_field_new(auth,
+							 _("_Hostname:"),
+							 &label,
+							 &self->hostname_entry);
+
+    gtk_box_pack_start(GTK_BOX(self), hbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self), auth->username_vbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self), auth->password_vbox, FALSE, FALSE, 0);
 
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-
-    gtk_box_set_spacing(GTK_BOX(self), 6);
-    
     self->details_size_group = gtk_size_group_new(GTK_SIZE_GROUP_NONE);
 
-    mn_mailbox_properties_field_new(GTK_VBOX(self),
-				    _("_Hostname:"),
-				    &label1,
-				    &self->hostname_entry);
+    gtk_size_group_add_widget(self->details_size_group, auth->username_label);
+    gtk_size_group_add_widget(self->details_size_group, auth->password_label);
+    gtk_size_group_add_widget(self->details_size_group, label);
 
-    gtk_size_group_add_widget(self->size_group, label1);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-
-    mn_mailbox_properties_credentials_new(GTK_VBOX(self),
-					  &label1,
-					  &self->username_entry,
-					  &label2,
-					  &self->password_entry);
-
-    gtk_size_group_add_widget(self->size_group, label1);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(self->size_group, label2);
-    gtk_size_group_add_widget(self->details_size_group, label2);
+    mn_mailbox_properties_add_entries(properties,
+				      GTK_ENTRY(self->hostname_entry),
+				      GTK_ENTRY(auth->username_entry),
+				      GTK_ENTRY(auth->password_entry),
+				      NULL);
 
     expander = gtk_expander_new_with_mnemonic(_("_Details"));
     gtk_expander_set_spacing(GTK_EXPANDER(expander), 6);
@@ -101,72 +101,96 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
     
     radio_size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
 
-    mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
-					      _("sta_ndard"),
-					      SELF_GET_CLASS(self)->default_port[0],
-					      NULL,
-					      &label1,
-					      &self->conn_radio[0],
-					      &self->port_spin[0]);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(radio_size_group, self->conn_radio[0]);
-
-    mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
-					      _("_in-band SSL/TLS"),
-					      SELF_GET_CLASS(self)->default_port[0],
-					      GTK_RADIO_BUTTON(self->conn_radio[0]),
-					      &label1,
-					      &self->conn_radio[1],
-					      &self->port_spin[1]);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(radio_size_group, self->conn_radio[1]);
-
-    mn_mailbox_properties_connection_type_new(GTK_VBOX(self->details_vbox),
-					      _("SSL/TLS on sepa_rate port"),
-					      SELF_GET_CLASS(self)->default_port[1],
-					      GTK_RADIO_BUTTON(self->conn_radio[0]),
-					      &label1,
-					      &self->conn_radio[2],
-					      &self->port_spin[2]);
-    gtk_size_group_add_widget(self->details_size_group, label1);
-    gtk_size_group_add_widget(radio_size_group, self->conn_radio[2]);
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+      {
+	self_add_connection_type(self,
+				 connection_types[i].type,
+				 _(connection_types[i].mnemonic));
 
-    g_object_unref(radio_size_group);
+	gtk_size_group_add_widget(radio_size_group, self->conn_radio[i]);
+
+	mn_mailbox_properties_add_entry(properties, GTK_ENTRY(self->port_spin[i]));
+	g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
+      }
     
+    g_object_unref(radio_size_group);
+
 #ifndef WITH_SSL
-    gtk_widget_set_sensitive(self->conn_radio[1], FALSE);
-    gtk_widget_set_sensitive(self->conn_radio[2], FALSE);
+    gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+    gtk_widget_set_sensitive(self->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
 #endif
 
     /* by default, standard is enabled */
-    gtk_widget_set_sensitive(self->port_spin[1], FALSE);
-    gtk_widget_set_sensitive(self->port_spin[2], FALSE);
+    gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL], FALSE);
+    gtk_widget_set_sensitive(self->port_spin[MN_PI_MAILBOX_CONNECTION_TYPE_SSL], FALSE);
+
+    self_add_authentication(self);
 
-    mn_mailbox_properties_authentication_new(GTK_VBOX(self->details_vbox),
-					     &label1,
-					     &self->auth_combo);
-    gtk_size_group_add_widget(self->details_size_group, label1);
+    g_object_connect(self->hostname_entry,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_complete, self,
+		     "swapped-signal::changed", mn_mailbox_properties_notify_default_name, self,
+		     NULL);
 
-    mn_mailbox_properties_link_entries(GTK_ENTRY(self->hostname_entry),
-				       GTK_ENTRY(self->username_entry),
-				       GTK_ENTRY(self->password_entry),
-				       NULL);
+    g_signal_connect_swapped(auth->username_entry, "changed", G_CALLBACK(mn_mailbox_properties_notify_default_name), self);
 
     g_signal_connect(expander, "notify::expanded", G_CALLBACK(self_notify_expanded_h), self);
+  }
 
-    for (i = 0; i < 3; i++)
-      g_signal_connect(self->conn_radio[i], "toggled", G_CALLBACK(self_radio_toggled_h), self);
-    
-    g_signal_connect(self->hostname_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
-    g_signal_connect(self->username_entry, "changed", G_CALLBACK(self_entry_changed_h), self);
+  private void
+    add_connection_type (self,
+			 MNPIMailboxConnectionType type,
+			 const char *mnemonic (check null))
+  {
+    GtkWidget *label;
+    GtkWidget *hbox;
+    GtkWidget *port_label;
+
+    label = gtk_label_new(type == 0 ? _("Connection type:") : NULL);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    self->conn_radio[type] = type == 0
+      ? gtk_radio_button_new_with_mnemonic(NULL, mnemonic)
+      : gtk_radio_button_new_with_mnemonic_from_widget(GTK_RADIO_BUTTON(self->conn_radio[0]), mnemonic);
+
+    port_label = gtk_label_new(_("Port:"));
 
-    return object;
+    self->port_spin[type] = gtk_spin_button_new_with_range(0, 0xFFFF, 1);
+    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(self->port_spin[type]), TRUE);
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), self->conn_radio[type], TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), port_label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), self->port_spin[type], FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(self->details_size_group, label);
   }
+  
+  private void
+    add_authentication (self)
+  {
+    GtkWidget *hbox;
+    GtkWidget *label;
+
+    hbox = gtk_hbox_new(FALSE, 12);
+    label = gtk_label_new_with_mnemonic(_("_Authentication mechanism:"));
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    self->auth_combo = mn_auth_combo_box_new();
+    gtk_label_set_mnemonic_widget(GTK_LABEL(label), self->auth_combo);
 
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), self->auth_combo, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(self->details_vbox), hbox, FALSE, FALSE, 0);
+    gtk_widget_show_all(hbox);
+
+    gtk_size_group_add_widget(self->details_size_group, label);
+  }
+  
   private void
-    notify_expanded_h (G:Object *object (check null type),
-		       GParamSpec *pspec (check null),
-		       gpointer user_data (check null))
+    notify_expanded_h (GObject *object, GParamSpec *pspec, gpointer user_data)
   {
     Self *self = user_data;
 
@@ -176,14 +200,6 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
 			    : GTK_SIZE_GROUP_NONE);
   }
   
-  protected void
-    entry_changed_h (Gtk:Editable *editable (check null type),
-		     gpointer user_data (check null))
-  {
-    Self *self = user_data;
-    g_object_notify(G_OBJECT(self), "complete");
-  }
-
   private void
     radio_toggled_h (Gtk:Toggle:Button *togglebutton (check null type),
 		     gpointer user_data (check null))
@@ -191,64 +207,88 @@ class MN:PI:Mailbox:Properties from Gtk:VBox (interface MN:Mailbox:Properties)
     Self *self = user_data;
     int i;
 
-    for (i = 0; i < 3; i++)
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
       gtk_widget_set_sensitive(self->port_spin[i], GTK_WIDGET_SENSITIVE(self->conn_radio[i]) && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])));
 
     g_object_notify(G_OBJECT(self), "complete");
   }
 
-  protected void
-    set_contents (self,
-		  gboolean ssl,
-		  gboolean inband_ssl,
-		  const char *username (check null),
-		  const char *password,
-		  const char *authmech,
-		  const char *hostname (check null),
-		  int port (check >= 0 <= 0xFFFF))
+  override (MN:Mailbox:Properties) void
+    set_mailbox (MN:Mailbox:Properties *properties (check null type),
+		 MN:Mailbox *mailbox (check null type))
   {
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[ssl ? 2 : (inband_ssl ? 1 : 0)]), TRUE);
-    gtk_entry_set_text(GTK_ENTRY(self->username_entry), username);
-    gtk_entry_set_text(GTK_ENTRY(self->password_entry), password ? password : "");
-    mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), (char *) authmech);
-    gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), hostname);
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[ssl ? 2 : (inband_ssl ? 1 : 0)]), port);
+    Self *self = SELF(properties);
+    MNPIMailbox *pi_mailbox = MN_PI_MAILBOX(mailbox);
+
+    PARENT_HANDLER(properties, mailbox);
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->conn_radio[pi_mailbox->connection_type]), TRUE);
+    mn_auth_combo_box_set_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo), pi_mailbox->authmech);
+    gtk_entry_set_text(GTK_ENTRY(self->hostname_entry), pi_mailbox->hostname);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(self->port_spin[pi_mailbox->connection_type]), pi_mailbox->runtime_port);
   }
 
+  override (MN:Mailbox:Properties) MNMailbox *
+    get_mailbox (MNMailboxProperties *properties)
+  {
+    MNMailbox *mailbox;
+    MNPIMailboxConnectionType connection_type;
+    char *authmech;
+    const char *hostname;
+    int port;
+
+    mailbox = PARENT_HANDLER(properties);
+
+    self_get_contents(SELF(properties),
+		      &connection_type,
+		      &authmech,
+		      &hostname,
+		      &port);
+
+    g_object_set(mailbox,
+		 "connection-type", connection_type,
+		 "authmech", authmech,
+		 "hostname", hostname,
+		 "port", port,
+		 NULL);
+
+    g_free(authmech);
+
+    return mailbox;
+  }
+  
   protected void
     get_contents (self,
-		  gboolean *ssl,
-		  gboolean *inband_ssl,
-		  const char **username,
-		  const char **password,
+		  MNPIMailboxConnectionType *connection_type,
 		  char **authmech,
 		  const char **hostname,
 		  int *port)
   {
-    gboolean _ssl;
-    gboolean _inband_ssl;
-
-    _ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[2]));
-    _inband_ssl = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[1]));
-
-    if (ssl)
-      *ssl = _ssl;
-    if (inband_ssl)
-      *inband_ssl = _inband_ssl;
-    if (username)
-      *username = gtk_entry_get_text(GTK_ENTRY(self->username_entry));
-    if (password)
-      {
-	const char *_password;
+    MNPIMailboxConnectionType _connection_type;
 
-	_password = gtk_entry_get_text(GTK_ENTRY(self->password_entry));
-	*password = *_password ? _password : NULL;
+    if (connection_type || port)
+      {
+	int i;
+	
+	_connection_type = -1;
+
+	for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+	  if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->conn_radio[i])))
+	    {
+	      _connection_type = i;
+	      break;
+	    }
+
+	g_return_if_fail(_connection_type != -1);
       }
+    
+    if (connection_type)
+      *connection_type = _connection_type;
     if (authmech)
       *authmech = mn_auth_combo_box_get_active_mechanism(MN_AUTH_COMBO_BOX(self->auth_combo));
     if (hostname)
       *hostname = gtk_entry_get_text(GTK_ENTRY(self->hostname_entry));
     if (port)
-      *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_ssl ? 2 : (_inband_ssl ? 1 : 0)]));
+      *port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(self->port_spin[_connection_type]));
   }
 }
diff --git a/src/mn-pi-mailbox-properties.h b/src/mn-pi-mailbox-properties.h
@@ -1,10 +1,12 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
 #include <gtk/gtk.h>
+#include "mn-authenticated-mailbox-properties.h"
+#include "mn-pi-mailbox.h"
 
 #ifndef __MN_PI_MAILBOX_PROPERTIES_H__
 #define __MN_PI_MAILBOX_PROPERTIES_H__
@@ -33,16 +35,13 @@ extern "C" {
 typedef struct _MNPIMailboxProperties MNPIMailboxProperties;
 #endif
 struct _MNPIMailboxProperties {
-	GtkVBox __parent__;
+	MNAuthenticatedMailboxProperties __parent__;
 	/*< private >*/
-	GtkSizeGroup * size_group; /* protected */
 	GtkWidget * hostname_entry; /* protected */
-	GtkWidget * username_entry; /* protected */
-	GtkWidget * password_entry; /* protected */
 	GtkWidget * details_vbox; /* protected */
 	GtkSizeGroup * details_size_group; /* protected */
-	GtkWidget * conn_radio[3]; /* protected */
-	GtkWidget * port_spin[3]; /* protected */
+	GtkWidget * conn_radio[MN_PI_MAILBOX_N_CONNECTION_TYPES]; /* protected */
+	GtkWidget * port_spin[MN_PI_MAILBOX_N_CONNECTION_TYPES]; /* protected */
 	GtkWidget * auth_combo; /* protected */
 };
 
@@ -51,9 +50,7 @@ struct _MNPIMailboxProperties {
  */
 typedef struct _MNPIMailboxPropertiesClass MNPIMailboxPropertiesClass;
 struct _MNPIMailboxPropertiesClass {
-	GtkVBoxClass __parent__;
-	const char * label;
-	int default_port[2];
+	MNAuthenticatedMailboxPropertiesClass __parent__;
 };
 
 
@@ -62,22 +59,6 @@ struct _MNPIMailboxPropertiesClass {
  */
 GType	mn_pi_mailbox_properties_get_type	(void);
 
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label", __extension__ ({gchar **z = (arg); z;})
-#define MN_PI_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group", __extension__ ({GObject **z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label",(gchar **)(arg)
-#define MN_PI_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group",(GObject *)(arg)
-#define MN_PI_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group",(GObject **)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
diff --git a/src/mn-pi-mailbox.c b/src/mn-pi-mailbox.c
@@ -0,0 +1,550 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-pi-mailbox.h"
+
+#include "mn-pi-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 29 "mn-pi-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+
+#line 35 "mn-pi-mailbox.c"
+static const GEnumValue _mn_pi_mailbox_connection_type_values[] = {
+	{ MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL, (char *)"MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL", (char *)"normal" },
+	{ MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL, (char *)"MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL", (char *)"inband-ssl" },
+	{ MN_PI_MAILBOX_CONNECTION_TYPE_SSL, (char *)"MN_PI_MAILBOX_CONNECTION_TYPE_SSL", (char *)"ssl" },
+	{ 0, NULL, NULL }
+};
+
+GType
+mn_pi_mailbox_connection_type_get_type (void)
+{
+	static GType type = 0;
+	if ___GOB_UNLIKELY(type == 0)
+		type = g_enum_register_static ("MNPIMailboxConnectionType", _mn_pi_mailbox_connection_type_values);
+	return type;
+}
+
+/* self casting macros */
+#define SELF(x) MN_PI_MAILBOX(x)
+#define SELF_CONST(x) MN_PI_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_PI_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_PI_MAILBOX
+#define SELF_CLASS(x) MN_PI_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_PI_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNPIMailbox Self;
+typedef MNPIMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_pi_mailbox_init (MNPIMailbox * o) G_GNUC_UNUSED;
+static void mn_pi_mailbox_class_init (MNPIMailboxClass * c) G_GNUC_UNUSED;
+static GObject * ___1_mn_pi_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___2_mn_pi_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___3_mn_pi_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_CONNECTION_TYPE,
+	PROP_AUTHMECH,
+	PROP_HOSTNAME,
+	PROP_PORT
+};
+
+/* pointer to the class of our parent */
+static MNAuthenticatedMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_split_uri mn_pi_mailbox_split_uri
+#define self_split_uri_auth mn_pi_mailbox_split_uri_auth
+#define self_split_uri_hostport mn_pi_mailbox_split_uri_hostport
+GType
+mn_pi_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNPIMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_pi_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNPIMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_pi_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNPIMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNPIMailbox *)g_object_new(mn_pi_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNPIMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNPIMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNPIMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNPIMailbox *)g_object_new_valist (mn_pi_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::finalize"
+	MNPIMailbox *self G_GNUC_UNUSED = MN_PI_MAILBOX (obj_self);
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 54 "mn-pi-mailbox.gob"
+	if(self->authmech) { g_free ((gpointer) self->authmech); self->authmech = NULL; }
+#line 141 "mn-pi-mailbox.c"
+#line 57 "mn-pi-mailbox.gob"
+	if(self->hostname) { g_free ((gpointer) self->hostname); self->hostname = NULL; }
+#line 144 "mn-pi-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_pi_mailbox_init (MNPIMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::init"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_pi_mailbox_class_init (MNPIMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)c;
+
+	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
+
+#line 68 "mn-pi-mailbox.gob"
+	g_object_class->constructor = ___1_mn_pi_mailbox_constructor;
+#line 82 "mn-pi-mailbox.gob"
+	mn_mailbox_class->seal = ___2_mn_pi_mailbox_seal;
+#line 98 "mn-pi-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_check = ___3_mn_pi_mailbox_impl_check;
+#line 170 "mn-pi-mailbox.c"
+	g_object_class->finalize = ___finalize;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_enum
+		("connection_type" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 MN_TYPE_PI_MAILBOX_CONNECTION_TYPE /* enum_type */,
+		 MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT | G_PARAM_CONSTRUCT));
+	g_object_class_install_property (g_object_class,
+		PROP_CONNECTION_TYPE,
+		param_spec);
+	param_spec = g_param_spec_string
+		("authmech" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_AUTHMECH,
+		param_spec);
+	param_spec = g_param_spec_string
+		("hostname" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 NULL /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_REQUIRED | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_HOSTNAME,
+		param_spec);
+	param_spec = g_param_spec_int
+		("port" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 0 /* minimum */,
+		 65535 /* maximum */,
+		 0 /* default_value */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | MN_MAILBOX_PARAM_PERMANENT));
+	g_object_class_install_property (g_object_class,
+		PROP_PORT,
+		param_spec);
+    }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::set_property"
+{
+	MNPIMailbox *self G_GNUC_UNUSED;
+
+	self = MN_PI_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_CONNECTION_TYPE:
+		{
+#line 49 "mn-pi-mailbox.gob"
+self->connection_type = g_value_get_enum (VAL);
+#line 236 "mn-pi-mailbox.c"
+		}
+		break;
+	case PROP_AUTHMECH:
+		{
+#line 55 "mn-pi-mailbox.gob"
+{ char *old = self->authmech; self->authmech = g_value_dup_string (VAL); g_free (old); }
+#line 243 "mn-pi-mailbox.c"
+		}
+		break;
+	case PROP_HOSTNAME:
+		{
+#line 58 "mn-pi-mailbox.gob"
+{ char *old = self->hostname; self->hostname = g_value_dup_string (VAL); g_free (old); }
+#line 250 "mn-pi-mailbox.c"
+		}
+		break;
+	case PROP_PORT:
+		{
+#line 61 "mn-pi-mailbox.gob"
+self->port = g_value_get_int (VAL);
+#line 257 "mn-pi-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::get_property"
+{
+	MNPIMailbox *self G_GNUC_UNUSED;
+
+	self = MN_PI_MAILBOX (object);
+
+	switch (property_id) {
+	case PROP_CONNECTION_TYPE:
+		{
+#line 49 "mn-pi-mailbox.gob"
+g_value_set_enum (VAL, self->connection_type);
+#line 288 "mn-pi-mailbox.c"
+		}
+		break;
+	case PROP_AUTHMECH:
+		{
+#line 55 "mn-pi-mailbox.gob"
+g_value_set_string (VAL, self->authmech);
+#line 295 "mn-pi-mailbox.c"
+		}
+		break;
+	case PROP_HOSTNAME:
+		{
+#line 58 "mn-pi-mailbox.gob"
+g_value_set_string (VAL, self->hostname);
+#line 302 "mn-pi-mailbox.c"
+		}
+		break;
+	case PROP_PORT:
+		{
+#line 61 "mn-pi-mailbox.gob"
+g_value_set_int (VAL, self->port);
+#line 309 "mn-pi-mailbox.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 68 "mn-pi-mailbox.gob"
+static GObject * 
+___1_mn_pi_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 329 "mn-pi-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): \
+		((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::constructor"
+{
+#line 70 "mn-pi-mailbox.gob"
+	
+    GObject *object;
+    MNMailbox *mailbox;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    mailbox = MN_MAILBOX(object);
+    
+    mn_mailbox_set_stock_id(mailbox, MN_STOCK_REMOTE);
+
+    return object;
+  }}
+#line 349 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 82 "mn-pi-mailbox.gob"
+static void 
+___2_mn_pi_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 356 "mn-pi-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::seal"
+{
+#line 84 "mn-pi-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+
+    PARENT_HANDLER(mailbox);
+
+    /* do not save default port to mailboxes.xml */
+    if (self->port == SELF_GET_CLASS(self)->default_ports[self->connection_type])
+      self->port = 0;
+    
+    self->runtime_port = self->port == 0
+      ? SELF_GET_CLASS(self)->default_ports[self->connection_type]
+      : self->port;
+  }}
+#line 377 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 98 "mn-pi-mailbox.gob"
+static void 
+___3_mn_pi_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 384 "mn-pi-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::impl_check"
+{
+#line 100 "mn-pi-mailbox.gob"
+	
+#ifndef WITH_SSL
+    Self *self = SELF(mailbox);
+#endif
+
+    PARENT_HANDLER(mailbox);
+
+#ifndef WITH_SSL
+    if (self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
+	|| self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL)
+      {
+	GDK_THREADS_ENTER();
+
+	mn_mailbox_set_error(MN_MAILBOX(mailbox), _("SSL/TLS support has not been compiled in"));
+	mn_mailbox_set_must_poll(MN_MAILBOX(mailbox), FALSE); /* disable the mailbox */
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+#endif
+  }}
+#line 413 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 122 "mn-pi-mailbox.gob"
+gboolean 
+mn_pi_mailbox_split_uri (const char * uri, int maxlen, char * scheme, char * auth, char * location, gboolean * has_auth)
+#line 420 "mn-pi-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::split_uri"
+#line 122 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (uri != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (scheme != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (auth != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (location != NULL, (gboolean )0);
+#line 122 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (has_auth != NULL, (gboolean )0);
+#line 433 "mn-pi-mailbox.c"
+{
+#line 129 "mn-pi-mailbox.gob"
+	
+    char *pat;
+    int n;
+
+    pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", maxlen, maxlen, maxlen);
+    n = sscanf(uri, pat, scheme, auth, location);
+    g_free(pat);
+
+    if (n >= 2)
+      {
+	*has_auth = n == 3;
+	
+	if (! *has_auth)
+	  strcpy(location, auth);
+
+	return TRUE;
+      }
+    else
+      return FALSE;
+  }}
+#line 456 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 150 "mn-pi-mailbox.gob"
+gboolean 
+mn_pi_mailbox_split_uri_auth (const char * auth, int maxlen, char * username, char * authmech, gboolean * has_username, gboolean * has_authmech)
+#line 462 "mn-pi-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::split_uri_auth"
+#line 150 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (auth != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (username != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (authmech != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (has_username != NULL, (gboolean )0);
+#line 150 "mn-pi-mailbox.gob"
+	g_return_val_if_fail (has_authmech != NULL, (gboolean )0);
+#line 475 "mn-pi-mailbox.c"
+{
+#line 157 "mn-pi-mailbox.gob"
+	
+    char *pat;
+    int n;
+
+    pat = g_strdup_printf("%%%i[^;];AUTH=%%%is", maxlen, maxlen);
+    n = sscanf(auth, pat, username, authmech);
+    g_free(pat);
+
+    *has_username = FALSE;
+    *has_authmech = FALSE;
+
+    if (n >= 1)
+      {
+	*has_username = TRUE;
+
+	if (n == 2)
+	  *has_authmech = TRUE;
+      }
+    else
+      {
+	pat = g_strdup_printf(";AUTH=%%%is", maxlen);
+	n = sscanf(auth, pat, authmech);
+	g_free(pat);
+	
+	if (n < 1)
+	  return FALSE;
+
+	*has_authmech = TRUE;
+      }
+
+    return TRUE;
+  }}
+#line 510 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 190 "mn-pi-mailbox.gob"
+void 
+mn_pi_mailbox_split_uri_hostport (const char * hostport, int maxlen, char * hostname, int * port)
+#line 516 "mn-pi-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:PI:Mailbox::split_uri_hostport"
+#line 190 "mn-pi-mailbox.gob"
+	g_return_if_fail (hostport != NULL);
+#line 190 "mn-pi-mailbox.gob"
+	g_return_if_fail (hostname != NULL);
+#line 190 "mn-pi-mailbox.gob"
+	g_return_if_fail (port != NULL);
+#line 525 "mn-pi-mailbox.c"
+{
+#line 195 "mn-pi-mailbox.gob"
+	
+    char *pat;
+    int n;
+
+    /* split host:port part in 2 subparts: host and port */
+
+    pat = g_strdup_printf("[%%%i[^]]]:%%u", maxlen);
+    n = sscanf(hostport, pat, hostname, port);
+    g_free(pat);
+
+    if (n < 1)
+      {
+	pat = g_strdup_printf("%%%i[^:]:%%u", maxlen);
+	n = sscanf(hostport, pat, hostname, port);
+	g_free(pat);
+      }
+
+    g_assert(n >= 1);
+
+    if (n < 2)
+      *port = 0;
+  }}
+#line 550 "mn-pi-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-pi-mailbox.gob b/src/mn-pi-mailbox.gob
@@ -0,0 +1,217 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-authenticated-mailbox.h"
+%}
+
+%h{
+#define MN_PI_MAILBOX_N_CONNECTION_TYPES	3
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+#include "mn-stock.h"
+%}
+
+enum MN_PI_MAILBOX_CONNECTION_TYPE
+{
+  NORMAL,
+  INBAND_SSL,
+  SSL,
+} MN:PI:Mailbox:Connection:Type;
+
+class MN:PI:Mailbox from MN:Authenticated:Mailbox
+{
+  classwide int *default_ports;
+
+  public MNPIMailboxConnectionType connection_type;
+  property ENUM connection_type (link,
+				 enum_type = MN:PI:Mailbox:Connection:Type,
+				 flags = CONSTRUCT | MN_MAILBOX_PARAM_PERMANENT,
+				 default_value = MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL);
+
+  public char *authmech destroywith g_free;
+  property STRING authmech (link, flags = MN_MAILBOX_PARAM_PERMANENT);
+
+  public char *hostname destroywith g_free;
+  property STRING hostname (link, flags = MN_MAILBOX_PARAM_PERMANENT | MN_MAILBOX_PARAM_REQUIRED);
+
+  public int port;
+  property INT port (link,
+		     flags = MN_MAILBOX_PARAM_PERMANENT,
+		     minimum = 0,
+		     maximum = 65535);
+
+  public int runtime_port;
+
+  override (G:Object) GObject *
+    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  {
+    GObject *object;
+    MNMailbox *mailbox;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    mailbox = MN_MAILBOX(object);
+    
+    mn_mailbox_set_stock_id(mailbox, MN_STOCK_REMOTE);
+
+    return object;
+  }
+
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
+  {
+    Self *self = SELF(mailbox);
+
+    PARENT_HANDLER(mailbox);
+
+    /* do not save default port to mailboxes.xml */
+    if (self->port == SELF_GET_CLASS(self)->default_ports[self->connection_type])
+      self->port = 0;
+    
+    self->runtime_port = self->port == 0
+      ? SELF_GET_CLASS(self)->default_ports[self->connection_type]
+      : self->port;
+  }
+
+  override (MN:Authenticated:Mailbox) void
+    impl_check (MNAuthenticatedMailbox *mailbox)
+  {
+#ifndef WITH_SSL
+    Self *self = SELF(mailbox);
+#endif
+
+    PARENT_HANDLER(mailbox);
+
+#ifndef WITH_SSL
+    if (self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
+	|| self->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL)
+      {
+	GDK_THREADS_ENTER();
+
+	mn_mailbox_set_error(MN_MAILBOX(mailbox), _("SSL/TLS support has not been compiled in"));
+	mn_mailbox_set_must_poll(MN_MAILBOX(mailbox), FALSE); /* disable the mailbox */
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+#endif
+  }
+
+  protected gboolean
+    split_uri (const char *uri (check null),
+	       int maxlen,
+	       char *scheme (check null),
+	       char *auth (check null),
+	       char *location (check null),
+	       gboolean *has_auth (check null))
+  {
+    char *pat;
+    int n;
+
+    pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", maxlen, maxlen, maxlen);
+    n = sscanf(uri, pat, scheme, auth, location);
+    g_free(pat);
+
+    if (n >= 2)
+      {
+	*has_auth = n == 3;
+	
+	if (! *has_auth)
+	  strcpy(location, auth);
+
+	return TRUE;
+      }
+    else
+      return FALSE;
+  }
+  
+  protected gboolean
+    split_uri_auth (const char *auth (check null),
+		    int maxlen,
+		    char *username (check null),
+		    char *authmech (check null),
+		    gboolean *has_username (check null),
+		    gboolean *has_authmech (check null))
+  {
+    char *pat;
+    int n;
+
+    pat = g_strdup_printf("%%%i[^;];AUTH=%%%is", maxlen, maxlen);
+    n = sscanf(auth, pat, username, authmech);
+    g_free(pat);
+
+    *has_username = FALSE;
+    *has_authmech = FALSE;
+
+    if (n >= 1)
+      {
+	*has_username = TRUE;
+
+	if (n == 2)
+	  *has_authmech = TRUE;
+      }
+    else
+      {
+	pat = g_strdup_printf(";AUTH=%%%is", maxlen);
+	n = sscanf(auth, pat, authmech);
+	g_free(pat);
+	
+	if (n < 1)
+	  return FALSE;
+
+	*has_authmech = TRUE;
+      }
+
+    return TRUE;
+  }
+  
+  protected void
+    split_uri_hostport (const char *hostport (check null),
+			int maxlen,
+			char *hostname (check null),
+			int *port (check null))
+  {
+    char *pat;
+    int n;
+
+    /* split host:port part in 2 subparts: host and port */
+
+    pat = g_strdup_printf("[%%%i[^]]]:%%u", maxlen);
+    n = sscanf(hostport, pat, hostname, port);
+    g_free(pat);
+
+    if (n < 1)
+      {
+	pat = g_strdup_printf("%%%i[^:]:%%u", maxlen);
+	n = sscanf(hostport, pat, hostname, port);
+	g_free(pat);
+      }
+
+    g_assert(n >= 1);
+
+    if (n < 2)
+      *port = 0;
+  }
+}
diff --git a/src/mn-pi-mailbox.h b/src/mn-pi-mailbox.h
@@ -0,0 +1,101 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-authenticated-mailbox.h"
+
+#ifndef __MN_PI_MAILBOX_H__
+#define __MN_PI_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+#define MN_PI_MAILBOX_N_CONNECTION_TYPES	3
+
+
+typedef enum {
+	MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL,
+	MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL,
+	MN_PI_MAILBOX_CONNECTION_TYPE_SSL
+} MNPIMailboxConnectionType;
+#define MN_TYPE_PI_MAILBOX_CONNECTION_TYPE mn_pi_mailbox_connection_type_get_type()
+GType mn_pi_mailbox_connection_type_get_type (void);
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_PI_MAILBOX	(mn_pi_mailbox_get_type())
+#define MN_PI_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pi_mailbox_get_type(), MNPIMailbox)
+#define MN_PI_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pi_mailbox_get_type(), MNPIMailbox const)
+#define MN_PI_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_pi_mailbox_get_type(), MNPIMailboxClass)
+#define MN_IS_PI_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_pi_mailbox_get_type ())
+
+#define MN_PI_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_pi_mailbox_get_type(), MNPIMailboxClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_PI_MAILBOX__
+#define __TYPEDEF_MN_PI_MAILBOX__
+typedef struct _MNPIMailbox MNPIMailbox;
+#endif
+struct _MNPIMailbox {
+	MNAuthenticatedMailbox __parent__;
+	/*< public >*/
+	MNPIMailboxConnectionType connection_type;
+	char * authmech;
+	char * hostname;
+	int port;
+	int runtime_port;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNPIMailboxClass MNPIMailboxClass;
+struct _MNPIMailboxClass {
+	MNAuthenticatedMailboxClass __parent__;
+	int * default_ports;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_pi_mailbox_get_type	(void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_PI_MAILBOX_PROP_CONNECTION_TYPE(arg)    	"connection_type", __extension__ ({gint z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_CONNECTION_TYPE(arg)	"connection_type", __extension__ ({gint *z = (arg); z;})
+#define MN_PI_MAILBOX_PROP_AUTHMECH(arg)    	"authmech", __extension__ ({gchar *z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_AUTHMECH(arg)	"authmech", __extension__ ({gchar **z = (arg); z;})
+#define MN_PI_MAILBOX_PROP_HOSTNAME(arg)    	"hostname", __extension__ ({gchar *z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_HOSTNAME(arg)	"hostname", __extension__ ({gchar **z = (arg); z;})
+#define MN_PI_MAILBOX_PROP_PORT(arg)    	"port", __extension__ ({gint z = (arg); z;})
+#define MN_PI_MAILBOX_GET_PROP_PORT(arg)	"port", __extension__ ({gint *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_PI_MAILBOX_PROP_CONNECTION_TYPE(arg)    	"connection_type",(gint )(arg)
+#define MN_PI_MAILBOX_GET_PROP_CONNECTION_TYPE(arg)	"connection_type",(gint *)(arg)
+#define MN_PI_MAILBOX_PROP_AUTHMECH(arg)    	"authmech",(gchar *)(arg)
+#define MN_PI_MAILBOX_GET_PROP_AUTHMECH(arg)	"authmech",(gchar **)(arg)
+#define MN_PI_MAILBOX_PROP_HOSTNAME(arg)    	"hostname",(gchar *)(arg)
+#define MN_PI_MAILBOX_GET_PROP_HOSTNAME(arg)	"hostname",(gchar **)(arg)
+#define MN_PI_MAILBOX_PROP_PORT(arg)    	"port",(gint )(arg)
+#define MN_PI_MAILBOX_GET_PROP_PORT(arg)	"port",(gint *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-pop3-mailbox-private.h b/src/mn-pop3-mailbox-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_POP3_MAILBOX_PRIVATE_H__
 #define __MN_POP3_MAILBOX_PRIVATE_H__
@@ -10,9 +10,9 @@ extern "C" {
 #endif /* __cplusplus */
 
 struct _MNPOP3MailboxPrivate {
-#line 117 "mn-pop3-mailbox.gob"
+#line 127 "mn-pop3-mailbox.gob"
 	int login_delay;
-#line 118 "mn-pop3-mailbox.gob"
+#line 128 "mn-pop3-mailbox.gob"
 	GTimer * authentication_timer;
 #line 18 "mn-pop3-mailbox-private.h"
 };
diff --git a/src/mn-pop3-mailbox-properties-private.h b/src/mn-pop3-mailbox-properties-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_POP3_MAILBOX_PROPERTIES_PRIVATE_H__
 #define __MN_POP3_MAILBOX_PROPERTIES_PRIVATE_H__
diff --git a/src/mn-pop3-mailbox-properties.c b/src/mn-pop3-mailbox-properties.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:26 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:55 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,18 +23,19 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 24 "mn-pop3-mailbox-properties.gob"
+#line 25 "mn-pop3-mailbox-properties.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
 #include "mn-util.h"
+#include "mn-authenticated-mailbox-properties-private.h"
 #include "mn-pi-mailbox-properties-private.h"
 #include "mn-properties-dialog.h"
+#include "mn-pop3-mailbox.h"
 
-#line 38 "mn-pop3-mailbox-properties.c"
+#line 39 "mn-pop3-mailbox-properties.c"
 /* self casting macros */
 #define SELF(x) MN_POP3_MAILBOX_PROPERTIES(x)
 #define SELF_CONST(x) MN_POP3_MAILBOX_PROPERTIES_CONST(x)
@@ -50,35 +51,18 @@ typedef MNPOP3MailboxPropertiesClass SelfClass;
 
 /* here are local prototypes */
 static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * o) G_GNUC_UNUSED;
 static void mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_pop3_mailbox_properties_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * self) G_GNUC_UNUSED;
 
 enum {
 	PROP_0,
-	PROP_COMPLETE
+	PROP_COMPLETE,
+	PROP_DEFAULT_NAME
 };
 
 /* pointer to the class of our parent */
 static MNPIMailboxPropertiesClass *parent_class = NULL;
 
-/* Short form macros */
-#define self_set_uri mn_pop3_mailbox_properties_set_uri
-#define self_get_uri mn_pop3_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 96 "mn-pop3-mailbox-properties.gob"
-	iface->set_uri = self_set_uri;
-#line 116 "mn-pop3-mailbox-properties.gob"
-	iface->get_uri = self_get_uri;
-#line 80 "mn-pop3-mailbox-properties.c"
-}
-
 GType
 mn_pop3_mailbox_properties_get_type (void)
 {
@@ -98,16 +82,7 @@ mn_pop3_mailbox_properties_get_type (void)
 			NULL
 		};
 
-		static const GInterfaceInfo MN_Mailbox_Properties_info = {
-			(GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
-			NULL,
-			NULL
-		};
-
 		type = g_type_register_static (MN_TYPE_PI_MAILBOX_PROPERTIES, "MNPOP3MailboxProperties", &info, (GTypeFlags)0);
-		g_type_add_interface_static (type,
-			MN_TYPE_MAILBOX_PROPERTIES,
-			&MN_Mailbox_Properties_info);
 	}
 
 	return type;
@@ -130,41 +105,56 @@ GET_NEW_VARG (const char *first, ...)
 	return ret;
 }
 
-static void 
-mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::init"
-}
-#undef __GOB_FUNCTION__
-#line 63 "mn-pop3-mailbox-properties.gob"
+#line 79 "mn-pop3-mailbox-properties.gob"
 static void 
 mn_pop3_mailbox_properties_class_init (MNPOP3MailboxPropertiesClass * class G_GNUC_UNUSED)
-#line 143 "mn-pop3-mailbox-properties.c"
+#line 112 "mn-pop3-mailbox-properties.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
 
 	parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX_PROPERTIES);
 
-#line 72 "mn-pop3-mailbox-properties.gob"
-	g_object_class->constructor = ___2_mn_pop3_mailbox_properties_constructor;
-#line 152 "mn-pop3-mailbox-properties.c"
 	g_object_class->get_property = ___object_get_property;
     {
 	g_object_class_override_property (g_object_class,
 		PROP_COMPLETE,
 		"complete");
+	g_object_class_override_property (g_object_class,
+		PROP_DEFAULT_NAME,
+		"default_name");
     }
  {
-#line 64 "mn-pop3-mailbox-properties.gob"
+#line 80 "mn-pop3-mailbox-properties.gob"
 
-    MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-    pi_class->label = "POP3";
-    pi_class->default_port[0] = mn_uri_get_default_port("pop");
-    pi_class->default_port[1] = mn_uri_get_default_port("pops");
+    p_class->type = "pop3";
+    p_class->combo_label = "POP3";
   
-#line 168 "mn-pop3-mailbox-properties.c"
+#line 136 "mn-pop3-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 87 "mn-pop3-mailbox-properties.gob"
+static void 
+mn_pop3_mailbox_properties_init (MNPOP3MailboxProperties * self G_GNUC_UNUSED)
+#line 143 "mn-pop3-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::init"
+ {
+#line 88 "mn-pop3-mailbox-properties.gob"
+
+    MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+    int i;
+
+    mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
+    mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
+
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+      gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_pop3_mailbox_default_ports[i]);
+  
+#line 158 "mn-pop3-mailbox-properties.c"
  }
 }
 #undef __GOB_FUNCTION__
@@ -183,31 +173,48 @@ ___object_get_property (GObject *object,
 	switch (property_id) {
 	case PROP_COMPLETE:
 		{
-#line 39 "mn-pop3-mailbox-properties.gob"
+#line 41 "mn-pop3-mailbox-properties.gob"
 
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
-      const char *username;
       const char *hostname;
       
       mn_pi_mailbox_properties_get_contents(pi,
 					    NULL,
 					    NULL,
-					    &username,
-					    NULL,
-					    NULL,
 					    &hostname,
 					    NULL);
 
-      complete = *username && *hostname;
+      complete = *hostname != 0;
 #ifndef WITH_SSL
       if (complete)
-	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
 #endif /* WITH_SSL */
 
       g_value_set_boolean(VAL, complete);
     
-#line 211 "mn-pop3-mailbox-properties.c"
+#line 197 "mn-pop3-mailbox-properties.c"
+		}
+		break;
+	case PROP_DEFAULT_NAME:
+		{
+#line 63 "mn-pop3-mailbox-properties.gob"
+
+      const char *username;
+      const char *hostname;
+
+      mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+						       &username,
+						       NULL);
+      mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+					    NULL,
+					    NULL,
+					    &hostname,
+					    NULL);
+
+      g_value_take_string(VAL, mn_pop3_mailbox_build_name(username, hostname));
+    
+#line 218 "mn-pop3-mailbox-properties.c"
 		}
 		break;
 	default:
@@ -223,116 +230,3 @@ ___object_get_property (GObject *object,
 #undef __GOB_FUNCTION__
 
 
-
-#line 72 "mn-pop3-mailbox-properties.gob"
-static GObject * 
-___2_mn_pop3_mailbox_properties_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 231 "mn-pop3-mailbox-properties.c"
-#define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
-	((G_OBJECT_CLASS(parent_class)->constructor)? \
-		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::constructor"
-{
-#line 74 "mn-pop3-mailbox-properties.gob"
-	
-    GObject *object;
-    Self *self;
-    MNPIMailboxProperties *pi;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-    pi = MN_PI_MAILBOX_PROPERTIES(object);
-
-    mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
-    mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
-
-    mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
-				      pi->username_entry, _("Your username on the POP3 server"),
-				      pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
-				      pi->port_spin[0], _("The port number of the POP3 server"),
-				      pi->port_spin[1], _("The port number of the POP3 server"),
-				      NULL);
-
-    return object;
-  }}
-#line 261 "mn-pop3-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 96 "mn-pop3-mailbox-properties.gob"
-static gboolean 
-mn_pop3_mailbox_properties_set_uri (MNMailboxProperties * properties, MNURI * uri)
-#line 268 "mn-pop3-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::set_uri"
-#line 96 "mn-pop3-mailbox-properties.gob"
-	g_return_val_if_fail (properties != NULL, (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 96 "mn-pop3-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 279 "mn-pop3-mailbox-properties.c"
-{
-#line 99 "mn-pop3-mailbox-properties.gob"
-	
-    if (MN_URI_IS_POP(uri))
-      {
-	mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					      MN_URI_IS_SSL(uri),
-					      MN_URI_IS_INBAND_SSL(uri),
-					      uri->username,
-					      uri->password,
-					      uri->authmech,
-					      uri->hostname,
-					      uri->port);
-	return TRUE;
-      }
-    else
-      return FALSE;
-  }}
-#line 298 "mn-pop3-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 116 "mn-pop3-mailbox-properties.gob"
-static MNURI * 
-mn_pop3_mailbox_properties_get_uri (MNMailboxProperties * properties)
-#line 304 "mn-pop3-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox:Properties::get_uri"
-#line 116 "mn-pop3-mailbox-properties.gob"
-	g_return_val_if_fail (properties != NULL, (MNURI * )0);
-#line 116 "mn-pop3-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (properties), (MNURI * )0);
-#line 311 "mn-pop3-mailbox-properties.c"
-{
-#line 118 "mn-pop3-mailbox-properties.gob"
-	
-    gboolean ssl;
-    gboolean inband_ssl;
-    const char *username;
-    const char *password;
-    char *authmech;
-    const char *hostname;
-    int port;
-    MNURI *uri;
-
-    mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					  &ssl,
-					  &inband_ssl,
-					  &username,
-					  &password,
-					  &authmech,
-					  &hostname,
-					  &port);
-
-    uri = mn_uri_new_pop(ssl, inband_ssl, username, password, authmech, hostname, port);
-    g_free(authmech);
-
-    return uri;
-  }}
-#line 338 "mn-pop3-mailbox-properties.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox-properties.gob b/src/mn-pop3-mailbox-properties.gob
@@ -16,127 +16,83 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include "mn-pi-mailbox-properties.h"
 %}
+
 %{
 #include "config.h"
 #include <glib/gi18n.h>
 #include "mn-mailbox-properties.h"
-#include "mn-mailbox-properties-util.h"
 #include "mn-auth-combo-box.h"
 #include "mn-util.h"
+#include "mn-authenticated-mailbox-properties-private.h"
 #include "mn-pi-mailbox-properties-private.h"
 #include "mn-properties-dialog.h"
+#include "mn-pop3-mailbox.h"
 %}
 
-class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties (interface MN:Mailbox:Properties)
+class MN:POP3:Mailbox:Properties from MN:PI:Mailbox:Properties
 {
   property BOOLEAN complete (override)
     get
     {
       MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
       gboolean complete;
-      const char *username;
       const char *hostname;
       
       mn_pi_mailbox_properties_get_contents(pi,
 					    NULL,
 					    NULL,
-					    &username,
-					    NULL,
-					    NULL,
 					    &hostname,
 					    NULL);
 
-      complete = *username && *hostname;
+      complete = *hostname != 0;
 #ifndef WITH_SSL
       if (complete)
-	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[0]));
+	complete = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(pi->conn_radio[MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL]));
 #endif /* WITH_SSL */
 
       g_value_set_boolean(VAL, complete);
     };
+
+  property STRING default_name (override)
+    get
+    {
+      const char *username;
+      const char *hostname;
+
+      mn_authenticated_mailbox_properties_get_contents(MN_AUTHENTICATED_MAILBOX_PROPERTIES(self),
+						       &username,
+						       NULL);
+      mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(self),
+					    NULL,
+					    NULL,
+					    &hostname,
+					    NULL);
+
+      g_value_take_string(VAL, mn_pop3_mailbox_build_name(username, hostname));
+    };
   
   class_init (class)
   {
-    MNPIMailboxPropertiesClass *pi_class = MN_PI_MAILBOX_PROPERTIES_CLASS(class);
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
 
-    pi_class->label = "POP3";
-    pi_class->default_port[0] = mn_uri_get_default_port("pop");
-    pi_class->default_port[1] = mn_uri_get_default_port("pops");
+    p_class->type = "pop3";
+    p_class->combo_label = "POP3";
   }
   
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  init (self)
   {
-    GObject *object;
-    Self *self;
-    MNPIMailboxProperties *pi;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = SELF(object);
-    pi = MN_PI_MAILBOX_PROPERTIES(object);
+    MNPIMailboxProperties *pi = MN_PI_MAILBOX_PROPERTIES(self);
+    int i;
 
     mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+APOP", "APOP");
     mn_auth_combo_box_append(MN_AUTH_COMBO_BOX(pi->auth_combo), "+USERPASS", "USER/PASS");
 
-    mn_properties_dialog_set_tooltips(pi->hostname_entry, _("The hostname or IP address of the POP3 server"),
-				      pi->username_entry, _("Your username on the POP3 server"),
-				      pi->password_entry, _("Your password on the POP3 server (if left blank, you will be prompted for the password when needed)"),
-				      pi->port_spin[0], _("The port number of the POP3 server"),
-				      pi->port_spin[1], _("The port number of the POP3 server"),
-				      NULL);
-
-    return object;
-  }
-  
-  interface MN:Mailbox:Properties private gboolean
-    set_uri (MN:Mailbox:Properties *properties (check null type),
-	     MN:URI *uri (check null type))
-  {
-    if (MN_URI_IS_POP(uri))
-      {
-	mn_pi_mailbox_properties_set_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					      MN_URI_IS_SSL(uri),
-					      MN_URI_IS_INBAND_SSL(uri),
-					      uri->username,
-					      uri->password,
-					      uri->authmech,
-					      uri->hostname,
-					      uri->port);
-	return TRUE;
-      }
-    else
-      return FALSE;
-  }
-
-  interface MN:Mailbox:Properties private MNURI *
-    get_uri (MN:Mailbox:Properties *properties (check null type))
-  {
-    gboolean ssl;
-    gboolean inband_ssl;
-    const char *username;
-    const char *password;
-    char *authmech;
-    const char *hostname;
-    int port;
-    MNURI *uri;
-
-    mn_pi_mailbox_properties_get_contents(MN_PI_MAILBOX_PROPERTIES(properties),
-					  &ssl,
-					  &inband_ssl,
-					  &username,
-					  &password,
-					  &authmech,
-					  &hostname,
-					  &port);
-
-    uri = mn_uri_new_pop(ssl, inband_ssl, username, password, authmech, hostname, port);
-    g_free(authmech);
-
-    return uri;
+    for (i = 0; i < MN_PI_MAILBOX_N_CONNECTION_TYPES; i++)
+      gtk_spin_button_set_value(GTK_SPIN_BUTTON(pi->port_spin[i]), mn_pop3_mailbox_default_ports[i]);
   }
 }
diff --git a/src/mn-pop3-mailbox-properties.h b/src/mn-pop3-mailbox-properties.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -55,8 +55,10 @@ GType	mn_pop3_mailbox_properties_get_type	(void);
  */
 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
 #define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
 #else /* __GNUC__ && !__STRICT_ANSI__ */
 #define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_POP3_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
 #endif /* __GNUC__ && !__STRICT_ANSI__ */
 
 
diff --git a/src/mn-pop3-mailbox.c b/src/mn-pop3-mailbox.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:55 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -21,7 +21,7 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 33 "mn-pop3-mailbox.gob"
+#line 39 "mn-pop3-mailbox.gob"
 
 #include "config.h"
 #include <stdio.h>
@@ -32,78 +32,82 @@
 #include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
+#ifdef WITH_SASL
+#include <sasl/saslutil.h>
+#endif /* WITH_SASL */
 #include "mn-mailbox-private.h"
 #include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
 #include "mn-client-session.h"
 #include "mn-util.h"
 #include "mn-md5.h"
 #include "mn-message-mime.h"
 
-  enum
-  {
-    STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
-    STATE_CAPA,
+enum
+{
+  STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+  STATE_CAPA,
 #ifdef WITH_SSL
-    STATE_STLS,
+  STATE_STLS,
 #endif
 #ifdef WITH_SASL
-    STATE_AUTH,
+  STATE_AUTH,
 #endif
-    STATE_APOP,
-    STATE_USER,
-    STATE_PASS,
-    STATE_LIST,
-    STATE_RETR,
-    STATE_QUIT
-  };
-
-  enum
-  {
-    RESULT_ERROR_QUIT		= -1, /* server reported an error, quit normally */
-    RESULT_ERROR_END		= -2  /* server reported an error, close the connection */
-  };
-
-  struct _MNClientSessionPrivate
-  {
-    MNMailbox			*mailbox;
-    MNAuthenticatedMailbox	*authenticated_mailbox;
-    MNPOP3Mailbox		*self;
-    MNClientSession		*session;
-    gboolean			in_list;
-    gboolean			in_retr;
-    char			*apop_timestamp;
-    GSList			*auth_mechanisms;
+  STATE_APOP,
+  STATE_USER,
+  STATE_PASS,
+  STATE_LIST,
+  STATE_RETR_TOP,
+  STATE_QUIT
+};
+
+struct _MNClientSessionPrivate
+{
+  MNMailbox			*mailbox;
+  MNAuthenticatedMailbox	*authenticated_mailbox;
+  MNPIMailbox			*pi_mailbox;
+  MNPOP3Mailbox			*self;
+  MNClientSession		*session;
+  gboolean			in_list;
+  gboolean			in_retr_top;
+  char				*apop_timestamp;
+  GSList			*auth_mechanisms;
+  gboolean			top_supported;
 #ifdef WITH_SSL
-    gboolean			stls_supported;
-    gboolean			stls_completed;
+  gboolean			stls_supported;
+  gboolean			stls_completed;
 #endif
 #ifdef WITH_SASL
-    const char			*sasl_mechanism;
+  GSList			*sasl_remaining_mechanisms;
+  const char			*sasl_mechanism;
+  gboolean			sasl_had_clientout;
 #endif
-    gboolean			authenticated;
-    gboolean			login_delay_user;
-    GSList			*message_numbers;
-    GSList			*current_message_number;
-    GSList			*messages;
-    GString			*current_message;
-  };
-
-  typedef enum
-  {
-    RESPONSE_OK,
-    RESPONSE_ERR,
-    RESPONSE_LIST_ITEM,
-    RESPONSE_LIST_END,
-    RESPONSE_CONTINUATION
-  } ResponseType;
-
-  struct _MNClientSessionResponse
-  {
-    ResponseType	type;
-    char		*arguments;
-  };
-
-#line 107 "mn-pop3-mailbox.c"
+  gboolean			authenticated;
+  gboolean			login_delay_user;
+  GSList			*message_numbers;
+  GSList			*current_message_number;
+  GSList			*messages;
+  GString			*current_message;
+};
+
+typedef enum
+{
+  RESPONSE_OK,
+  RESPONSE_ERR,
+  RESPONSE_LIST_ITEM,
+  RESPONSE_LIST_END,
+  RESPONSE_CONTINUATION
+} ResponseType;
+
+struct _MNClientSessionResponse
+{
+  ResponseType	type;
+  char		*arguments;
+};
+
+int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 110, 110, 995 };
+
+#line 111 "mn-pop3-mailbox.c"
 /* self casting macros */
 #define SELF(x) MN_POP3_MAILBOX(x)
 #define SELF_CONST(x) MN_POP3_MAILBOX_CONST(x)
@@ -121,14 +125,14 @@ typedef MNPOP3MailboxClass SelfClass;
 static void mn_pop3_mailbox_init (MNPOP3Mailbox * o) G_GNUC_UNUSED;
 static void mn_pop3_mailbox_class_init (MNPOP3MailboxClass * class) G_GNUC_UNUSED;
 static GObject * ___2_mn_pop3_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_pop3_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
+static void ___3_mn_pop3_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___4_mn_pop3_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_capa_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_pop3_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static const char * mn_pop3_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
@@ -139,24 +143,23 @@ static int mn_pop3_mailbox_enter_pass_cb (MNClientSession * session, MNClientSes
 static int mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_pop3_mailbox_enter_retr_top_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static int mn_pop3_mailbox_handle_retr_top_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void ___19_mn_pop3_mailbox_impl_check (MNAuthenticatedMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static MNClientSessionResponse * mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static void mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static int mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_apop, gboolean tried_pass) G_GNUC_UNUSED;
 static int mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response) G_GNUC_UNUSED;
-static void mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean retr) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response) G_GNUC_UNUSED;
+static void mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean in_retr_top) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
-static MNAuthenticatedMailboxClass *parent_class = NULL;
+static MNPIMailboxClass *parent_class = NULL;
 
 /* Short form macros */
 #define self_handle_greeting_cb mn_pop3_mailbox_handle_greeting_cb
@@ -164,8 +167,7 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
 #define self_handle_capa_cb mn_pop3_mailbox_handle_capa_cb
 #define self_enter_stls_cb mn_pop3_mailbox_enter_stls_cb
 #define self_handle_stls_cb mn_pop3_mailbox_handle_stls_cb
-#define self_sasl_get_username_cb mn_pop3_mailbox_sasl_get_username_cb
-#define self_sasl_get_password_cb mn_pop3_mailbox_sasl_get_password_cb
+#define self_sasl_get_credentials_cb mn_pop3_mailbox_sasl_get_credentials_cb
 #define self_enter_auth_cb mn_pop3_mailbox_enter_auth_cb
 #define self_handle_auth_cb mn_pop3_mailbox_handle_auth_cb
 #define self_enter_apop_cb mn_pop3_mailbox_enter_apop_cb
@@ -176,20 +178,20 @@ static MNAuthenticatedMailboxClass *parent_class = NULL;
 #define self_handle_pass_cb mn_pop3_mailbox_handle_pass_cb
 #define self_enter_list_cb mn_pop3_mailbox_enter_list_cb
 #define self_handle_list_cb mn_pop3_mailbox_handle_list_cb
-#define self_enter_retr_cb mn_pop3_mailbox_enter_retr_cb
-#define self_handle_retr_cb mn_pop3_mailbox_handle_retr_cb
+#define self_enter_retr_top_cb mn_pop3_mailbox_enter_retr_top_cb
+#define self_handle_retr_top_cb mn_pop3_mailbox_handle_retr_top_cb
 #define self_enter_quit_cb mn_pop3_mailbox_enter_quit_cb
 #define self_handle_quit_cb mn_pop3_mailbox_handle_quit_cb
 #define self_notice_cb mn_pop3_mailbox_notice_cb
 #define self_warning_cb mn_pop3_mailbox_warning_cb
 #define self_response_new_cb mn_pop3_mailbox_response_new_cb
 #define self_response_free_cb mn_pop3_mailbox_response_free_cb
-#define self_custom_handler_cb mn_pop3_mailbox_custom_handler_cb
 #define self_session_authenticate mn_pop3_mailbox_session_authenticate
 #define self_session_authenticate_fallback mn_pop3_mailbox_session_authenticate_fallback
 #define self_session_authenticated mn_pop3_mailbox_session_authenticated
 #define self_session_set_error_from_arguments mn_pop3_mailbox_session_set_error_from_arguments
 #define self_handle_list_response mn_pop3_mailbox_handle_list_response
+#define self_build_name mn_pop3_mailbox_build_name
 GType
 mn_pop3_mailbox_get_type (void)
 {
@@ -209,7 +211,7 @@ mn_pop3_mailbox_get_type (void)
 			NULL
 		};
 
-		type = g_type_register_static (MN_TYPE_AUTHENTICATED_MAILBOX, "MNPOP3Mailbox", &info, (GTypeFlags)0);
+		type = g_type_register_static (MN_TYPE_PI_MAILBOX, "MNPOP3Mailbox", &info, (GTypeFlags)0);
 	}
 
 	return type;
@@ -241,9 +243,9 @@ ___finalize(GObject *obj_self)
 	gpointer priv G_GNUC_UNUSED = self->_priv;
 	if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 118 "mn-pop3-mailbox.gob"
+#line 128 "mn-pop3-mailbox.gob"
 	if(self->_priv->authentication_timer) { g_timer_destroy ((gpointer) self->_priv->authentication_timer); self->_priv->authentication_timer = NULL; }
-#line 247 "mn-pop3-mailbox.c"
+#line 249 "mn-pop3-mailbox.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -251,46 +253,50 @@ static void
 mn_pop3_mailbox_init (MNPOP3Mailbox * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNPOP3MailboxPrivate);
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_POP3_MAILBOX,MNPOP3MailboxPrivate);
 }
 #undef __GOB_FUNCTION__
-#line 120 "mn-pop3-mailbox.gob"
+#line 130 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_class_init (MNPOP3MailboxClass * class G_GNUC_UNUSED)
-#line 261 "mn-pop3-mailbox.c"
+#line 263 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::class_init"
 	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
 	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+	MNAuthenticatedMailboxClass *mn_authenticated_mailbox_class = (MNAuthenticatedMailboxClass *)class;
 
 	g_type_class_add_private(class,sizeof(MNPOP3MailboxPrivate));
 
-	parent_class = g_type_class_ref (MN_TYPE_AUTHENTICATED_MAILBOX);
+	parent_class = g_type_class_ref (MN_TYPE_PI_MAILBOX);
 
-#line 125 "mn-pop3-mailbox.gob"
+#line 136 "mn-pop3-mailbox.gob"
 	g_object_class->constructor = ___2_mn_pop3_mailbox_constructor;
-#line 142 "mn-pop3-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_pop3_mailbox_impl_is;
-#line 602 "mn-pop3-mailbox.gob"
-	mn_mailbox_class->impl_check = ___19_mn_pop3_mailbox_impl_check;
-#line 277 "mn-pop3-mailbox.c"
+#line 150 "mn-pop3-mailbox.gob"
+	mn_mailbox_class->seal = ___3_mn_pop3_mailbox_seal;
+#line 163 "mn-pop3-mailbox.gob"
+	mn_mailbox_class->parse_uri = ___4_mn_pop3_mailbox_parse_uri;
+#line 772 "mn-pop3-mailbox.gob"
+	mn_authenticated_mailbox_class->impl_check = ___19_mn_pop3_mailbox_impl_check;
+#line 282 "mn-pop3-mailbox.c"
 	g_object_class->finalize = ___finalize;
  {
-#line 121 "mn-pop3-mailbox.gob"
+#line 131 "mn-pop3-mailbox.gob"
 
-    MN_MAILBOX_CLASS(class)->format = "POP3";
+    MN_MAILBOX_CLASS(class)->type = "pop3";
+    MN_PI_MAILBOX_CLASS(class)->default_ports = mn_pop3_mailbox_default_ports;
   
-#line 284 "mn-pop3-mailbox.c"
+#line 290 "mn-pop3-mailbox.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 125 "mn-pop3-mailbox.gob"
+#line 136 "mn-pop3-mailbox.gob"
 static GObject * 
 ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 294 "mn-pop3-mailbox.c"
+#line 300 "mn-pop3-mailbox.c"
 #define PARENT_HANDLER(___type,___n_construct_properties,___construct_params) \
 	((G_OBJECT_CLASS(parent_class)->constructor)? \
 		(* G_OBJECT_CLASS(parent_class)->constructor)(___type,___n_construct_properties,___construct_params): \
@@ -298,7 +304,7 @@ ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::constructor"
 {
-#line 127 "mn-pop3-mailbox.gob"
+#line 138 "mn-pop3-mailbox.gob"
 	
     GObject *object;
     MNMailbox *mailbox;
@@ -306,56 +312,125 @@ ___2_mn_pop3_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_const
     object = PARENT_HANDLER(type, n_construct_properties, construct_params);
     mailbox = MN_MAILBOX(object);
 
-#ifndef WITH_SSL
-    if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
-      mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
-  
+    mn_mailbox_set_format(mailbox, "POP3");
+
     return object;
   }}
-#line 317 "mn-pop3-mailbox.c"
+#line 320 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 142 "mn-pop3-mailbox.gob"
-static gboolean 
-___3_mn_pop3_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 324 "mn-pop3-mailbox.c"
+#line 150 "mn-pop3-mailbox.gob"
+static void 
+___3_mn_pop3_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 327 "mn-pop3-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::seal"
+{
+#line 152 "mn-pop3-mailbox.gob"
+	
+    PARENT_HANDLER(mailbox);
+
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+					      MN_PI_MAILBOX(mailbox)->hostname);
+  }}
+#line 342 "mn-pop3-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 163 "mn-pop3-mailbox.gob"
+static MNMailbox * 
+___4_mn_pop3_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 349 "mn-pop3-mailbox.c"
 #define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_is"
-#line 142 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 142 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 335 "mn-pop3-mailbox.c"
-{
-#line 144 "mn-pop3-mailbox.gob"
+	((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+		(* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::parse_uri"
+{
+#line 165 "mn-pop3-mailbox.gob"
 	
-    return MN_URI_IS_POP(uri);
+    int len;
+    int buflen;
+    char *username = NULL;
+    char *authmech = NULL;
+    char *hostname;
+    int port;
+    MNMailbox *mailbox;
+
+    len = strlen(uri);
+    buflen = len + 1;
+    
+    {
+      char scheme_buf[buflen];
+      char auth_buf[buflen];
+      char location_buf[buflen];
+      char username_buf[buflen];
+      char authmech_buf[buflen];
+      char hostname_buf[buflen];
+      gboolean has_auth;
+      gboolean has_username = FALSE;
+      gboolean has_authmech = FALSE;
+
+      if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+	return NULL;
+
+      if (strcmp(scheme_buf, "pop"))
+	return NULL;
+
+      if (has_auth)
+	{
+	  if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+	    return NULL;
+
+	  if (has_authmech)
+	    {
+	      if (! has_username)
+		return NULL;	/* see user-auth in RFC 2384 ABNF */
+	      if (! strcmp(authmech_buf, "*"))
+		has_authmech = FALSE;
+	    }
+	}
+
+      mn_pi_mailbox_split_uri_hostport(location_buf, len, hostname_buf, &port);
+
+      if (has_username)
+	username = gnome_vfs_unescape_string(username_buf, NULL);
+      if (has_authmech)
+	authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+      hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+    }
+
+    mailbox = mn_mailbox_new("pop3",
+			     "username", username,
+			     "authmech", authmech,
+			     "hostname", hostname,
+			     "port", port,
+			     NULL);
+
+    g_free(username);
+    g_free(authmech);
+    g_free(hostname);
+
+    return mailbox;
   }}
-#line 341 "mn-pop3-mailbox.c"
+#line 423 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 148 "mn-pop3-mailbox.gob"
+#line 231 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 348 "mn-pop3-mailbox.c"
+#line 430 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_greeting_cb"
-#line 148 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 148 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 148 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 357 "mn-pop3-mailbox.c"
 {
-#line 152 "mn-pop3-mailbox.gob"
+#line 235 "mn-pop3-mailbox.gob"
 	
     priv->session = session;
     
@@ -378,47 +453,39 @@ mn_pop3_mailbox_handle_greeting_cb (MNClientSession * session, MNClientSessionRe
 	  }
 	return STATE_CAPA;
 	
-      case RESPONSE_ERR:	return RESULT_ERROR_END;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_ERR:
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 386 "mn-pop3-mailbox.c"
+#line 465 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 179 "mn-pop3-mailbox.gob"
+#line 266 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_capa_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 392 "mn-pop3-mailbox.c"
+#line 471 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_capa_cb"
-#line 179 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 179 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 399 "mn-pop3-mailbox.c"
 {
-#line 182 "mn-pop3-mailbox.gob"
+#line 269 "mn-pop3-mailbox.gob"
 	
     return mn_client_session_write(session, "CAPA");
   }}
-#line 405 "mn-pop3-mailbox.c"
+#line 479 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 186 "mn-pop3-mailbox.gob"
+#line 273 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 411 "mn-pop3-mailbox.c"
+#line 485 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_capa_cb"
-#line 186 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 186 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 186 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 420 "mn-pop3-mailbox.c"
 {
-#line 190 "mn-pop3-mailbox.gob"
+#line 277 "mn-pop3-mailbox.gob"
 	
     self_handle_list_response(priv, response, FALSE);
 
@@ -427,6 +494,11 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
       case RESPONSE_OK:
 	eel_g_slist_free_deep(priv->auth_mechanisms);
 	priv->auth_mechanisms = NULL;
+#ifdef WITH_SASL
+	g_slist_free(priv->sasl_remaining_mechanisms);
+	priv->sasl_remaining_mechanisms = NULL;
+#endif
+	priv->top_supported = FALSE;
 	priv->self->_priv->login_delay = 0;
 	priv->login_delay_user = FALSE;
 #ifdef WITH_SSL
@@ -441,15 +513,14 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
 	  return STATE_LIST;
 
 #ifdef WITH_SSL
-	if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
-	    && ! MN_URI_IS_SSL(priv->mailbox->uri)
+	if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
 	    && ! priv->stls_completed)
 	  {
 	    if (priv->stls_supported)
 	      return STATE_STLS;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
 		return STATE_QUIT;
 	      }
 	  }
@@ -472,6 +543,8 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
 		  for (i = 1; tokens[i]; i++)
 		    priv->auth_mechanisms = g_slist_append(priv->auth_mechanisms, g_strdup(tokens[i]));
 		}
+	      else if (! strcmp(tokens[0], "TOP"))
+		priv->top_supported = TRUE;
 #ifdef WITH_SSL
 	      else if (! strcmp(tokens[0], "STLS"))
 		priv->stls_supported = TRUE;
@@ -495,7 +568,7 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
 	  g_strfreev(tokens);
 	  
 	  if (login_delay_error)
-	    return mn_client_session_error(session, _("invalid arguments for the LOGIN-DELAY capability"));
+	    return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("invalid arguments for the LOGIN-DELAY capability"));
 	}
 	return MN_CLIENT_SESSION_RESULT_CONTINUE;
 	
@@ -503,22 +576,17 @@ mn_pop3_mailbox_handle_capa_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 507 "mn-pop3-mailbox.c"
+#line 580 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 275 "mn-pop3-mailbox.gob"
+#line 368 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 513 "mn-pop3-mailbox.c"
+#line 586 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_stls_cb"
-#line 275 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 275 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 520 "mn-pop3-mailbox.c"
 {
-#line 278 "mn-pop3-mailbox.gob"
+#line 371 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SSL
     return mn_client_session_write(session, "STLS");
@@ -526,24 +594,17 @@ mn_pop3_mailbox_enter_stls_cb (MNClientSession * session, MNClientSessionPrivate
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 530 "mn-pop3-mailbox.c"
+#line 598 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 286 "mn-pop3-mailbox.gob"
+#line 379 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 536 "mn-pop3-mailbox.c"
+#line 604 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_stls_cb"
-#line 286 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 286 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 286 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 545 "mn-pop3-mailbox.c"
 {
-#line 290 "mn-pop3-mailbox.gob"
+#line 383 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SSL
     switch (response->type)
@@ -551,8 +612,16 @@ mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionRespon
       case RESPONSE_OK:
 	priv->stls_completed = TRUE;
 	return mn_client_session_enable_ssl(session)
-	  ? STATE_CAPA
-	  : RESULT_ERROR_END;
+	  ? STATE_CAPA /* [1] */
+	  : MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+	/*
+	 * [1] RFC 2595 4:
+	 *
+	 * "Once TLS has been started, the client MUST discard cached
+	 * information about server capabilities and SHOULD re-issue
+	 * the CAPA command."
+	 */
 
       case RESPONSE_ERR:
 	return self_session_authenticate(priv);
@@ -564,110 +633,109 @@ mn_pop3_mailbox_handle_stls_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif /* WITH_SSL */
   }}
-#line 568 "mn-pop3-mailbox.c"
+#line 637 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 311 "mn-pop3-mailbox.gob"
-static const char * 
-mn_pop3_mailbox_sasl_get_username_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 574 "mn-pop3-mailbox.c"
+#line 412 "mn-pop3-mailbox.gob"
+static void 
+mn_pop3_mailbox_sasl_get_credentials_cb (MNClientSession * session, MNClientSessionPrivate * priv, const char ** username, const char ** password)
+#line 643 "mn-pop3-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::sasl_get_username_cb"
-#line 311 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (const char * )0);
-#line 311 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 581 "mn-pop3-mailbox.c"
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::sasl_get_credentials_cb"
 {
-#line 314 "mn-pop3-mailbox.gob"
+#line 417 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SASL
-    return priv->mailbox->uri->username;
-#else
-    g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
-  }}
-#line 591 "mn-pop3-mailbox.c"
-#undef __GOB_FUNCTION__
+    g_return_if_fail(username != NULL || password != NULL);
 
-#line 322 "mn-pop3-mailbox.gob"
-static const char * 
-mn_pop3_mailbox_sasl_get_password_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 597 "mn-pop3-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::sasl_get_password_cb"
-#line 322 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (const char * )0);
-#line 322 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (const char * )0);
-#line 604 "mn-pop3-mailbox.c"
-{
-#line 325 "mn-pop3-mailbox.gob"
-	
-#ifdef WITH_SASL
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    return priv->authenticated_mailbox->password;
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+					      username != NULL,
+					      password != NULL);
+
+    if (username)
+      *username = priv->authenticated_mailbox->runtime_username;
+
+    if (password)
+      *password = priv->authenticated_mailbox->runtime_password;
 #else
-    g_return_val_if_reached(NULL);
+    g_return_if_reached();
 #endif /* WITH_SASL */
   }}
-#line 615 "mn-pop3-mailbox.c"
+#line 665 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 334 "mn-pop3-mailbox.gob"
+#line 435 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_auth_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 621 "mn-pop3-mailbox.c"
+#line 671 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_auth_cb"
-#line 334 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 334 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 628 "mn-pop3-mailbox.c"
 {
-#line 337 "mn-pop3-mailbox.gob"
+#line 438 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SASL
+    /*
+     * RFC 2449 6.3 specifies that POP3 supports the initial client
+     * response feature of SASL.
+     */
+    const char *initial_clientout = NULL;
+    unsigned int initial_clientoutlen = 0;
+
+    priv->sasl_mechanism = NULL;
+
     if (mn_client_session_sasl_authentication_start(priv->session,
 						    "pop",
-						    priv->auth_mechanisms,
-						    priv->mailbox->uri->authmech,
+						    priv->sasl_remaining_mechanisms,
+						    priv->pi_mailbox->authmech,
 						    &priv->sasl_mechanism,
-						    TRUE /* [1] */))
-      return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+						    priv->sasl_had_clientout ? NULL : &initial_clientout,
+						    priv->sasl_had_clientout ? NULL : &initial_clientoutlen))
+      {
+	g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+
+	if (initial_clientoutlen > 0)
+	  {
+	    char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
+	    unsigned int outlen;
+	    int result;
+	    char *str;
+
+	    result = sasl_encode64(initial_clientout, initial_clientoutlen, buf64, sizeof(buf64), &outlen);
+	    if (result != SASL_OK)
+	      return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
+
+	    str = g_strndup(buf64, outlen);
+	    result = mn_client_session_write(session, "AUTH %s %s", priv->sasl_mechanism, str);
+	    g_free(str);
+
+	    priv->sasl_had_clientout = TRUE;
+	    return result;
+	  }
+	else
+	  {
+	    priv->sasl_had_clientout = FALSE;
+	    return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+	  }
+      }
     else
       return priv->authenticated_mailbox->cancelled
 	? STATE_QUIT
 	: self_session_authenticate_fallback(priv, FALSE, FALSE);
-
-    /*
-     * [1] http://www.ietf.org/internet-drafts/draft-siemborski-rfc1734bis-03.txt
-     * section 4 specifies that POP3 supports the initial client
-     * response feature of SASL.
-     */
 #else
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 654 "mn-pop3-mailbox.c"
+#line 729 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 361 "mn-pop3-mailbox.gob"
+#line 492 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 660 "mn-pop3-mailbox.c"
+#line 735 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_auth_cb"
-#line 361 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 361 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 361 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 669 "mn-pop3-mailbox.c"
 {
-#line 365 "mn-pop3-mailbox.gob"
+#line 496 "mn-pop3-mailbox.gob"
 	
 #ifdef WITH_SASL
     switch (response->type)
@@ -675,13 +743,29 @@ mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionRespon
       case RESPONSE_OK:
 	return mn_client_session_sasl_authentication_done(session)
 	  ? self_session_authenticated(priv)
-	  : MN_CLIENT_SESSION_RESULT_END;
+	  : MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	
       case RESPONSE_ERR:
-	return priv->authenticated_mailbox->cancelled
-	  ? STATE_QUIT
-	  : self_session_authenticate_fallback(priv, FALSE, FALSE);
-	
+	if (priv->authenticated_mailbox->cancelled)
+	  return STATE_QUIT;
+	else
+	  {
+	    if (priv->sasl_had_clientout)
+	      {
+		/*
+		 * Some servers violate RFC 2449 by not supporting a
+		 * second argument to the AUTH command. Support these
+		 * servers nevertheless, by retrying without the SASL
+		 * initial client response.
+		 */
+	      
+		mn_client_session_notice(session, _("SASL authentication with initial client response failed, retrying without initial client response"));
+		return STATE_AUTH;
+	      }
+	    else
+	      return self_session_authenticate_fallback(priv, FALSE, FALSE);
+	  }
+
       case RESPONSE_CONTINUATION:
 	return mn_client_session_sasl_authentication_step(session, response->arguments);
 	
@@ -692,57 +776,53 @@ mn_pop3_mailbox_handle_auth_cb (MNClientSession * session, MNClientSessionRespon
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }}
-#line 696 "mn-pop3-mailbox.c"
+#line 780 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 390 "mn-pop3-mailbox.gob"
+#line 537 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_apop_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 702 "mn-pop3-mailbox.c"
+#line 786 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_apop_cb"
-#line 390 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 390 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 709 "mn-pop3-mailbox.c"
 {
-#line 393 "mn-pop3-mailbox.gob"
+#line 540 "mn-pop3-mailbox.gob"
 	
     MNMD5Context context;
     char buf[33];
   
     g_return_val_if_fail(priv->apop_timestamp != NULL, 0);
 
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    if (! priv->authenticated_mailbox->password)
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+    if (! priv->authenticated_mailbox->runtime_username
+	|| ! priv->authenticated_mailbox->runtime_password)
       return STATE_QUIT;
 
     mn_md5_init(&context);
     mn_md5_update(&context, priv->apop_timestamp, strlen(priv->apop_timestamp));
-    mn_md5_update(&context, priv->authenticated_mailbox->password, strlen(priv->authenticated_mailbox->password));
+    mn_md5_update(&context, priv->authenticated_mailbox->runtime_password, strlen(priv->authenticated_mailbox->runtime_password));
     mn_md5_end(&context, buf);
 
-    return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
+    return mn_client_session_write(session, "APOP %s %s", priv->authenticated_mailbox->runtime_username, buf);
   }}
-#line 729 "mn-pop3-mailbox.c"
+#line 809 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 735 "mn-pop3-mailbox.c"
+#line 815 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_apop_cb"
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (response != NULL, (int )0);
-#line 411 "mn-pop3-mailbox.gob"
+#line 559 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 744 "mn-pop3-mailbox.c"
+#line 824 "mn-pop3-mailbox.c"
 {
-#line 415 "mn-pop3-mailbox.gob"
+#line 563 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
@@ -756,43 +836,41 @@ mn_pop3_mailbox_handle_apop_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 760 "mn-pop3-mailbox.c"
+#line 840 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 429 "mn-pop3-mailbox.gob"
+#line 577 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_user_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 766 "mn-pop3-mailbox.c"
+#line 846 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_user_cb"
-#line 429 "mn-pop3-mailbox.gob"
+#line 577 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (session != NULL, (int )0);
-#line 429 "mn-pop3-mailbox.gob"
+#line 577 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 773 "mn-pop3-mailbox.c"
+#line 853 "mn-pop3-mailbox.c"
 {
-#line 432 "mn-pop3-mailbox.gob"
+#line 580 "mn-pop3-mailbox.gob"
 	
-    return mn_client_session_write(session, "USER %s", priv->mailbox->uri->username);
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+    if (! priv->authenticated_mailbox->runtime_username
+	|| ! priv->authenticated_mailbox->runtime_password)
+      return STATE_QUIT;
+
+    return mn_client_session_write(session, "USER %s", priv->authenticated_mailbox->runtime_username);
   }}
-#line 779 "mn-pop3-mailbox.c"
+#line 864 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 436 "mn-pop3-mailbox.gob"
+#line 589 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 785 "mn-pop3-mailbox.c"
+#line 870 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_user_cb"
-#line 436 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 436 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 436 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 794 "mn-pop3-mailbox.c"
 {
-#line 440 "mn-pop3-mailbox.gob"
+#line 593 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
@@ -800,53 +878,40 @@ mn_pop3_mailbox_handle_user_cb (MNClientSession * session, MNClientSessionRespon
 	return STATE_PASS;
 
       case RESPONSE_ERR:
-	return RESULT_ERROR_QUIT;
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return STATE_QUIT;
 
       default:
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 810 "mn-pop3-mailbox.c"
+#line 889 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 454 "mn-pop3-mailbox.gob"
+#line 608 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_pass_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 816 "mn-pop3-mailbox.c"
+#line 895 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_pass_cb"
-#line 454 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 454 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 823 "mn-pop3-mailbox.c"
 {
-#line 457 "mn-pop3-mailbox.gob"
+#line 611 "mn-pop3-mailbox.gob"
 	
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    if (! priv->authenticated_mailbox->password)
-      return STATE_QUIT;
+    g_return_val_if_fail(priv->authenticated_mailbox->runtime_password != NULL, 0);
 
-    return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->password);
+    return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->runtime_password);
   }}
-#line 833 "mn-pop3-mailbox.c"
+#line 905 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 465 "mn-pop3-mailbox.gob"
+#line 617 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 839 "mn-pop3-mailbox.c"
+#line 911 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_pass_cb"
-#line 465 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 465 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 465 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 848 "mn-pop3-mailbox.c"
 {
-#line 469 "mn-pop3-mailbox.gob"
+#line 621 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
@@ -860,43 +925,31 @@ mn_pop3_mailbox_handle_pass_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 864 "mn-pop3-mailbox.c"
+#line 929 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 483 "mn-pop3-mailbox.gob"
+#line 635 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_list_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 870 "mn-pop3-mailbox.c"
+#line 935 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_list_cb"
-#line 483 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 483 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 877 "mn-pop3-mailbox.c"
 {
-#line 486 "mn-pop3-mailbox.gob"
+#line 638 "mn-pop3-mailbox.gob"
 	
     return mn_client_session_write(session, "LIST");
   }}
-#line 883 "mn-pop3-mailbox.c"
+#line 943 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 490 "mn-pop3-mailbox.gob"
+#line 642 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 889 "mn-pop3-mailbox.c"
+#line 949 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_cb"
-#line 490 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 490 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 490 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 898 "mn-pop3-mailbox.c"
 {
-#line 494 "mn-pop3-mailbox.gob"
+#line 646 "mn-pop3-mailbox.gob"
 	
     self_handle_list_response(priv, response, FALSE);
 
@@ -907,10 +960,11 @@ mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionRespon
 
       case RESPONSE_LIST_END:
 	priv->current_message_number = priv->message_numbers;
-	return STATE_RETR;
+	return STATE_RETR_TOP;
 
       case RESPONSE_ERR:
-	return RESULT_ERROR_END;
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 
       case RESPONSE_LIST_ITEM:
 	{
@@ -928,53 +982,52 @@ mn_pop3_mailbox_handle_list_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 932 "mn-pop3-mailbox.c"
+#line 986 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 526 "mn-pop3-mailbox.gob"
+#line 679 "mn-pop3-mailbox.gob"
 static int 
-mn_pop3_mailbox_enter_retr_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 938 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_enter_retr_top_cb (MNClientSession * session, MNClientSessionPrivate * priv)
+#line 992 "mn-pop3-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_retr_cb"
-#line 526 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 526 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 945 "mn-pop3-mailbox.c"
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_retr_top_cb"
 {
-#line 529 "mn-pop3-mailbox.gob"
+#line 682 "mn-pop3-mailbox.gob"
 	
     if (priv->current_message_number)
-      return mn_client_session_write(session, "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
+      return mn_client_session_write(session, priv->top_supported ? "TOP %i 0" : "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
     else
       {
 	GDK_THREADS_ENTER();
+
 	mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+	/*
+	 * In impl_check(), we do not hold the GDK lock while
+	 * unreffing the message list. We have just exposed the list
+	 * to other threads through our mn_mailbox_set_messages()
+	 * call, so unref it here, while we hold the GDK lock.
+	 */
+	mn_g_object_slist_free(priv->messages);
+	priv->messages = NULL;
+
 	gdk_flush();
 	GDK_THREADS_LEAVE();
 	
 	return STATE_QUIT;
       }
   }}
-#line 961 "mn-pop3-mailbox.c"
+#line 1021 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 543 "mn-pop3-mailbox.gob"
+#line 707 "mn-pop3-mailbox.gob"
 static int 
-mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 967 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_handle_retr_top_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
+#line 1027 "mn-pop3-mailbox.c"
 {
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_retr_cb"
-#line 543 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 543 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 543 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 976 "mn-pop3-mailbox.c"
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_retr_top_cb"
 {
-#line 547 "mn-pop3-mailbox.gob"
+#line 711 "mn-pop3-mailbox.gob"
 	
     self_handle_list_response(priv, response, TRUE);
 
@@ -988,18 +1041,18 @@ mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionRespon
 
       case RESPONSE_LIST_END:
 	priv->messages = g_slist_append(priv->messages,
-					mn_message_new_from_buffer(priv->mailbox->uri,
+					mn_message_new_from_buffer(priv->mailbox,
 								   priv->current_message->str,
 								   priv->current_message->len));
 	priv->current_message_number = priv->current_message_number->next;
-	return STATE_RETR;
+	return STATE_RETR_TOP;
 
       case RESPONSE_ERR:
 	priv->messages = g_slist_append(priv->messages,
-					mn_message_new_from_error(priv->mailbox->uri,
+					mn_message_new_from_error(priv->mailbox,
 								  response->arguments ? response->arguments : _("unknown error")));
 	priv->current_message_number = priv->current_message_number->next;
-	return STATE_RETR;
+	return STATE_RETR_TOP;
 
       case RESPONSE_LIST_ITEM:
 	g_string_append_printf(priv->current_message, "%s\n", response->arguments);
@@ -1009,70 +1062,59 @@ mn_pop3_mailbox_handle_retr_cb (MNClientSession * session, MNClientSessionRespon
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 1013 "mn-pop3-mailbox.c"
+#line 1066 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 582 "mn-pop3-mailbox.gob"
+#line 746 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_enter_quit_cb (MNClientSession * session, MNClientSessionPrivate * priv)
-#line 1019 "mn-pop3-mailbox.c"
+#line 1072 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::enter_quit_cb"
-#line 582 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 582 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1026 "mn-pop3-mailbox.c"
 {
-#line 585 "mn-pop3-mailbox.gob"
+#line 749 "mn-pop3-mailbox.gob"
 	
     return mn_client_session_write(session, "QUIT");
   }}
-#line 1032 "mn-pop3-mailbox.c"
+#line 1080 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 589 "mn-pop3-mailbox.gob"
+#line 753 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_handle_quit_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1038 "mn-pop3-mailbox.c"
+#line 1086 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_quit_cb"
-#line 589 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 589 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 589 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1047 "mn-pop3-mailbox.c"
 {
-#line 593 "mn-pop3-mailbox.gob"
+#line 757 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
-      case RESPONSE_OK:		return MN_CLIENT_SESSION_RESULT_END;
-      case RESPONSE_ERR:	return RESULT_ERROR_END;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_OK:
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+      case RESPONSE_ERR:
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }}
-#line 1058 "mn-pop3-mailbox.c"
+#line 1105 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 602 "mn-pop3-mailbox.gob"
+#line 772 "mn-pop3-mailbox.gob"
 static void 
-___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
-#line 1064 "mn-pop3-mailbox.c"
+___19_mn_pop3_mailbox_impl_check (MNAuthenticatedMailbox * mailbox G_GNUC_UNUSED)
+#line 1111 "mn-pop3-mailbox.c"
 #define PARENT_HANDLER(___mailbox) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
+	{ if(MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_AUTHENTICATED_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox); }
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::impl_check"
-#line 602 "mn-pop3-mailbox.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 602 "mn-pop3-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 1074 "mn-pop3-mailbox.c"
 {
-#line 604 "mn-pop3-mailbox.gob"
+#line 774 "mn-pop3-mailbox.gob"
 	
     Self *self = SELF(mailbox);
     MNClientSessionState states[] = {
@@ -1088,7 +1130,7 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
       { STATE_USER,		self_enter_user_cb,	self_handle_user_cb },
       { STATE_PASS,		self_enter_pass_cb,	self_handle_pass_cb },
       { STATE_LIST,		self_enter_list_cb,	self_handle_list_cb },
-      { STATE_RETR,		self_enter_retr_cb,	self_handle_retr_cb },
+      { STATE_RETR_TOP,		self_enter_retr_top_cb,	self_handle_retr_top_cb },
       { STATE_QUIT,		self_enter_quit_cb,	self_handle_quit_cb },
       
       MN_CLIENT_SESSION_STATES_END
@@ -1098,12 +1140,10 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
       self_warning_cb,
       self_response_new_cb,
       self_response_free_cb,
-      self_custom_handler_cb,
       NULL,			/* pre_read */
       NULL,			/* post_read */
 #ifdef WITH_SASL
-      self_sasl_get_username_cb,
-      self_sasl_get_password_cb,
+      self_sasl_get_credentials_cb,
 #endif
     };
     MNClientSessionPrivate priv;
@@ -1112,6 +1152,10 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
 
     PARENT_HANDLER(mailbox);
 
+    /* check if the parent handler has disabled the mailbox */
+    if (! MN_MAILBOX(self)->must_poll)
+      return;
+
     if (selfp->login_delay && selfp->authentication_timer)
       {
 	double elapsed;
@@ -1124,7 +1168,7 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
 	    int sleeptime;
 	    
 	    sleeptime = selfp->login_delay - elapsed;
-	    mn_mailbox_notice(mailbox,
+	    mn_mailbox_notice(MN_MAILBOX(self),
 			      ngettext("honouring LOGIN-DELAY, sleeping for %i second",
 				       "honouring LOGIN-DELAY, sleeping for %i seconds",
 				       sleeptime),
@@ -1134,100 +1178,83 @@ ___19_mn_pop3_mailbox_impl_check (MNMailbox * mailbox G_GNUC_UNUSED)
       }
   
     memset(&priv, 0, sizeof(priv));
-    priv.mailbox = mailbox;
-    priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+    priv.mailbox = MN_MAILBOX(self);
+    priv.authenticated_mailbox = mailbox;
+    priv.pi_mailbox = MN_PI_MAILBOX(self);
     priv.self = self;
 
     status = mn_client_session_run(states,
 				   &callbacks,
 #ifdef WITH_SSL
-				   MN_URI_IS_SSL(mailbox->uri),
+				   priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
 #endif
-				   mailbox->uri->hostname,
-				   mailbox->uri->port,
+				   priv.pi_mailbox->hostname,
+				   priv.pi_mailbox->runtime_port,
 				   &priv,
 				   &err);
 
-    GDK_THREADS_ENTER();
-
     if (! status)
       {
-	mn_mailbox_set_error(mailbox, "%s", err->message);
+	GDK_THREADS_ENTER();
+
+	mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
 	g_error_free(err);
       }
-    mn_mailbox_end_check(mailbox);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
 
     g_free(priv.apop_timestamp);
     eel_g_slist_free_deep(priv.auth_mechanisms);
+#ifdef WITH_SASL
+    g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
     g_slist_free(priv.message_numbers);
     mn_g_object_slist_free(priv.messages);
     if (priv.current_message)
       g_string_free(priv.current_message, TRUE);
   }}
-#line 1171 "mn-pop3-mailbox.c"
+#line 1219 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 699 "mn-pop3-mailbox.gob"
+#line 875 "mn-pop3-mailbox.gob"
 static void 
-mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1178 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_notice_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1226 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::notice_cb"
-#line 699 "mn-pop3-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 699 "mn-pop3-mailbox.gob"
-	g_return_if_fail (str != NULL);
-#line 699 "mn-pop3-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1187 "mn-pop3-mailbox.c"
 {
-#line 703 "mn-pop3-mailbox.gob"
+#line 879 "mn-pop3-mailbox.gob"
 	
-    mn_mailbox_notice(priv->mailbox, "%s", str);
+    mn_mailbox_notice(priv->mailbox, "%s", message);
   }}
-#line 1193 "mn-pop3-mailbox.c"
+#line 1234 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 707 "mn-pop3-mailbox.gob"
+#line 883 "mn-pop3-mailbox.gob"
 static void 
-mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * str, MNClientSessionPrivate * priv)
-#line 1199 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_warning_cb (MNClientSession * session, const char * message, MNClientSessionPrivate * priv)
+#line 1240 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::warning_cb"
-#line 707 "mn-pop3-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 707 "mn-pop3-mailbox.gob"
-	g_return_if_fail (str != NULL);
-#line 707 "mn-pop3-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1208 "mn-pop3-mailbox.c"
 {
-#line 711 "mn-pop3-mailbox.gob"
+#line 887 "mn-pop3-mailbox.gob"
 	
-    mn_mailbox_warning(priv->mailbox, "%s", str);
+    mn_mailbox_warning(priv->mailbox, "%s", message);
   }}
-#line 1214 "mn-pop3-mailbox.c"
+#line 1248 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 715 "mn-pop3-mailbox.gob"
+#line 891 "mn-pop3-mailbox.gob"
 static MNClientSessionResponse * 
 mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, MNClientSessionPrivate * priv)
-#line 1220 "mn-pop3-mailbox.c"
+#line 1254 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_new_cb"
-#line 715 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (MNClientSessionResponse * )0);
-#line 715 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (input != NULL, (MNClientSessionResponse * )0);
-#line 715 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (MNClientSessionResponse * )0);
-#line 1229 "mn-pop3-mailbox.c"
-{
-#line 719 "mn-pop3-mailbox.gob"
+{
+#line 895 "mn-pop3-mailbox.gob"
 	
     MNClientSessionResponse *response = NULL;
 
@@ -1242,12 +1269,12 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, 
      * showing up in the UI (for instance, through
      * session_set_error_from_arguments()).
      *
-     * However, RETR multiline responses do not need to (and must not)
-     * be validated: most servers send them in whatever charset the
-     * original message is, and our mn-message-mime implementation
+     * However, RETR/TOP multiline responses do not need to (and must
+     * not) be validated: most servers send them in whatever charset
+     * the original message is, and our mn-message-mime implementation
      * handles that.
      */
-    if (priv->in_retr || g_utf8_validate(input, -1, NULL))
+    if (priv->in_retr_top || g_utf8_validate(input, -1, NULL))
       {
 	if (priv->in_list)
 	  {
@@ -1305,104 +1332,69 @@ mn_pop3_mailbox_response_new_cb (MNClientSession * session, const char * input, 
     
     return response;
   }}
-#line 1309 "mn-pop3-mailbox.c"
+#line 1336 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 797 "mn-pop3-mailbox.gob"
+#line 973 "mn-pop3-mailbox.gob"
 static void 
 mn_pop3_mailbox_response_free_cb (MNClientSession * session, MNClientSessionResponse * response, MNClientSessionPrivate * priv)
-#line 1315 "mn-pop3-mailbox.c"
+#line 1342 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::response_free_cb"
-#line 797 "mn-pop3-mailbox.gob"
-	g_return_if_fail (session != NULL);
-#line 797 "mn-pop3-mailbox.gob"
-	g_return_if_fail (response != NULL);
-#line 797 "mn-pop3-mailbox.gob"
-	g_return_if_fail (priv != NULL);
-#line 1324 "mn-pop3-mailbox.c"
 {
-#line 801 "mn-pop3-mailbox.gob"
+#line 977 "mn-pop3-mailbox.gob"
 	
     g_free(response->arguments);
     g_free(response);
   }}
-#line 1331 "mn-pop3-mailbox.c"
+#line 1351 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 806 "mn-pop3-mailbox.gob"
-static int 
-mn_pop3_mailbox_custom_handler_cb (MNClientSession * session, MNClientSessionResponse * response, int result, MNClientSessionPrivate * priv)
-#line 1337 "mn-pop3-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:POP3:Mailbox::custom_handler_cb"
-#line 806 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (session != NULL, (int )0);
-#line 806 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (response != NULL, (int )0);
-#line 806 "mn-pop3-mailbox.gob"
-	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1346 "mn-pop3-mailbox.c"
-{
-#line 811 "mn-pop3-mailbox.gob"
-	
-    switch (result)
-      {
-      case RESULT_ERROR_QUIT:
-	self_session_set_error_from_arguments(priv, response);
-	return STATE_QUIT;
-
-      case RESULT_ERROR_END:
-	self_session_set_error_from_arguments(priv, response);
-	return MN_CLIENT_SESSION_RESULT_END;
-	
-    default:
-      g_return_val_if_reached(0);
-      }
-  }}
-#line 1364 "mn-pop3-mailbox.c"
-#undef __GOB_FUNCTION__
-
-#line 827 "mn-pop3-mailbox.gob"
+#line 982 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
-#line 1370 "mn-pop3-mailbox.c"
+#line 1357 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate"
-#line 827 "mn-pop3-mailbox.gob"
+#line 982 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1375 "mn-pop3-mailbox.c"
+#line 1362 "mn-pop3-mailbox.c"
 {
-#line 829 "mn-pop3-mailbox.gob"
+#line 984 "mn-pop3-mailbox.gob"
 	
-    if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+    g_slist_free(priv->sasl_remaining_mechanisms);
+    priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+    if (priv->pi_mailbox->authmech)
       {
-	if (*priv->mailbox->uri->authmech != '+')
+	if (*priv->pi_mailbox->authmech != '+')
 	  {
 #ifdef WITH_SASL
 	    return STATE_AUTH;
 #else
-	    mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+	    mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
 	    return STATE_QUIT;
 #endif /* WITH_SASL */
 	  }
 	else
 	  {
-	    if (! strcmp(priv->mailbox->uri->authmech, "+APOP"))
+	    if (! strcmp(priv->pi_mailbox->authmech, "+APOP"))
 	      {
 		if (priv->apop_timestamp)
 		  return STATE_APOP;
 		else
 		  {
-		    mn_client_session_error(priv->session, _("server does not support APOP authentication"));
+		    mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support APOP authentication"));
 		    return STATE_QUIT;
 		  }
 	      }
-	    else if (! strcmp(priv->mailbox->uri->authmech, "+USERPASS"))
+	    else if (! strcmp(priv->pi_mailbox->authmech, "+USERPASS"))
 	      return STATE_USER;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
 		return STATE_QUIT;
 	      }
 	  }
@@ -1410,7 +1402,7 @@ mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
     else
       {
 #ifdef WITH_SASL
-	if (priv->auth_mechanisms)
+	if (priv->sasl_remaining_mechanisms)
 	  return STATE_AUTH;
 #endif /* WITH_SASL */
 	if (priv->apop_timestamp)
@@ -1419,23 +1411,44 @@ mn_pop3_mailbox_session_authenticate (MNClientSessionPrivate * priv)
 	  return STATE_USER;
       }
   }}
-#line 1423 "mn-pop3-mailbox.c"
+#line 1415 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 875 "mn-pop3-mailbox.gob"
+#line 1035 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gboolean tried_apop, gboolean tried_pass)
-#line 1429 "mn-pop3-mailbox.c"
+#line 1421 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticate_fallback"
-#line 875 "mn-pop3-mailbox.gob"
+#line 1035 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1434 "mn-pop3-mailbox.c"
+#line 1426 "mn-pop3-mailbox.c"
 {
-#line 879 "mn-pop3-mailbox.gob"
+#line 1039 "mn-pop3-mailbox.gob"
 	
-    if (! priv->mailbox->uri->authmech)
+    if (! priv->pi_mailbox->authmech)
       {
+#ifdef WITH_SASL
+	if (priv->sasl_mechanism)
+	  {
+	    GSList *elem;
+
+	    elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+	    if (elem)
+	      {
+		priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+		if (priv->sasl_remaining_mechanisms)
+		  {
+		    mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+		    return STATE_AUTH;
+		  }
+	      }
+	  }
+
+	/* SASL is not needed anymore, save some memory */
+	mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
 	if (! tried_apop && priv->apop_timestamp)
 	  {
 	    mn_client_session_notice(priv->session, _("falling back to APOP authentication"));
@@ -1448,31 +1461,31 @@ mn_pop3_mailbox_session_authenticate_fallback (MNClientSessionPrivate * priv, gb
 	  }
       }
 
-    if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+    if (priv->authenticated_mailbox->prompted)
       {
 	mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
 	return self_session_authenticate(priv);
       }
     else
       {
-	mn_client_session_error(priv->session, _("authentication failed"));
+	mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
 	return STATE_QUIT;
       }
   }}
-#line 1463 "mn-pop3-mailbox.c"
+#line 1476 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 906 "mn-pop3-mailbox.gob"
+#line 1087 "mn-pop3-mailbox.gob"
 static int 
 mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
-#line 1469 "mn-pop3-mailbox.c"
+#line 1482 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_authenticated"
-#line 906 "mn-pop3-mailbox.gob"
+#line 1087 "mn-pop3-mailbox.gob"
 	g_return_val_if_fail (priv != NULL, (int )0);
-#line 1474 "mn-pop3-mailbox.c"
+#line 1487 "mn-pop3-mailbox.c"
 {
-#line 908 "mn-pop3-mailbox.gob"
+#line 1089 "mn-pop3-mailbox.gob"
 	
     priv->authenticated = TRUE;
     if (priv->self->_priv->login_delay)
@@ -1482,52 +1495,67 @@ mn_pop3_mailbox_session_authenticated (MNClientSessionPrivate * priv)
 	else
 	  priv->self->_priv->authentication_timer = g_timer_new();
       }
-    return priv->login_delay_user ? STATE_CAPA : STATE_LIST;
+
+    /*
+     * We are now in transaction state. We must re-issue CAPA if:
+     *
+     *   - the LOGIN-DELAY capability announced in the authorization
+     *     state contained the USER argument (priv->login_delay_user is
+     *     true)
+     *   - the TOP capability was not announced in the authorization
+     *     state: although RFC 2449 states that "capabilities available
+     *     in the AUTHORIZATION state MUST be announced in both states",
+     *     some servers (for instance, pop.gmail.com) violate the RFC
+     *     and only announce TOP in the transaction state.
+     */
+    return priv->login_delay_user || ! priv->top_supported
+      ? STATE_CAPA
+      : STATE_LIST;
   }}
-#line 1488 "mn-pop3-mailbox.c"
+#line 1516 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 920 "mn-pop3-mailbox.gob"
+#line 1116 "mn-pop3-mailbox.gob"
 static void 
-mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, MNClientSessionResponse * response)
-#line 1494 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_session_set_error_from_arguments (MNClientSessionPrivate * priv, int code, MNClientSessionResponse * response)
+#line 1522 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::session_set_error_from_arguments"
-#line 920 "mn-pop3-mailbox.gob"
+#line 1116 "mn-pop3-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 920 "mn-pop3-mailbox.gob"
+#line 1116 "mn-pop3-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 1501 "mn-pop3-mailbox.c"
+#line 1529 "mn-pop3-mailbox.c"
 {
-#line 923 "mn-pop3-mailbox.gob"
+#line 1120 "mn-pop3-mailbox.gob"
 	
     if (response->arguments)
-      mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+      mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
     else
-      mn_client_session_error(priv->session, _("unknown server error"));
+      mn_client_session_error(priv->session, code, _("unknown server error"));
   }}
-#line 1510 "mn-pop3-mailbox.c"
+#line 1538 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
 
-#line 930 "mn-pop3-mailbox.gob"
+#line 1127 "mn-pop3-mailbox.gob"
 static void 
-mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean retr)
-#line 1516 "mn-pop3-mailbox.c"
+mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSessionResponse * response, gboolean in_retr_top)
+#line 1544 "mn-pop3-mailbox.c"
 {
 #define __GOB_FUNCTION__ "MN:POP3:Mailbox::handle_list_response"
-#line 930 "mn-pop3-mailbox.gob"
+#line 1127 "mn-pop3-mailbox.gob"
 	g_return_if_fail (priv != NULL);
-#line 930 "mn-pop3-mailbox.gob"
+#line 1127 "mn-pop3-mailbox.gob"
 	g_return_if_fail (response != NULL);
-#line 1523 "mn-pop3-mailbox.c"
+#line 1551 "mn-pop3-mailbox.c"
 {
-#line 934 "mn-pop3-mailbox.gob"
+#line 1131 "mn-pop3-mailbox.gob"
 	
     switch (response->type)
       {
       case RESPONSE_OK:
 	priv->in_list = TRUE;
-	priv->in_retr = retr;
+	priv->in_retr_top = in_retr_top;
 	break;
 
       case RESPONSE_LIST_ITEM:	/* nop */
@@ -1535,9 +1563,28 @@ mn_pop3_mailbox_handle_list_response (MNClientSessionPrivate * priv, MNClientSes
 
       default:
 	priv->in_list = FALSE;
-	priv->in_retr = FALSE;
+	priv->in_retr_top = FALSE;
 	break;
       }
   }}
-#line 1543 "mn-pop3-mailbox.c"
+#line 1571 "mn-pop3-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 1149 "mn-pop3-mailbox.gob"
+char * 
+mn_pop3_mailbox_build_name (const char * username, const char * hostname)
+#line 1577 "mn-pop3-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:POP3:Mailbox::build_name"
+#line 1149 "mn-pop3-mailbox.gob"
+	g_return_val_if_fail (hostname != NULL, (char * )0);
+#line 1582 "mn-pop3-mailbox.c"
+{
+#line 1151 "mn-pop3-mailbox.gob"
+	
+    return username
+      ? g_strdup_printf("%s@%s", username, hostname)
+      : g_strdup(hostname);
+  }}
+#line 1590 "mn-pop3-mailbox.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-pop3-mailbox.gob b/src/mn-pop3-mailbox.gob
@@ -7,6 +7,7 @@
  *	- RFC 2449
  *	- RFC 1734
  *	- RFC 2595
+ *	- RFC 2384
  *
  * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
@@ -25,11 +26,16 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
 %}
+
+%h{
+extern int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+%}
+
 %{
 #include "config.h"
 #include <stdio.h>
@@ -40,86 +46,91 @@ requires 2.0.10
 #include <glib/gi18n.h>
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <eel/eel.h>
+#ifdef WITH_SASL
+#include <sasl/saslutil.h>
+#endif /* WITH_SASL */
 #include "mn-mailbox-private.h"
 #include "mn-authenticated-mailbox-private.h"
+#include "mn-pi-mailbox-private.h"
 #include "mn-client-session.h"
 #include "mn-util.h"
 #include "mn-md5.h"
 #include "mn-message-mime.h"
 
-  enum
-  {
-    STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
-    STATE_CAPA,
+enum
+{
+  STATE_GREETING = MN_CLIENT_SESSION_INITIAL_STATE,
+  STATE_CAPA,
 #ifdef WITH_SSL
-    STATE_STLS,
+  STATE_STLS,
 #endif
 #ifdef WITH_SASL
-    STATE_AUTH,
+  STATE_AUTH,
 #endif
-    STATE_APOP,
-    STATE_USER,
-    STATE_PASS,
-    STATE_LIST,
-    STATE_RETR,
-    STATE_QUIT
-  };
-
-  enum
-  {
-    RESULT_ERROR_QUIT		= -1, /* server reported an error, quit normally */
-    RESULT_ERROR_END		= -2  /* server reported an error, close the connection */
-  };
-
-  struct _MNClientSessionPrivate
-  {
-    MNMailbox			*mailbox;
-    MNAuthenticatedMailbox	*authenticated_mailbox;
-    MNPOP3Mailbox		*self;
-    MNClientSession		*session;
-    gboolean			in_list;
-    gboolean			in_retr;
-    char			*apop_timestamp;
-    GSList			*auth_mechanisms;
+  STATE_APOP,
+  STATE_USER,
+  STATE_PASS,
+  STATE_LIST,
+  STATE_RETR_TOP,
+  STATE_QUIT
+};
+
+struct _MNClientSessionPrivate
+{
+  MNMailbox			*mailbox;
+  MNAuthenticatedMailbox	*authenticated_mailbox;
+  MNPIMailbox			*pi_mailbox;
+  MNPOP3Mailbox			*self;
+  MNClientSession		*session;
+  gboolean			in_list;
+  gboolean			in_retr_top;
+  char				*apop_timestamp;
+  GSList			*auth_mechanisms;
+  gboolean			top_supported;
 #ifdef WITH_SSL
-    gboolean			stls_supported;
-    gboolean			stls_completed;
+  gboolean			stls_supported;
+  gboolean			stls_completed;
 #endif
 #ifdef WITH_SASL
-    const char			*sasl_mechanism;
+  GSList			*sasl_remaining_mechanisms;
+  const char			*sasl_mechanism;
+  gboolean			sasl_had_clientout;
 #endif
-    gboolean			authenticated;
-    gboolean			login_delay_user;
-    GSList			*message_numbers;
-    GSList			*current_message_number;
-    GSList			*messages;
-    GString			*current_message;
-  };
-
-  typedef enum
-  {
-    RESPONSE_OK,
-    RESPONSE_ERR,
-    RESPONSE_LIST_ITEM,
-    RESPONSE_LIST_END,
-    RESPONSE_CONTINUATION
-  } ResponseType;
-
-  struct _MNClientSessionResponse
-  {
-    ResponseType	type;
-    char		*arguments;
-  };
+  gboolean			authenticated;
+  gboolean			login_delay_user;
+  GSList			*message_numbers;
+  GSList			*current_message_number;
+  GSList			*messages;
+  GString			*current_message;
+};
+
+typedef enum
+{
+  RESPONSE_OK,
+  RESPONSE_ERR,
+  RESPONSE_LIST_ITEM,
+  RESPONSE_LIST_END,
+  RESPONSE_CONTINUATION
+} ResponseType;
+
+struct _MNClientSessionResponse
+{
+  ResponseType	type;
+  char		*arguments;
+};
+
+int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES] = { 110, 110, 995 };
 %}
 
-class MN:POP3:Mailbox from MN:Authenticated:Mailbox
+class MN:POP3:Mailbox from MN:PI:Mailbox
 {
   private int login_delay;
   private GTimer *authentication_timer destroywith g_timer_destroy;
 
   class_init (class)
   {
-    MN_MAILBOX_CLASS(class)->format = "POP3";
+    MN_MAILBOX_CLASS(class)->type = "pop3";
+    MN_PI_MAILBOX_CLASS(class)->default_ports = mn_pop3_mailbox_default_ports;
   }
 
   override (G:Object) GObject *
@@ -131,24 +142,96 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
     object = PARENT_HANDLER(type, n_construct_properties, construct_params);
     mailbox = MN_MAILBOX(object);
 
-#ifndef WITH_SSL
-    if (MN_URI_IS_SSL(mailbox->uri) || MN_URI_IS_INBAND_SSL(mailbox->uri))
-      mn_mailbox_set_init_error(mailbox, _("SSL/TLS support has not been compiled in"));
-#endif /* WITH_SSL */
-  
+    mn_mailbox_set_format(mailbox, "POP3");
+
     return object;
   }
 
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
   {
-    return MN_URI_IS_POP(uri);
+    PARENT_HANDLER(mailbox);
+
+    if (! mailbox->runtime_name)
+      mailbox->runtime_name = self_build_name(MN_AUTHENTICATED_MAILBOX(mailbox)->username,
+					      MN_PI_MAILBOX(mailbox)->hostname);
   }
+  
+  /*
+   * Parses a RFC 2384 POP URL.
+   */
+  override (MN:Mailbox) MNMailbox *
+    parse_uri (MNMailbox *dummy, const char *uri)
+  {
+    int len;
+    int buflen;
+    char *username = NULL;
+    char *authmech = NULL;
+    char *hostname;
+    int port;
+    MNMailbox *mailbox;
 
+    len = strlen(uri);
+    buflen = len + 1;
+    
+    {
+      char scheme_buf[buflen];
+      char auth_buf[buflen];
+      char location_buf[buflen];
+      char username_buf[buflen];
+      char authmech_buf[buflen];
+      char hostname_buf[buflen];
+      gboolean has_auth;
+      gboolean has_username = FALSE;
+      gboolean has_authmech = FALSE;
+
+      if (! mn_pi_mailbox_split_uri(uri, len, scheme_buf, auth_buf, location_buf, &has_auth))
+	return NULL;
+
+      if (strcmp(scheme_buf, "pop"))
+	return NULL;
+
+      if (has_auth)
+	{
+	  if (! mn_pi_mailbox_split_uri_auth(auth_buf, len, username_buf, authmech_buf, &has_username, &has_authmech))
+	    return NULL;
+
+	  if (has_authmech)
+	    {
+	      if (! has_username)
+		return NULL;	/* see user-auth in RFC 2384 ABNF */
+	      if (! strcmp(authmech_buf, "*"))
+		has_authmech = FALSE;
+	    }
+	}
+
+      mn_pi_mailbox_split_uri_hostport(location_buf, len, hostname_buf, &port);
+
+      if (has_username)
+	username = gnome_vfs_unescape_string(username_buf, NULL);
+      if (has_authmech)
+	authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
+      hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
+    }
+
+    mailbox = mn_mailbox_new("pop3",
+			     "username", username,
+			     "authmech", authmech,
+			     "hostname", hostname,
+			     "port", port,
+			     NULL);
+
+    g_free(username);
+    g_free(authmech);
+    g_free(hostname);
+
+    return mailbox;
+  }
+  
   private int
-    handle_greeting_cb (MNClientSession *session (check null),
-			MNClientSessionResponse *response (check null),
-			MNClientSessionPrivate *priv (check null))
+    handle_greeting_cb (MNClientSession *session,
+			MNClientSessionResponse *response,
+			MNClientSessionPrivate *priv)
   {
     priv->session = session;
     
@@ -171,22 +254,26 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	  }
 	return STATE_CAPA;
 	
-      case RESPONSE_ERR:	return RESULT_ERROR_END;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_ERR:
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }
 
   private int
-    enter_capa_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_capa_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
     return mn_client_session_write(session, "CAPA");
   }
   
   private int
-    handle_capa_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_capa_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
     self_handle_list_response(priv, response, FALSE);
 
@@ -195,6 +282,11 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
       case RESPONSE_OK:
 	eel_g_slist_free_deep(priv->auth_mechanisms);
 	priv->auth_mechanisms = NULL;
+#ifdef WITH_SASL
+	g_slist_free(priv->sasl_remaining_mechanisms);
+	priv->sasl_remaining_mechanisms = NULL;
+#endif
+	priv->top_supported = FALSE;
 	priv->self->_priv->login_delay = 0;
 	priv->login_delay_user = FALSE;
 #ifdef WITH_SSL
@@ -209,15 +301,14 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	  return STATE_LIST;
 
 #ifdef WITH_SSL
-	if (MN_URI_IS_INBAND_SSL(priv->mailbox->uri)
-	    && ! MN_URI_IS_SSL(priv->mailbox->uri)
+	if (priv->pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL
 	    && ! priv->stls_completed)
 	  {
 	    if (priv->stls_supported)
 	      return STATE_STLS;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("server does not support in-band SSL/TLS"));
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support in-band SSL/TLS"));
 		return STATE_QUIT;
 	      }
 	  }
@@ -240,6 +331,8 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 		  for (i = 1; tokens[i]; i++)
 		    priv->auth_mechanisms = g_slist_append(priv->auth_mechanisms, g_strdup(tokens[i]));
 		}
+	      else if (! strcmp(tokens[0], "TOP"))
+		priv->top_supported = TRUE;
 #ifdef WITH_SSL
 	      else if (! strcmp(tokens[0], "STLS"))
 		priv->stls_supported = TRUE;
@@ -263,7 +356,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	  g_strfreev(tokens);
 	  
 	  if (login_delay_error)
-	    return mn_client_session_error(session, _("invalid arguments for the LOGIN-DELAY capability"));
+	    return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("invalid arguments for the LOGIN-DELAY capability"));
 	}
 	return MN_CLIENT_SESSION_RESULT_CONTINUE;
 	
@@ -273,8 +366,8 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
 
   private int
-    enter_stls_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_stls_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SSL
     return mn_client_session_write(session, "STLS");
@@ -284,9 +377,9 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    handle_stls_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_stls_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SSL
     switch (response->type)
@@ -294,8 +387,16 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
       case RESPONSE_OK:
 	priv->stls_completed = TRUE;
 	return mn_client_session_enable_ssl(session)
-	  ? STATE_CAPA
-	  : RESULT_ERROR_END;
+	  ? STATE_CAPA /* [1] */
+	  : MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+	/*
+	 * [1] RFC 2595 4:
+	 *
+	 * "Once TLS has been started, the client MUST discard cached
+	 * information about server capabilities and SHOULD re-issue
+	 * the CAPA command."
+	 */
 
       case RESPONSE_ERR:
 	return self_session_authenticate(priv);
@@ -308,60 +409,90 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 #endif /* WITH_SSL */
   }
   
-  private const char *
-    sasl_get_username_cb (MNClientSession *session (check null),
-			  MNClientSessionPrivate *priv (check null))
+  private void
+    sasl_get_credentials_cb (MNClientSession *session,
+			     MNClientSessionPrivate *priv,
+			     const char **username,
+			     const char **password)
   {
 #ifdef WITH_SASL
-    return priv->mailbox->uri->username;
-#else
-    g_return_val_if_reached(NULL);
-#endif /* WITH_SASL */
-  }
+    g_return_if_fail(username != NULL || password != NULL);
 
-  private const char *
-    sasl_get_password_cb (MNClientSession *session (check null),
-			  MNClientSessionPrivate *priv (check null))
-  {
-#ifdef WITH_SASL
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    return priv->authenticated_mailbox->password;
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox,
+					      username != NULL,
+					      password != NULL);
+
+    if (username)
+      *username = priv->authenticated_mailbox->runtime_username;
+
+    if (password)
+      *password = priv->authenticated_mailbox->runtime_password;
 #else
-    g_return_val_if_reached(NULL);
+    g_return_if_reached();
 #endif /* WITH_SASL */
   }
 
   private int
-    enter_auth_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_auth_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SASL
+    /*
+     * RFC 2449 6.3 specifies that POP3 supports the initial client
+     * response feature of SASL.
+     */
+    const char *initial_clientout = NULL;
+    unsigned int initial_clientoutlen = 0;
+
+    priv->sasl_mechanism = NULL;
+
     if (mn_client_session_sasl_authentication_start(priv->session,
 						    "pop",
-						    priv->auth_mechanisms,
-						    priv->mailbox->uri->authmech,
+						    priv->sasl_remaining_mechanisms,
+						    priv->pi_mailbox->authmech,
 						    &priv->sasl_mechanism,
-						    TRUE /* [1] */))
-      return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+						    priv->sasl_had_clientout ? NULL : &initial_clientout,
+						    priv->sasl_had_clientout ? NULL : &initial_clientoutlen))
+      {
+	g_return_val_if_fail(priv->sasl_mechanism != NULL, 0);
+
+	if (initial_clientoutlen > 0)
+	  {
+	    char buf64[initial_clientoutlen * 2]; /* Base64 is 33% larger than the data it encodes */
+	    unsigned int outlen;
+	    int result;
+	    char *str;
+
+	    result = sasl_encode64(initial_clientout, initial_clientoutlen, buf64, sizeof(buf64), &outlen);
+	    if (result != SASL_OK)
+	      return mn_client_session_error(session, MN_CLIENT_SESSION_ERROR_OTHER, _("unable to encode Base64: %s"), sasl_errstring(result, NULL, NULL));
+
+	    str = g_strndup(buf64, outlen);
+	    result = mn_client_session_write(session, "AUTH %s %s", priv->sasl_mechanism, str);
+	    g_free(str);
+
+	    priv->sasl_had_clientout = TRUE;
+	    return result;
+	  }
+	else
+	  {
+	    priv->sasl_had_clientout = FALSE;
+	    return mn_client_session_write(session, "AUTH %s", priv->sasl_mechanism);
+	  }
+      }
     else
       return priv->authenticated_mailbox->cancelled
 	? STATE_QUIT
 	: self_session_authenticate_fallback(priv, FALSE, FALSE);
-
-    /*
-     * [1] http://www.ietf.org/internet-drafts/draft-siemborski-rfc1734bis-03.txt
-     * section 4 specifies that POP3 supports the initial client
-     * response feature of SASL.
-     */
 #else
     g_return_val_if_reached(0);
 #endif /* WITH_SASL */
   }
   
   private int
-    handle_auth_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_auth_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
 #ifdef WITH_SASL
     switch (response->type)
@@ -369,13 +500,29 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
       case RESPONSE_OK:
 	return mn_client_session_sasl_authentication_done(session)
 	  ? self_session_authenticated(priv)
-	  : MN_CLIENT_SESSION_RESULT_END;
+	  : MN_CLIENT_SESSION_RESULT_DISCONNECT;
 	
       case RESPONSE_ERR:
-	return priv->authenticated_mailbox->cancelled
-	  ? STATE_QUIT
-	  : self_session_authenticate_fallback(priv, FALSE, FALSE);
-	
+	if (priv->authenticated_mailbox->cancelled)
+	  return STATE_QUIT;
+	else
+	  {
+	    if (priv->sasl_had_clientout)
+	      {
+		/*
+		 * Some servers violate RFC 2449 by not supporting a
+		 * second argument to the AUTH command. Support these
+		 * servers nevertheless, by retrying without the SASL
+		 * initial client response.
+		 */
+	      
+		mn_client_session_notice(session, _("SASL authentication with initial client response failed, retrying without initial client response"));
+		return STATE_AUTH;
+	      }
+	    else
+	      return self_session_authenticate_fallback(priv, FALSE, FALSE);
+	  }
+
       case RESPONSE_CONTINUATION:
 	return mn_client_session_sasl_authentication_step(session, response->arguments);
 	
@@ -388,24 +535,25 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
 
   private int
-    enter_apop_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_apop_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
     MNMD5Context context;
     char buf[33];
   
     g_return_val_if_fail(priv->apop_timestamp != NULL, 0);
 
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    if (! priv->authenticated_mailbox->password)
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+    if (! priv->authenticated_mailbox->runtime_username
+	|| ! priv->authenticated_mailbox->runtime_password)
       return STATE_QUIT;
 
     mn_md5_init(&context);
     mn_md5_update(&context, priv->apop_timestamp, strlen(priv->apop_timestamp));
-    mn_md5_update(&context, priv->authenticated_mailbox->password, strlen(priv->authenticated_mailbox->password));
+    mn_md5_update(&context, priv->authenticated_mailbox->runtime_password, strlen(priv->authenticated_mailbox->runtime_password));
     mn_md5_end(&context, buf);
 
-    return mn_client_session_write(session, "APOP %s %s", priv->mailbox->uri->username, buf);
+    return mn_client_session_write(session, "APOP %s %s", priv->authenticated_mailbox->runtime_username, buf);
   }
 
   private int
@@ -430,13 +578,18 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
     enter_user_cb (MNClientSession *session (check null),
 		   MNClientSessionPrivate *priv (check null))
   {
-    return mn_client_session_write(session, "USER %s", priv->mailbox->uri->username);
+    mn_authenticated_mailbox_fill_credentials(priv->authenticated_mailbox, TRUE, TRUE);
+    if (! priv->authenticated_mailbox->runtime_username
+	|| ! priv->authenticated_mailbox->runtime_password)
+      return STATE_QUIT;
+
+    return mn_client_session_write(session, "USER %s", priv->authenticated_mailbox->runtime_username);
   }
   
   private int
-    handle_user_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_user_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
     switch (response->type)
       {
@@ -444,7 +597,8 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	return STATE_PASS;
 
       case RESPONSE_ERR:
-	return RESULT_ERROR_QUIT;
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return STATE_QUIT;
 
       default:
 	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
@@ -452,20 +606,18 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    enter_pass_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_pass_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
-    mn_authenticated_mailbox_fill_password(priv->authenticated_mailbox);
-    if (! priv->authenticated_mailbox->password)
-      return STATE_QUIT;
+    g_return_val_if_fail(priv->authenticated_mailbox->runtime_password != NULL, 0);
 
-    return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->password);
+    return mn_client_session_write(session, "PASS %s", priv->authenticated_mailbox->runtime_password);
   }
 
   private int
-    handle_pass_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_pass_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
     switch (response->type)
       {
@@ -481,16 +633,16 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
 
   private int
-    enter_list_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_list_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
     return mn_client_session_write(session, "LIST");
   }
 
   private int
-    handle_list_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_list_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
     self_handle_list_response(priv, response, FALSE);
 
@@ -501,10 +653,11 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 
       case RESPONSE_LIST_END:
 	priv->current_message_number = priv->message_numbers;
-	return STATE_RETR;
+	return STATE_RETR_TOP;
 
       case RESPONSE_ERR:
-	return RESULT_ERROR_END;
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
 
       case RESPONSE_LIST_ITEM:
 	{
@@ -524,15 +677,26 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    enter_retr_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_retr_top_cb (MNClientSession *session,
+		       MNClientSessionPrivate *priv)
   {
     if (priv->current_message_number)
-      return mn_client_session_write(session, "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
+      return mn_client_session_write(session, priv->top_supported ? "TOP %i 0" : "RETR %i", GPOINTER_TO_INT(priv->current_message_number->data));
     else
       {
 	GDK_THREADS_ENTER();
+
 	mn_mailbox_set_messages(priv->mailbox, priv->messages);
+
+	/*
+	 * In impl_check(), we do not hold the GDK lock while
+	 * unreffing the message list. We have just exposed the list
+	 * to other threads through our mn_mailbox_set_messages()
+	 * call, so unref it here, while we hold the GDK lock.
+	 */
+	mn_g_object_slist_free(priv->messages);
+	priv->messages = NULL;
+
 	gdk_flush();
 	GDK_THREADS_LEAVE();
 	
@@ -541,9 +705,9 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
 
   private int
-    handle_retr_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_retr_top_cb (MNClientSession *session,
+			MNClientSessionResponse *response,
+			MNClientSessionPrivate *priv)
   {
     self_handle_list_response(priv, response, TRUE);
 
@@ -557,18 +721,18 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 
       case RESPONSE_LIST_END:
 	priv->messages = g_slist_append(priv->messages,
-					mn_message_new_from_buffer(priv->mailbox->uri,
+					mn_message_new_from_buffer(priv->mailbox,
 								   priv->current_message->str,
 								   priv->current_message->len));
 	priv->current_message_number = priv->current_message_number->next;
-	return STATE_RETR;
+	return STATE_RETR_TOP;
 
       case RESPONSE_ERR:
 	priv->messages = g_slist_append(priv->messages,
-					mn_message_new_from_error(priv->mailbox->uri,
+					mn_message_new_from_error(priv->mailbox,
 								  response->arguments ? response->arguments : _("unknown error")));
 	priv->current_message_number = priv->current_message_number->next;
-	return STATE_RETR;
+	return STATE_RETR_TOP;
 
       case RESPONSE_LIST_ITEM:
 	g_string_append_printf(priv->current_message, "%s\n", response->arguments);
@@ -580,27 +744,33 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
   
   private int
-    enter_quit_cb (MNClientSession *session (check null),
-		   MNClientSessionPrivate *priv (check null))
+    enter_quit_cb (MNClientSession *session,
+		   MNClientSessionPrivate *priv)
   {
     return mn_client_session_write(session, "QUIT");
   }
 
   private int
-    handle_quit_cb (MNClientSession *session (check null),
-		    MNClientSessionResponse *response (check null),
-		    MNClientSessionPrivate *priv (check null))
+    handle_quit_cb (MNClientSession *session,
+		    MNClientSessionResponse *response,
+		    MNClientSessionPrivate *priv)
   {
     switch (response->type)
       {
-      case RESPONSE_OK:		return MN_CLIENT_SESSION_RESULT_END;
-      case RESPONSE_ERR:	return RESULT_ERROR_END;
-      default:			return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
+      case RESPONSE_OK:
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+      case RESPONSE_ERR:
+	self_session_set_error_from_arguments(priv, MN_CLIENT_SESSION_ERROR_OTHER, response);
+	return MN_CLIENT_SESSION_RESULT_DISCONNECT;
+
+      default:
+	return MN_CLIENT_SESSION_RESULT_BAD_RESPONSE_FOR_CONTEXT;
       }
   }
   
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *mailbox (check null type))
+  override (MN:Authenticated:Mailbox) void
+    impl_check (MNAuthenticatedMailbox *mailbox)
   {
     Self *self = SELF(mailbox);
     MNClientSessionState states[] = {
@@ -616,7 +786,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
       { STATE_USER,		self_enter_user_cb,	self_handle_user_cb },
       { STATE_PASS,		self_enter_pass_cb,	self_handle_pass_cb },
       { STATE_LIST,		self_enter_list_cb,	self_handle_list_cb },
-      { STATE_RETR,		self_enter_retr_cb,	self_handle_retr_cb },
+      { STATE_RETR_TOP,		self_enter_retr_top_cb,	self_handle_retr_top_cb },
       { STATE_QUIT,		self_enter_quit_cb,	self_handle_quit_cb },
       
       MN_CLIENT_SESSION_STATES_END
@@ -626,12 +796,10 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
       self_warning_cb,
       self_response_new_cb,
       self_response_free_cb,
-      self_custom_handler_cb,
       NULL,			/* pre_read */
       NULL,			/* post_read */
 #ifdef WITH_SASL
-      self_sasl_get_username_cb,
-      self_sasl_get_password_cb,
+      self_sasl_get_credentials_cb,
 #endif
     };
     MNClientSessionPrivate priv;
@@ -640,6 +808,10 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 
     PARENT_HANDLER(mailbox);
 
+    /* check if the parent handler has disabled the mailbox */
+    if (! MN_MAILBOX(self)->must_poll)
+      return;
+
     if (selfp->login_delay && selfp->authentication_timer)
       {
 	double elapsed;
@@ -652,7 +824,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	    int sleeptime;
 	    
 	    sleeptime = selfp->login_delay - elapsed;
-	    mn_mailbox_notice(mailbox,
+	    mn_mailbox_notice(MN_MAILBOX(self),
 			      ngettext("honouring LOGIN-DELAY, sleeping for %i second",
 				       "honouring LOGIN-DELAY, sleeping for %i seconds",
 				       sleeptime),
@@ -662,34 +834,38 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
       }
   
     memset(&priv, 0, sizeof(priv));
-    priv.mailbox = mailbox;
-    priv.authenticated_mailbox = MN_AUTHENTICATED_MAILBOX(mailbox);
+    priv.mailbox = MN_MAILBOX(self);
+    priv.authenticated_mailbox = mailbox;
+    priv.pi_mailbox = MN_PI_MAILBOX(self);
     priv.self = self;
 
     status = mn_client_session_run(states,
 				   &callbacks,
 #ifdef WITH_SSL
-				   MN_URI_IS_SSL(mailbox->uri),
+				   priv.pi_mailbox->connection_type == MN_PI_MAILBOX_CONNECTION_TYPE_SSL,
 #endif
-				   mailbox->uri->hostname,
-				   mailbox->uri->port,
+				   priv.pi_mailbox->hostname,
+				   priv.pi_mailbox->runtime_port,
 				   &priv,
 				   &err);
 
-    GDK_THREADS_ENTER();
-
     if (! status)
       {
-	mn_mailbox_set_error(mailbox, "%s", err->message);
+	GDK_THREADS_ENTER();
+
+	mn_mailbox_set_error(MN_MAILBOX(self), "%s", err->message);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
 	g_error_free(err);
       }
-    mn_mailbox_end_check(mailbox);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
 
     g_free(priv.apop_timestamp);
     eel_g_slist_free_deep(priv.auth_mechanisms);
+#ifdef WITH_SASL
+    g_slist_free(priv.sasl_remaining_mechanisms);
+#endif
     g_slist_free(priv.message_numbers);
     mn_g_object_slist_free(priv.messages);
     if (priv.current_message)
@@ -697,25 +873,25 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
   
   private void
-    notice_cb (MNClientSession *session (check null),
-	       const char *str (check null),
-	       MNClientSessionPrivate *priv (check null))
+    notice_cb (MNClientSession *session,
+	       const char *message,
+	       MNClientSessionPrivate *priv)
   {
-    mn_mailbox_notice(priv->mailbox, "%s", str);
+    mn_mailbox_notice(priv->mailbox, "%s", message);
   }
 
   private void
-    warning_cb (MNClientSession *session (check null),
-		const char *str (check null),
-		MNClientSessionPrivate *priv (check null))
+    warning_cb (MNClientSession *session,
+		const char *message,
+		MNClientSessionPrivate *priv)
   {
-    mn_mailbox_warning(priv->mailbox, "%s", str);
+    mn_mailbox_warning(priv->mailbox, "%s", message);
   }
 
   private MNClientSessionResponse *
-    response_new_cb (MNClientSession *session (check null),
-		     const char *input (check null),
-		     MNClientSessionPrivate *priv (check null))
+    response_new_cb (MNClientSession *session,
+		     const char *input,
+		     MNClientSessionPrivate *priv)
   {
     MNClientSessionResponse *response = NULL;
 
@@ -730,12 +906,12 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
      * showing up in the UI (for instance, through
      * session_set_error_from_arguments()).
      *
-     * However, RETR multiline responses do not need to (and must not)
-     * be validated: most servers send them in whatever charset the
-     * original message is, and our mn-message-mime implementation
+     * However, RETR/TOP multiline responses do not need to (and must
+     * not) be validated: most servers send them in whatever charset
+     * the original message is, and our mn-message-mime implementation
      * handles that.
      */
-    if (priv->in_retr || g_utf8_validate(input, -1, NULL))
+    if (priv->in_retr_top || g_utf8_validate(input, -1, NULL))
       {
 	if (priv->in_list)
 	  {
@@ -795,66 +971,50 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
   }
 
   private void
-    response_free_cb (MNClientSession *session (check null),
-		      MNClientSessionResponse *response (check null),
-		      MNClientSessionPrivate *priv (check null))
+    response_free_cb (MNClientSession *session,
+		      MNClientSessionResponse *response,
+		      MNClientSessionPrivate *priv)
   {
     g_free(response->arguments);
     g_free(response);
   }
 
   private int
-    custom_handler_cb (MNClientSession *session (check null),
-		       MNClientSessionResponse *response (check null),
-		       int result,
-		       MNClientSessionPrivate *priv (check null))
-  {
-    switch (result)
-      {
-      case RESULT_ERROR_QUIT:
-	self_session_set_error_from_arguments(priv, response);
-	return STATE_QUIT;
-
-      case RESULT_ERROR_END:
-	self_session_set_error_from_arguments(priv, response);
-	return MN_CLIENT_SESSION_RESULT_END;
-	
-    default:
-      g_return_val_if_reached(0);
-      }
-  }
-
-  private int
     session_authenticate (MNClientSessionPrivate *priv (check null))
   {
-    if (priv->mailbox->uri->authmech)
+#ifdef WITH_SASL
+    g_slist_free(priv->sasl_remaining_mechanisms);
+    priv->sasl_remaining_mechanisms = g_slist_copy(priv->auth_mechanisms);
+#endif /* WITH_SASL */
+
+    if (priv->pi_mailbox->authmech)
       {
-	if (*priv->mailbox->uri->authmech != '+')
+	if (*priv->pi_mailbox->authmech != '+')
 	  {
 #ifdef WITH_SASL
 	    return STATE_AUTH;
 #else
-	    mn_client_session_error(priv->session, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
+	    mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("a SASL authentication mechanism was selected but SASL support has not been compiled in"));
 	    return STATE_QUIT;
 #endif /* WITH_SASL */
 	  }
 	else
 	  {
-	    if (! strcmp(priv->mailbox->uri->authmech, "+APOP"))
+	    if (! strcmp(priv->pi_mailbox->authmech, "+APOP"))
 	      {
 		if (priv->apop_timestamp)
 		  return STATE_APOP;
 		else
 		  {
-		    mn_client_session_error(priv->session, _("server does not support APOP authentication"));
+		    mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("server does not support APOP authentication"));
 		    return STATE_QUIT;
 		  }
 	      }
-	    else if (! strcmp(priv->mailbox->uri->authmech, "+USERPASS"))
+	    else if (! strcmp(priv->pi_mailbox->authmech, "+USERPASS"))
 	      return STATE_USER;
 	    else
 	      {
-		mn_client_session_error(priv->session, _("unknown authentication mechanism \"%s\""), priv->mailbox->uri->authmech);
+		mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("unknown authentication mechanism \"%s\""), priv->pi_mailbox->authmech);
 		return STATE_QUIT;
 	      }
 	  }
@@ -862,7 +1022,7 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
     else
       {
 #ifdef WITH_SASL
-	if (priv->auth_mechanisms)
+	if (priv->sasl_remaining_mechanisms)
 	  return STATE_AUTH;
 #endif /* WITH_SASL */
 	if (priv->apop_timestamp)
@@ -877,8 +1037,29 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 				   gboolean tried_apop,
 				   gboolean tried_pass)
   {
-    if (! priv->mailbox->uri->authmech)
+    if (! priv->pi_mailbox->authmech)
       {
+#ifdef WITH_SASL
+	if (priv->sasl_mechanism)
+	  {
+	    GSList *elem;
+
+	    elem = mn_g_str_slist_find(priv->sasl_remaining_mechanisms, priv->sasl_mechanism);
+	    if (elem)
+	      {
+		priv->sasl_remaining_mechanisms = g_slist_delete_link(priv->sasl_remaining_mechanisms, elem);
+		if (priv->sasl_remaining_mechanisms)
+		  {
+		    mn_client_session_notice(priv->session, _("disabling mechanism \"%s\" and retrying SASL authentication"), priv->sasl_mechanism);
+		    return STATE_AUTH;
+		  }
+	      }
+	  }
+
+	/* SASL is not needed anymore, save some memory */
+	mn_client_session_sasl_dispose(priv->session);
+#endif /* WITH_SASL */
+
 	if (! tried_apop && priv->apop_timestamp)
 	  {
 	    mn_client_session_notice(priv->session, _("falling back to APOP authentication"));
@@ -891,14 +1072,14 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	  }
       }
 
-    if (! priv->mailbox->uri->password && priv->authenticated_mailbox->prompted)
+    if (priv->authenticated_mailbox->prompted)
       {
 	mn_authenticated_mailbox_authentication_failed(priv->authenticated_mailbox);
 	return self_session_authenticate(priv);
       }
     else
       {
-	mn_client_session_error(priv->session, _("authentication failed"));
+	mn_client_session_error(priv->session, MN_CLIENT_SESSION_ERROR_OTHER, _("authentication failed"));
 	return STATE_QUIT;
       }
   }
@@ -914,29 +1095,45 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 	else
 	  priv->self->_priv->authentication_timer = g_timer_new();
       }
-    return priv->login_delay_user ? STATE_CAPA : STATE_LIST;
+
+    /*
+     * We are now in transaction state. We must re-issue CAPA if:
+     *
+     *   - the LOGIN-DELAY capability announced in the authorization
+     *     state contained the USER argument (priv->login_delay_user is
+     *     true)
+     *   - the TOP capability was not announced in the authorization
+     *     state: although RFC 2449 states that "capabilities available
+     *     in the AUTHORIZATION state MUST be announced in both states",
+     *     some servers (for instance, pop.gmail.com) violate the RFC
+     *     and only announce TOP in the transaction state.
+     */
+    return priv->login_delay_user || ! priv->top_supported
+      ? STATE_CAPA
+      : STATE_LIST;
   }
 
   private void
     session_set_error_from_arguments (MNClientSessionPrivate *priv (check null),
+				      int code,
 				      MNClientSessionResponse *response (check null))
   {
     if (response->arguments)
-      mn_client_session_error(priv->session, "\"%s\"", response->arguments);
+      mn_client_session_error(priv->session, code, "\"%s\"", response->arguments);
     else
-      mn_client_session_error(priv->session, _("unknown server error"));
+      mn_client_session_error(priv->session, code, _("unknown server error"));
   }
 
   private void
     handle_list_response (MNClientSessionPrivate *priv (check null),
 			  MNClientSessionResponse *response (check null),
-			  gboolean retr)
+			  gboolean in_retr_top)
   {
     switch (response->type)
       {
       case RESPONSE_OK:
 	priv->in_list = TRUE;
-	priv->in_retr = retr;
+	priv->in_retr_top = in_retr_top;
 	break;
 
       case RESPONSE_LIST_ITEM:	/* nop */
@@ -944,8 +1141,16 @@ class MN:POP3:Mailbox from MN:Authenticated:Mailbox
 
       default:
 	priv->in_list = FALSE;
-	priv->in_retr = FALSE;
+	priv->in_retr_top = FALSE;
 	break;
       }
   }
+
+  public char *
+    build_name (const char *username, const char *hostname (check null))
+  {
+    return username
+      ? g_strdup_printf("%s@%s", username, hostname)
+      : g_strdup(hostname);
+  }
 }
diff --git a/src/mn-pop3-mailbox.h b/src/mn-pop3-mailbox.h
@@ -1,10 +1,10 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
 
 
-#include "mn-authenticated-mailbox.h"
+#include "mn-pi-mailbox.h"
 
 #ifndef __MN_POP3_MAILBOX_H__
 #define __MN_POP3_MAILBOX_H__
@@ -14,6 +14,10 @@ extern "C" {
 #endif /* __cplusplus */
 
 
+
+extern int mn_pop3_mailbox_default_ports[MN_PI_MAILBOX_N_CONNECTION_TYPES];
+
+
 /*
  * Type checking and casting macros
  */
@@ -36,7 +40,7 @@ typedef struct _MNPOP3MailboxPrivate MNPOP3MailboxPrivate;
 typedef struct _MNPOP3Mailbox MNPOP3Mailbox;
 #endif
 struct _MNPOP3Mailbox {
-	MNAuthenticatedMailbox __parent__;
+	MNPIMailbox __parent__;
 	/*< private >*/
 	MNPOP3MailboxPrivate *_priv;
 };
@@ -46,7 +50,7 @@ struct _MNPOP3Mailbox {
  */
 typedef struct _MNPOP3MailboxClass MNPOP3MailboxClass;
 struct _MNPOP3MailboxClass {
-	MNAuthenticatedMailboxClass __parent__;
+	MNPIMailboxClass __parent__;
 };
 
 
@@ -54,6 +58,8 @@ struct _MNPOP3MailboxClass {
  * Public methods
  */
 GType	mn_pop3_mailbox_get_type	(void);
+char * 	mn_pop3_mailbox_build_name	(const char * username,
+					const char * hostname);
 
 #ifdef __cplusplus
 }
diff --git a/src/mn-properties-dialog-private.h b/src/mn-properties-dialog-private.h
@@ -0,0 +1,123 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_PROPERTIES_DIALOG_PRIVATE_H__
+#define __MN_PROPERTIES_DIALOG_PRIVATE_H__
+
+#include "mn-properties-dialog.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNPropertiesDialogPrivate {
+#line 47 "mn-properties-dialog.gob"
+	GtkWidget * notebook;
+#line 50 "mn-properties-dialog.gob"
+	GtkWidget * autostart_check;
+#line 51 "mn-properties-dialog.gob"
+	GtkWidget * blink_check;
+#line 52 "mn-properties-dialog.gob"
+	GtkWidget * summary_tooltip_check;
+#line 53 "mn-properties-dialog.gob"
+	GtkWidget * command_mail_reader_check;
+#line 54 "mn-properties-dialog.gob"
+	GtkWidget * command_mail_reader_entry;
+#line 55 "mn-properties-dialog.gob"
+	GtkWidget * command_new_mail_check;
+#line 56 "mn-properties-dialog.gob"
+	GtkWidget * command_new_mail_entry;
+#line 57 "mn-properties-dialog.gob"
+	GtkWidget * command_mail_read_check;
+#line 58 "mn-properties-dialog.gob"
+	GtkWidget * command_mail_read_entry;
+#line 59 "mn-properties-dialog.gob"
+	GtkWidget * action_main_window_radio;
+#line 60 "mn-properties-dialog.gob"
+	GtkWidget * action_mail_reader_radio;
+#line 61 "mn-properties-dialog.gob"
+	GtkWidget * action_update_radio;
+#line 64 "mn-properties-dialog.gob"
+	GtkWidget * delay_label;
+#line 65 "mn-properties-dialog.gob"
+	GtkWidget * minutes_spin;
+#line 66 "mn-properties-dialog.gob"
+	GtkWidget * minutes_label;
+#line 67 "mn-properties-dialog.gob"
+	GtkWidget * seconds_spin;
+#line 68 "mn-properties-dialog.gob"
+	GtkWidget * seconds_label;
+#line 69 "mn-properties-dialog.gob"
+	GtkWidget * scrolled;
+#line 70 "mn-properties-dialog.gob"
+	GtkWidget * list;
+#line 71 "mn-properties-dialog.gob"
+	GtkWidget * selected_label;
+#line 72 "mn-properties-dialog.gob"
+	GtkWidget * remove;
+#line 73 "mn-properties-dialog.gob"
+	GtkWidget * properties;
+#line 76 "mn-properties-dialog.gob"
+	GtkWidget * summary_enable_check;
+#line 77 "mn-properties-dialog.gob"
+	GtkWidget * summary_autoclose_check;
+#line 78 "mn-properties-dialog.gob"
+	GtkWidget * summary_minutes_spin;
+#line 79 "mn-properties-dialog.gob"
+	GtkWidget * summary_minutes_label;
+#line 80 "mn-properties-dialog.gob"
+	GtkWidget * summary_seconds_spin;
+#line 81 "mn-properties-dialog.gob"
+	GtkWidget * summary_seconds_label;
+#line 82 "mn-properties-dialog.gob"
+	GtkWidget * summary_only_recent_check;
+#line 83 "mn-properties-dialog.gob"
+	GtkWidget * summary_position_label;
+#line 84 "mn-properties-dialog.gob"
+	GtkWidget * summary_position_combo;
+#line 85 "mn-properties-dialog.gob"
+	GtkWidget * summary_horizontal_offset_label;
+#line 86 "mn-properties-dialog.gob"
+	GtkWidget * summary_horizontal_offset_spin;
+#line 87 "mn-properties-dialog.gob"
+	GtkWidget * summary_horizontal_pixels_label;
+#line 88 "mn-properties-dialog.gob"
+	GtkWidget * summary_vertical_offset_label;
+#line 89 "mn-properties-dialog.gob"
+	GtkWidget * summary_vertical_offset_spin;
+#line 90 "mn-properties-dialog.gob"
+	GtkWidget * summary_vertical_pixels_label;
+#line 91 "mn-properties-dialog.gob"
+	GtkWidget * summary_fonts_from_theme_radio;
+#line 92 "mn-properties-dialog.gob"
+	GtkWidget * summary_custom_fonts_radio;
+#line 93 "mn-properties-dialog.gob"
+	GtkWidget * summary_title_font_alignment;
+#line 94 "mn-properties-dialog.gob"
+	GtkWidget * summary_title_font_label;
+#line 95 "mn-properties-dialog.gob"
+	GtkWidget * summary_title_font_button;
+#line 96 "mn-properties-dialog.gob"
+	GtkWidget * summary_contents_font_alignment;
+#line 97 "mn-properties-dialog.gob"
+	GtkWidget * summary_contents_font_label;
+#line 98 "mn-properties-dialog.gob"
+	GtkWidget * summary_contents_font_button;
+#line 99 "mn-properties-dialog.gob"
+	GtkWidget * summary_test_button;
+#line 101 "mn-properties-dialog.gob"
+	GtkWidget * test_popup;
+#line 110 "mn-properties-dialog-private.h"
+};
+void 	mn_properties_dialog_toggled_h	(MNPropertiesDialog * self, GtkToggleButton * button);
+void 	mn_properties_dialog_autostart_toggled_h	(MNPropertiesDialog * self, GtkToggleButton * togglebutton);
+void 	mn_properties_dialog_add_clicked_h	(MNPropertiesDialog * self, GtkButton * button);
+void 	mn_properties_dialog_remove_clicked_h	(MNPropertiesDialog * self, GtkButton * button);
+void 	mn_properties_dialog_properties_clicked_h	(MNPropertiesDialog * self, GtkButton * button);
+void 	mn_properties_dialog_summary_enable_toggled_h	(MNPropertiesDialog * self, GtkToggleButton * button);
+void 	mn_properties_dialog_summary_test_button_clicked_h	(MNPropertiesDialog * self, GtkButton * button);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-properties-dialog.c b/src/mn-properties-dialog.c
@@ -1,514 +1,711 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-properties-dialog.h"
+
+#include "mn-properties-dialog-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-properties-dialog.gob"
 
 #include "config.h"
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <eel/eel.h>
 #include "mn-conf.h"
-#include "mn-properties-dialog.h"
 #include "mn-util.h"
 #include "mn-mailbox-view.h"
 #include "mn-shell.h"
-#include "mn-main-window.h"
+#include "mn-mail-summary-popup.h"
+#include "mn-message.h"
 
-/*** types *******************************************************************/
-
-typedef struct
+enum
 {
-  GtkWidget		*dialog;
-  GtkWidget		*notebook;
-
-  /* general tab */
-  GtkWidget		*autostart_check;
-  GtkWidget		*blink_check;
-  GtkWidget		*summary_tooltip_check;
-  GtkWidget		*command_mail_reader_check;
-  GtkWidget		*command_mail_reader_entry;
-  GtkWidget		*command_new_mail_check;
-  GtkWidget		*command_new_mail_entry;
-  GtkWidget		*command_mail_read_check;
-  GtkWidget		*command_mail_read_entry;
-  GtkWidget		*action_main_window_radio;
-  GtkWidget		*action_mail_reader_radio;
-  GtkWidget		*action_update_radio;
-
-  /* mailboxes tab */
-  GtkWidget		*delay_label;
-  GtkWidget		*minutes_spin;
-  GtkWidget		*minutes_label;
-  GtkWidget		*seconds_spin;
-  GtkWidget		*seconds_label;
-  GtkWidget		*scrolled;
-  GtkWidget		*list;
-  GtkWidget		*selected_label;
-  GtkWidget		*remove;
-  GtkWidget		*properties;
-
-  /* mail summary popup tab */
-  GtkWidget		*summary_enable_check;
-  GtkWidget		*summary_autoclose_check;
-  GtkWidget		*summary_minutes_spin;
-  GtkWidget		*summary_minutes_label;
-  GtkWidget		*summary_seconds_spin;
-  GtkWidget		*summary_seconds_label;
-  GtkWidget		*summary_only_recent_check;
-  GtkWidget		*summary_position_label;
-  GtkWidget		*summary_position_combo;
-  GtkWidget		*summary_horizontal_offset_label;
-  GtkWidget		*summary_horizontal_offset_spin;
-  GtkWidget		*summary_horizontal_pixels_label;
-  GtkWidget		*summary_vertical_offset_label;
-  GtkWidget		*summary_vertical_offset_spin;
-  GtkWidget		*summary_vertical_pixels_label;
-  GtkWidget		*summary_fonts_from_theme_radio;
-  GtkWidget		*summary_custom_fonts_radio;
-  GtkWidget		*summary_title_font_alignment;
-  GtkWidget		*summary_title_font_label;
-  GtkWidget		*summary_title_font_button;
-  GtkWidget		*summary_contents_font_alignment;
-  GtkWidget		*summary_contents_font_label;
-  GtkWidget		*summary_contents_font_button;
-
-  GtkTooltips		*tooltips;
-} PropertiesDialog;
-
-enum {
   POSITION_COLUMN_NICK,
   POSITION_COLUMN_LABEL,
   POSITION_N_COLUMNS
 };
 
-/*** variables ***************************************************************/
-
-static PropertiesDialog self = { NULL };
-  
-/*** functions ***************************************************************/
-
-static void mn_properties_dialog_weak_notify_cb (gpointer data,
-						 GObject *former_dialog);
+#line 47 "mn-properties-dialog.c"
+/* self casting macros */
+#define SELF(x) MN_PROPERTIES_DIALOG(x)
+#define SELF_CONST(x) MN_PROPERTIES_DIALOG_CONST(x)
+#define IS_SELF(x) MN_IS_PROPERTIES_DIALOG(x)
+#define TYPE_SELF MN_TYPE_PROPERTIES_DIALOG
+#define SELF_CLASS(x) MN_PROPERTIES_DIALOG_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_PROPERTIES_DIALOG_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNPropertiesDialog Self;
+typedef MNPropertiesDialogClass SelfClass;
+
+/* here are local prototypes */
+static void mn_properties_dialog_class_init (MNPropertiesDialogClass * c) G_GNUC_UNUSED;
+static void mn_properties_dialog_init (MNPropertiesDialog * self) G_GNUC_UNUSED;
+static void mn_properties_dialog_response_h (MNPropertiesDialog * self, int response, gpointer user_data) G_GNUC_UNUSED;
+static void mn_properties_dialog_add_position (GtkListStore * store, MNPosition position, const char * label) G_GNUC_UNUSED;
+static void mn_properties_dialog_update_selected_label (MNPropertiesDialog * self) G_GNUC_UNUSED;
+static void mn_properties_dialog_update_sensitivity (MNPropertiesDialog * self) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNDialogClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_response_h mn_properties_dialog_response_h
+#define self_add_position mn_properties_dialog_add_position
+#define self_update_selected_label mn_properties_dialog_update_selected_label
+#define self_update_sensitivity mn_properties_dialog_update_sensitivity
+#define self_test_popup_displayed mn_properties_dialog_test_popup_displayed
+#define self_toggled_h mn_properties_dialog_toggled_h
+#define self_autostart_toggled_h mn_properties_dialog_autostart_toggled_h
+#define self_add_clicked_h mn_properties_dialog_add_clicked_h
+#define self_remove_clicked_h mn_properties_dialog_remove_clicked_h
+#define self_properties_clicked_h mn_properties_dialog_properties_clicked_h
+#define self_summary_enable_toggled_h mn_properties_dialog_summary_enable_toggled_h
+#define self_summary_test_button_clicked_h mn_properties_dialog_summary_test_button_clicked_h
+GType
+mn_properties_dialog_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNPropertiesDialogClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_properties_dialog_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNPropertiesDialog),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_properties_dialog_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_DIALOG, "MNPropertiesDialog", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
 
-static void mn_properties_dialog_add_position (GtkListStore *store,
-					       MNPosition position,
-					       const char *label);
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNPropertiesDialog *)g_object_new(mn_properties_dialog_get_type(), NULL))
 
-static void mn_properties_dialog_update_selected_label (void);
-static void mn_properties_dialog_update_sensitivity (void);
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNPropertiesDialog * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNPropertiesDialog *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNPropertiesDialog *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNPropertiesDialog *)g_object_new_valist (mn_properties_dialog_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
 
-static void mn_properties_dialog_selection_changed_h (GtkTreeSelection *selection,
-						      gpointer user_data);
 
-/*** implementation **********************************************************/
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::finalize"
+	MNPropertiesDialog *self G_GNUC_UNUSED = MN_PROPERTIES_DIALOG (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#define test_popup (self->_priv->test_popup)
+#define VAR test_popup
+	{
+#line 103 "mn-properties-dialog.gob"
+	
+      if (VAR)
+	{
+	  g_object_weak_unref(G_OBJECT(VAR), (GWeakNotify) self_update_sensitivity, self);
+	  gtk_widget_destroy(VAR);
+	}
+    }
+#line 147 "mn-properties-dialog.c"
+	memset(&test_popup, 0, sizeof(test_popup));
+#undef VAR
+#undef test_popup
+}
+#undef __GOB_FUNCTION__
 
-void
-mn_properties_dialog_display (void)
+static void 
+mn_properties_dialog_class_init (MNPropertiesDialogClass * c G_GNUC_UNUSED)
 {
-  GtkSizeGroup *size_group;
-  GtkTreeSelection *selection;
-  GtkListStore *position_store;
-  GtkCellRenderer *renderer;
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
 
-  g_return_if_fail(mn_shell != NULL);
+	g_type_class_add_private(c,sizeof(MNPropertiesDialogPrivate));
 
-  if (self.dialog)
-    {
-      gtk_window_present(GTK_WINDOW(self.dialog));
-      return;
-    }
-  
-  mn_create_interface(MN_INTERFACE_FILE("properties.glade"),
-		      "dialog", &self.dialog,
-		      "notebook", &self.notebook,
-		      "autostart_check", &self.autostart_check,
-		      "blink_check", &self.blink_check,
-		      "summary_tooltip_check", &self.summary_tooltip_check,
-		      "command_mail_reader_check", &self.command_mail_reader_check,
-		      "command_mail_reader_entry", &self.command_mail_reader_entry,
-		      "command_new_mail_check", &self.command_new_mail_check,
-		      "command_new_mail_entry", &self.command_new_mail_entry,
-		      "command_mail_read_check", &self.command_mail_read_check,
-		      "command_mail_read_entry", &self.command_mail_read_entry,
-		      "action_main_window_radio", &self.action_main_window_radio,
-		      "action_mail_reader_radio", &self.action_mail_reader_radio,
-		      "action_update_radio", &self.action_update_radio,
-		      "delay_label", &self.delay_label,
-		      "minutes_spin", &self.minutes_spin,
-		      "minutes_label", &self.minutes_label,
-		      "seconds_spin", &self.seconds_spin,
-		      "seconds_label", &self.seconds_label,
-		      "scrolled", &self.scrolled,
-		      "selected_label", &self.selected_label,
-		      "remove", &self.remove,
-		      "properties", &self.properties,
-		      "summary_enable_check", &self.summary_enable_check,
-		      "summary_autoclose_check", &self.summary_autoclose_check,
-		      "summary_minutes_spin", &self.summary_minutes_spin,
-		      "summary_minutes_label", &self.summary_minutes_label,
-		      "summary_seconds_spin", &self.summary_seconds_spin,
-		      "summary_seconds_label", &self.summary_seconds_label,
-		      "summary_only_recent_check", &self.summary_only_recent_check,
-		      "summary_position_label", &self.summary_position_label,
-		      "summary_position_combo", &self.summary_position_combo,
-		      "summary_horizontal_offset_label", &self.summary_horizontal_offset_label,
-		      "summary_horizontal_offset_spin", &self.summary_horizontal_offset_spin,
-		      "summary_horizontal_pixels_label", &self.summary_horizontal_pixels_label,
-		      "summary_vertical_offset_label", &self.summary_vertical_offset_label,
-		      "summary_vertical_offset_spin", &self.summary_vertical_offset_spin,
-		      "summary_vertical_pixels_label", &self.summary_vertical_pixels_label,
-		      "summary_fonts_from_theme_radio", &self.summary_fonts_from_theme_radio,
-		      "summary_custom_fonts_radio", &self.summary_custom_fonts_radio,
-		      "summary_title_font_alignment", &self.summary_title_font_alignment,
-		      "summary_title_font_label", &self.summary_title_font_label,
-		      "summary_title_font_button", &self.summary_title_font_button,
-		      "summary_contents_font_alignment", &self.summary_contents_font_alignment,
-		      "summary_contents_font_label", &self.summary_contents_font_label,
-		      "summary_contents_font_button", &self.summary_contents_font_button,
-		      NULL);
-
-  eel_add_weak_pointer(&self.dialog);
-  g_object_weak_ref(G_OBJECT(self.dialog), mn_properties_dialog_weak_notify_cb, NULL);
-
-  self.tooltips = gtk_tooltips_new();
-  mn_gtk_object_ref_and_sink(GTK_OBJECT(self.tooltips));
-  eel_add_weak_pointer(&self.tooltips);
-
-  self.list = mn_mailbox_view_new();
-  gtk_container_add(GTK_CONTAINER(self.scrolled), self.list);
-  gtk_widget_show(self.list);
-
-  selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self.list));
-  g_signal_connect(selection, "changed", G_CALLBACK(mn_properties_dialog_selection_changed_h), NULL);
-  
-  mn_setup_dnd(self.scrolled);
+	parent_class = g_type_class_ref (MN_TYPE_DIALOG);
 
-  size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-  gtk_size_group_add_widget(size_group, self.command_mail_reader_check);
-  gtk_size_group_add_widget(size_group, self.command_new_mail_check);
-  gtk_size_group_add_widget(size_group, self.command_mail_read_check);
-  g_object_unref(size_group);
+	g_object_class->finalize = ___finalize;
+}
+#undef __GOB_FUNCTION__
+#line 111 "mn-properties-dialog.gob"
+static void 
+mn_properties_dialog_init (MNPropertiesDialog * self G_GNUC_UNUSED)
+#line 170 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::init"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_PROPERTIES_DIALOG,MNPropertiesDialogPrivate);
+ {
+#line 112 "mn-properties-dialog.gob"
+
+    GtkSizeGroup *size_group;
+    GtkTreeSelection *selection;
+    GtkListStore *position_store;
+    GtkCellRenderer *renderer;
+
+    mn_container_create_interface(GTK_CONTAINER(self),
+				  MN_INTERFACE_FILE("properties-dialog.glade"),
+				  "notebook",
+				  "mn_properties_dialog_",
+				  "notebook", &selfp->notebook,
+				  "autostart_check", &selfp->autostart_check,
+				  "blink_check", &selfp->blink_check,
+				  "summary_tooltip_check", &selfp->summary_tooltip_check,
+				  "command_mail_reader_check", &selfp->command_mail_reader_check,
+				  "command_mail_reader_entry", &selfp->command_mail_reader_entry,
+				  "command_new_mail_check", &selfp->command_new_mail_check,
+				  "command_new_mail_entry", &selfp->command_new_mail_entry,
+				  "command_mail_read_check", &selfp->command_mail_read_check,
+				  "command_mail_read_entry", &selfp->command_mail_read_entry,
+				  "action_main_window_radio", &selfp->action_main_window_radio,
+				  "action_mail_reader_radio", &selfp->action_mail_reader_radio,
+				  "action_update_radio", &selfp->action_update_radio,
+				  "delay_label", &selfp->delay_label,
+				  "minutes_spin", &selfp->minutes_spin,
+				  "minutes_label", &selfp->minutes_label,
+				  "seconds_spin", &selfp->seconds_spin,
+				  "seconds_label", &selfp->seconds_label,
+				  "scrolled", &selfp->scrolled,
+				  "selected_label", &selfp->selected_label,
+				  "remove", &selfp->remove,
+				  "properties", &selfp->properties,
+				  "summary_enable_check", &selfp->summary_enable_check,
+				  "summary_autoclose_check", &selfp->summary_autoclose_check,
+				  "summary_minutes_spin", &selfp->summary_minutes_spin,
+				  "summary_minutes_label", &selfp->summary_minutes_label,
+				  "summary_seconds_spin", &selfp->summary_seconds_spin,
+				  "summary_seconds_label", &selfp->summary_seconds_label,
+				  "summary_only_recent_check", &selfp->summary_only_recent_check,
+				  "summary_position_label", &selfp->summary_position_label,
+				  "summary_position_combo", &selfp->summary_position_combo,
+				  "summary_horizontal_offset_label", &selfp->summary_horizontal_offset_label,
+				  "summary_horizontal_offset_spin", &selfp->summary_horizontal_offset_spin,
+				  "summary_horizontal_pixels_label", &selfp->summary_horizontal_pixels_label,
+				  "summary_vertical_offset_label", &selfp->summary_vertical_offset_label,
+				  "summary_vertical_offset_spin", &selfp->summary_vertical_offset_spin,
+				  "summary_vertical_pixels_label", &selfp->summary_vertical_pixels_label,
+				  "summary_fonts_from_theme_radio", &selfp->summary_fonts_from_theme_radio,
+				  "summary_custom_fonts_radio", &selfp->summary_custom_fonts_radio,
+				  "summary_title_font_alignment", &selfp->summary_title_font_alignment,
+				  "summary_title_font_label", &selfp->summary_title_font_label,
+				  "summary_title_font_button", &selfp->summary_title_font_button,
+				  "summary_contents_font_alignment", &selfp->summary_contents_font_alignment,
+				  "summary_contents_font_label", &selfp->summary_contents_font_label,
+				  "summary_contents_font_button", &selfp->summary_contents_font_button,
+				  "summary_test_button", &selfp->summary_test_button,
+				  NULL);
+
+    gtk_window_set_title(GTK_WINDOW(self), _("Mail Notification Properties"));
+    gtk_dialog_add_buttons(GTK_DIALOG(self),
+			   GTK_STOCK_HELP, GTK_RESPONSE_HELP,
+			   GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+			   NULL);
+
+    selfp->list = mn_mailbox_view_new();
+    gtk_container_add(GTK_CONTAINER(selfp->scrolled), selfp->list);
+    gtk_widget_show(selfp->list);
+
+    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+    g_object_connect(selection,
+		     "swapped-signal::changed", self_update_selected_label, self,
+		     "swapped-signal::changed", self_update_sensitivity, self,
+		     NULL);
   
-  size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
-  gtk_size_group_add_widget(size_group, self.summary_autoclose_check);
-  gtk_size_group_add_widget(size_group, self.summary_position_label);
-  gtk_size_group_add_widget(size_group, self.summary_horizontal_offset_label);
-  gtk_size_group_add_widget(size_group, self.summary_vertical_offset_label);
-  gtk_size_group_add_widget(size_group, self.summary_title_font_alignment);
-  gtk_size_group_add_widget(size_group, self.summary_contents_font_alignment);
-  g_object_unref(size_group);
-
-  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self.autostart_check), mn_conf_get_autostart());
-
-  position_store = gtk_list_store_new(POSITION_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
-
-  mn_properties_dialog_add_position(position_store, MN_POSITION_TOP_LEFT, _("top left"));
-  mn_properties_dialog_add_position(position_store, MN_POSITION_TOP_RIGHT, _("top right"));
-  mn_properties_dialog_add_position(position_store, MN_POSITION_BOTTOM_LEFT, _("bottom left"));
-  mn_properties_dialog_add_position(position_store, MN_POSITION_BOTTOM_RIGHT, _("bottom right"));
-
-  renderer = gtk_cell_renderer_text_new();
-  gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(self.summary_position_combo), renderer, TRUE);
-  gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(self.summary_position_combo), renderer,
-				 "text", POSITION_COLUMN_LABEL,
-				 NULL);
-
-  gtk_combo_box_set_model(GTK_COMBO_BOX(self.summary_position_combo), GTK_TREE_MODEL(position_store));
-  g_object_unref(position_store);
+    mn_setup_dnd(selfp->scrolled);
+
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+    gtk_size_group_add_widget(size_group, selfp->command_mail_reader_check);
+    gtk_size_group_add_widget(size_group, selfp->command_new_mail_check);
+    gtk_size_group_add_widget(size_group, selfp->command_mail_read_check);
+    g_object_unref(size_group);
   
-  mn_conf_link(self.dialog, MN_CONF_PROPERTIES_DIALOG,
-	       self.blink_check, MN_CONF_BLINK_ON_ERRORS, "active",
-	       self.summary_tooltip_check, MN_CONF_SUMMARY_TOOLTIP, "active",
-	       self.command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED, "active",
-	       self.command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND, "text",
-	       self.command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
-	       self.command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
-	       self.command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
-	       self.command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND, "text",
-	       self.minutes_spin, MN_CONF_DELAY_MINUTES,
-	       self.seconds_spin, MN_CONF_DELAY_SECONDS,
-	       self.summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, "active",
-	       self.summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, "active",
-	       self.summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
-	       self.summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
-	       self.summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT, "active",
-	       self.summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
-	       self.summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
-	       self.summary_title_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, "font-name",
-	       self.summary_contents_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, "font-name",
-	       NULL);
-  mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
-				   MN_CONF_DOUBLE_CLICK_ACTION_2,
-				   self.action_main_window_radio, MN_ACTION_DISPLAY_MAIN_WINDOW,
-				   self.action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
-				   self.action_update_radio, MN_ACTION_UPDATE_MAIL_STATUS,
-				   NULL);
-  mn_conf_link_radio_group_to_enum(MN_TYPE_ASPECT_SOURCE,
-				   MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE,
-				   self.summary_fonts_from_theme_radio, MN_ASPECT_SOURCE_THEME,
-				   self.summary_custom_fonts_radio, MN_ASPECT_SOURCE_CUSTOM,
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+    gtk_size_group_add_widget(size_group, selfp->summary_autoclose_check);
+    gtk_size_group_add_widget(size_group, selfp->summary_position_label);
+    gtk_size_group_add_widget(size_group, selfp->summary_horizontal_offset_label);
+    gtk_size_group_add_widget(size_group, selfp->summary_vertical_offset_label);
+    gtk_size_group_add_widget(size_group, selfp->summary_title_font_alignment);
+    gtk_size_group_add_widget(size_group, selfp->summary_contents_font_alignment);
+    g_object_unref(size_group);
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->autostart_check), mn_conf_get_autostart());
+
+    position_store = gtk_list_store_new(POSITION_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+
+    self_add_position(position_store, MN_POSITION_TOP_LEFT, _("top left"));
+    self_add_position(position_store, MN_POSITION_TOP_RIGHT, _("top right"));
+    self_add_position(position_store, MN_POSITION_BOTTOM_LEFT, _("bottom left"));
+    self_add_position(position_store, MN_POSITION_BOTTOM_RIGHT, _("bottom right"));
+
+    renderer = gtk_cell_renderer_text_new();
+    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer, TRUE);
+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer,
+				   "text", POSITION_COLUMN_LABEL,
 				   NULL);
-  mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(self.summary_position_combo),
-				   POSITION_COLUMN_NICK,
-				   MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
 
-  mn_properties_dialog_update_selected_label();
-  mn_properties_dialog_update_sensitivity();
+    gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->summary_position_combo), GTK_TREE_MODEL(position_store));
+    g_object_unref(position_store);
+  
+    mn_conf_link(self, MN_CONF_PROPERTIES_DIALOG,
+		 selfp->blink_check, MN_CONF_BLINK_ON_ERRORS, "active",
+		 selfp->summary_tooltip_check, MN_CONF_SUMMARY_TOOLTIP, "active",
+		 selfp->command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED, "active",
+		 selfp->command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND, "text",
+		 selfp->command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
+		 selfp->command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
+		 selfp->command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
+		 selfp->command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND, "text",
+		 selfp->minutes_spin, MN_CONF_DELAY_MINUTES,
+		 selfp->seconds_spin, MN_CONF_DELAY_SECONDS,
+		 selfp->summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, "active",
+		 selfp->summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, "active",
+		 selfp->summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+		 selfp->summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+		 selfp->summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT, "active",
+		 selfp->summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
+		 selfp->summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
+		 selfp->summary_title_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, "font-name",
+		 selfp->summary_contents_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, "font-name",
+		 NULL);
+    mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
+				     MN_CONF_DOUBLE_CLICK_ACTION_2,
+				     selfp->action_main_window_radio, MN_ACTION_DISPLAY_MAIN_WINDOW,
+				     selfp->action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
+				     selfp->action_update_radio, MN_ACTION_UPDATE_MAIL_STATUS,
+				     NULL);
+    mn_conf_link_radio_group_to_enum(MN_TYPE_ASPECT_SOURCE,
+				     MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE,
+				     selfp->summary_fonts_from_theme_radio, MN_ASPECT_SOURCE_THEME,
+				     selfp->summary_custom_fonts_radio, MN_ASPECT_SOURCE_CUSTOM,
+				     NULL);
+    mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(selfp->summary_position_combo),
+				     POSITION_COLUMN_NICK,
+				     MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+
+    self_update_selected_label(self);
+    self_update_sensitivity(self);
+
+    mn_g_object_connect(self,
+			mn_shell->mailboxes,
+			"swapped-signal::notify::must-poll", self_update_sensitivity, self,
+			NULL);
+
+    g_signal_connect(self, "response", G_CALLBACK(self_response_h), NULL);
+  
+#line 331 "mn-properties-dialog.c"
+ }
+}
+#undef __GOB_FUNCTION__
 
-  mn_g_object_connect(self.dialog,
-		      mn_shell->mailboxes,
-		      "signal::notify::must-poll", mn_properties_dialog_update_sensitivity, NULL,
-		      NULL);
 
-  mn_main_window_add_transient(GTK_WINDOW(self.dialog));
-  gtk_widget_show(self.dialog);
-}
 
-static void
-mn_properties_dialog_weak_notify_cb (gpointer data, GObject *former_dialog)
+#line 268 "mn-properties-dialog.gob"
+static void 
+mn_properties_dialog_response_h (MNPropertiesDialog * self, int response, gpointer user_data)
+#line 341 "mn-properties-dialog.c"
 {
-  g_object_unref(self.tooltips);
-}
-
-static void
-mn_properties_dialog_add_position (GtkListStore *store,
-				   MNPosition position,
-				   const char *label)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::response_h"
+#line 268 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 268 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 348 "mn-properties-dialog.c"
 {
-  GEnumClass *enum_class;
-  GEnumValue *enum_value;
-  GtkTreeIter iter;
-
-  g_return_if_fail(GTK_IS_LIST_STORE(store));
-  g_return_if_fail(label != NULL);
-
-  enum_class = g_type_class_ref(MN_TYPE_POSITION);
-  g_return_if_fail(enum_class != NULL);
+#line 270 "mn-properties-dialog.gob"
+	
+    switch (response)
+      {
+      case GTK_RESPONSE_HELP:
+	{
+	  int current_page;
+	  const char *sections[] = {
+	    "properties-general",
+	    "properties-mailboxes",
+	    "properties-mail-summary-popup"
+	  };
+	
+	  current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(selfp->notebook));
+	  g_return_if_fail(current_page >= 0 && current_page < G_N_ELEMENTS(sections));
 
-  enum_value = g_enum_get_value(enum_class, position);
-  g_return_if_fail(enum_value != NULL);
+	  mn_display_help(GTK_WINDOW(self), sections[current_page]);
+	  break;
+	}
+    
+      case GTK_RESPONSE_CLOSE:
+	gtk_widget_destroy(GTK_WIDGET(self));
+	break;
+      }
+  }}
+#line 375 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 295 "mn-properties-dialog.gob"
+static void 
+mn_properties_dialog_add_position (GtkListStore * store, MNPosition position, const char * label)
+#line 381 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::add_position"
+#line 295 "mn-properties-dialog.gob"
+	g_return_if_fail (store != NULL);
+#line 295 "mn-properties-dialog.gob"
+	g_return_if_fail (GTK_IS_LIST_STORE (store));
+#line 295 "mn-properties-dialog.gob"
+	g_return_if_fail (label != NULL);
+#line 390 "mn-properties-dialog.c"
+{
+#line 299 "mn-properties-dialog.gob"
+	
+    GEnumClass *enum_class;
+    GEnumValue *enum_value;
+    GtkTreeIter iter;
+
+    enum_class = g_type_class_ref(MN_TYPE_POSITION);
+    g_return_if_fail(enum_class != NULL);
+
+    enum_value = g_enum_get_value(enum_class, position);
+    g_return_if_fail(enum_value != NULL);
+
+    gtk_list_store_append(store, &iter);
+    gtk_list_store_set(store, &iter,
+		       POSITION_COLUMN_NICK, enum_value->value_nick,
+		       POSITION_COLUMN_LABEL, label,
+		       -1);
+
+    g_type_class_unref(enum_class);
+  }}
+#line 412 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 319 "mn-properties-dialog.gob"
+static void 
+mn_properties_dialog_update_selected_label (MNPropertiesDialog * self)
+#line 418 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::update_selected_label"
+#line 319 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 319 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 425 "mn-properties-dialog.c"
+{
+#line 321 "mn-properties-dialog.gob"
+	
+    GtkTreeSelection *selection;
+    int n_rows;
 
-  gtk_list_store_append(store, &iter);
-  gtk_list_store_set(store, &iter,
-		     POSITION_COLUMN_NICK, enum_value->value_nick,
-		     POSITION_COLUMN_LABEL, label,
-		     -1);
+    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+    n_rows = gtk_tree_selection_count_selected_rows(selection);
 
-  g_type_class_unref(enum_class);
-}
+    if (n_rows == 0)
+      gtk_label_set_text(GTK_LABEL(selfp->selected_label), _("No mailbox selected."));
+    else
+      {
+	char *str;
 
-static void
-mn_properties_dialog_update_selected_label (void)
+	str = g_strdup_printf(ngettext("%i mailbox selected.",
+				       "%i mailboxes selected.",
+				       n_rows), n_rows);
+	gtk_label_set_text(GTK_LABEL(selfp->selected_label), str);
+	g_free(str);
+      }
+  }}
+#line 448 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 342 "mn-properties-dialog.gob"
+static void 
+mn_properties_dialog_update_sensitivity (MNPropertiesDialog * self)
+#line 454 "mn-properties-dialog.c"
 {
-  GtkTreeSelection *selection;
-  int n_rows;
-
-  selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self.list));
-  n_rows = gtk_tree_selection_count_selected_rows(selection);
-
-  if (n_rows == 0)
-    gtk_label_set_text(GTK_LABEL(self.selected_label), _("No mailbox selected."));
-  else
-    {
-      char *str;
-
-      str = g_strdup_printf(ngettext("%i mailbox selected.",
-				     "%i mailboxes selected.",
-				     n_rows), n_rows);
-      gtk_label_set_text(GTK_LABEL(self.selected_label), str);
-      g_free(str);
-    }
-}
-
-static void
-mn_properties_dialog_update_sensitivity (void)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::update_sensitivity"
+#line 342 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 342 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 461 "mn-properties-dialog.c"
 {
-  gboolean command_mail_reader_enabled;
-  gboolean command_new_mail_enabled;
-  gboolean command_mail_read_enabled;
-  gboolean must_poll;
-  GtkTreeSelection *selection;
-  gboolean has_selection;
-  gboolean summary_enabled;
-  gboolean summary_autoclose_enabled;
-  gboolean summary_custom_fonts_enabled;
-
-  command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.command_mail_reader_check));
-  command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.command_new_mail_check));
-  command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.command_mail_read_check));
-
-  gtk_widget_set_sensitive(self.command_mail_reader_entry, command_mail_reader_enabled);
-  gtk_widget_set_sensitive(self.command_new_mail_entry, command_new_mail_enabled);
-  gtk_widget_set_sensitive(self.command_mail_read_entry, command_mail_read_enabled);
-
-  must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
-  gtk_widget_set_sensitive(self.delay_label, must_poll);
-  gtk_widget_set_sensitive(self.minutes_spin, must_poll);
-  gtk_widget_set_sensitive(self.minutes_label, must_poll);
-  gtk_widget_set_sensitive(self.seconds_spin, must_poll);
-  gtk_widget_set_sensitive(self.seconds_label, must_poll);
-
-  selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self.list));
-  has_selection = gtk_tree_selection_count_selected_rows(selection) > 0;
-
-  gtk_widget_set_sensitive(self.remove, has_selection);
-  gtk_widget_set_sensitive(self.properties, has_selection);
-
-  summary_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.summary_enable_check));
-  summary_autoclose_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.summary_autoclose_check));
-  summary_custom_fonts_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self.summary_custom_fonts_radio));
-
-  gtk_widget_set_sensitive(self.summary_autoclose_check, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_minutes_spin, summary_enabled && summary_autoclose_enabled);
-  gtk_widget_set_sensitive(self.summary_minutes_label, summary_enabled && summary_autoclose_enabled);
-  gtk_widget_set_sensitive(self.summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
-  gtk_widget_set_sensitive(self.summary_seconds_label, summary_enabled && summary_autoclose_enabled);
-  gtk_widget_set_sensitive(self.summary_only_recent_check, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_position_label, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_position_combo, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_horizontal_offset_label, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_horizontal_offset_spin, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_horizontal_pixels_label, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_vertical_offset_label, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_vertical_offset_spin, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_vertical_pixels_label, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_fonts_from_theme_radio, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_custom_fonts_radio, summary_enabled);
-  gtk_widget_set_sensitive(self.summary_title_font_label, summary_enabled && summary_custom_fonts_enabled);
-  gtk_widget_set_sensitive(self.summary_title_font_button, summary_enabled && summary_custom_fonts_enabled);
-  gtk_widget_set_sensitive(self.summary_contents_font_label, summary_enabled && summary_custom_fonts_enabled);
-  gtk_widget_set_sensitive(self.summary_contents_font_button, summary_enabled && summary_custom_fonts_enabled);
-}
-
-static void
-mn_properties_dialog_selection_changed_h (GtkTreeSelection *selection,
-					  gpointer user_data)
+#line 344 "mn-properties-dialog.gob"
+	
+    gboolean command_mail_reader_enabled;
+    gboolean command_new_mail_enabled;
+    gboolean command_mail_read_enabled;
+    gboolean must_poll;
+    GtkTreeSelection *selection;
+    gboolean has_selection;
+    gboolean summary_enabled;
+    gboolean summary_autoclose_enabled;
+    gboolean summary_custom_fonts_enabled;
+
+    command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_reader_check));
+    command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_new_mail_check));
+    command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_read_check));
+
+    gtk_widget_set_sensitive(selfp->command_mail_reader_entry, command_mail_reader_enabled);
+    gtk_widget_set_sensitive(selfp->command_new_mail_entry, command_new_mail_enabled);
+    gtk_widget_set_sensitive(selfp->command_mail_read_entry, command_mail_read_enabled);
+
+    must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
+    gtk_widget_set_sensitive(selfp->delay_label, must_poll);
+    gtk_widget_set_sensitive(selfp->minutes_spin, must_poll);
+    gtk_widget_set_sensitive(selfp->minutes_label, must_poll);
+    gtk_widget_set_sensitive(selfp->seconds_spin, must_poll);
+    gtk_widget_set_sensitive(selfp->seconds_label, must_poll);
+
+    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+    has_selection = gtk_tree_selection_count_selected_rows(selection) > 0;
+
+    gtk_widget_set_sensitive(selfp->remove, has_selection);
+    gtk_widget_set_sensitive(selfp->properties, has_selection);
+
+    summary_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_enable_check));
+    summary_autoclose_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_autoclose_check));
+    summary_custom_fonts_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_custom_fonts_radio));
+
+    gtk_widget_set_sensitive(selfp->summary_autoclose_check, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_minutes_spin, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_minutes_label, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_seconds_label, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_only_recent_check, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_position_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_position_combo, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_horizontal_offset_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_horizontal_offset_spin, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_horizontal_pixels_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_vertical_offset_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_vertical_offset_spin, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_vertical_pixels_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_fonts_from_theme_radio, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_custom_fonts_radio, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_title_font_label, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_title_font_button, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_contents_font_label, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_contents_font_button, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_test_button, summary_enabled && ! selfp->test_popup);
+  }}
+#line 522 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 403 "mn-properties-dialog.gob"
+gboolean 
+mn_properties_dialog_test_popup_displayed (MNPropertiesDialog * self)
+#line 528 "mn-properties-dialog.c"
 {
-  mn_properties_dialog_update_selected_label();
-  mn_properties_dialog_update_sensitivity();
-}
-
-void
-mn_properties_dialog_set_tooltip (GtkWidget *widget, const char *tip)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::test_popup_displayed"
+#line 403 "mn-properties-dialog.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 403 "mn-properties-dialog.gob"
+	g_return_val_if_fail (MN_IS_PROPERTIES_DIALOG (self), (gboolean )0);
+#line 535 "mn-properties-dialog.c"
 {
-  g_return_if_fail(self.tooltips != NULL);
-  g_return_if_fail(GTK_IS_WIDGET(widget));
-
-  gtk_tooltips_set_tip(self.tooltips, widget, tip, NULL);
-}
-
-void
-mn_properties_dialog_set_tooltips (GtkWidget *widget, ...)
+#line 405 "mn-properties-dialog.gob"
+	
+    return selfp->test_popup != NULL;
+  }}
+#line 541 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 411 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_toggled_h (MNPropertiesDialog * self, GtkToggleButton * button)
+#line 547 "mn-properties-dialog.c"
 {
-  va_list args;
-
-  g_return_if_fail(self.tooltips != NULL);
-
-  va_start(args, widget);
-  while (widget)
-    {
-      const char *tip;
-
-      g_return_if_fail(GTK_IS_WIDGET(widget));
-
-      tip = va_arg(args, const char *);
-
-      mn_properties_dialog_set_tooltip(widget, tip);
-
-      widget = va_arg(args, GtkWidget *);
-    }
-  va_end(args);
-}
-
-/* libglade callbacks */
-
-void
-mn_properties_dialog_autostart_toggled_h (GtkToggleButton *togglebutton,
-					  gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::toggled_h"
+#line 411 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 411 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 554 "mn-properties-dialog.c"
 {
-  mn_conf_set_autostart(gtk_toggle_button_get_active(togglebutton));
-}
-
-void
-mn_properties_dialog_toggled_h (GtkToggleButton *togglebutton,
-				gpointer user_data)
+#line 413 "mn-properties-dialog.gob"
+	
+    self_update_sensitivity(self);
+  }}
+#line 560 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 417 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_autostart_toggled_h (MNPropertiesDialog * self, GtkToggleButton * togglebutton)
+#line 566 "mn-properties-dialog.c"
 {
-  mn_properties_dialog_update_sensitivity();
-}
-
-void
-mn_properties_dialog_add_clicked_h (GtkButton *button, gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::autostart_toggled_h"
+#line 417 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 417 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 573 "mn-properties-dialog.c"
 {
-  mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(self.list));
-}
-
-void
-mn_properties_dialog_remove_clicked_h (GtkButton *button, gpointer user_data)
+#line 419 "mn-properties-dialog.gob"
+	
+    mn_conf_set_autostart(gtk_toggle_button_get_active(togglebutton));
+  }}
+#line 579 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 423 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_add_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 585 "mn-properties-dialog.c"
 {
-  mn_mailbox_view_activate_remove(MN_MAILBOX_VIEW(self.list));
-}
-
-void
-mn_properties_dialog_properties_clicked_h (GtkButton *button,
-					   gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::add_clicked_h"
+#line 423 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 423 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 592 "mn-properties-dialog.c"
 {
-  mn_mailbox_view_activate_properties(MN_MAILBOX_VIEW(self.list));
-}
-
-gboolean
-mn_properties_dialog_scrolled_drag_motion_h (GtkWidget *widget,
-					     GdkDragContext *drag_context,
-					     int x,
-					     int y,
-					     unsigned int time,
-					     gpointer user_data)
+#line 425 "mn-properties-dialog.gob"
+	
+    mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(selfp->list));
+  }}
+#line 598 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 429 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_remove_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 604 "mn-properties-dialog.c"
 {
-  GtkAdjustment *adjustment;
-  
-  adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(self.scrolled));
-  gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
-
-  return TRUE;
-}
-
-void
-mn_properties_dialog_response_h (GtkDialog *dialog,
-				 int response,
-				 gpointer user_data)
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::remove_clicked_h"
+#line 429 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 429 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 611 "mn-properties-dialog.c"
 {
-  switch (response)
-    {
-    case GTK_RESPONSE_HELP:
-      {
-	int current_page;
-	const char *sections[] = {
-	  "properties-general",
-	  "properties-mailboxes",
-	  "properties-mail-summary-popup"
-	};
+#line 431 "mn-properties-dialog.gob"
 	
-	current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(self.notebook));
-	g_return_if_fail(current_page >= 0 && current_page < G_N_ELEMENTS(sections));
+    mn_mailbox_view_activate_remove(MN_MAILBOX_VIEW(selfp->list));
+  }}
+#line 617 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 435 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_properties_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 623 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::properties_clicked_h"
+#line 435 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 435 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 630 "mn-properties-dialog.c"
+{
+#line 437 "mn-properties-dialog.gob"
+	
+    mn_mailbox_view_activate_properties(MN_MAILBOX_VIEW(selfp->list));
+  }}
+#line 636 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 441 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_summary_enable_toggled_h (MNPropertiesDialog * self, GtkToggleButton * button)
+#line 642 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::summary_enable_toggled_h"
+#line 441 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 441 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 649 "mn-properties-dialog.c"
+{
+#line 443 "mn-properties-dialog.gob"
+	
+    self_update_sensitivity(self);
+
+    if (selfp->test_popup && ! gtk_toggle_button_get_active(button))
+      gtk_widget_destroy(selfp->test_popup);
+  }}
+#line 658 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
+
+#line 450 "mn-properties-dialog.gob"
+void 
+mn_properties_dialog_summary_test_button_clicked_h (MNPropertiesDialog * self, GtkButton * button)
+#line 664 "mn-properties-dialog.c"
+{
+#define __GOB_FUNCTION__ "MN:Properties:Dialog::summary_test_button_clicked_h"
+#line 450 "mn-properties-dialog.gob"
+	g_return_if_fail (self != NULL);
+#line 450 "mn-properties-dialog.gob"
+	g_return_if_fail (MN_IS_PROPERTIES_DIALOG (self));
+#line 671 "mn-properties-dialog.c"
+{
+#line 452 "mn-properties-dialog.gob"
+	
+    GSList *messages = NULL;
+    time_t now;
+    int i;
 
-	mn_display_help(GTK_WINDOW(dialog), sections[current_page]);
-	break;
+    now = mn_time();
+    selfp->test_popup = mn_mail_summary_popup_new();
+
+    for (i = 1; i < 4; i++)
+      {
+	MNMessage *message;
+	char *subject;
+
+	subject = g_strdup_printf(_("Test message #%i"), i);
+	message = mn_message_new(NULL,
+				 NULL,
+				 now,
+				 NULL,
+				 _("Mail Notification Properties Dialog"),
+				 subject);
+	g_free(subject);
+
+	messages = g_slist_append(messages, message);
       }
-    
-    case GTK_RESPONSE_CLOSE:
-      gtk_widget_destroy(self.dialog);
-      break;
-    }
-}
+
+    mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->test_popup), messages);
+    mn_g_object_slist_free(messages);
+
+    eel_add_weak_pointer(&selfp->test_popup);
+    g_object_weak_ref(G_OBJECT(selfp->test_popup), (GWeakNotify) self_update_sensitivity, self);
+
+    /* close the real mail summary popup if any */
+    mn_shell_close_mail_summary_popup(mn_shell);
+
+    self_update_sensitivity(self);
+    gtk_widget_show(selfp->test_popup);
+  }}
+#line 711 "mn-properties-dialog.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-properties-dialog.gob b/src/mn-properties-dialog.gob
@@ -0,0 +1,489 @@
+/* 
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-dialog.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include <eel/eel.h>
+#include "mn-conf.h"
+#include "mn-util.h"
+#include "mn-mailbox-view.h"
+#include "mn-shell.h"
+#include "mn-mail-summary-popup.h"
+#include "mn-message.h"
+
+enum
+{
+  POSITION_COLUMN_NICK,
+  POSITION_COLUMN_LABEL,
+  POSITION_N_COLUMNS
+};
+%}
+
+class MN:Properties:Dialog from MN:Dialog
+{
+  private GtkWidget *notebook;
+
+  /* general tab */
+  private GtkWidget *autostart_check;
+  private GtkWidget *blink_check;
+  private GtkWidget *summary_tooltip_check;
+  private GtkWidget *command_mail_reader_check;
+  private GtkWidget *command_mail_reader_entry;
+  private GtkWidget *command_new_mail_check;
+  private GtkWidget *command_new_mail_entry;
+  private GtkWidget *command_mail_read_check;
+  private GtkWidget *command_mail_read_entry;
+  private GtkWidget *action_main_window_radio;
+  private GtkWidget *action_mail_reader_radio;
+  private GtkWidget *action_update_radio;
+
+  /* mailboxes tab */
+  private GtkWidget *delay_label;
+  private GtkWidget *minutes_spin;
+  private GtkWidget *minutes_label;
+  private GtkWidget *seconds_spin;
+  private GtkWidget *seconds_label;
+  private GtkWidget *scrolled;
+  private GtkWidget *list;
+  private GtkWidget *selected_label;
+  private GtkWidget *remove;
+  private GtkWidget *properties;
+
+  /* mail summary popup tab */
+  private GtkWidget *summary_enable_check;
+  private GtkWidget *summary_autoclose_check;
+  private GtkWidget *summary_minutes_spin;
+  private GtkWidget *summary_minutes_label;
+  private GtkWidget *summary_seconds_spin;
+  private GtkWidget *summary_seconds_label;
+  private GtkWidget *summary_only_recent_check;
+  private GtkWidget *summary_position_label;
+  private GtkWidget *summary_position_combo;
+  private GtkWidget *summary_horizontal_offset_label;
+  private GtkWidget *summary_horizontal_offset_spin;
+  private GtkWidget *summary_horizontal_pixels_label;
+  private GtkWidget *summary_vertical_offset_label;
+  private GtkWidget *summary_vertical_offset_spin;
+  private GtkWidget *summary_vertical_pixels_label;
+  private GtkWidget *summary_fonts_from_theme_radio;
+  private GtkWidget *summary_custom_fonts_radio;
+  private GtkWidget *summary_title_font_alignment;
+  private GtkWidget *summary_title_font_label;
+  private GtkWidget *summary_title_font_button;
+  private GtkWidget *summary_contents_font_alignment;
+  private GtkWidget *summary_contents_font_label;
+  private GtkWidget *summary_contents_font_button;
+  private GtkWidget *summary_test_button;
+
+  private GtkWidget *test_popup
+    destroy
+    {
+      if (VAR)
+	{
+	  g_object_weak_unref(G_OBJECT(VAR), (GWeakNotify) self_update_sensitivity, self);
+	  gtk_widget_destroy(VAR);
+	}
+    };
+  
+  init (self)
+  {
+    GtkSizeGroup *size_group;
+    GtkTreeSelection *selection;
+    GtkListStore *position_store;
+    GtkCellRenderer *renderer;
+
+    mn_container_create_interface(GTK_CONTAINER(self),
+				  MN_INTERFACE_FILE("properties-dialog.glade"),
+				  "notebook",
+				  "mn_properties_dialog_",
+				  "notebook", &selfp->notebook,
+				  "autostart_check", &selfp->autostart_check,
+				  "blink_check", &selfp->blink_check,
+				  "summary_tooltip_check", &selfp->summary_tooltip_check,
+				  "command_mail_reader_check", &selfp->command_mail_reader_check,
+				  "command_mail_reader_entry", &selfp->command_mail_reader_entry,
+				  "command_new_mail_check", &selfp->command_new_mail_check,
+				  "command_new_mail_entry", &selfp->command_new_mail_entry,
+				  "command_mail_read_check", &selfp->command_mail_read_check,
+				  "command_mail_read_entry", &selfp->command_mail_read_entry,
+				  "action_main_window_radio", &selfp->action_main_window_radio,
+				  "action_mail_reader_radio", &selfp->action_mail_reader_radio,
+				  "action_update_radio", &selfp->action_update_radio,
+				  "delay_label", &selfp->delay_label,
+				  "minutes_spin", &selfp->minutes_spin,
+				  "minutes_label", &selfp->minutes_label,
+				  "seconds_spin", &selfp->seconds_spin,
+				  "seconds_label", &selfp->seconds_label,
+				  "scrolled", &selfp->scrolled,
+				  "selected_label", &selfp->selected_label,
+				  "remove", &selfp->remove,
+				  "properties", &selfp->properties,
+				  "summary_enable_check", &selfp->summary_enable_check,
+				  "summary_autoclose_check", &selfp->summary_autoclose_check,
+				  "summary_minutes_spin", &selfp->summary_minutes_spin,
+				  "summary_minutes_label", &selfp->summary_minutes_label,
+				  "summary_seconds_spin", &selfp->summary_seconds_spin,
+				  "summary_seconds_label", &selfp->summary_seconds_label,
+				  "summary_only_recent_check", &selfp->summary_only_recent_check,
+				  "summary_position_label", &selfp->summary_position_label,
+				  "summary_position_combo", &selfp->summary_position_combo,
+				  "summary_horizontal_offset_label", &selfp->summary_horizontal_offset_label,
+				  "summary_horizontal_offset_spin", &selfp->summary_horizontal_offset_spin,
+				  "summary_horizontal_pixels_label", &selfp->summary_horizontal_pixels_label,
+				  "summary_vertical_offset_label", &selfp->summary_vertical_offset_label,
+				  "summary_vertical_offset_spin", &selfp->summary_vertical_offset_spin,
+				  "summary_vertical_pixels_label", &selfp->summary_vertical_pixels_label,
+				  "summary_fonts_from_theme_radio", &selfp->summary_fonts_from_theme_radio,
+				  "summary_custom_fonts_radio", &selfp->summary_custom_fonts_radio,
+				  "summary_title_font_alignment", &selfp->summary_title_font_alignment,
+				  "summary_title_font_label", &selfp->summary_title_font_label,
+				  "summary_title_font_button", &selfp->summary_title_font_button,
+				  "summary_contents_font_alignment", &selfp->summary_contents_font_alignment,
+				  "summary_contents_font_label", &selfp->summary_contents_font_label,
+				  "summary_contents_font_button", &selfp->summary_contents_font_button,
+				  "summary_test_button", &selfp->summary_test_button,
+				  NULL);
+
+    gtk_window_set_title(GTK_WINDOW(self), _("Mail Notification Properties"));
+    gtk_dialog_add_buttons(GTK_DIALOG(self),
+			   GTK_STOCK_HELP, GTK_RESPONSE_HELP,
+			   GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+			   NULL);
+
+    selfp->list = mn_mailbox_view_new();
+    gtk_container_add(GTK_CONTAINER(selfp->scrolled), selfp->list);
+    gtk_widget_show(selfp->list);
+
+    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+    g_object_connect(selection,
+		     "swapped-signal::changed", self_update_selected_label, self,
+		     "swapped-signal::changed", self_update_sensitivity, self,
+		     NULL);
+  
+    mn_setup_dnd(selfp->scrolled);
+
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+    gtk_size_group_add_widget(size_group, selfp->command_mail_reader_check);
+    gtk_size_group_add_widget(size_group, selfp->command_new_mail_check);
+    gtk_size_group_add_widget(size_group, selfp->command_mail_read_check);
+    g_object_unref(size_group);
+  
+    size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+    gtk_size_group_add_widget(size_group, selfp->summary_autoclose_check);
+    gtk_size_group_add_widget(size_group, selfp->summary_position_label);
+    gtk_size_group_add_widget(size_group, selfp->summary_horizontal_offset_label);
+    gtk_size_group_add_widget(size_group, selfp->summary_vertical_offset_label);
+    gtk_size_group_add_widget(size_group, selfp->summary_title_font_alignment);
+    gtk_size_group_add_widget(size_group, selfp->summary_contents_font_alignment);
+    g_object_unref(size_group);
+
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(selfp->autostart_check), mn_conf_get_autostart());
+
+    position_store = gtk_list_store_new(POSITION_N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING);
+
+    self_add_position(position_store, MN_POSITION_TOP_LEFT, _("top left"));
+    self_add_position(position_store, MN_POSITION_TOP_RIGHT, _("top right"));
+    self_add_position(position_store, MN_POSITION_BOTTOM_LEFT, _("bottom left"));
+    self_add_position(position_store, MN_POSITION_BOTTOM_RIGHT, _("bottom right"));
+
+    renderer = gtk_cell_renderer_text_new();
+    gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer, TRUE);
+    gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(selfp->summary_position_combo), renderer,
+				   "text", POSITION_COLUMN_LABEL,
+				   NULL);
+
+    gtk_combo_box_set_model(GTK_COMBO_BOX(selfp->summary_position_combo), GTK_TREE_MODEL(position_store));
+    g_object_unref(position_store);
+  
+    mn_conf_link(self, MN_CONF_PROPERTIES_DIALOG,
+		 selfp->blink_check, MN_CONF_BLINK_ON_ERRORS, "active",
+		 selfp->summary_tooltip_check, MN_CONF_SUMMARY_TOOLTIP, "active",
+		 selfp->command_mail_reader_check, MN_CONF_COMMANDS_MAIL_READER_ENABLED, "active",
+		 selfp->command_mail_reader_entry, MN_CONF_COMMANDS_MAIL_READER_COMMAND, "text",
+		 selfp->command_new_mail_check, MN_CONF_COMMANDS_NEW_MAIL_ENABLED, "active",
+		 selfp->command_new_mail_entry, MN_CONF_COMMANDS_NEW_MAIL_COMMAND, "text",
+		 selfp->command_mail_read_check, MN_CONF_COMMANDS_MAIL_READ_ENABLED, "active",
+		 selfp->command_mail_read_entry, MN_CONF_COMMANDS_MAIL_READ_COMMAND, "text",
+		 selfp->minutes_spin, MN_CONF_DELAY_MINUTES,
+		 selfp->seconds_spin, MN_CONF_DELAY_SECONDS,
+		 selfp->summary_enable_check, MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, "active",
+		 selfp->summary_autoclose_check, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, "active",
+		 selfp->summary_minutes_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
+		 selfp->summary_seconds_spin, MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
+		 selfp->summary_only_recent_check, MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT, "active",
+		 selfp->summary_horizontal_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET,
+		 selfp->summary_vertical_offset_spin, MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET,
+		 selfp->summary_title_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, "font-name",
+		 selfp->summary_contents_font_button, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, "font-name",
+		 NULL);
+    mn_conf_link_radio_group_to_enum(MN_TYPE_ACTION,
+				     MN_CONF_DOUBLE_CLICK_ACTION_2,
+				     selfp->action_main_window_radio, MN_ACTION_DISPLAY_MAIN_WINDOW,
+				     selfp->action_mail_reader_radio, MN_ACTION_LAUNCH_MAIL_READER,
+				     selfp->action_update_radio, MN_ACTION_UPDATE_MAIL_STATUS,
+				     NULL);
+    mn_conf_link_radio_group_to_enum(MN_TYPE_ASPECT_SOURCE,
+				     MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE,
+				     selfp->summary_fonts_from_theme_radio, MN_ASPECT_SOURCE_THEME,
+				     selfp->summary_custom_fonts_radio, MN_ASPECT_SOURCE_CUSTOM,
+				     NULL);
+    mn_conf_link_combo_box_to_string(GTK_COMBO_BOX(selfp->summary_position_combo),
+				     POSITION_COLUMN_NICK,
+				     MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
+
+    self_update_selected_label(self);
+    self_update_sensitivity(self);
+
+    mn_g_object_connect(self,
+			mn_shell->mailboxes,
+			"swapped-signal::notify::must-poll", self_update_sensitivity, self,
+			NULL);
+
+    g_signal_connect(self, "response", G_CALLBACK(self_response_h), NULL);
+  }
+
+  private void
+    response_h (self, int response, gpointer user_data)
+  {
+    switch (response)
+      {
+      case GTK_RESPONSE_HELP:
+	{
+	  int current_page;
+	  const char *sections[] = {
+	    "properties-general",
+	    "properties-mailboxes",
+	    "properties-mail-summary-popup"
+	  };
+	
+	  current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(selfp->notebook));
+	  g_return_if_fail(current_page >= 0 && current_page < G_N_ELEMENTS(sections));
+
+	  mn_display_help(GTK_WINDOW(self), sections[current_page]);
+	  break;
+	}
+    
+      case GTK_RESPONSE_CLOSE:
+	gtk_widget_destroy(GTK_WIDGET(self));
+	break;
+      }
+  }
+
+  private void
+    add_position (Gtk:List:Store *store (check null type),
+		  MNPosition position,
+		  const char *label (check null))
+  {
+    GEnumClass *enum_class;
+    GEnumValue *enum_value;
+    GtkTreeIter iter;
+
+    enum_class = g_type_class_ref(MN_TYPE_POSITION);
+    g_return_if_fail(enum_class != NULL);
+
+    enum_value = g_enum_get_value(enum_class, position);
+    g_return_if_fail(enum_value != NULL);
+
+    gtk_list_store_append(store, &iter);
+    gtk_list_store_set(store, &iter,
+		       POSITION_COLUMN_NICK, enum_value->value_nick,
+		       POSITION_COLUMN_LABEL, label,
+		       -1);
+
+    g_type_class_unref(enum_class);
+  }
+
+  private void
+    update_selected_label (self)
+  {
+    GtkTreeSelection *selection;
+    int n_rows;
+
+    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+    n_rows = gtk_tree_selection_count_selected_rows(selection);
+
+    if (n_rows == 0)
+      gtk_label_set_text(GTK_LABEL(selfp->selected_label), _("No mailbox selected."));
+    else
+      {
+	char *str;
+
+	str = g_strdup_printf(ngettext("%i mailbox selected.",
+				       "%i mailboxes selected.",
+				       n_rows), n_rows);
+	gtk_label_set_text(GTK_LABEL(selfp->selected_label), str);
+	g_free(str);
+      }
+  }
+
+  private void
+    update_sensitivity (self)
+  {
+    gboolean command_mail_reader_enabled;
+    gboolean command_new_mail_enabled;
+    gboolean command_mail_read_enabled;
+    gboolean must_poll;
+    GtkTreeSelection *selection;
+    gboolean has_selection;
+    gboolean summary_enabled;
+    gboolean summary_autoclose_enabled;
+    gboolean summary_custom_fonts_enabled;
+
+    command_mail_reader_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_reader_check));
+    command_new_mail_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_new_mail_check));
+    command_mail_read_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->command_mail_read_check));
+
+    gtk_widget_set_sensitive(selfp->command_mail_reader_entry, command_mail_reader_enabled);
+    gtk_widget_set_sensitive(selfp->command_new_mail_entry, command_new_mail_enabled);
+    gtk_widget_set_sensitive(selfp->command_mail_read_entry, command_mail_read_enabled);
+
+    must_poll = mn_mailboxes_get_must_poll(mn_shell->mailboxes);
+    gtk_widget_set_sensitive(selfp->delay_label, must_poll);
+    gtk_widget_set_sensitive(selfp->minutes_spin, must_poll);
+    gtk_widget_set_sensitive(selfp->minutes_label, must_poll);
+    gtk_widget_set_sensitive(selfp->seconds_spin, must_poll);
+    gtk_widget_set_sensitive(selfp->seconds_label, must_poll);
+
+    selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(selfp->list));
+    has_selection = gtk_tree_selection_count_selected_rows(selection) > 0;
+
+    gtk_widget_set_sensitive(selfp->remove, has_selection);
+    gtk_widget_set_sensitive(selfp->properties, has_selection);
+
+    summary_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_enable_check));
+    summary_autoclose_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_autoclose_check));
+    summary_custom_fonts_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(selfp->summary_custom_fonts_radio));
+
+    gtk_widget_set_sensitive(selfp->summary_autoclose_check, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_minutes_spin, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_minutes_label, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_seconds_spin, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_seconds_label, summary_enabled && summary_autoclose_enabled);
+    gtk_widget_set_sensitive(selfp->summary_only_recent_check, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_position_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_position_combo, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_horizontal_offset_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_horizontal_offset_spin, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_horizontal_pixels_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_vertical_offset_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_vertical_offset_spin, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_vertical_pixels_label, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_fonts_from_theme_radio, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_custom_fonts_radio, summary_enabled);
+    gtk_widget_set_sensitive(selfp->summary_title_font_label, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_title_font_button, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_contents_font_label, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_contents_font_button, summary_enabled && summary_custom_fonts_enabled);
+    gtk_widget_set_sensitive(selfp->summary_test_button, summary_enabled && ! selfp->test_popup);
+  }
+
+  public gboolean
+    test_popup_displayed (self)
+  {
+    return selfp->test_popup != NULL;
+  }
+  
+  /* libglade callbacks */
+
+  protected void
+    toggled_h (self, GtkToggleButton *button)
+  {
+    self_update_sensitivity(self);
+  }
+
+  protected void
+    autostart_toggled_h (self, GtkToggleButton *togglebutton)
+  {
+    mn_conf_set_autostart(gtk_toggle_button_get_active(togglebutton));
+  }
+
+  protected void
+    add_clicked_h (self, GtkButton *button)
+  {
+    mn_mailbox_view_activate_add(MN_MAILBOX_VIEW(selfp->list));
+  }
+
+  protected void
+    remove_clicked_h (self, GtkButton *button)
+  {
+    mn_mailbox_view_activate_remove(MN_MAILBOX_VIEW(selfp->list));
+  }
+
+  protected void
+    properties_clicked_h (self, GtkButton *button)
+  {
+    mn_mailbox_view_activate_properties(MN_MAILBOX_VIEW(selfp->list));
+  }
+
+  protected void
+    summary_enable_toggled_h (self, GtkToggleButton *button)
+  {
+    self_update_sensitivity(self);
+
+    if (selfp->test_popup && ! gtk_toggle_button_get_active(button))
+      gtk_widget_destroy(selfp->test_popup);
+  }
+
+  protected void
+    summary_test_button_clicked_h (self, GtkButton *button)
+  {
+    GSList *messages = NULL;
+    time_t now;
+    int i;
+
+    now = mn_time();
+    selfp->test_popup = mn_mail_summary_popup_new();
+
+    for (i = 1; i < 4; i++)
+      {
+	MNMessage *message;
+	char *subject;
+
+	subject = g_strdup_printf(_("Test message #%i"), i);
+	message = mn_message_new(NULL,
+				 NULL,
+				 now,
+				 NULL,
+				 _("Mail Notification Properties Dialog"),
+				 subject);
+	g_free(subject);
+
+	messages = g_slist_append(messages, message);
+      }
+
+    mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->test_popup), messages);
+    mn_g_object_slist_free(messages);
+
+    eel_add_weak_pointer(&selfp->test_popup);
+    g_object_weak_ref(G_OBJECT(selfp->test_popup), (GWeakNotify) self_update_sensitivity, self);
+
+    /* close the real mail summary popup if any */
+    mn_shell_close_mail_summary_popup(mn_shell);
+
+    self_update_sensitivity(self);
+    gtk_widget_show(selfp->test_popup);
+  }
+}
diff --git a/src/mn-properties-dialog.h b/src/mn-properties-dialog.h
@@ -1,32 +1,63 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-dialog.h"
+
+#ifndef __MN_PROPERTIES_DIALOG_H__
+#define __MN_PROPERTIES_DIALOG_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
  */
+#define MN_TYPE_PROPERTIES_DIALOG	(mn_properties_dialog_get_type())
+#define MN_PROPERTIES_DIALOG(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_properties_dialog_get_type(), MNPropertiesDialog)
+#define MN_PROPERTIES_DIALOG_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_properties_dialog_get_type(), MNPropertiesDialog const)
+#define MN_PROPERTIES_DIALOG_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_properties_dialog_get_type(), MNPropertiesDialogClass)
+#define MN_IS_PROPERTIES_DIALOG(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_properties_dialog_get_type ())
 
-#ifndef _MN_PROPERTIES_DIALOG_H
-#define _MN_PROPERTIES_DIALOG_H
+#define MN_PROPERTIES_DIALOG_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_properties_dialog_get_type(), MNPropertiesDialogClass)
 
-#include <stdarg.h>
-#include <gtk/gtk.h>
+/* Private structure type */
+typedef struct _MNPropertiesDialogPrivate MNPropertiesDialogPrivate;
 
-void	mn_properties_dialog_display		(void);
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_PROPERTIES_DIALOG__
+#define __TYPEDEF_MN_PROPERTIES_DIALOG__
+typedef struct _MNPropertiesDialog MNPropertiesDialog;
+#endif
+struct _MNPropertiesDialog {
+	MNDialog __parent__;
+	/*< private >*/
+	MNPropertiesDialogPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNPropertiesDialogClass MNPropertiesDialogClass;
+struct _MNPropertiesDialogClass {
+	MNDialogClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_properties_dialog_get_type	(void);
+gboolean 	mn_properties_dialog_test_popup_displayed	(MNPropertiesDialog * self);
 
-void	mn_properties_dialog_set_tooltip	(GtkWidget	*widget,
-						 const char	*tip);
-void	mn_properties_dialog_set_tooltips	(GtkWidget	*widget,
-						 ...);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
-#endif /* _MN_PROPERTIES_DIALOG_H */
+#endif
diff --git a/src/mn-reentrant-mailbox-private.h b/src/mn-reentrant-mailbox-private.h
@@ -0,0 +1,33 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_REENTRANT_MAILBOX_PRIVATE_H__
+#define __MN_REENTRANT_MAILBOX_PRIVATE_H__
+
+#include "mn-reentrant-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNReentrantMailboxPrivate {
+#line 40 "mn-reentrant-mailbox.gob"
+	GMutex * mutex;
+#line 42 "mn-reentrant-mailbox.gob"
+	unsigned int queue_check_id;
+#line 44 "mn-reentrant-mailbox.gob"
+	unsigned long check_id;
+#line 45 "mn-reentrant-mailbox.gob"
+	unsigned long check_unique_id;
+#line 22 "mn-reentrant-mailbox-private.h"
+};
+void 	mn_reentrant_mailbox_queue_check	(MNReentrantMailbox * self);
+gboolean 	mn_reentrant_mailbox_check_aborted	(MNReentrantMailbox * self, unsigned long check_id);
+gboolean 	mn_reentrant_mailbox_check_aborted_unlocked	(MNReentrantMailbox * self, unsigned long check_id);
+void 	mn_reentrant_mailbox_lock	(MNReentrantMailbox * self);
+void 	mn_reentrant_mailbox_unlock	(MNReentrantMailbox * self);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-reentrant-mailbox.c b/src/mn-reentrant-mailbox.c
@@ -0,0 +1,420 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-reentrant-mailbox.h"
+
+#include "mn-reentrant-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-reentrant-mailbox.gob"
+
+#include "config.h"
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+
+typedef struct
+{
+  MNReentrantMailbox	*self;
+  unsigned long		check_id;
+} CheckInfo;
+
+#line 40 "mn-reentrant-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_REENTRANT_MAILBOX(x)
+#define SELF_CONST(x) MN_REENTRANT_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_REENTRANT_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_REENTRANT_MAILBOX
+#define SELF_CLASS(x) MN_REENTRANT_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_REENTRANT_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNReentrantMailbox Self;
+typedef MNReentrantMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_reentrant_mailbox_init (MNReentrantMailbox * o) G_GNUC_UNUSED;
+static void mn_reentrant_mailbox_class_init (MNReentrantMailboxClass * c) G_GNUC_UNUSED;
+static void ___1_mn_reentrant_mailbox_removed (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void ___2_mn_reentrant_mailbox_finalize (GObject * object) G_GNUC_UNUSED;
+static gboolean mn_reentrant_mailbox_queue_check_cb (gpointer data) G_GNUC_UNUSED;
+static void ___5_mn_reentrant_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_reentrant_mailbox_check_thread_cb (CheckInfo * info) G_GNUC_UNUSED;
+static void mn_reentrant_mailbox_impl_check (MNReentrantMailbox * self, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_queue_check mn_reentrant_mailbox_queue_check
+#define self_queue_check_cb mn_reentrant_mailbox_queue_check_cb
+#define self_check_thread_cb mn_reentrant_mailbox_check_thread_cb
+#define self_impl_check mn_reentrant_mailbox_impl_check
+#define self_check_aborted mn_reentrant_mailbox_check_aborted
+#define self_check_aborted_unlocked mn_reentrant_mailbox_check_aborted_unlocked
+#define self_lock mn_reentrant_mailbox_lock
+#define self_unlock mn_reentrant_mailbox_unlock
+GType
+mn_reentrant_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNReentrantMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_reentrant_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNReentrantMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_reentrant_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_MAILBOX, "MNReentrantMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNReentrantMailbox *)g_object_new(mn_reentrant_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNReentrantMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNReentrantMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNReentrantMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNReentrantMailbox *)g_object_new_valist (mn_reentrant_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::finalize"
+	MNReentrantMailbox *self G_GNUC_UNUSED = MN_REENTRANT_MAILBOX (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 59 "mn-reentrant-mailbox.gob"
+	___2_mn_reentrant_mailbox_finalize(obj_self);
+#line 127 "mn-reentrant-mailbox.c"
+#line 40 "mn-reentrant-mailbox.gob"
+	if(self->_priv->mutex) { g_mutex_free ((gpointer) self->_priv->mutex); self->_priv->mutex = NULL; }
+#line 130 "mn-reentrant-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_reentrant_mailbox_init (MNReentrantMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_REENTRANT_MAILBOX,MNReentrantMailboxPrivate);
+#line 40 "mn-reentrant-mailbox.gob"
+	o->_priv->mutex = g_mutex_new();
+#line 141 "mn-reentrant-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_reentrant_mailbox_class_init (MNReentrantMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+
+	g_type_class_add_private(c,sizeof(MNReentrantMailboxPrivate));
+
+	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
+
+#line 47 "mn-reentrant-mailbox.gob"
+	mn_mailbox_class->removed = ___1_mn_reentrant_mailbox_removed;
+#line 59 "mn-reentrant-mailbox.gob"
+	g_object_class->finalize = ___finalize;
+#line 92 "mn-reentrant-mailbox.gob"
+	mn_mailbox_class->check = ___5_mn_reentrant_mailbox_check;
+#line 161 "mn-reentrant-mailbox.c"
+	c->impl_check = NULL;
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 47 "mn-reentrant-mailbox.gob"
+static void 
+___1_mn_reentrant_mailbox_removed (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 171 "mn-reentrant-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->removed) \
+		(* MN_MAILBOX_CLASS(parent_class)->removed)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::removed"
+{
+#line 49 "mn-reentrant-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+
+    self_lock(self);
+    selfp->check_id = 0;
+    self_unlock(self);
+
+    PARENT_HANDLER(mailbox);
+  }}
+#line 188 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 59 "mn-reentrant-mailbox.gob"
+static void 
+___2_mn_reentrant_mailbox_finalize (GObject * object G_GNUC_UNUSED)
+#line 195 "mn-reentrant-mailbox.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::finalize"
+{
+#line 61 "mn-reentrant-mailbox.gob"
+	
+    Self *self = SELF(object);
+
+    if (selfp->queue_check_id)
+      g_source_remove(selfp->queue_check_id);
+
+    PARENT_HANDLER(object);
+  }}
+#line 211 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 70 "mn-reentrant-mailbox.gob"
+void 
+mn_reentrant_mailbox_queue_check (MNReentrantMailbox * self)
+#line 218 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::queue_check"
+#line 70 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 70 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 225 "mn-reentrant-mailbox.c"
+{
+#line 72 "mn-reentrant-mailbox.gob"
+	
+    if (selfp->queue_check_id)
+      g_source_remove(selfp->queue_check_id);
+
+    selfp->queue_check_id = g_idle_add(self_queue_check_cb, self);
+  }}
+#line 234 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 79 "mn-reentrant-mailbox.gob"
+static gboolean 
+mn_reentrant_mailbox_queue_check_cb (gpointer data)
+#line 240 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::queue_check_cb"
+{
+#line 81 "mn-reentrant-mailbox.gob"
+	
+    Self *self = data;
+
+    GDK_THREADS_ENTER();
+    mn_mailbox_check(MN_MAILBOX(self));
+    GDK_THREADS_LEAVE();
+
+    selfp->queue_check_id = 0;
+    return FALSE;		/* remove source */
+  }}
+#line 255 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 92 "mn-reentrant-mailbox.gob"
+static void 
+___5_mn_reentrant_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 261 "mn-reentrant-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->check) \
+		(* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check"
+{
+#line 94 "mn-reentrant-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+    CheckInfo *info;
+
+    PARENT_HANDLER(mailbox);
+
+    mn_mailbox_set_error(mailbox, NULL);
+
+    if (++selfp->check_unique_id == 0)
+      ++selfp->check_unique_id;
+
+    info = g_new(CheckInfo, 1);
+    info->self = g_object_ref(self);
+    info->check_id = selfp->check_unique_id;
+
+    self_lock(self);
+    selfp->check_id = info->check_id;
+    self_unlock(self);
+
+    mn_thread_create((GThreadFunc) self_check_thread_cb, info);
+  }}
+#line 290 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 116 "mn-reentrant-mailbox.gob"
+static void 
+mn_reentrant_mailbox_check_thread_cb (CheckInfo * info)
+#line 297 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check_thread_cb"
+{
+#line 118 "mn-reentrant-mailbox.gob"
+	
+    Self *self = info->self;
+
+    self_impl_check(self, info->check_id);
+
+    self_lock(self);
+    if (selfp->check_id == info->check_id)
+      selfp->check_id = 0;
+    self_unlock(self);
+
+    GDK_THREADS_ENTER();
+
+    g_object_unref(self);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+    g_free(info);
+  }}
+#line 321 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 138 "mn-reentrant-mailbox.gob"
+static void 
+mn_reentrant_mailbox_impl_check (MNReentrantMailbox * self, unsigned long check_id)
+#line 327 "mn-reentrant-mailbox.c"
+{
+	MNReentrantMailboxClass *klass;
+#line 138 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 138 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 334 "mn-reentrant-mailbox.c"
+	klass = MN_REENTRANT_MAILBOX_GET_CLASS(self);
+
+	if(klass->impl_check)
+		(*klass->impl_check)(self,check_id);
+}
+
+#line 141 "mn-reentrant-mailbox.gob"
+gboolean 
+mn_reentrant_mailbox_check_aborted (MNReentrantMailbox * self, unsigned long check_id)
+#line 344 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check_aborted"
+#line 141 "mn-reentrant-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 141 "mn-reentrant-mailbox.gob"
+	g_return_val_if_fail (MN_IS_REENTRANT_MAILBOX (self), (gboolean )0);
+#line 351 "mn-reentrant-mailbox.c"
+{
+#line 143 "mn-reentrant-mailbox.gob"
+	
+    gboolean aborted;
+
+    self_lock(self);
+    aborted = selfp->check_id != check_id;
+    self_unlock(self);
+
+    return aborted;
+  }}
+#line 363 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 153 "mn-reentrant-mailbox.gob"
+gboolean 
+mn_reentrant_mailbox_check_aborted_unlocked (MNReentrantMailbox * self, unsigned long check_id)
+#line 369 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::check_aborted_unlocked"
+#line 153 "mn-reentrant-mailbox.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 153 "mn-reentrant-mailbox.gob"
+	g_return_val_if_fail (MN_IS_REENTRANT_MAILBOX (self), (gboolean )0);
+#line 376 "mn-reentrant-mailbox.c"
+{
+#line 155 "mn-reentrant-mailbox.gob"
+	
+    return selfp->check_id != check_id;
+  }}
+#line 382 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 159 "mn-reentrant-mailbox.gob"
+void 
+mn_reentrant_mailbox_lock (MNReentrantMailbox * self)
+#line 388 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::lock"
+#line 159 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 159 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 395 "mn-reentrant-mailbox.c"
+{
+#line 161 "mn-reentrant-mailbox.gob"
+	
+    g_mutex_lock(selfp->mutex);
+  }}
+#line 401 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 165 "mn-reentrant-mailbox.gob"
+void 
+mn_reentrant_mailbox_unlock (MNReentrantMailbox * self)
+#line 407 "mn-reentrant-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:Reentrant:Mailbox::unlock"
+#line 165 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (self != NULL);
+#line 165 "mn-reentrant-mailbox.gob"
+	g_return_if_fail (MN_IS_REENTRANT_MAILBOX (self));
+#line 414 "mn-reentrant-mailbox.c"
+{
+#line 167 "mn-reentrant-mailbox.gob"
+	
+    g_mutex_unlock(selfp->mutex);
+  }}
+#line 420 "mn-reentrant-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-reentrant-mailbox.gob b/src/mn-reentrant-mailbox.gob
@@ -0,0 +1,170 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-util.h"
+
+typedef struct
+{
+  MNReentrantMailbox	*self;
+  unsigned long		check_id;
+} CheckInfo;
+%}
+
+class MN:Reentrant:Mailbox from MN:Mailbox
+{
+  private GMutex *mutex = {g_mutex_new()} destroywith g_mutex_free;
+
+  private unsigned int queue_check_id;
+
+  private unsigned long check_id;
+  private unsigned long check_unique_id;
+
+  override (MN:Mailbox) void
+    removed (MNMailbox *mailbox)
+  {
+    Self *self = SELF(mailbox);
+
+    self_lock(self);
+    selfp->check_id = 0;
+    self_unlock(self);
+
+    PARENT_HANDLER(mailbox);
+  }
+
+  override (G:Object) void
+    finalize (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    if (selfp->queue_check_id)
+      g_source_remove(selfp->queue_check_id);
+
+    PARENT_HANDLER(object);
+  }
+
+  protected void
+    queue_check (self)
+  {
+    if (selfp->queue_check_id)
+      g_source_remove(selfp->queue_check_id);
+
+    selfp->queue_check_id = g_idle_add(self_queue_check_cb, self);
+  }
+  
+  private gboolean
+    queue_check_cb (gpointer data)
+  {
+    Self *self = data;
+
+    GDK_THREADS_ENTER();
+    mn_mailbox_check(MN_MAILBOX(self));
+    GDK_THREADS_LEAVE();
+
+    selfp->queue_check_id = 0;
+    return FALSE;		/* remove source */
+  }
+
+  override (MN:Mailbox) void
+    check (MNMailbox *mailbox)
+  {
+    Self *self = SELF(mailbox);
+    CheckInfo *info;
+
+    PARENT_HANDLER(mailbox);
+
+    mn_mailbox_set_error(mailbox, NULL);
+
+    if (++selfp->check_unique_id == 0)
+      ++selfp->check_unique_id;
+
+    info = g_new(CheckInfo, 1);
+    info->self = g_object_ref(self);
+    info->check_id = selfp->check_unique_id;
+
+    self_lock(self);
+    selfp->check_id = info->check_id;
+    self_unlock(self);
+
+    mn_thread_create((GThreadFunc) self_check_thread_cb, info);
+  }
+
+  private void
+    check_thread_cb (CheckInfo *info)
+  {
+    Self *self = info->self;
+
+    self_impl_check(self, info->check_id);
+
+    self_lock(self);
+    if (selfp->check_id == info->check_id)
+      selfp->check_id = 0;
+    self_unlock(self);
+
+    GDK_THREADS_ENTER();
+
+    g_object_unref(self);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+    g_free(info);
+  }
+
+  virtual private void
+    impl_check (self, unsigned long check_id);
+
+  protected gboolean
+    check_aborted (self, unsigned long check_id)
+  {
+    gboolean aborted;
+
+    self_lock(self);
+    aborted = selfp->check_id != check_id;
+    self_unlock(self);
+
+    return aborted;
+  }
+  
+  protected gboolean
+    check_aborted_unlocked (self, unsigned long check_id)
+  {
+    return selfp->check_id != check_id;
+  }
+
+  protected void
+    lock (self)
+  {
+    g_mutex_lock(selfp->mutex);
+  }
+
+  protected void
+    unlock (self)
+  {
+    g_mutex_unlock(selfp->mutex);
+  }
+}
diff --git a/src/mn-reentrant-mailbox.h b/src/mn-reentrant-mailbox.h
@@ -0,0 +1,63 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-mailbox.h"
+
+#ifndef __MN_REENTRANT_MAILBOX_H__
+#define __MN_REENTRANT_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_REENTRANT_MAILBOX	(mn_reentrant_mailbox_get_type())
+#define MN_REENTRANT_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_reentrant_mailbox_get_type(), MNReentrantMailbox)
+#define MN_REENTRANT_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_reentrant_mailbox_get_type(), MNReentrantMailbox const)
+#define MN_REENTRANT_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_reentrant_mailbox_get_type(), MNReentrantMailboxClass)
+#define MN_IS_REENTRANT_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_reentrant_mailbox_get_type ())
+
+#define MN_REENTRANT_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_reentrant_mailbox_get_type(), MNReentrantMailboxClass)
+
+/* Private structure type */
+typedef struct _MNReentrantMailboxPrivate MNReentrantMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_REENTRANT_MAILBOX__
+#define __TYPEDEF_MN_REENTRANT_MAILBOX__
+typedef struct _MNReentrantMailbox MNReentrantMailbox;
+#endif
+struct _MNReentrantMailbox {
+	MNMailbox __parent__;
+	/*< private >*/
+	MNReentrantMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNReentrantMailboxClass MNReentrantMailboxClass;
+struct _MNReentrantMailboxClass {
+	MNMailboxClass __parent__;
+	void (* impl_check) (MNReentrantMailbox * self, unsigned long check_id);
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_reentrant_mailbox_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-sasl.c b/src/mn-sasl.c
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -23,40 +23,43 @@
 
 /*** variables ***************************************************************/
 
-static int use_count = 0;
-G_LOCK_DEFINE_STATIC(use_count);
+static gboolean attempted = FALSE;
+static gboolean initialized = FALSE;
+static char *init_error = NULL;
+
+G_LOCK_DEFINE_STATIC(init);
 
 /*** implementation **********************************************************/
 
 gboolean
-mn_sasl_use (GError **err)
+mn_sasl_init (GError **err)
 {
-  gboolean success = TRUE;
+  /*
+   * Bad things may happen if we call sasl_client_init() again after
+   * having called sasl_done(), so we just keep SASL initialized for
+   * the whole application lifetime.
+   */
 
-  G_LOCK(use_count);
-  if (++use_count == 1)
+  G_LOCK(init);
+  if (! attempted)
     {
       int status;
 
       status = sasl_client_init(NULL);
-      if (status != SASL_OK)
-	{
-	  use_count--;
-	  g_set_error(err, 0, 0, "%s", sasl_errstring(status, NULL, NULL));
-	  success = FALSE;
-	}
+      if (status == SASL_OK)
+	initialized = TRUE;
+      else
+	init_error = g_strdup(sasl_errstring(status, NULL, NULL));
+
+      attempted = TRUE;
     }
-  G_UNLOCK(use_count);
 
-  return success;
-}
+  if (! initialized)
+    {
+      g_assert(init_error != NULL);
+      g_set_error(err, 0, 0, "%s", init_error);
+    }
+  G_UNLOCK(init);
 
-void
-mn_sasl_unuse (void)
-{
-  G_LOCK(use_count);
-  g_return_if_fail(use_count > 0);
-  if (--use_count == 0)
-    sasl_done();
-  G_UNLOCK(use_count);
+  return initialized;
 }
diff --git a/src/mn-sasl.h b/src/mn-sasl.h
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -21,7 +21,6 @@
 
 #include <glib.h>
 
-gboolean mn_sasl_use (GError **err);
-void mn_sasl_unuse (void);
+gboolean mn_sasl_init (GError **err);
 
 #endif /* _MN_SASL_H */
diff --git a/src/mn-sgml-entities.h b/src/mn-sgml-entities.h
@@ -1,277 +0,0 @@
-/*
- * mn-sgml-entities.h - SGML entities table
- *
- * Generated automatically by ent2h.sh.
- * Do not edit this file directly.
- */
-
-#ifndef _MN_SGML_ENTITIES_H
-#define _MN_SGML_ENTITIES_H
-
-static const struct
-{
-  const char		*name;
-  unsigned long		character;
-} entities[] = {
-
-  /* xhtml-lat1.ent */
-  { "nbsp",	160 },
-  { "iexcl",	161 },
-  { "cent",	162 },
-  { "pound",	163 },
-  { "curren",	164 },
-  { "yen",	165 },
-  { "brvbar",	166 },
-  { "sect",	167 },
-  { "uml",	168 },
-  { "copy",	169 },
-  { "ordf",	170 },
-  { "laquo",	171 },
-  { "not",	172 },
-  { "shy",	173 },
-  { "reg",	174 },
-  { "macr",	175 },
-  { "deg",	176 },
-  { "plusmn",	177 },
-  { "sup",	178 },
-  { "sup",	179 },
-  { "acute",	180 },
-  { "micro",	181 },
-  { "para",	182 },
-  { "middot",	183 },
-  { "cedil",	184 },
-  { "sup",	185 },
-  { "ordm",	186 },
-  { "raquo",	187 },
-  { "frac",	188 },
-  { "frac",	189 },
-  { "frac",	190 },
-  { "iquest",	191 },
-  { "Agrave",	192 },
-  { "Aacute",	193 },
-  { "Acirc",	194 },
-  { "Atilde",	195 },
-  { "Auml",	196 },
-  { "Aring",	197 },
-  { "AElig",	198 },
-  { "Ccedil",	199 },
-  { "Egrave",	200 },
-  { "Eacute",	201 },
-  { "Ecirc",	202 },
-  { "Euml",	203 },
-  { "Igrave",	204 },
-  { "Iacute",	205 },
-  { "Icirc",	206 },
-  { "Iuml",	207 },
-  { "ETH",	208 },
-  { "Ntilde",	209 },
-  { "Ograve",	210 },
-  { "Oacute",	211 },
-  { "Ocirc",	212 },
-  { "Otilde",	213 },
-  { "Ouml",	214 },
-  { "times",	215 },
-  { "Oslash",	216 },
-  { "Ugrave",	217 },
-  { "Uacute",	218 },
-  { "Ucirc",	219 },
-  { "Uuml",	220 },
-  { "Yacute",	221 },
-  { "THORN",	222 },
-  { "szlig",	223 },
-  { "agrave",	224 },
-  { "aacute",	225 },
-  { "acirc",	226 },
-  { "atilde",	227 },
-  { "auml",	228 },
-  { "aring",	229 },
-  { "aelig",	230 },
-  { "ccedil",	231 },
-  { "egrave",	232 },
-  { "eacute",	233 },
-  { "ecirc",	234 },
-  { "euml",	235 },
-  { "igrave",	236 },
-  { "iacute",	237 },
-  { "icirc",	238 },
-  { "iuml",	239 },
-  { "eth",	240 },
-  { "ntilde",	241 },
-  { "ograve",	242 },
-  { "oacute",	243 },
-  { "ocirc",	244 },
-  { "otilde",	245 },
-  { "ouml",	246 },
-  { "divide",	247 },
-  { "oslash",	248 },
-  { "ugrave",	249 },
-  { "uacute",	250 },
-  { "ucirc",	251 },
-  { "uuml",	252 },
-  { "yacute",	253 },
-  { "thorn",	254 },
-  { "yuml",	255 },
-
-  /* xhtml-special.ent */
-  { "quot",	34 },
-  { "amp",	38 },
-  { "lt",	60 },
-  { "gt",	62 },
-  { "apos",	39 },
-  { "OElig",	338 },
-  { "oelig",	339 },
-  { "Scaron",	352 },
-  { "scaron",	353 },
-  { "Yuml",	376 },
-  { "circ",	710 },
-  { "tilde",	732 },
-  { "ensp",	8194 },
-  { "emsp",	8195 },
-  { "thinsp",	8201 },
-  { "zwnj",	8204 },
-  { "zwj",	8205 },
-  { "lrm",	8206 },
-  { "rlm",	8207 },
-  { "ndash",	8211 },
-  { "mdash",	8212 },
-  { "lsquo",	8216 },
-  { "rsquo",	8217 },
-  { "sbquo",	8218 },
-  { "ldquo",	8220 },
-  { "rdquo",	8221 },
-  { "bdquo",	8222 },
-  { "dagger",	8224 },
-  { "Dagger",	8225 },
-  { "permil",	8240 },
-  { "lsaquo",	8249 },
-  { "rsaquo",	8250 },
-  { "euro",	8364 },
-
-  /* xhtml-symbol.ent */
-  { "fnof",	402 },
-  { "Alpha",	913 },
-  { "Beta",	914 },
-  { "Gamma",	915 },
-  { "Delta",	916 },
-  { "Epsilon",	917 },
-  { "Zeta",	918 },
-  { "Eta",	919 },
-  { "Theta",	920 },
-  { "Iota",	921 },
-  { "Kappa",	922 },
-  { "Lambda",	923 },
-  { "Mu",	924 },
-  { "Nu",	925 },
-  { "Xi",	926 },
-  { "Omicron",	927 },
-  { "Pi",	928 },
-  { "Rho",	929 },
-  { "Sigma",	931 },
-  { "Tau",	932 },
-  { "Upsilon",	933 },
-  { "Phi",	934 },
-  { "Chi",	935 },
-  { "Psi",	936 },
-  { "Omega",	937 },
-  { "alpha",	945 },
-  { "beta",	946 },
-  { "gamma",	947 },
-  { "delta",	948 },
-  { "epsilon",	949 },
-  { "zeta",	950 },
-  { "eta",	951 },
-  { "theta",	952 },
-  { "iota",	953 },
-  { "kappa",	954 },
-  { "lambda",	955 },
-  { "mu",	956 },
-  { "nu",	957 },
-  { "xi",	958 },
-  { "omicron",	959 },
-  { "pi",	960 },
-  { "rho",	961 },
-  { "sigmaf",	962 },
-  { "sigma",	963 },
-  { "tau",	964 },
-  { "upsilon",	965 },
-  { "phi",	966 },
-  { "chi",	967 },
-  { "psi",	968 },
-  { "omega",	969 },
-  { "thetasym",	977 },
-  { "upsih",	978 },
-  { "piv",	982 },
-  { "bull",	8226 },
-  { "hellip",	8230 },
-  { "prime",	8242 },
-  { "Prime",	8243 },
-  { "oline",	8254 },
-  { "frasl",	8260 },
-  { "weierp",	8472 },
-  { "image",	8465 },
-  { "real",	8476 },
-  { "trade",	8482 },
-  { "alefsym",	8501 },
-  { "larr",	8592 },
-  { "uarr",	8593 },
-  { "rarr",	8594 },
-  { "darr",	8595 },
-  { "harr",	8596 },
-  { "crarr",	8629 },
-  { "lArr",	8656 },
-  { "uArr",	8657 },
-  { "rArr",	8658 },
-  { "dArr",	8659 },
-  { "hArr",	8660 },
-  { "forall",	8704 },
-  { "part",	8706 },
-  { "exist",	8707 },
-  { "empty",	8709 },
-  { "nabla",	8711 },
-  { "isin",	8712 },
-  { "notin",	8713 },
-  { "ni",	8715 },
-  { "prod",	8719 },
-  { "sum",	8721 },
-  { "minus",	8722 },
-  { "lowast",	8727 },
-  { "radic",	8730 },
-  { "prop",	8733 },
-  { "infin",	8734 },
-  { "ang",	8736 },
-  { "and",	8743 },
-  { "or",	8744 },
-  { "cap",	8745 },
-  { "cup",	8746 },
-  { "int",	8747 },
-  { "there",	8756 },
-  { "sim",	8764 },
-  { "cong",	8773 },
-  { "asymp",	8776 },
-  { "ne",	8800 },
-  { "equiv",	8801 },
-  { "le",	8804 },
-  { "ge",	8805 },
-  { "sub",	8834 },
-  { "sup",	8835 },
-  { "nsub",	8836 },
-  { "sube",	8838 },
-  { "supe",	8839 },
-  { "oplus",	8853 },
-  { "otimes",	8855 },
-  { "perp",	8869 },
-  { "sdot",	8901 },
-  { "lceil",	8968 },
-  { "rceil",	8969 },
-  { "lfloor",	8970 },
-  { "rfloor",	8971 },
-  { "lang",	9001 },
-  { "rang",	9002 },
-  { "loz",	9674 },
-  { "spades",	9824 },
-  { "clubs",	9827 },
-  { "hearts",	9829 },
-  { "diams",	9830 },
-};
-
-#endif /* _MN_SGML_ENTITIES_H */
diff --git a/src/mn-sgml-ref.c b/src/mn-sgml-ref.c
@@ -1,131 +0,0 @@
-/* 
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <glib.h>
-#include "mn-sgml-entities.h"
-
-/*** functions ***************************************************************/
-
-static gunichar mn_sgml_ref_get_unichar (const char *ref);
-
-/*** implementation **********************************************************/
-
-static gunichar
-mn_sgml_ref_get_unichar (const char *ref)
-{
-  g_return_val_if_fail(ref != NULL, 0);
-
-  if (*ref == '#')
-    {				/* numeric reference */
-      const char *nptr;
-      int base;
-
-      if (*(ref + 1) == 'x' || *(ref + 1) == 'X')
-	{			/* hexadecimal number */
-	  nptr = ref + 2;
-	  base = 16;
-	}
-      else
-	{			/* decimal number */
-	  nptr = ref + 1;
-	  base = 10;
-	}
-
-      if (*nptr)
-	{
-	  char *end;
-	  unsigned long code;
-	  
-	  code = strtoul(nptr, &end, base);
-	  if (*end == 0)	/* could convert */
-	    return code;
-	}
-    }
-  else
-    {				/* entity reference */
-      int i;
-
-      for (i = 0; i < G_N_ELEMENTS(entities); i++)
-	if (! strcmp(ref, entities[i].name))
-	  return entities[i].character;
-    }
-  
-  return 0;			/* invalid reference */
-}
-
-/**
- * mn_sgml_ref_expand:
- * @str: a nul-terminated string.
- *
- * Parses @str, expanding its SGML character references and XHTML
- * character entities into their Unicode character value.
- *
- * Numerical SGML character references as well as XHTML entities are
- * supported. Unsupported entities will be inserted verbatim into the
- * result.
- *
- * Return value: the expansion of str. The returned string should be
- * freed when no longer needed.
- **/
-char *
-mn_sgml_ref_expand (const char *str)
-{
-  GString *unescaped;
-  const char *start;
-
-  g_return_val_if_fail(str != NULL, NULL);
-
-  unescaped = g_string_new(NULL);
-
-  while ((start = strchr(str, '&')))
-    {
-      const char *end;
-      gunichar c;
-
-      end = strpbrk(start + 1, "; &\t\n");
-      if (! end)
-	end = strchr(start + 1, 0);
-      
-      {
-	char ref[end - start];
-
-	strncpy(ref, start + 1, end - start - 1);
-	ref[end - start - 1] = 0;
-
-	c = mn_sgml_ref_get_unichar(ref);
-      }
-	
-      if (*end == ';')		/* semicolon is part of entity, skip it */
-	end++;
-
-      g_string_append_len(unescaped, str, start - str);
-      if (c)
-	g_string_append_unichar(unescaped, c);
-      else			/* invalid reference, append it raw */
-	g_string_append_len(unescaped, start, end - start);
-	
-      str = end;
-    }
-
-  g_string_append(unescaped, str);
-
-  return g_string_free(unescaped, FALSE);
-}
diff --git a/src/mn-sgml-ref.h b/src/mn-sgml-ref.h
@@ -1,24 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_SGML_REF_H
-#define _MN_SGML_REF_H
-
-char *mn_sgml_ref_expand (const char *str);
-
-#endif /* _MN_SGML_REF_H */
diff --git a/src/mn-shell-private.h b/src/mn-shell-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_SHELL_PRIVATE_H__
 #define __MN_SHELL_PRIVATE_H__
@@ -10,21 +10,31 @@ extern "C" {
 #endif /* __cplusplus */
 
 
-#line 26 "mn-shell.gob"
+#line 27 "mn-shell.gob"
 
 #include "mn-mail-icon.h"
 
 #line 18 "mn-shell-private.h"
 struct _MNShellPrivate {
-#line 50 "mn-shell.gob"
-	MNMailIcon * icon;
-#line 51 "mn-shell.gob"
-	GtkWidget * about;
 #line 52 "mn-shell.gob"
-	gboolean has_new;
+	MNMailIcon * icon;
 #line 53 "mn-shell.gob"
+	gboolean has_new;
+#line 55 "mn-shell.gob"
+	GtkWidget * main_window;
+#line 56 "mn-shell.gob"
+	GtkWidget * properties_dialog;
+#line 58 "mn-shell.gob"
 	GSList * mailbox_properties_dialogs;
-#line 28 "mn-shell-private.h"
+#line 60 "mn-shell.gob"
+	GtkWidget * popup;
+#line 61 "mn-shell.gob"
+	GSList * popup_messages;
+#line 62 "mn-shell.gob"
+	GSList * popup_previous_messages;
+#line 64 "mn-shell.gob"
+	GtkWidget * about_dialog;
+#line 38 "mn-shell-private.h"
 };
 
 #ifdef __cplusplus
diff --git a/src/mn-shell.c b/src/mn-shell.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:58 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -23,7 +23,7 @@
 #define ___GOB_UNLIKELY(expr) (expr)
 #endif /* G_LIKELY */
 
-#line 29 "mn-shell.gob"
+#line 31 "mn-shell.gob"
 
 #include "config.h"
 #include <errno.h>
@@ -33,13 +33,13 @@
 #include "mn-util.h"
 #include "mn-conf.h"
 #include "mn-mailboxes.h"
-#include "mn-unsupported-mailbox.h"
 #include "mn-about-dialog.h"
-#include "mn-summary-popup.h"
 #include "mn-main-window.h"
+#include "mn-mail-summary-popup.h"
 #include "mn-message-view.h"
+#include "mn-message.h"
 
-  MNShell *mn_shell = NULL;
+MNShell *mn_shell = NULL;
 
 #line 45 "mn-shell.c"
 /* self casting macros */
@@ -65,8 +65,8 @@ static void mn_shell_init_icon (MNShell * self) G_GNUC_UNUSED;
 static void mn_shell_notify_blink_on_errors_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_notify_summary_tooltip_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
+static void mn_shell_notify_mail_summary_popup_enable_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
-static void mn_shell_icon_activate_main_window_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_icon_activate_mail_reader_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
 static void mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data) G_GNUC_UNUSED;
@@ -79,10 +79,11 @@ static void mn_shell_update_icon (MNShell * self) G_GNUC_UNUSED;
 static void mn_shell_update_tooltip (MNShell * self) G_GNUC_UNUSED;
 static int mn_shell_new_mailboxes_compare_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
 static time_t mn_shell_get_latest_sent_time (MNMailbox * mailbox) G_GNUC_UNUSED;
-static int mn_shell_mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b) G_GNUC_UNUSED;
 static GtkWidget * mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title) G_GNUC_UNUSED;
 static void mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const char * text) G_GNUC_UNUSED;
-static void mn_shell_welcome_response_h (GtkDialog * dialog, int response, gpointer user_data) G_GNUC_UNUSED;
+static void mn_shell_update_popup (MNShell * self, gboolean has_new) G_GNUC_UNUSED;
+static void mn_shell_popup_weak_notify_cb (MNShell * self, GObject * former_object) G_GNUC_UNUSED;
+static void mn_shell_display_window (MNShell * self, GType type, GtkWidget ** ptr, GtkWindow * parent) G_GNUC_UNUSED;
 static void mn_shell_mailbox_properties_dialog_weak_notify_cb (gpointer data, GObject * former_object) G_GNUC_UNUSED;
 
 /* pointer to the class of our parent */
@@ -95,8 +96,8 @@ static GObjectClass *parent_class = NULL;
 #define self_notify_blink_on_errors_cb mn_shell_notify_blink_on_errors_cb
 #define self_notify_mail_reader_cb mn_shell_notify_mail_reader_cb
 #define self_notify_summary_tooltip_cb mn_shell_notify_summary_tooltip_cb
+#define self_notify_mail_summary_popup_enable_cb mn_shell_notify_mail_summary_popup_enable_cb
 #define self_icon_activate_h mn_shell_icon_activate_h
-#define self_icon_activate_main_window_h mn_shell_icon_activate_main_window_h
 #define self_icon_activate_mail_reader_h mn_shell_icon_activate_mail_reader_h
 #define self_icon_activate_update_h mn_shell_icon_activate_update_h
 #define self_icon_activate_properties_h mn_shell_icon_activate_properties_h
@@ -109,14 +110,16 @@ static GObjectClass *parent_class = NULL;
 #define self_update_tooltip mn_shell_update_tooltip
 #define self_new_mailboxes_compare_func mn_shell_new_mailboxes_compare_func
 #define self_get_latest_sent_time mn_shell_get_latest_sent_time
-#define self_mailboxes_compare_by_name_func mn_shell_mailboxes_compare_by_name_func
 #define self_tooltip_section_new mn_shell_tooltip_section_new
 #define self_tooltip_text_section_new mn_shell_tooltip_text_section_new
+#define self_update_popup mn_shell_update_popup
+#define self_popup_weak_notify_cb mn_shell_popup_weak_notify_cb
 #define self_new mn_shell_new
+#define self_display_main_window mn_shell_display_main_window
+#define self_display_properties_dialog mn_shell_display_properties_dialog
 #define self_display_about_dialog mn_shell_display_about_dialog
-#define self_display_welcome_dialog mn_shell_display_welcome_dialog
-#define self_welcome_response_h mn_shell_welcome_response_h
-#define self_report mn_shell_report
+#define self_display_window mn_shell_display_window
+#define self_close_mail_summary_popup mn_shell_close_mail_summary_popup
 #define self_add_mailbox_properties_dialog mn_shell_add_mailbox_properties_dialog
 #define self_mailbox_properties_dialog_weak_notify_cb mn_shell_mailbox_properties_dialog_weak_notify_cb
 #define self_get_mailbox_properties_dialog mn_shell_get_mailbox_properties_dialog
@@ -170,9 +173,9 @@ ___dispose (GObject *obj_self)
 	MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
 	if (G_OBJECT_CLASS (parent_class)->dispose) \
 		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 49 "mn-shell.gob"
+#line 51 "mn-shell.gob"
 	if(self->mailboxes) { g_object_unref ((gpointer) self->mailboxes); self->mailboxes = NULL; }
-#line 176 "mn-shell.c"
+#line 179 "mn-shell.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -183,9 +186,15 @@ ___finalize(GObject *obj_self)
 #define __GOB_FUNCTION__ "MN:Shell::finalize"
 	MNShell *self G_GNUC_UNUSED = MN_SHELL (obj_self);
 	gpointer priv G_GNUC_UNUSED = self->_priv;
-#line 80 "mn-shell.gob"
+#line 93 "mn-shell.gob"
 	___2_mn_shell_finalize(obj_self);
-#line 189 "mn-shell.c"
+#line 192 "mn-shell.c"
+#line 61 "mn-shell.gob"
+	if(self->_priv->popup_messages) { mn_g_object_slist_free ((gpointer) self->_priv->popup_messages); self->_priv->popup_messages = NULL; }
+#line 195 "mn-shell.c"
+#line 62 "mn-shell.gob"
+	if(self->_priv->popup_previous_messages) { mn_g_object_slist_free ((gpointer) self->_priv->popup_previous_messages); self->_priv->popup_previous_messages = NULL; }
+#line 198 "mn-shell.c"
 }
 #undef __GOB_FUNCTION__
 
@@ -199,34 +208,38 @@ mn_shell_class_init (MNShellClass * c G_GNUC_UNUSED)
 
 	parent_class = g_type_class_ref (G_TYPE_OBJECT);
 
-#line 80 "mn-shell.gob"
+#line 93 "mn-shell.gob"
 	g_object_class->finalize = ___finalize;
-#line 205 "mn-shell.c"
+#line 214 "mn-shell.c"
 	g_object_class->dispose = ___dispose;
 }
 #undef __GOB_FUNCTION__
-#line 55 "mn-shell.gob"
+#line 66 "mn-shell.gob"
 static void 
 mn_shell_init (MNShell * self G_GNUC_UNUSED)
-#line 212 "mn-shell.c"
+#line 221 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::init"
-	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNShellPrivate);
-#line 49 "mn-shell.gob"
+	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,MN_TYPE_SHELL,MNShellPrivate);
+#line 51 "mn-shell.gob"
 	self->mailboxes = mn_mailboxes_new();
-#line 218 "mn-shell.c"
+#line 227 "mn-shell.c"
  {
-#line 56 "mn-shell.gob"
+#line 67 "mn-shell.gob"
+
+    g_assert(mn_shell == NULL);
 
-    g_return_if_fail(mn_shell == NULL);
     mn_shell = self;
     eel_add_weak_pointer(&mn_shell);
 
     self_init_icon(self);
 
-    eel_gconf_notification_add(MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self);
-    eel_gconf_notification_add(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self);
-    eel_gconf_notification_add(MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self);
+    mn_conf_notifications_add(self,
+			      MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self,
+			      MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self,
+			      MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, self_notify_mail_summary_popup_enable_cb, self,
+			      NULL);
 
     g_object_connect(self->mailboxes,
 		     "signal::messages-changed", self_messages_changed_h, self,
@@ -237,50 +250,41 @@ mn_shell_init (MNShell * self G_GNUC_UNUSED)
 		     "swapped-signal::error-changed", self_update_tooltip, self,
 		     "swapped-signal::error-changed", self_update_icon, self,
 		     NULL);
-
-    mn_summary_popup_init();
   
-#line 244 "mn-shell.c"
+#line 255 "mn-shell.c"
  }
 }
 #undef __GOB_FUNCTION__
 
 
 
-#line 80 "mn-shell.gob"
+#line 93 "mn-shell.gob"
 static void 
 ___2_mn_shell_finalize (GObject * object G_GNUC_UNUSED)
-#line 254 "mn-shell.c"
+#line 265 "mn-shell.c"
 #define PARENT_HANDLER(___object) \
 	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Shell::finalize"
 {
-#line 82 "mn-shell.gob"
+#line 95 "mn-shell.gob"
 	
     gtk_main_quit();
     PARENT_HANDLER(object);
   }}
-#line 266 "mn-shell.c"
+#line 277 "mn-shell.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
-#line 87 "mn-shell.gob"
+#line 100 "mn-shell.gob"
 static void 
 mn_shell_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer user_data)
-#line 273 "mn-shell.c"
+#line 284 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::messages_changed_h"
-#line 87 "mn-shell.gob"
-	g_return_if_fail (mailboxes != NULL);
-#line 87 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 87 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 282 "mn-shell.c"
-{
-#line 91 "mn-shell.gob"
+{
+#line 104 "mn-shell.gob"
 	
     Self *self = user_data;
 
@@ -291,62 +295,54 @@ mn_shell_messages_changed_h (MNMailboxes * mailboxes, gboolean has_new, gpointer
 	  mn_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
       }
 
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+      self_update_popup(self, has_new);
+    
     self_update_tooltip(self);
     self_update_icon(self);
   }}
-#line 298 "mn-shell.c"
+#line 305 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 105 "mn-shell.gob"
+#line 121 "mn-shell.gob"
 static void 
 mn_shell_mailbox_removed_h (MNMailboxes * mailboxes, MNMailbox * mailbox, gpointer user_data)
-#line 304 "mn-shell.c"
+#line 311 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::mailbox_removed_h"
-#line 105 "mn-shell.gob"
-	g_return_if_fail (mailboxes != NULL);
-#line 105 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAILBOXES (mailboxes));
-#line 105 "mn-shell.gob"
-	g_return_if_fail (mailbox != NULL);
-#line 105 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAILBOX (mailbox));
-#line 105 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 317 "mn-shell.c"
-{
-#line 109 "mn-shell.gob"
+{
+#line 125 "mn-shell.gob"
 	
     Self *self = user_data;
     MNMailboxPropertiesDialog *dialog;
 
     /* destroy the associated properties dialog, if any */
-    dialog = self_get_mailbox_properties_dialog(self, mailbox->uri);
+    dialog = self_get_mailbox_properties_dialog(self, mailbox);
     if (dialog)
       gtk_widget_destroy(GTK_WIDGET(dialog));
   }}
-#line 329 "mn-shell.c"
+#line 325 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 119 "mn-shell.gob"
+#line 135 "mn-shell.gob"
 static void 
 mn_shell_init_icon (MNShell * self)
-#line 335 "mn-shell.c"
+#line 331 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::init_icon"
-#line 119 "mn-shell.gob"
+#line 135 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 119 "mn-shell.gob"
+#line 135 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 342 "mn-shell.c"
+#line 338 "mn-shell.c"
 {
-#line 121 "mn-shell.gob"
+#line 137 "mn-shell.gob"
 	
     selfp->icon = MN_MAIL_ICON(mn_mail_icon_new());
 
     g_object_connect(selfp->icon,
 		     "signal::activate", self_icon_activate_h, self,
-		     "signal::activate-main-window", self_icon_activate_main_window_h, self,
+		     "swapped-signal::activate-main-window", self_display_main_window, self,
 		     "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
 		     "signal::activate-update", self_icon_activate_update_h, self,
 		     "signal::activate-properties", self_icon_activate_properties_h, self,
@@ -360,20 +356,17 @@ mn_shell_init_icon (MNShell * self)
     self_update_tooltip(self);
     self_update_icon(self);
   }}
-#line 364 "mn-shell.c"
+#line 360 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 141 "mn-shell.gob"
+#line 157 "mn-shell.gob"
 static void 
 mn_shell_notify_blink_on_errors_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 370 "mn-shell.c"
+#line 366 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::notify_blink_on_errors_cb"
-#line 141 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 375 "mn-shell.c"
 {
-#line 146 "mn-shell.gob"
+#line 162 "mn-shell.gob"
 	
     Self *self = user_data;
 
@@ -381,20 +374,17 @@ mn_shell_notify_blink_on_errors_cb (GConfClient * client, unsigned int cnxn_id, 
     self_update_icon(self);
     GDK_THREADS_LEAVE();
   }}
-#line 385 "mn-shell.c"
+#line 378 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 154 "mn-shell.gob"
+#line 170 "mn-shell.gob"
 static void 
 mn_shell_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 391 "mn-shell.c"
+#line 384 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::notify_mail_reader_cb"
-#line 154 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 396 "mn-shell.c"
 {
-#line 159 "mn-shell.gob"
+#line 175 "mn-shell.gob"
 	
     Self *self = user_data;
 
@@ -402,20 +392,17 @@ mn_shell_notify_mail_reader_cb (GConfClient * client, unsigned int cnxn_id, GCon
     self_update_sensitivity(self);
     GDK_THREADS_LEAVE();
   }}
-#line 406 "mn-shell.c"
+#line 396 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 167 "mn-shell.gob"
+#line 183 "mn-shell.gob"
 static void 
 mn_shell_notify_summary_tooltip_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
-#line 412 "mn-shell.c"
+#line 402 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::notify_summary_tooltip_cb"
-#line 167 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 417 "mn-shell.c"
 {
-#line 172 "mn-shell.gob"
+#line 188 "mn-shell.gob"
 	
     Self *self = user_data;
 
@@ -423,24 +410,38 @@ mn_shell_notify_summary_tooltip_cb (GConfClient * client, unsigned int cnxn_id, 
     self_update_tooltip(self);
     GDK_THREADS_LEAVE();
   }}
-#line 427 "mn-shell.c"
+#line 414 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 196 "mn-shell.gob"
+static void 
+mn_shell_notify_mail_summary_popup_enable_cb (GConfClient * client, unsigned int cnxn_id, GConfEntry * entry, gpointer user_data)
+#line 420 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::notify_mail_summary_popup_enable_cb"
+{
+#line 201 "mn-shell.gob"
+	
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    if (selfp->popup && ! eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+      gtk_widget_destroy(selfp->popup);
+      
+    GDK_THREADS_LEAVE();
+  }}
+#line 435 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 180 "mn-shell.gob"
+#line 212 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
-#line 433 "mn-shell.c"
+#line 441 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_h"
-#line 180 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 180 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 180 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 442 "mn-shell.c"
 {
-#line 183 "mn-shell.gob"
+#line 214 "mn-shell.gob"
 	
     MNShell *self = user_data;
     MNAction action;
@@ -450,7 +451,7 @@ mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
     switch (action)
       {
       case MN_ACTION_DISPLAY_MAIN_WINDOW:
-	mn_main_window_display();
+	self_display_main_window(self);
 	break;
 
       case MN_ACTION_LAUNCH_MAIL_READER:
@@ -466,228 +467,159 @@ mn_shell_icon_activate_h (MNMailIcon * icon, gpointer user_data)
 	g_return_if_reached();
       }
   }}
-#line 470 "mn-shell.c"
-#undef __GOB_FUNCTION__
-
-#line 209 "mn-shell.gob"
-static void 
-mn_shell_icon_activate_main_window_h (MNMailIcon * icon, gpointer user_data)
-#line 476 "mn-shell.c"
-{
-#define __GOB_FUNCTION__ "MN:Shell::icon_activate_main_window_h"
-#line 209 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 209 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 209 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 485 "mn-shell.c"
-{
-#line 212 "mn-shell.gob"
-	
-    mn_main_window_display();
-  }}
-#line 491 "mn-shell.c"
+#line 471 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 216 "mn-shell.gob"
+#line 240 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_mail_reader_h (MNMailIcon * icon, gpointer user_data)
-#line 497 "mn-shell.c"
+#line 477 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_mail_reader_h"
-#line 216 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 216 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 216 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 506 "mn-shell.c"
 {
-#line 219 "mn-shell.gob"
+#line 242 "mn-shell.gob"
 	
     mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
   }}
-#line 512 "mn-shell.c"
+#line 485 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 223 "mn-shell.gob"
+#line 246 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_update_h (MNMailIcon * icon, gpointer user_data)
-#line 518 "mn-shell.c"
+#line 491 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_update_h"
-#line 223 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 223 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 223 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 527 "mn-shell.c"
-{
-#line 226 "mn-shell.gob"
+{
+#line 248 "mn-shell.gob"
 	
     Self *self = user_data;
     mn_mailboxes_check(self->mailboxes);
   }}
-#line 534 "mn-shell.c"
+#line 500 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 231 "mn-shell.gob"
+#line 253 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_properties_h (MNMailIcon * icon, gpointer user_data)
-#line 540 "mn-shell.c"
+#line 506 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_properties_h"
-#line 231 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 231 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 231 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 549 "mn-shell.c"
-{
-#line 234 "mn-shell.gob"
+{
+#line 255 "mn-shell.gob"
 	
-    mn_properties_dialog_display();
+    Self *self = user_data;
+    self_display_properties_dialog(self, NULL);
   }}
-#line 555 "mn-shell.c"
+#line 515 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 238 "mn-shell.gob"
+#line 260 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_help_h (MNMailIcon * icon, gpointer user_data)
-#line 561 "mn-shell.c"
+#line 521 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_help_h"
-#line 238 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 238 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 238 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 570 "mn-shell.c"
-{
-#line 241 "mn-shell.gob"
+{
+#line 262 "mn-shell.gob"
 	
     mn_display_help(NULL, NULL);
   }}
-#line 576 "mn-shell.c"
+#line 529 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 245 "mn-shell.gob"
+#line 266 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_about_h (MNMailIcon * icon, gpointer user_data)
-#line 582 "mn-shell.c"
+#line 535 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_about_h"
-#line 245 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 245 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 245 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 591 "mn-shell.c"
 {
-#line 248 "mn-shell.gob"
+#line 268 "mn-shell.gob"
 	
     Self *self = user_data;
-    self_display_about_dialog(self);
+    self_display_about_dialog(self, NULL);
   }}
-#line 598 "mn-shell.c"
+#line 544 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 253 "mn-shell.gob"
+#line 273 "mn-shell.gob"
 static void 
 mn_shell_icon_activate_remove_h (MNMailIcon * icon, gpointer user_data)
-#line 604 "mn-shell.c"
+#line 550 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_activate_remove_h"
-#line 253 "mn-shell.gob"
-	g_return_if_fail (icon != NULL);
-#line 253 "mn-shell.gob"
-	g_return_if_fail (MN_IS_MAIL_ICON (icon));
-#line 253 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 613 "mn-shell.c"
 {
-#line 256 "mn-shell.gob"
+#line 275 "mn-shell.gob"
 	
     Self *self = user_data;
     g_object_unref(self);
   }}
-#line 620 "mn-shell.c"
+#line 559 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 261 "mn-shell.gob"
+#line 280 "mn-shell.gob"
 static void 
 mn_shell_icon_destroy_h (GtkObject * object, gpointer user_data)
-#line 626 "mn-shell.c"
+#line 565 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::icon_destroy_h"
-#line 261 "mn-shell.gob"
-	g_return_if_fail (object != NULL);
-#line 261 "mn-shell.gob"
-	g_return_if_fail (GTK_IS_OBJECT (object));
-#line 261 "mn-shell.gob"
-	g_return_if_fail (user_data != NULL);
-#line 635 "mn-shell.c"
-{
-#line 264 "mn-shell.gob"
+{
+#line 282 "mn-shell.gob"
 	
     Self *self = user_data;
 
     /* The Notification Area applet has been terminated. Recreate the icon. */
     self_init_icon(self);
   }}
-#line 644 "mn-shell.c"
+#line 576 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 271 "mn-shell.gob"
+#line 289 "mn-shell.gob"
 static void 
 mn_shell_update_sensitivity (MNShell * self)
-#line 650 "mn-shell.c"
+#line 582 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_sensitivity"
-#line 271 "mn-shell.gob"
+#line 289 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 271 "mn-shell.gob"
+#line 289 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 657 "mn-shell.c"
+#line 589 "mn-shell.c"
 {
-#line 273 "mn-shell.gob"
+#line 291 "mn-shell.gob"
 	
     gtk_widget_set_sensitive(selfp->icon->mail_reader_item, mn_conf_has_command(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE));
     gtk_widget_set_sensitive(selfp->icon->update_item, mn_mailboxes_get_must_poll(self->mailboxes));
   }}
-#line 664 "mn-shell.c"
+#line 596 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 278 "mn-shell.gob"
+#line 296 "mn-shell.gob"
 static void 
 mn_shell_update_icon (MNShell * self)
-#line 670 "mn-shell.c"
+#line 602 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_icon"
-#line 278 "mn-shell.gob"
+#line 296 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 278 "mn-shell.gob"
+#line 296 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 677 "mn-shell.c"
+#line 609 "mn-shell.c"
 {
-#line 280 "mn-shell.gob"
+#line 298 "mn-shell.gob"
 	
-    GSList *l;
+    GList *l;
     gboolean has_new = FALSE;
     gboolean blink = FALSE;
 
-    MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+    MN_LIST_FOREACH(l, self->mailboxes->list)
       {
 	MNMailbox *mailbox = l->data;
 
-	if (mn_mailbox_get_messages(mailbox))
+	if (mailbox->messages)
 	  has_new = TRUE;
-	if (mn_mailbox_get_error(mailbox) || MN_IS_UNSUPPORTED_MAILBOX(mailbox))
+	if (mailbox->error)
 	  blink = TRUE;
       }
 
@@ -706,48 +638,43 @@ mn_shell_update_icon (MNShell * self)
     else
       gtk_widget_hide(GTK_WIDGET(selfp->icon));
   }}
-#line 710 "mn-shell.c"
+#line 642 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 311 "mn-shell.gob"
+#line 329 "mn-shell.gob"
 static void 
 mn_shell_update_tooltip (MNShell * self)
-#line 716 "mn-shell.c"
+#line 648 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::update_tooltip"
-#line 311 "mn-shell.gob"
+#line 329 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 311 "mn-shell.gob"
+#line 329 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 723 "mn-shell.c"
+#line 655 "mn-shell.c"
 {
-#line 313 "mn-shell.gob"
+#line 331 "mn-shell.gob"
 	
     GtkWidget *vbox;
-    GSList *mailboxes;
 
     vbox = gtk_vbox_new(FALSE, 18);
 
-    mailboxes = mn_mailboxes_get(self->mailboxes);
-    if (mailboxes)
+    if (self->mailboxes->list)
       {
-	GSList *l;
+	GList *l;
+	GSList *sl;
 	GSList *new_mailboxes = NULL;
 	GSList *error_mailboxes = NULL;
-	GSList *unsupported_mailboxes = NULL;
 
-	MN_LIST_FOREACH(l, mailboxes)
+	MN_LIST_FOREACH(l, self->mailboxes->list)
           {
 	    MNMailbox *mailbox = l->data;
 	    
-	    if (mn_mailbox_get_messages(mailbox))
+	    if (mailbox->messages)
 	      new_mailboxes = g_slist_append(new_mailboxes, mailbox);
 
-	    if (mn_mailbox_get_error(mailbox))
+	    if (mailbox->error)
 	      error_mailboxes = g_slist_append(error_mailboxes, mailbox);
-
-	    if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
-	      unsupported_mailboxes = g_slist_append(unsupported_mailboxes, mailbox);
 	  }
 
 	if (new_mailboxes)
@@ -755,16 +682,16 @@ mn_shell_update_tooltip (MNShell * self)
 	    GString *string = g_string_new(NULL);
 
 	    new_mailboxes = g_slist_sort(new_mailboxes, self_new_mailboxes_compare_func);
-	    MN_LIST_FOREACH(l, new_mailboxes)
+	    MN_LIST_FOREACH(sl, new_mailboxes)
 	      {
-		MNMailbox *mailbox = l->data;
+		MNMailbox *mailbox = sl->data;
 		int n_messages;
 
 		if (*string->str)
 		  g_string_append_c(string, '\n');
-		g_string_append(string, mn_mailbox_get_name(mailbox));
+		g_string_append(string, mailbox->runtime_name);
 		
-		n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+		n_messages = g_slist_length(mailbox->messages);
 		if (n_messages > 0)
 		  g_string_append_printf(string, " (%i)", n_messages);
 	      }
@@ -778,43 +705,20 @@ mn_shell_update_tooltip (MNShell * self)
 	  {
 	    GString *string = g_string_new(NULL);
 
-	    error_mailboxes = g_slist_sort(error_mailboxes, self_mailboxes_compare_by_name_func);
-	    MN_LIST_FOREACH(l, error_mailboxes)
+	    error_mailboxes = g_slist_sort(error_mailboxes, mn_mailboxes_compare_by_name_func);
+	    MN_LIST_FOREACH(sl, error_mailboxes)
 	      {
-		MNMailbox *mailbox = l->data;
+		MNMailbox *mailbox = sl->data;
 
 		if (*string->str)
 		  g_string_append_c(string, '\n');
-		g_string_append_printf(string, "%s: %s",
-				       mn_mailbox_get_name(mailbox),
-				       mn_mailbox_get_error(mailbox));
+		g_string_append_printf(string, "%s: %s", mailbox->runtime_name, mailbox->error);
 	      }
 	    g_slist_free(error_mailboxes);
 
 	    self_tooltip_text_section_new(GTK_VBOX(vbox), _("Errors"), string->str);
 	    g_string_free(string, TRUE);
 	  }
-	
-	if (unsupported_mailboxes)
-	  {
-	    GString *string = g_string_new(NULL);
-
-	    unsupported_mailboxes = g_slist_sort(unsupported_mailboxes, self_mailboxes_compare_by_name_func);
-	    MN_LIST_FOREACH(l, unsupported_mailboxes)
-	      {
-		MNMailbox *mailbox = l->data;
-
-		if (*string->str)
-		  g_string_append_c(string, '\n');
-		g_string_append_printf(string, "%s: %s",
-				       mn_mailbox_get_name(mailbox),
-				       mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
-	      }
-	    g_slist_free(unsupported_mailboxes);
-	    
-	    self_tooltip_text_section_new(GTK_VBOX(vbox), _("Unsupported Mailboxes"), string->str);
-	    g_string_free(string, TRUE);
-	  }
       }
 
     if (eel_gconf_get_boolean(MN_CONF_SUMMARY_TOOLTIP))
@@ -842,17 +746,17 @@ mn_shell_update_tooltip (MNShell * self)
     gtk_widget_show_all(vbox);
     mn_mail_icon_set_tip_widget(selfp->icon, vbox);
   }}
-#line 846 "mn-shell.c"
+#line 750 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 434 "mn-shell.gob"
+#line 424 "mn-shell.gob"
 static int 
 mn_shell_new_mailboxes_compare_func (gconstpointer a, gconstpointer b)
-#line 852 "mn-shell.c"
+#line 756 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::new_mailboxes_compare_func"
 {
-#line 436 "mn-shell.gob"
+#line 426 "mn-shell.gob"
 	
     MNMailbox *mailbox_a = (MNMailbox *) a;
     MNMailbox *mailbox_b = (MNMailbox *) b;
@@ -862,34 +766,34 @@ mn_shell_new_mailboxes_compare_func (gconstpointer a, gconstpointer b)
     cmp = self_get_latest_sent_time(mailbox_b) - self_get_latest_sent_time(mailbox_a);
     /* else sort by number of messages (descending order) */
     if (cmp == 0)
-      cmp = g_slist_length(mn_mailbox_get_messages(mailbox_b)) - g_slist_length(mn_mailbox_get_messages(mailbox_a));
+      cmp = g_slist_length(mailbox_b->messages) - g_slist_length(mailbox_a->messages);
     /* else sort by name (ascending order) */
     if (cmp == 0)
-      cmp = self_mailboxes_compare_by_name_func(a, b);
+      cmp = mn_mailboxes_compare_by_name_func(a, b);
 
     return cmp;
   }}
-#line 873 "mn-shell.c"
+#line 777 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 453 "mn-shell.gob"
+#line 443 "mn-shell.gob"
 static time_t 
 mn_shell_get_latest_sent_time (MNMailbox * mailbox)
-#line 879 "mn-shell.c"
+#line 783 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::get_latest_sent_time"
-#line 453 "mn-shell.gob"
+#line 443 "mn-shell.gob"
 	g_return_val_if_fail (mailbox != NULL, (time_t )0);
-#line 453 "mn-shell.gob"
+#line 443 "mn-shell.gob"
 	g_return_val_if_fail (MN_IS_MAILBOX (mailbox), (time_t )0);
-#line 886 "mn-shell.c"
+#line 790 "mn-shell.c"
 {
-#line 455 "mn-shell.gob"
+#line 445 "mn-shell.gob"
 	
     GSList *l;
     time_t latest = 0;
 
-    MN_LIST_FOREACH(l, mn_mailbox_get_messages(mailbox))
+    MN_LIST_FOREACH(l, mailbox->messages)
       {
 	MNMessage *message = l->data;
 
@@ -899,42 +803,24 @@ mn_shell_get_latest_sent_time (MNMailbox * mailbox)
 
     return latest;
   }}
-#line 903 "mn-shell.c"
+#line 807 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 470 "mn-shell.gob"
-static int 
-mn_shell_mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b)
-#line 909 "mn-shell.c"
-{
-#define __GOB_FUNCTION__ "MN:Shell::mailboxes_compare_by_name_func"
-{
-#line 472 "mn-shell.gob"
-	
-    MNMailbox *mailbox_a = (MNMailbox *) a;
-    MNMailbox *mailbox_b = (MNMailbox *) b;
-
-    return mn_utf8_strcasecoll(mn_mailbox_get_name(mailbox_a),
-			       mn_mailbox_get_name(mailbox_b));
-  }}
-#line 921 "mn-shell.c"
-#undef __GOB_FUNCTION__
-
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
 static GtkWidget * 
 mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title)
-#line 927 "mn-shell.c"
+#line 813 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::tooltip_section_new"
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
 	g_return_val_if_fail (vbox != NULL, (GtkWidget * )0);
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
 	g_return_val_if_fail (GTK_IS_VBOX (vbox), (GtkWidget * )0);
-#line 480 "mn-shell.gob"
+#line 460 "mn-shell.gob"
 	g_return_val_if_fail (title != NULL, (GtkWidget * )0);
-#line 936 "mn-shell.c"
+#line 822 "mn-shell.c"
 {
-#line 483 "mn-shell.gob"
+#line 463 "mn-shell.gob"
 	
     GtkWidget *child_vbox;
     char *markup;
@@ -961,26 +847,26 @@ mn_shell_tooltip_section_new (GtkVBox * vbox, const char * title)
 
     return alignment;
   }}
-#line 965 "mn-shell.c"
+#line 851 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
 static void 
 mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const char * text)
-#line 971 "mn-shell.c"
+#line 857 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::tooltip_text_section_new"
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
 	g_return_if_fail (vbox != NULL);
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
 	g_return_if_fail (GTK_IS_VBOX (vbox));
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
 	g_return_if_fail (title != NULL);
-#line 510 "mn-shell.gob"
+#line 490 "mn-shell.gob"
 	g_return_if_fail (text != NULL);
-#line 982 "mn-shell.c"
+#line 868 "mn-shell.c"
 {
-#line 514 "mn-shell.gob"
+#line 494 "mn-shell.gob"
 	
     GtkWidget *alignment;
     GtkWidget *label;
@@ -993,219 +879,314 @@ mn_shell_tooltip_text_section_new (GtkVBox * vbox, const char * title, const cha
 
     gtk_container_add(GTK_CONTAINER(alignment), label);
   }}
-#line 997 "mn-shell.c"
+#line 883 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 507 "mn-shell.gob"
+static void 
+mn_shell_update_popup (MNShell * self, gboolean has_new)
+#line 889 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::update_popup"
+#line 507 "mn-shell.gob"
+	g_return_if_fail (self != NULL);
+#line 507 "mn-shell.gob"
+	g_return_if_fail (MN_IS_SHELL (self));
+#line 896 "mn-shell.c"
+{
+#line 509 "mn-shell.gob"
+	
+    if (! selfp->main_window
+	&& (! selfp->properties_dialog || ! mn_properties_dialog_test_popup_displayed(MN_PROPERTIES_DIALOG(selfp->properties_dialog)))
+	&& (selfp->popup || has_new))
+      {
+	GSList *l;
+
+	mn_g_object_slist_free(selfp->popup_messages);
+	selfp->popup_messages = mn_mailboxes_get_messages(self->mailboxes);
+
+      loop1:
+	MN_LIST_FOREACH(l, selfp->popup_previous_messages)
+	  {
+	    MNMessage *message = l->data;
+	    
+	    if (! mn_message_slist_find_by_id(selfp->popup_messages, message))
+	      {
+		selfp->popup_previous_messages = mn_g_object_slist_delete_link(selfp->popup_previous_messages, l);
+		goto loop1;
+	      }
+	  }
+
+	if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
+	  {
+	  loop2:
+	    MN_LIST_FOREACH(l, selfp->popup_messages)
+	      {
+		MNMessage *message = l->data;
+		
+		if (mn_message_slist_find_by_id(selfp->popup_previous_messages, message))
+		  {
+		    selfp->popup_messages = mn_g_object_slist_delete_link(selfp->popup_messages, l);
+		    goto loop2;
+		  }
+	      }
+	  }
+
+	if (selfp->popup_messages)
+	  {
+	    if (! selfp->popup)
+	      {
+		selfp->popup = mn_mail_summary_popup_new();
+
+		eel_add_weak_pointer(&selfp->popup);
+		g_object_weak_ref(G_OBJECT(selfp->popup), (GWeakNotify) self_popup_weak_notify_cb, self);
+	      }
+
+	    mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->popup), selfp->popup_messages);
+	    gtk_widget_show(selfp->popup);
+
+	    /* we only reset the timeout if there is new mail */
+
+	    if (has_new)
+	      mn_mail_summary_popup_reset_timeout(MN_MAIL_SUMMARY_POPUP(selfp->popup));
+
+	    return;		/* something has been shown */
+	  }
+      }
+
+    /* nothing has been shown, destroy the popup if it exists */
+    if (selfp->popup)
+      gtk_widget_destroy(selfp->popup);
+  }}
+#line 962 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 527 "mn-shell.gob"
+#line 573 "mn-shell.gob"
+static void 
+mn_shell_popup_weak_notify_cb (MNShell * self, GObject * former_object)
+#line 968 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::popup_weak_notify_cb"
+#line 573 "mn-shell.gob"
+	g_return_if_fail (self != NULL);
+#line 573 "mn-shell.gob"
+	g_return_if_fail (MN_IS_SHELL (self));
+#line 975 "mn-shell.c"
+{
+#line 575 "mn-shell.gob"
+	
+    selfp->popup_previous_messages = g_slist_concat(selfp->popup_previous_messages, selfp->popup_messages);
+    selfp->popup_messages = NULL;
+  }}
+#line 982 "mn-shell.c"
+#undef __GOB_FUNCTION__
+
+#line 580 "mn-shell.gob"
 MNShell * 
 mn_shell_new (void)
-#line 1003 "mn-shell.c"
+#line 988 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::new"
 {
-#line 529 "mn-shell.gob"
+#line 582 "mn-shell.gob"
 	
     return GET_NEW;
   }}
-#line 1011 "mn-shell.c"
+#line 996 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 533 "mn-shell.gob"
+#line 586 "mn-shell.gob"
 void 
-mn_shell_display_about_dialog (MNShell * self)
-#line 1017 "mn-shell.c"
+mn_shell_display_main_window (MNShell * self)
+#line 1002 "mn-shell.c"
 {
-#define __GOB_FUNCTION__ "MN:Shell::display_about_dialog"
-#line 533 "mn-shell.gob"
+#define __GOB_FUNCTION__ "MN:Shell::display_main_window"
+#line 586 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 533 "mn-shell.gob"
+#line 586 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 1024 "mn-shell.c"
+#line 1009 "mn-shell.c"
 {
-#line 535 "mn-shell.gob"
+#line 588 "mn-shell.gob"
 	
-    if (selfp->about)
-      {
-	gtk_window_present(GTK_WINDOW(selfp->about));
-	return;
-      }
-    
-    selfp->about = mn_about_dialog_new();
-    eel_add_weak_pointer(&selfp->about);
-    
-    mn_main_window_add_transient(GTK_WINDOW(selfp->about));
-    gtk_widget_show(GTK_WIDGET(selfp->about));
+    self_display_window(self, MN_TYPE_MAIN_WINDOW, &selfp->main_window, NULL);
+
+    /* we don't need the mail summary popup anymore */
+    self_close_mail_summary_popup(self);
   }}
-#line 1040 "mn-shell.c"
+#line 1018 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 549 "mn-shell.gob"
+#line 595 "mn-shell.gob"
 void 
-mn_shell_display_welcome_dialog (MNShell * self)
-#line 1046 "mn-shell.c"
+mn_shell_display_properties_dialog (MNShell * self, GtkWindow * parent)
+#line 1024 "mn-shell.c"
 {
-#define __GOB_FUNCTION__ "MN:Shell::display_welcome_dialog"
-#line 549 "mn-shell.gob"
+#define __GOB_FUNCTION__ "MN:Shell::display_properties_dialog"
+#line 595 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 549 "mn-shell.gob"
+#line 595 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 1053 "mn-shell.c"
+#line 1031 "mn-shell.c"
 {
-#line 551 "mn-shell.gob"
+#line 597 "mn-shell.gob"
 	
-    GtkWidget *dialog;
-
-    mn_create_interface(MN_INTERFACE_FILE("welcome.glade"), "dialog", &dialog, NULL);
-    gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-
-    g_signal_connect(dialog, "response", G_CALLBACK(self_welcome_response_h), NULL);
-    gtk_widget_show(dialog);
+    self_display_window(self, MN_TYPE_PROPERTIES_DIALOG, &selfp->properties_dialog, parent);
   }}
-#line 1065 "mn-shell.c"
+#line 1037 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 561 "mn-shell.gob"
-static void 
-mn_shell_welcome_response_h (GtkDialog * dialog, int response, gpointer user_data)
-#line 1071 "mn-shell.c"
+#line 601 "mn-shell.gob"
+void 
+mn_shell_display_about_dialog (MNShell * self, GtkWindow * parent)
+#line 1043 "mn-shell.c"
 {
-#define __GOB_FUNCTION__ "MN:Shell::welcome_response_h"
-#line 561 "mn-shell.gob"
-	g_return_if_fail (dialog != NULL);
-#line 561 "mn-shell.gob"
-	g_return_if_fail (GTK_IS_DIALOG (dialog));
-#line 1078 "mn-shell.c"
+#define __GOB_FUNCTION__ "MN:Shell::display_about_dialog"
+#line 601 "mn-shell.gob"
+	g_return_if_fail (self != NULL);
+#line 601 "mn-shell.gob"
+	g_return_if_fail (MN_IS_SHELL (self));
+#line 1050 "mn-shell.c"
 {
-#line 565 "mn-shell.gob"
+#line 603 "mn-shell.gob"
 	
-    gtk_widget_destroy(GTK_WIDGET(dialog));
-    if (response == GTK_RESPONSE_OK)
-      mn_properties_dialog_display();
+    self_display_window(self, MN_TYPE_ABOUT_DIALOG, &selfp->about_dialog, parent);
   }}
-#line 1086 "mn-shell.c"
+#line 1056 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 571 "mn-shell.gob"
-void 
-mn_shell_report (MNShell * self, char ** report)
-#line 1092 "mn-shell.c"
+#line 607 "mn-shell.gob"
+static void 
+mn_shell_display_window (MNShell * self, GType type, GtkWidget ** ptr, GtkWindow * parent)
+#line 1062 "mn-shell.c"
 {
-#define __GOB_FUNCTION__ "MN:Shell::report"
-#line 571 "mn-shell.gob"
+#define __GOB_FUNCTION__ "MN:Shell::display_window"
+#line 607 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 571 "mn-shell.gob"
+#line 607 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 571 "mn-shell.gob"
-	g_return_if_fail (report != NULL);
-#line 1101 "mn-shell.c"
+#line 607 "mn-shell.gob"
+	g_return_if_fail (type != 0);
+#line 607 "mn-shell.gob"
+	g_return_if_fail (ptr != NULL);
+#line 1073 "mn-shell.c"
 {
-#line 573 "mn-shell.gob"
+#line 612 "mn-shell.gob"
 	
-    GString *string;
-    GSList *l;
-
-    string = g_string_new(NULL);
-    MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+    if (*ptr)
       {
-	MNMailbox *mailbox = l->data;
-	const char *error;
+	gtk_window_present(GTK_WINDOW(*ptr));
+	return;
+      }
 
-	error = mn_mailbox_get_error(mailbox);
+    *ptr = g_object_new(type, NULL);
+    eel_add_weak_pointer(ptr);
 
-	g_string_append_printf(string, "%s\n", mailbox->uri->text);
+    if (parent)
+      gtk_window_set_transient_for(GTK_WINDOW(*ptr), parent);
 
-	if (mn_mailbox_get_messages(mailbox))
-	  g_string_append(string, " has-new\n");
-	if (error)
-	  g_string_append_printf(string, " error %s\n", error);
-	if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
-	  g_string_append_printf(string, " unsupported %s\n", mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
-      }
+    gtk_widget_show(*ptr);
+  }}
+#line 1091 "mn-shell.c"
+#undef __GOB_FUNCTION__
 
-    *report = string->str;
-    g_string_free(string, FALSE);
+#line 628 "mn-shell.gob"
+void 
+mn_shell_close_mail_summary_popup (MNShell * self)
+#line 1097 "mn-shell.c"
+{
+#define __GOB_FUNCTION__ "MN:Shell::close_mail_summary_popup"
+#line 628 "mn-shell.gob"
+	g_return_if_fail (self != NULL);
+#line 628 "mn-shell.gob"
+	g_return_if_fail (MN_IS_SHELL (self));
+#line 1104 "mn-shell.c"
+{
+#line 630 "mn-shell.gob"
+	
+    if (selfp->popup)
+      gtk_widget_destroy(selfp->popup);
   }}
-#line 1129 "mn-shell.c"
+#line 1111 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
 void 
 mn_shell_add_mailbox_properties_dialog (MNShell * self, MNMailboxPropertiesDialog * dialog)
-#line 1135 "mn-shell.c"
+#line 1117 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::add_mailbox_properties_dialog"
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
 	g_return_if_fail (self != NULL);
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
 	g_return_if_fail (MN_IS_SHELL (self));
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
 	g_return_if_fail (dialog != NULL);
-#line 599 "mn-shell.gob"
+#line 635 "mn-shell.gob"
 	g_return_if_fail (MN_IS_MAILBOX_PROPERTIES_DIALOG (dialog));
-#line 1146 "mn-shell.c"
+#line 1128 "mn-shell.c"
 {
-#line 601 "mn-shell.gob"
+#line 637 "mn-shell.gob"
 	
-    g_return_if_fail(mn_mailbox_properties_dialog_get_uri(dialog) != NULL);
-
     selfp->mailbox_properties_dialogs = g_slist_append(selfp->mailbox_properties_dialogs, dialog);
     g_object_weak_ref(G_OBJECT(dialog), self_mailbox_properties_dialog_weak_notify_cb, self);
   }}
-#line 1155 "mn-shell.c"
+#line 1135 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 608 "mn-shell.gob"
+#line 642 "mn-shell.gob"
 static void 
 mn_shell_mailbox_properties_dialog_weak_notify_cb (gpointer data, GObject * former_object)
-#line 1161 "mn-shell.c"
+#line 1141 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::mailbox_properties_dialog_weak_notify_cb"
-#line 608 "mn-shell.gob"
-	g_return_if_fail (data != NULL);
-#line 1166 "mn-shell.c"
 {
-#line 611 "mn-shell.gob"
+#line 645 "mn-shell.gob"
 	
     Self *self = data;
 
     selfp->mailbox_properties_dialogs = g_slist_remove(selfp->mailbox_properties_dialogs, former_object);
   }}
-#line 1174 "mn-shell.c"
+#line 1151 "mn-shell.c"
 #undef __GOB_FUNCTION__
 
-#line 617 "mn-shell.gob"
+#line 651 "mn-shell.gob"
 MNMailboxPropertiesDialog * 
-mn_shell_get_mailbox_properties_dialog (MNShell * self, MNURI * uri)
-#line 1180 "mn-shell.c"
+mn_shell_get_mailbox_properties_dialog (MNShell * self, MNMailbox * mailbox)
+#line 1157 "mn-shell.c"
 {
 #define __GOB_FUNCTION__ "MN:Shell::get_mailbox_properties_dialog"
-#line 617 "mn-shell.gob"
+#line 651 "mn-shell.gob"
 	g_return_val_if_fail (self != NULL, (MNMailboxPropertiesDialog * )0);
-#line 617 "mn-shell.gob"
+#line 651 "mn-shell.gob"
 	g_return_val_if_fail (MN_IS_SHELL (self), (MNMailboxPropertiesDialog * )0);
-#line 617 "mn-shell.gob"
-	g_return_val_if_fail (uri != NULL, (MNMailboxPropertiesDialog * )0);
-#line 617 "mn-shell.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (MNMailboxPropertiesDialog * )0);
-#line 1191 "mn-shell.c"
+#line 651 "mn-shell.gob"
+	g_return_val_if_fail (mailbox != NULL, (MNMailboxPropertiesDialog * )0);
+#line 651 "mn-shell.gob"
+	g_return_val_if_fail (MN_IS_MAILBOX (mailbox), (MNMailboxPropertiesDialog * )0);
+#line 1168 "mn-shell.c"
 {
-#line 619 "mn-shell.gob"
+#line 653 "mn-shell.gob"
 	
     GSList *l;
 
     MN_LIST_FOREACH(l, selfp->mailbox_properties_dialogs)
       {
 	MNMailboxPropertiesDialog *dialog = l->data;
-	MNURI *this_uri;
+	MNMailbox *this_mailbox;
+	gboolean found;
+
+	this_mailbox = mn_mailbox_properties_dialog_get_mailbox(dialog);
+	found = this_mailbox == mailbox;
+	g_object_unref(this_mailbox);
 
-	this_uri = mn_mailbox_properties_dialog_get_uri(dialog);
-	if (! strcmp(this_uri->text, uri->text))
+	if (found)
 	  return dialog;
       }
 
     return NULL;
   }}
-#line 1209 "mn-shell.c"
+#line 1190 "mn-shell.c"
 #undef __GOB_FUNCTION__
 static const GEnumValue _mn_position_values[] = {
 	{ MN_POSITION_TOP_LEFT, (char *)"MN_POSITION_TOP_LEFT", (char *)"top-left" },
diff --git a/src/mn-shell.gob b/src/mn-shell.gob
@@ -16,16 +16,18 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
 #include "mn-mailboxes.h"
 #include "mn-mailbox-properties-dialog.h"
 %}
+
 %privateheader{
 #include "mn-mail-icon.h"
 %}
+
 %{
 #include "config.h"
 #include <errno.h>
@@ -35,34 +37,47 @@ requires 2.0.10
 #include "mn-util.h"
 #include "mn-conf.h"
 #include "mn-mailboxes.h"
-#include "mn-unsupported-mailbox.h"
 #include "mn-about-dialog.h"
-#include "mn-summary-popup.h"
 #include "mn-main-window.h"
+#include "mn-mail-summary-popup.h"
 #include "mn-message-view.h"
+#include "mn-message.h"
 
-  MNShell *mn_shell = NULL;
+MNShell *mn_shell = NULL;
 %}
 
 class MN:Shell from G:Object
 {
   public MNMailboxes *mailboxes = {mn_mailboxes_new()} unrefwith g_object_unref;
   private MNMailIcon *icon;
-  private GtkWidget *about;
   private gboolean has_new;
+
+  private GtkWidget *main_window;
+  private GtkWidget *properties_dialog;
+
   private GSList *mailbox_properties_dialogs;
 
+  private GtkWidget *popup;
+  private GSList *popup_messages destroywith mn_g_object_slist_free;
+  private GSList *popup_previous_messages destroywith mn_g_object_slist_free;
+
+  private GtkWidget *about_dialog;
+
   init (self)
   {
-    g_return_if_fail(mn_shell == NULL);
+    g_assert(mn_shell == NULL);
+
     mn_shell = self;
     eel_add_weak_pointer(&mn_shell);
 
     self_init_icon(self);
 
-    eel_gconf_notification_add(MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self);
-    eel_gconf_notification_add(MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self);
-    eel_gconf_notification_add(MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self);
+    mn_conf_notifications_add(self,
+			      MN_CONF_BLINK_ON_ERRORS, self_notify_blink_on_errors_cb, self,
+			      MN_CONF_COMMANDS_MAIL_READER_NAMESPACE, self_notify_mail_reader_cb, self,
+			      MN_CONF_SUMMARY_TOOLTIP, self_notify_summary_tooltip_cb, self,
+			      MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, self_notify_mail_summary_popup_enable_cb, self,
+			      NULL);
 
     g_object_connect(self->mailboxes,
 		     "signal::messages-changed", self_messages_changed_h, self,
@@ -73,8 +88,6 @@ class MN:Shell from G:Object
 		     "swapped-signal::error-changed", self_update_tooltip, self,
 		     "swapped-signal::error-changed", self_update_icon, self,
 		     NULL);
-
-    mn_summary_popup_init();
   }
 
   override (G:Object) void
@@ -85,9 +98,9 @@ class MN:Shell from G:Object
   }
   
   private void
-    messages_changed_h (MN:Mailboxes *mailboxes (check null type),
+    messages_changed_h (MNMailboxes *mailboxes,
 			gboolean has_new,
-			gpointer user_data (check null))
+			gpointer user_data)
   {
     Self *self = user_data;
 
@@ -98,20 +111,23 @@ class MN:Shell from G:Object
 	  mn_execute_command(MN_CONF_COMMANDS_NEW_MAIL_COMMAND);
       }
 
+    if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+      self_update_popup(self, has_new);
+    
     self_update_tooltip(self);
     self_update_icon(self);
   }
 
   private void
-    mailbox_removed_h (MN:Mailboxes *mailboxes (check null type),
-		       MN:Mailbox *mailbox (check null type),
-		       gpointer user_data (check null))
+    mailbox_removed_h (MNMailboxes *mailboxes,
+		       MNMailbox *mailbox,
+		       gpointer user_data)
   {
     Self *self = user_data;
     MNMailboxPropertiesDialog *dialog;
 
     /* destroy the associated properties dialog, if any */
-    dialog = self_get_mailbox_properties_dialog(self, mailbox->uri);
+    dialog = self_get_mailbox_properties_dialog(self, mailbox);
     if (dialog)
       gtk_widget_destroy(GTK_WIDGET(dialog));
   }
@@ -123,7 +139,7 @@ class MN:Shell from G:Object
 
     g_object_connect(selfp->icon,
 		     "signal::activate", self_icon_activate_h, self,
-		     "signal::activate-main-window", self_icon_activate_main_window_h, self,
+		     "swapped-signal::activate-main-window", self_display_main_window, self,
 		     "signal::activate-mail-reader", self_icon_activate_mail_reader_h, self,
 		     "signal::activate-update", self_icon_activate_update_h, self,
 		     "signal::activate-properties", self_icon_activate_properties_h, self,
@@ -142,7 +158,7 @@ class MN:Shell from G:Object
     notify_blink_on_errors_cb (GConfClient *client,
 			       unsigned int cnxn_id,
 			       GConfEntry *entry,
-			       gpointer user_data (check null))
+			       gpointer user_data)
   {
     Self *self = user_data;
 
@@ -155,7 +171,7 @@ class MN:Shell from G:Object
     notify_mail_reader_cb (GConfClient *client,
 			   unsigned int cnxn_id,
 			   GConfEntry *entry,
-			   gpointer user_data (check null))
+			   gpointer user_data)
   {
     Self *self = user_data;
 
@@ -168,7 +184,7 @@ class MN:Shell from G:Object
     notify_summary_tooltip_cb (GConfClient *client,
 			       unsigned int cnxn_id,
 			       GConfEntry *entry,
-			       gpointer user_data (check null))
+			       gpointer user_data)
   {
     Self *self = user_data;
 
@@ -178,8 +194,23 @@ class MN:Shell from G:Object
   }
   
   private void
-    icon_activate_h (MN:Mail:Icon *icon (check null type),
-		     gpointer user_data (check null))
+    notify_mail_summary_popup_enable_cb (GConfClient *client,
+					 unsigned int cnxn_id,
+					 GConfEntry *entry,
+					 gpointer user_data)
+  {
+    Self *self = user_data;
+
+    GDK_THREADS_ENTER();
+
+    if (selfp->popup && ! eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
+      gtk_widget_destroy(selfp->popup);
+      
+    GDK_THREADS_LEAVE();
+  }
+  
+  private void
+    icon_activate_h (MNMailIcon *icon, gpointer user_data)
   {
     MNShell *self = user_data;
     MNAction action;
@@ -189,7 +220,7 @@ class MN:Shell from G:Object
     switch (action)
       {
       case MN_ACTION_DISPLAY_MAIN_WINDOW:
-	mn_main_window_display();
+	self_display_main_window(self);
 	break;
 
       case MN_ACTION_LAUNCH_MAIL_READER:
@@ -207,60 +238,47 @@ class MN:Shell from G:Object
   }
 
   private void
-    icon_activate_main_window_h (MN:Mail:Icon *icon (check null type),
-				 gpointer user_data (check null))
-  {
-    mn_main_window_display();
-  }
-  
-  private void
-    icon_activate_mail_reader_h (MN:Mail:Icon *icon (check null type),
-				 gpointer user_data (check null))
+    icon_activate_mail_reader_h (MNMailIcon *icon, gpointer user_data)
   {
     mn_execute_command(MN_CONF_COMMANDS_MAIL_READER_COMMAND);
   }
 
   private void
-    icon_activate_update_h (MN:Mail:Icon *icon (check null type),
-			    gpointer user_data (check null))
+    icon_activate_update_h (MNMailIcon *icon, gpointer user_data)
   {
     Self *self = user_data;
     mn_mailboxes_check(self->mailboxes);
   }
   
   private void
-    icon_activate_properties_h (MN:Mail:Icon *icon (check null type),
-				gpointer user_data (check null))
+    icon_activate_properties_h (MNMailIcon *icon, gpointer user_data)
   {
-    mn_properties_dialog_display();
+    Self *self = user_data;
+    self_display_properties_dialog(self, NULL);
   }
   
   private void
-    icon_activate_help_h (MN:Mail:Icon *icon (check null type),
-			  gpointer user_data (check null))
+    icon_activate_help_h (MNMailIcon *icon, gpointer user_data)
   {
     mn_display_help(NULL, NULL);
   }
   
   private void
-    icon_activate_about_h (MN:Mail:Icon *icon (check null type),
-			   gpointer user_data (check null))
+    icon_activate_about_h (MNMailIcon *icon, gpointer user_data)
   {
     Self *self = user_data;
-    self_display_about_dialog(self);
+    self_display_about_dialog(self, NULL);
   }
   
   private void
-    icon_activate_remove_h (MN:Mail:Icon *icon (check null type),
-			    gpointer user_data (check null))
+    icon_activate_remove_h (MNMailIcon *icon, gpointer user_data)
   {
     Self *self = user_data;
     g_object_unref(self);
   }
 
   private void
-    icon_destroy_h (Gtk:Object *object (check null type),
-		    gpointer user_data (check null))
+    icon_destroy_h (GtkObject *object, gpointer user_data)
   {
     Self *self = user_data;
 
@@ -278,17 +296,17 @@ class MN:Shell from G:Object
   private void
     update_icon (self)
   {
-    GSList *l;
+    GList *l;
     gboolean has_new = FALSE;
     gboolean blink = FALSE;
 
-    MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+    MN_LIST_FOREACH(l, self->mailboxes->list)
       {
 	MNMailbox *mailbox = l->data;
 
-	if (mn_mailbox_get_messages(mailbox))
+	if (mailbox->messages)
 	  has_new = TRUE;
-	if (mn_mailbox_get_error(mailbox) || MN_IS_UNSUPPORTED_MAILBOX(mailbox))
+	if (mailbox->error)
 	  blink = TRUE;
       }
 
@@ -312,30 +330,25 @@ class MN:Shell from G:Object
     update_tooltip (self)
   {
     GtkWidget *vbox;
-    GSList *mailboxes;
 
     vbox = gtk_vbox_new(FALSE, 18);
 
-    mailboxes = mn_mailboxes_get(self->mailboxes);
-    if (mailboxes)
+    if (self->mailboxes->list)
       {
-	GSList *l;
+	GList *l;
+	GSList *sl;
 	GSList *new_mailboxes = NULL;
 	GSList *error_mailboxes = NULL;
-	GSList *unsupported_mailboxes = NULL;
 
-	MN_LIST_FOREACH(l, mailboxes)
+	MN_LIST_FOREACH(l, self->mailboxes->list)
           {
 	    MNMailbox *mailbox = l->data;
 	    
-	    if (mn_mailbox_get_messages(mailbox))
+	    if (mailbox->messages)
 	      new_mailboxes = g_slist_append(new_mailboxes, mailbox);
 
-	    if (mn_mailbox_get_error(mailbox))
+	    if (mailbox->error)
 	      error_mailboxes = g_slist_append(error_mailboxes, mailbox);
-
-	    if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
-	      unsupported_mailboxes = g_slist_append(unsupported_mailboxes, mailbox);
 	  }
 
 	if (new_mailboxes)
@@ -343,16 +356,16 @@ class MN:Shell from G:Object
 	    GString *string = g_string_new(NULL);
 
 	    new_mailboxes = g_slist_sort(new_mailboxes, self_new_mailboxes_compare_func);
-	    MN_LIST_FOREACH(l, new_mailboxes)
+	    MN_LIST_FOREACH(sl, new_mailboxes)
 	      {
-		MNMailbox *mailbox = l->data;
+		MNMailbox *mailbox = sl->data;
 		int n_messages;
 
 		if (*string->str)
 		  g_string_append_c(string, '\n');
-		g_string_append(string, mn_mailbox_get_name(mailbox));
+		g_string_append(string, mailbox->runtime_name);
 		
-		n_messages = g_slist_length(mn_mailbox_get_messages(mailbox));
+		n_messages = g_slist_length(mailbox->messages);
 		if (n_messages > 0)
 		  g_string_append_printf(string, " (%i)", n_messages);
 	      }
@@ -366,43 +379,20 @@ class MN:Shell from G:Object
 	  {
 	    GString *string = g_string_new(NULL);
 
-	    error_mailboxes = g_slist_sort(error_mailboxes, self_mailboxes_compare_by_name_func);
-	    MN_LIST_FOREACH(l, error_mailboxes)
+	    error_mailboxes = g_slist_sort(error_mailboxes, mn_mailboxes_compare_by_name_func);
+	    MN_LIST_FOREACH(sl, error_mailboxes)
 	      {
-		MNMailbox *mailbox = l->data;
+		MNMailbox *mailbox = sl->data;
 
 		if (*string->str)
 		  g_string_append_c(string, '\n');
-		g_string_append_printf(string, "%s: %s",
-				       mn_mailbox_get_name(mailbox),
-				       mn_mailbox_get_error(mailbox));
+		g_string_append_printf(string, "%s: %s", mailbox->runtime_name, mailbox->error);
 	      }
 	    g_slist_free(error_mailboxes);
 
 	    self_tooltip_text_section_new(GTK_VBOX(vbox), _("Errors"), string->str);
 	    g_string_free(string, TRUE);
 	  }
-	
-	if (unsupported_mailboxes)
-	  {
-	    GString *string = g_string_new(NULL);
-
-	    unsupported_mailboxes = g_slist_sort(unsupported_mailboxes, self_mailboxes_compare_by_name_func);
-	    MN_LIST_FOREACH(l, unsupported_mailboxes)
-	      {
-		MNMailbox *mailbox = l->data;
-
-		if (*string->str)
-		  g_string_append_c(string, '\n');
-		g_string_append_printf(string, "%s: %s",
-				       mn_mailbox_get_name(mailbox),
-				       mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
-	      }
-	    g_slist_free(unsupported_mailboxes);
-	    
-	    self_tooltip_text_section_new(GTK_VBOX(vbox), _("Unsupported Mailboxes"), string->str);
-	    g_string_free(string, TRUE);
-	  }
       }
 
     if (eel_gconf_get_boolean(MN_CONF_SUMMARY_TOOLTIP))
@@ -442,10 +432,10 @@ class MN:Shell from G:Object
     cmp = self_get_latest_sent_time(mailbox_b) - self_get_latest_sent_time(mailbox_a);
     /* else sort by number of messages (descending order) */
     if (cmp == 0)
-      cmp = g_slist_length(mn_mailbox_get_messages(mailbox_b)) - g_slist_length(mn_mailbox_get_messages(mailbox_a));
+      cmp = g_slist_length(mailbox_b->messages) - g_slist_length(mailbox_a->messages);
     /* else sort by name (ascending order) */
     if (cmp == 0)
-      cmp = self_mailboxes_compare_by_name_func(a, b);
+      cmp = mn_mailboxes_compare_by_name_func(a, b);
 
     return cmp;
   }
@@ -456,7 +446,7 @@ class MN:Shell from G:Object
     GSList *l;
     time_t latest = 0;
 
-    MN_LIST_FOREACH(l, mn_mailbox_get_messages(mailbox))
+    MN_LIST_FOREACH(l, mailbox->messages)
       {
 	MNMessage *message = l->data;
 
@@ -467,16 +457,6 @@ class MN:Shell from G:Object
     return latest;
   }
   
-  private int
-    mailboxes_compare_by_name_func (gconstpointer a, gconstpointer b)
-  {
-    MNMailbox *mailbox_a = (MNMailbox *) a;
-    MNMailbox *mailbox_b = (MNMailbox *) b;
-
-    return mn_utf8_strcasecoll(mn_mailbox_get_name(mailbox_a),
-			       mn_mailbox_get_name(mailbox_b));
-  }
-  
   private GtkWidget *
     tooltip_section_new (Gtk:VBox *vbox (check null type),
 			 const char *title (check null))
@@ -524,6 +504,79 @@ class MN:Shell from G:Object
     gtk_container_add(GTK_CONTAINER(alignment), label);
   }
   
+  private void
+    update_popup (self, gboolean has_new)
+  {
+    if (! selfp->main_window
+	&& (! selfp->properties_dialog || ! mn_properties_dialog_test_popup_displayed(MN_PROPERTIES_DIALOG(selfp->properties_dialog)))
+	&& (selfp->popup || has_new))
+      {
+	GSList *l;
+
+	mn_g_object_slist_free(selfp->popup_messages);
+	selfp->popup_messages = mn_mailboxes_get_messages(self->mailboxes);
+
+      loop1:
+	MN_LIST_FOREACH(l, selfp->popup_previous_messages)
+	  {
+	    MNMessage *message = l->data;
+	    
+	    if (! mn_message_slist_find_by_id(selfp->popup_messages, message))
+	      {
+		selfp->popup_previous_messages = mn_g_object_slist_delete_link(selfp->popup_previous_messages, l);
+		goto loop1;
+	      }
+	  }
+
+	if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
+	  {
+	  loop2:
+	    MN_LIST_FOREACH(l, selfp->popup_messages)
+	      {
+		MNMessage *message = l->data;
+		
+		if (mn_message_slist_find_by_id(selfp->popup_previous_messages, message))
+		  {
+		    selfp->popup_messages = mn_g_object_slist_delete_link(selfp->popup_messages, l);
+		    goto loop2;
+		  }
+	      }
+	  }
+
+	if (selfp->popup_messages)
+	  {
+	    if (! selfp->popup)
+	      {
+		selfp->popup = mn_mail_summary_popup_new();
+
+		eel_add_weak_pointer(&selfp->popup);
+		g_object_weak_ref(G_OBJECT(selfp->popup), (GWeakNotify) self_popup_weak_notify_cb, self);
+	      }
+
+	    mn_mail_summary_popup_set_messages(MN_MAIL_SUMMARY_POPUP(selfp->popup), selfp->popup_messages);
+	    gtk_widget_show(selfp->popup);
+
+	    /* we only reset the timeout if there is new mail */
+
+	    if (has_new)
+	      mn_mail_summary_popup_reset_timeout(MN_MAIL_SUMMARY_POPUP(selfp->popup));
+
+	    return;		/* something has been shown */
+	  }
+      }
+
+    /* nothing has been shown, destroy the popup if it exists */
+    if (selfp->popup)
+      gtk_widget_destroy(selfp->popup);
+  }
+
+  private void
+    popup_weak_notify_cb (self, GObject *former_object)
+  {
+    selfp->popup_previous_messages = g_slist_concat(selfp->popup_previous_messages, selfp->popup_messages);
+    selfp->popup_messages = NULL;
+  }
+  
   public MNShell *
     new (void)
   {
@@ -531,82 +584,63 @@ class MN:Shell from G:Object
   }
 
   public void
-    display_about_dialog (self)
+    display_main_window (self)
   {
-    if (selfp->about)
-      {
-	gtk_window_present(GTK_WINDOW(selfp->about));
-	return;
-      }
-    
-    selfp->about = mn_about_dialog_new();
-    eel_add_weak_pointer(&selfp->about);
-    
-    mn_main_window_add_transient(GTK_WINDOW(selfp->about));
-    gtk_widget_show(GTK_WIDGET(selfp->about));
+    self_display_window(self, MN_TYPE_MAIN_WINDOW, &selfp->main_window, NULL);
+
+    /* we don't need the mail summary popup anymore */
+    self_close_mail_summary_popup(self);
   }
 
   public void
-    display_welcome_dialog (self)
-  {
-    GtkWidget *dialog;
-
-    mn_create_interface(MN_INTERFACE_FILE("welcome.glade"), "dialog", &dialog, NULL);
-    gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
-
-    g_signal_connect(dialog, "response", G_CALLBACK(self_welcome_response_h), NULL);
-    gtk_widget_show(dialog);
-  }
-  
-  private void
-    welcome_response_h (Gtk:Dialog *dialog (check null type),
-			int response,
-			gpointer user_data)
+    display_properties_dialog (self, GtkWindow *parent)
   {
-    gtk_widget_destroy(GTK_WIDGET(dialog));
-    if (response == GTK_RESPONSE_OK)
-      mn_properties_dialog_display();
+    self_display_window(self, MN_TYPE_PROPERTIES_DIALOG, &selfp->properties_dialog, parent);
   }
   
   public void
-    report (self, char **report (check null))
+    display_about_dialog (self, GtkWindow *parent)
   {
-    GString *string;
-    GSList *l;
+    self_display_window(self, MN_TYPE_ABOUT_DIALOG, &selfp->about_dialog, parent);
+  }
 
-    string = g_string_new(NULL);
-    MN_LIST_FOREACH(l, mn_mailboxes_get(self->mailboxes))
+  private void
+    display_window (self,
+		    GType type (check != 0),
+		    GtkWidget **ptr (check null),
+		    GtkWindow *parent)
+  {
+    if (*ptr)
       {
-	MNMailbox *mailbox = l->data;
-	const char *error;
-
-	error = mn_mailbox_get_error(mailbox);
+	gtk_window_present(GTK_WINDOW(*ptr));
+	return;
+      }
 
-	g_string_append_printf(string, "%s\n", mailbox->uri->text);
+    *ptr = g_object_new(type, NULL);
+    eel_add_weak_pointer(ptr);
 
-	if (mn_mailbox_get_messages(mailbox))
-	  g_string_append(string, " has-new\n");
-	if (error)
-	  g_string_append_printf(string, " error %s\n", error);
-	if (MN_IS_UNSUPPORTED_MAILBOX(mailbox))
-	  g_string_append_printf(string, " unsupported %s\n", mn_unsupported_mailbox_get_reason(MN_UNSUPPORTED_MAILBOX(mailbox)));
-      }
+    if (parent)
+      gtk_window_set_transient_for(GTK_WINDOW(*ptr), parent);
 
-    *report = string->str;
-    g_string_free(string, FALSE);
+    gtk_widget_show(*ptr);
   }
 
   public void
+    close_mail_summary_popup (self)
+  {
+    if (selfp->popup)
+      gtk_widget_destroy(selfp->popup);
+  }
+  
+  public void
     add_mailbox_properties_dialog (self, MN:Mailbox:Properties:Dialog *dialog (check null type))
   {
-    g_return_if_fail(mn_mailbox_properties_dialog_get_uri(dialog) != NULL);
-
     selfp->mailbox_properties_dialogs = g_slist_append(selfp->mailbox_properties_dialogs, dialog);
     g_object_weak_ref(G_OBJECT(dialog), self_mailbox_properties_dialog_weak_notify_cb, self);
   }
 
   private void
-    mailbox_properties_dialog_weak_notify_cb (gpointer data (check null),
+    mailbox_properties_dialog_weak_notify_cb (gpointer data,
 					      GObject *former_object)
   {
     Self *self = data;
@@ -615,17 +649,21 @@ class MN:Shell from G:Object
   }
 
   public MNMailboxPropertiesDialog *
-    get_mailbox_properties_dialog (self, MN:URI *uri (check null type))
+    get_mailbox_properties_dialog (self, MN:Mailbox *mailbox (check null type))
   {
     GSList *l;
 
     MN_LIST_FOREACH(l, selfp->mailbox_properties_dialogs)
       {
 	MNMailboxPropertiesDialog *dialog = l->data;
-	MNURI *this_uri;
+	MNMailbox *this_mailbox;
+	gboolean found;
+
+	this_mailbox = mn_mailbox_properties_dialog_get_mailbox(dialog);
+	found = this_mailbox == mailbox;
+	g_object_unref(this_mailbox);
 
-	this_uri = mn_mailbox_properties_dialog_get_uri(dialog);
-	if (! strcmp(this_uri->text, uri->text))
+	if (found)
 	  return dialog;
       }
 
diff --git a/src/mn-shell.h b/src/mn-shell.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
@@ -59,14 +59,16 @@ struct _MNShellClass {
  */
 GType	mn_shell_get_type	(void);
 MNShell * 	mn_shell_new	(void);
-void 	mn_shell_display_about_dialog	(MNShell * self);
-void 	mn_shell_display_welcome_dialog	(MNShell * self);
-void 	mn_shell_report	(MNShell * self,
-					char ** report);
+void 	mn_shell_display_main_window	(MNShell * self);
+void 	mn_shell_display_properties_dialog	(MNShell * self,
+					GtkWindow * parent);
+void 	mn_shell_display_about_dialog	(MNShell * self,
+					GtkWindow * parent);
+void 	mn_shell_close_mail_summary_popup	(MNShell * self);
 void 	mn_shell_add_mailbox_properties_dialog	(MNShell * self,
 					MNMailboxPropertiesDialog * dialog);
 MNMailboxPropertiesDialog * 	mn_shell_get_mailbox_properties_dialog	(MNShell * self,
-					MNURI * uri);
+					MNMailbox * mailbox);
 
 
   extern MNShell *mn_shell;
diff --git a/src/mn-soup.c b/src/mn-soup.c
@@ -1,150 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <eel/eel.h>
-#include <libsoup/soup.h>
-
-/*** cpp *********************************************************************/
-
-#define CONF_HTTP_PROXY_NAMESPACE		"/system/http_proxy"
-#define CONF_HTTP_PROXY_USE_HTTP_PROXY		CONF_HTTP_PROXY_NAMESPACE "/use_http_proxy"
-#define CONF_HTTP_PROXY_HOST			CONF_HTTP_PROXY_NAMESPACE "/host"
-#define CONF_HTTP_PROXY_PORT			CONF_HTTP_PROXY_NAMESPACE "/port"
-#define CONF_HTTP_PROXY_USE_AUTHENTICATION	CONF_HTTP_PROXY_NAMESPACE "/use_authentication"
-#define CONF_HTTP_PROXY_AUTHENTICATION_USER	CONF_HTTP_PROXY_NAMESPACE "/authentication_user"
-#define CONF_HTTP_PROXY_AUTHENTICATION_PASSWORD	CONF_HTTP_PROXY_NAMESPACE "/authentication_password"
-#define CONF_PROXY_NAMESPACE			"/system/proxy"
-#define CONF_PROXY_MODE				CONF_PROXY_NAMESPACE "/mode"
-#define CONF_PROXY_SOCKS_HOST			CONF_PROXY_NAMESPACE "/socks_host"
-#define CONF_PROXY_SOCKS_PORT			CONF_PROXY_NAMESPACE "/socks_port"
-
-/*** functions ***************************************************************/
-
-static char *mn_soup_build_proxy_uri (void);
-
-/*** implementation **********************************************************/
-
-static char *
-mn_soup_build_proxy_uri (void)
-{
-  char *uri = NULL;
-  char *mode;
-
-  mode = eel_gconf_get_string(CONF_PROXY_MODE);
-  if (mode)
-    {
-      if (! strcmp(mode, "manual"))
-	{
-	  char *socks_host;
-
-	  socks_host = eel_gconf_get_string(CONF_PROXY_SOCKS_HOST);
-	  if (socks_host)
-	    {
-	      if (*socks_host)
-		{
-		  int socks_port;
-
-		  socks_port = eel_gconf_get_integer(CONF_PROXY_SOCKS_PORT);
-		  if (socks_port <= 0 || socks_port > 65535)
-		    socks_port = 1080;
-
-		  /* we assume it's a Socks 5 proxy, since it is not specified */
-		  uri = g_strdup_printf("socks5://%s:%i", socks_host, socks_port);
-		}
-
-	      g_free(socks_host);
-	    }
-	}
-      g_free(mode);
-    }
-  
-  if (! uri)
-    {
-      if (eel_gconf_get_boolean(CONF_HTTP_PROXY_USE_HTTP_PROXY))
-	{
-	  char *host;
-
-	  /* FIXME: also honour /system/http_proxy/ignore_hosts */
-
-	  host = eel_gconf_get_string(CONF_HTTP_PROXY_HOST);
-	  if (host)
-	    {
-	      if (*host)
-		{
-		  GString *string;
-		  int port;
-	      
-		  string = g_string_new("http://");
-		  
-		  port = eel_gconf_get_integer(CONF_HTTP_PROXY_PORT);
-		  if (port <= 0 || port > 65535)
-		    port = 8080; /* default as recommended by http-method.c of GnomeVFS */
-		  
-		  if (eel_gconf_get_boolean(CONF_HTTP_PROXY_USE_AUTHENTICATION))
-		    {
-		      char *authentication_user;
-		      char *authentication_password;
-		      
-		      authentication_user = eel_gconf_get_string(CONF_HTTP_PROXY_AUTHENTICATION_USER);
-		      authentication_password = eel_gconf_get_string(CONF_HTTP_PROXY_AUTHENTICATION_PASSWORD);
-		      
-		      if (authentication_user && authentication_password
-			  && *authentication_user && *authentication_password)
-			g_string_append_printf(string, "%s:%s@", authentication_user, authentication_password);
-		      
-		      g_free(authentication_user);
-		      g_free(authentication_password);
-		    }
-	      
-		  g_string_append_printf(string, "%s:%i", host, port);
-		  uri = g_string_free(string, FALSE);
-		}
-
-	      g_free(host);
-	    }
-	}
-    }
-
-  return uri;
-}
-
-SoupSession *
-mn_soup_session_sync_new (void)
-{
-  char *proxy_text_uri;
-  SoupUri *proxy_uri = NULL;
-  SoupSession *session;
-
-  proxy_text_uri = mn_soup_build_proxy_uri();
-  if (proxy_text_uri)
-    {
-      proxy_uri = soup_uri_new(proxy_text_uri);
-      if (! proxy_uri)
-	g_warning(_("unable to parse proxy URI \"%s\""), proxy_text_uri);
-      g_free(proxy_text_uri);
-    }
-
-  session = soup_session_sync_new_with_options(SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
-
-  if (proxy_uri)
-    soup_uri_free(proxy_uri);
-
-  return session;
-}
diff --git a/src/mn-soup.h b/src/mn-soup.h
@@ -1,26 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_SOUP_H
-#define _MN_SOUP_H
-
-#include <libsoup/soup.h>
-
-SoupSession *mn_soup_session_sync_new (void);
-
-#endif /* _MN_SOUP_H */
diff --git a/src/mn-ssl.c b/src/mn-ssl.c
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -25,46 +25,43 @@
 
 /*** variables ***************************************************************/
 
-static gboolean initialized = FALSE;
-G_LOCK_DEFINE_STATIC(initialized);
+static gboolean attempted = FALSE;
+static SSL_CTX *ctx = NULL;
+static char *init_error = NULL;
 
-static SSL_CTX *global_ctx;
-static char *init_error;
+G_LOCK_DEFINE_STATIC(init);
 
 /*** implementation **********************************************************/
 
 SSL_CTX *
 mn_ssl_init (GError **err)
 {
-  SSL_CTX *ctx;
-
   /*
    * SSL_CTX_new() will fail the second time it is called, so we just
    * keep the same context for the whole application lifetime.
    */
 
-  G_LOCK(initialized);
-  if (! initialized)
+  G_LOCK(init);
+  if (! attempted)
     {
       SSL_library_init();
       SSL_load_error_strings();
 
-      global_ctx = SSL_CTX_new(SSLv23_client_method());
-      if (global_ctx)
-	SSL_CTX_set_mode(global_ctx, SSL_MODE_AUTO_RETRY);
+      ctx = SSL_CTX_new(SSLv23_client_method());
+      if (ctx)
+	SSL_CTX_set_mode(ctx, SSL_MODE_AUTO_RETRY);
       else
 	init_error = g_strdup(mn_ssl_get_error());
 
-      initialized = TRUE;
+      attempted = TRUE;
     }
 
-  ctx = global_ctx;
   if (! ctx)
     {
-      g_return_val_if_fail(init_error != NULL, NULL);
+      g_assert(init_error != NULL);
       g_set_error(err, 0, 0, "%s", init_error);
     }
-  G_UNLOCK(initialized);
+  G_UNLOCK(init);
 
   return ctx;
 }
diff --git a/src/mn-stock.c b/src/mn-stock.c
@@ -26,7 +26,8 @@
 
 static const GtkStockItem items[] = {
   { MN_STOCK_SELECT_ALL, N_("Select _All"), 0, 0, NULL },
-  { MN_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), 0, 0, NULL }
+  { MN_STOCK_LEAVE_FULLSCREEN, N_("Leave Fullscreen"), 0, 0, NULL },
+  { MN_STOCK_CONNECT, N_("Co_nnect"), 0, 0, NULL }
 };
 
 /*** implementation **********************************************************/
@@ -44,16 +45,24 @@ mn_stock_init (void)
     { MN_STOCK_MAIL,			NULL, "stock_mail" },
     { MN_STOCK_LOCAL,			NULL, "stock_folder" },
     { MN_STOCK_REMOTE,			NULL, "stock_internet" },
-    { MN_STOCK_UNSUPPORTED,		MN_IMAGE_FILE(UIDIR, "unsupported.png") },
+    { MN_STOCK_POLLED,			NULL, "stock_timer" },
+    { MN_STOCK_UNKNOWN,			NULL, "stock_unknown" },
+    { MN_STOCK_ERROR,			NULL, NULL, GTK_STOCK_DIALOG_ERROR },
 #ifdef WITH_GMAIL
     { MN_STOCK_GMAIL,			MN_IMAGE_FILE(UIDIR, "gmail.png") },
 #endif
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
     { MN_STOCK_SYSTEM_MAILBOX,		NULL, "gnome-system" },
+#endif
+#ifdef WITH_EVOLUTION
+    { MN_STOCK_EVOLUTION_MAILBOX,	NULL, "evolution" },
+#endif
     { MN_STOCK_SELECT_ALL,		NULL, "stock_select-all" },
     { MN_STOCK_MAIL_SUMMARY,		MN_IMAGE_FILE(GNOMEPIXMAPSDIR, "mail-notification.png") },
-    { MN_STOCK_MAIL_READER,		MN_IMAGE_FILE(GNOMEPIXMAPSDIR, "mail-notification.png") },
+    { MN_STOCK_MAIL_READER,		NULL, "stock_mail-handling" },
     { MN_STOCK_MAIN_WINDOW,		MN_IMAGE_FILE(UIDIR, "main-window.png") },
-    { MN_STOCK_LEAVE_FULLSCREEN,	NULL, NULL, GTK_STOCK_QUIT }
+    { MN_STOCK_LEAVE_FULLSCREEN,	NULL, "stock_leave-fullscreen" },
+    { MN_STOCK_CONNECT,			NULL, NULL, GTK_STOCK_CONNECT }
   };
   GtkIconFactory *factory;
   GtkIconTheme *icon_theme;
@@ -96,7 +105,7 @@ mn_stock_init (void)
 	  gtk_icon_set_ref(icon_set);
 	}
       else
-	g_return_if_reached();
+	g_assert_not_reached();
 
       gtk_icon_factory_add(factory, icons[i].stock_id, icon_set);
       gtk_icon_set_unref(icon_set);
diff --git a/src/mn-stock.h b/src/mn-stock.h
@@ -24,16 +24,24 @@
 #define MN_STOCK_MAIL			"mn-mail"
 #define MN_STOCK_LOCAL			"mn-local"
 #define MN_STOCK_REMOTE			"mn-remote"
-#define MN_STOCK_UNSUPPORTED		"mn-unsupported"
+#define MN_STOCK_POLLED			"mn-polled"
+#define MN_STOCK_UNKNOWN		"mn-unknown"
+#define MN_STOCK_ERROR			"mn-error"
 #ifdef WITH_GMAIL
 #define MN_STOCK_GMAIL			"mn-gmail"
 #endif
+#if defined(WITH_MBOX) || defined(WITH_MH) || defined(WITH_MAILDIR) || defined(WITH_SYLPHEED)
 #define MN_STOCK_SYSTEM_MAILBOX		"mn-system-mailbox"
+#endif
+#ifdef WITH_EVOLUTION
+#define MN_STOCK_EVOLUTION_MAILBOX	"mn-evolution-mailbox"
+#endif
 #define MN_STOCK_SELECT_ALL		"mn-select-all"
 #define MN_STOCK_MAIL_SUMMARY		"mn-mail-summary"
 #define MN_STOCK_MAIL_READER		"mn-mail-reader"
 #define MN_STOCK_MAIN_WINDOW		"mn-main-window"
 #define MN_STOCK_LEAVE_FULLSCREEN	"mn-leave-fullscreen"
+#define MN_STOCK_CONNECT		"mn-connect"
 
 void mn_stock_init (void);
 
diff --git a/src/mn-summary-popup.c b/src/mn-summary-popup.c
@@ -1,557 +0,0 @@
-/* 
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <eel/eel.h>
-#include "mn-util.h"
-#include "mn-shell.h"
-#include "mn-conf.h"
-#include "mn-stock.h"
-#include "mn-main-window.h"
-#include "mn-summary-popup.h"
-#include "mn-message-view.h"
-
-/*** types *******************************************************************/
-
-typedef struct
-{
-  gboolean	enabled;
-  GtkWidget	*popup;
-  GtkWidget	*image;
-  GtkWidget	*title;
-  GtkWidget	*message_view;
-  unsigned int	timeout_id;
-
-  GSList	*displayed_messages;
-  GSList	*previous_messages;
-
-  MNPosition	position;
-  int		horizontal_offset;
-  int		vertical_offset;
-  GdkGravity	gravity;
-} SummaryPopup;
-
-/*** variables ***************************************************************/
-
-static SummaryPopup self = {
-  FALSE,			/* enabled */
-  NULL,				/* popup */
-  NULL,				/* image */
-  NULL,				/* title */
-  NULL,				/* message_view */
-  0,				/* timeout_id */
-
-  NULL,				/* displayed_messages */
-  NULL,				/* previous_messages */
-
-  -1,				/* position */
-  0,				/* horizontal_offset */
-  0,				/* vertical_offset */
-  0				/* gravity */
-};
-  
-/*** functions ***************************************************************/
-    
-static void mn_summary_popup_notify_enable_cb (GConfClient *client,
-					       unsigned int cnxn_id,
-					       GConfEntry *entry,
-					       gpointer user_data);
-static void mn_summary_popup_notify_autoclose_cb (GConfClient *client,
-						  unsigned int cnxn_id,
-						  GConfEntry *entry,
-						  gpointer user_data);
-static void mn_summary_popup_notify_delay_cb (GConfClient *client,
-					      unsigned int cnxn_id,
-					      GConfEntry *entry,
-					      gpointer user_data);
-static void mn_summary_popup_notify_geometry_cb (GConfClient *client,
-						 unsigned int cnxn_id,
-						 GConfEntry *entry,
-						 gpointer user_data);
-static void mn_summary_popup_notify_fonts_aspect_source_cb (GConfClient *client,
-							    unsigned int cnxn_id,
-							    GConfEntry *entry,
-							    gpointer user_data);
-static void mn_summary_popup_notify_fonts_title_font_cb (GConfClient *client,
-							 unsigned int cnxn_id,
-							 GConfEntry *entry,
-							 gpointer user_data);
-static void mn_summary_popup_notify_fonts_contents_font_cb (GConfClient *client,
-							    unsigned int cnxn_id,
-							    GConfEntry *entry,
-							    gpointer user_data);
-
-static void mn_summary_popup_enable (void);
-static void mn_summary_popup_disable (void);
-
-static void mn_summary_popup_messages_changed_h (MNMailboxes *mailboxes,
-						 gboolean has_new,
-						 gpointer user_data);
-
-static void mn_summary_popup_update (gboolean has_new);
-static void mn_summary_popup_weak_notify_cb (gpointer data,
-					     GObject *former_object);
-
-static void mn_summary_popup_set_geometry (void);
-static void mn_summary_popup_set_title_font (void);
-static void mn_summary_popup_set_contents_font (void);
-
-static void mn_summary_popup_install_timeout (void);
-
-static gboolean mn_summary_popup_timeout_cb (gpointer data);
-
-/*** implementation **********************************************************/
-
-void
-mn_summary_popup_init (void)
-{
-  g_return_if_fail(mn_shell != NULL);
-
-  if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
-    mn_summary_popup_enable();
-
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE, mn_summary_popup_notify_enable_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE, mn_summary_popup_notify_autoclose_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_NAMESPACE, mn_summary_popup_notify_delay_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_POSITION, mn_summary_popup_notify_geometry_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_OFFSET_NAMESPACE, mn_summary_popup_notify_geometry_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE, mn_summary_popup_notify_fonts_aspect_source_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT, mn_summary_popup_notify_fonts_title_font_cb, NULL);
-  eel_gconf_notification_add(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT, mn_summary_popup_notify_fonts_contents_font_cb, NULL);
-}
-
-static void
-mn_summary_popup_notify_enable_cb (GConfClient *client,
-				   unsigned int cnxn_id,
-				   GConfEntry *entry,
-				   gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ENABLE))
-    mn_summary_popup_enable();
-  else
-    mn_summary_popup_disable();
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_autoclose_cb (GConfClient *client,
-				     unsigned int cnxn_id,
-				     GConfEntry *entry,
-				     gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  if (self.enabled)
-    {
-      if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
-	{
-	  if (self.popup && ! self.timeout_id)
-	    mn_summary_popup_install_timeout();
-	}
-      else
-	mn_source_remove(&self.timeout_id);
-    }
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_delay_cb (GConfClient *client,
-				  unsigned int cnxn_id,
-				  GConfEntry *entry,
-				  gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  if (self.enabled && self.popup && eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
-    {
-      mn_source_remove(&self.timeout_id);
-      mn_summary_popup_install_timeout();
-    }
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_geometry_cb (GConfClient *client,
-				     unsigned int cnxn_id,
-				     GConfEntry *entry,
-				     gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  self.position = -1;		/* invalidate the position */
-
-  if (self.enabled && self.popup)
-    mn_summary_popup_set_geometry();
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_fonts_aspect_source_cb (GConfClient *client,
-						unsigned int cnxn_id,
-						GConfEntry *entry,
-						gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  if (self.enabled && self.popup)
-    {
-      mn_summary_popup_set_title_font();
-      mn_summary_popup_set_contents_font();
-    }
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_fonts_title_font_cb (GConfClient *client,
-					     unsigned int cnxn_id,
-					     GConfEntry *entry,
-					     gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  if (self.enabled && self.popup)
-    mn_summary_popup_set_title_font();
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_notify_fonts_contents_font_cb (GConfClient *client,
-						unsigned int cnxn_id,
-						GConfEntry *entry,
-						gpointer user_data)
-{
-  GDK_THREADS_ENTER();
-
-  if (self.enabled && self.popup)
-    mn_summary_popup_set_contents_font();
-
-  GDK_THREADS_LEAVE();
-}
-
-static void
-mn_summary_popup_enable (void)
-{
-  if (! self.enabled)
-    {
-      self.enabled = TRUE;
-      g_signal_connect(mn_shell->mailboxes, "messages-changed", G_CALLBACK(mn_summary_popup_messages_changed_h), NULL);
-    }
-}
-
-static void
-mn_summary_popup_disable (void)
-{
-  if (self.enabled)
-    {
-      self.enabled = FALSE;
-      g_signal_handlers_disconnect_by_func(mn_shell->mailboxes, mn_summary_popup_messages_changed_h, NULL);
-      mn_summary_popup_destroy();
-    }
-}
-
-static void
-mn_summary_popup_messages_changed_h (MNMailboxes *mailboxes,
-				     gboolean has_new,
-				     gpointer user_data)
-{
-  mn_summary_popup_update(has_new);
-}
-
-static void
-mn_summary_popup_update (gboolean has_new)
-{
-  if (! mn_main_window_is_displayed() && (self.popup || has_new))
-    {
-      GSList *l;
-
-      mn_g_object_slist_free(self.displayed_messages);
-      self.displayed_messages = mn_mailboxes_get_messages(mn_shell->mailboxes);
-
-    loop1:
-      MN_LIST_FOREACH(l, self.previous_messages)
-        {
-	  MNMessage *message = l->data;
-
-	  if (! mn_message_slist_find_by_id(self.displayed_messages, message))
-	    {
-	      self.previous_messages = mn_g_object_slist_delete_link(self.previous_messages, l);
-	      goto loop1;
-	    }
-	}
-      
-      if (eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_ONLY_RECENT))
-	{
-	loop2:
-	  MN_LIST_FOREACH(l, self.displayed_messages)
-	    {
-	      MNMessage *message = l->data;
-	    
-	      if (mn_message_slist_find_by_id(self.previous_messages, message))
-		{
-		  self.displayed_messages = mn_g_object_slist_delete_link(self.displayed_messages, l);
-		  goto loop2;
-		}
-	    }
-	}
-
-      if (self.displayed_messages)
-	{
-	  if (! self.popup)
-	    {
-	      mn_create_interface(MN_INTERFACE_FILE("summary-popup.glade"),
-				  "mn-mail-summary-popup", &self.popup,
-				  "image", &self.image,
-				  "mn-mail-summary-popup-title", &self.title,
-				  "mn-message-view", &self.message_view,
-				  NULL);
-
-	      eel_add_weak_pointer(&self.popup);
-	      g_object_weak_ref(G_OBJECT(self.popup), mn_summary_popup_weak_notify_cb, NULL);
-
-	      /*
-	       * The popup must:
-	       *
-	       *	- be sticky
-	       *	- be kept above other windows
-	       *	- not be focusable
-	       *	- not be decorated
-	       *	- not appear in the pager
-	       *	- not appear in the taskbar
-	       *
-	       * An easy way to meet these requirements is to use a
-	       * window of type GTK_WINDOW_POPUP, but unfortunately
-	       * these are not hidden by xscreensaver
-	       * (http://bugzilla.gnome.org/show_bug.cgi?id=154529).
-	       *
-	       * We therefore use a window of type
-	       * GTK_WINDOW_TOPLEVEL, and we set the appropriate
-	       * properties in the glade file and below (but a
-	       * drawback is
-	       * http://bugzilla.gnome.org/show_bug.cgi?id=154593).
-	       */
-
-	      gtk_window_stick(GTK_WINDOW(self.popup));
-	      gtk_window_set_keep_above(GTK_WINDOW(self.popup), TRUE);
-	      gtk_window_set_accept_focus(GTK_WINDOW(self.popup), FALSE);
-	      
-	      gtk_widget_realize(self.popup);
-	      gdk_window_set_decorations(self.popup->window, GDK_DECOR_BORDER);
-	      
-	      gtk_image_set_from_stock(GTK_IMAGE(self.image), MN_STOCK_MAIL_SUMMARY, -1);
-
-	      mn_summary_popup_set_title_font();
-	    }
-	  
-	  mn_message_view_set_messages(MN_MESSAGE_VIEW(self.message_view), self.displayed_messages);
-	  mn_summary_popup_set_contents_font();
-	  mn_summary_popup_set_geometry();
-	  gtk_widget_show(self.popup);
-
-	  /* we only reset the timeout if there is new mail */
-	  
-	  if (has_new && eel_gconf_get_boolean(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE))
-	    {
-	      mn_source_remove(&self.timeout_id);
-	      mn_summary_popup_install_timeout();
-	    }
-
-	  return;		/* something has been shown */
-	}
-    }
-
-  /* nothing has been shown, destroy the popup if it exists */
-  mn_summary_popup_destroy();
-}
-
-static void
-mn_summary_popup_weak_notify_cb (gpointer data, GObject *former_object)
-{
-  mn_source_remove(&self.timeout_id);
-
-  self.previous_messages = g_slist_concat(self.previous_messages, self.displayed_messages);
-  self.displayed_messages = NULL;
-}
-
-static void
-mn_summary_popup_set_geometry (void)
-{
-  int popup_width;
-  int popup_height;
-  int screen_width;
-  int screen_height;
-  GdkGravity gravity_mapping[] = {
-    GDK_GRAVITY_NORTH_WEST,
-    GDK_GRAVITY_NORTH_EAST,
-    GDK_GRAVITY_SOUTH_WEST,
-    GDK_GRAVITY_SOUTH_EAST
-  };
-  GdkGravity gravity;
-  int x;
-  int y;
-  gboolean reshow;
-
-  g_return_if_fail(self.popup != NULL);
-
-  if (self.position == -1)
-    {
-      self.position = mn_conf_get_enum_value(MN_TYPE_POSITION, MN_CONF_MAIL_SUMMARY_POPUP_POSITION);
-      self.horizontal_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_HORIZONTAL_OFFSET);
-      self.vertical_offset = eel_gconf_get_integer(MN_CONF_MAIL_SUMMARY_POPUP_VERTICAL_OFFSET);
-    }
-
-  gtk_window_get_size(GTK_WINDOW(self.popup), &popup_width, &popup_height);
-  screen_width = gdk_screen_width();
-  screen_height = gdk_screen_height();
-
-  g_return_if_fail(self.position >= 0 && self.position < G_N_ELEMENTS(gravity_mapping));
-  gravity = gravity_mapping[self.position];
-
-  x = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_SOUTH_WEST)
-    ? self.horizontal_offset
-    : screen_width - popup_width - self.horizontal_offset;
-  y = (gravity == GDK_GRAVITY_NORTH_WEST || gravity == GDK_GRAVITY_NORTH_EAST)
-    ? self.vertical_offset
-    : screen_height - popup_height - self.vertical_offset;
-
-  /*
-   * If the gravity changes, the gtk_window_move() call will misplace
-   * the window (probably a Metacity bug).
-   *
-   * A workaround is to hide and reshow the window.
-   */
-  if (gravity != self.gravity)
-    {
-      self.gravity = gravity;
-      reshow = TRUE;
-    }
-  else
-    reshow = FALSE;
-  
-  if (reshow)
-    gtk_widget_hide(self.popup);
-
-  gtk_window_set_gravity(GTK_WINDOW(self.popup), gravity);
-  gtk_window_move(GTK_WINDOW(self.popup), x, y);
-
-  if (reshow)
-    gtk_widget_show(self.popup);
-}
-
-static void
-mn_summary_popup_set_title_font (void)
-{
-  PangoFontDescription *font_desc = NULL;
-
-  if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
-    {
-      char *str;
-
-      str = eel_gconf_get_string(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_TITLE_FONT);
-      if (str)
-	{
-	  font_desc = pango_font_description_from_string(str);
-	  g_free(str);
-	}
-    }
-
-  gtk_widget_modify_font(self.title, font_desc);
-  if (font_desc)
-    pango_font_description_free(font_desc);
-}
-
-static void
-mn_summary_popup_set_contents_font (void)
-{
-  PangoFontDescription *font_desc = NULL;
-
-  if (mn_conf_get_enum_value(MN_TYPE_ASPECT_SOURCE, MN_CONF_MAIL_SUMMARY_POPUP_FONTS_ASPECT_SOURCE) == MN_ASPECT_SOURCE_CUSTOM)
-    {
-      char *str;
-
-      str = eel_gconf_get_string(MN_CONF_MAIL_SUMMARY_POPUP_FONTS_CONTENTS_FONT);
-      if (str)
-	{
-	  font_desc = pango_font_description_from_string(str);
-	  g_free(str);
-	}
-    }
-
-  gtk_widget_modify_font(GTK_WIDGET(self.message_view), font_desc);
-  if (font_desc)
-    pango_font_description_free(font_desc);
-}
-
-void
-mn_summary_popup_destroy (void)
-{
-  if (self.popup)
-    gtk_widget_destroy(self.popup);
-}
-
-static void
-mn_summary_popup_install_timeout (void)
-{
-  g_return_if_fail(self.timeout_id == 0);
-
-  self.timeout_id = mn_timeout_add(MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_MINUTES,
-				   MN_CONF_MAIL_SUMMARY_POPUP_AUTOCLOSE_DELAY_SECONDS,
-				   mn_summary_popup_timeout_cb,
-				   NULL);
-}
-
-static gboolean
-mn_summary_popup_timeout_cb (gpointer data)
-{
-  GDK_THREADS_ENTER();
-  mn_summary_popup_destroy();
-  GDK_THREADS_LEAVE();
-  
-  return FALSE;			/* remove timeout */
-}
-
-/* libglade callbacks */
-
-gboolean
-mn_summary_popup_button_press_event_h (GtkWidget *widget,
-				       GdkEventButton *button,
-				       gpointer user_data)
-{
-  gtk_widget_destroy(self.popup);
-
-  return TRUE;			/* do not propagate event */
-}
-
-GtkWidget *
-mn_summary_popup_message_view_new_cb (void)
-{
-  GtkWidget *view;
-
-  view = mn_message_view_new(TRUE, FALSE);
-  gtk_widget_show(view);
-
-  return view;
-}
diff --git a/src/mn-summary-popup.h b/src/mn-summary-popup.h
@@ -1,25 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _MN_SUMMARY_POPUP_H
-#define _MN_SUMMARY_POPUP_H
-
-void mn_summary_popup_init (void);
-void mn_summary_popup_destroy (void);
-
-#endif /* _MN_SUMMARY_POPUP_H */
diff --git a/src/mn-sylpheed-mailbox-backend-private.h b/src/mn-sylpheed-mailbox-backend-private.h
@@ -0,0 +1,22 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_SYLPHEED_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_SYLPHEED_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-sylpheed-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNSylpheedMailboxBackendPrivate {
+#line 54 "mn-sylpheed-mailbox-backend.gob"
+	unsigned int monitor_timeout_id;
+#line 16 "mn-sylpheed-mailbox-backend-private.h"
+};
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-sylpheed-mailbox-backend.c b/src/mn-sylpheed-mailbox-backend.c
@@ -0,0 +1,467 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:56 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-sylpheed-mailbox-backend.h"
+
+#include "mn-sylpheed-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-sylpheed-mailbox-backend.gob"
+
+#include "config.h"
+#include <stdlib.h>
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+/* taken from procmsg.h in the Sylpheed sources */
+#define SYLPHEED_MSG_NEW		(1U << 0)
+#define SYLPHEED_MSG_UNREAD		(1U << 1)
+
+/* taken from defs.h in the Sylpheed sources */
+#define SYLPHEED_MARK_FILE		".sylpheed_mark"
+#define SYLPHEED_MARK_VERSION		2
+
+typedef struct
+{
+  int		num;
+  guint32	flags;
+} MarkEntry;
+
+#line 54 "mn-sylpheed-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_SYLPHEED_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_SYLPHEED_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_SYLPHEED_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_SYLPHEED_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_SYLPHEED_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_SYLPHEED_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNSylpheedMailboxBackend Self;
+typedef MNSylpheedMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void mn_sylpheed_mailbox_backend_init (MNSylpheedMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_sylpheed_mailbox_backend_class_init (MNSylpheedMailboxBackendClass * class) G_GNUC_UNUSED;
+static void ___2_mn_sylpheed_mailbox_backend_finalize (GObject * object) G_GNUC_UNUSED;
+static void ___3_mn_sylpheed_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+static gboolean mn_sylpheed_mailbox_backend_monitor_timeout_cb (gpointer data) G_GNUC_UNUSED;
+static gboolean ___5_mn_sylpheed_mailbox_backend_is (MNVFSMailboxBackend * dummy, MNVFSMailbox * mailbox) G_GNUC_UNUSED;
+static void ___6_mn_sylpheed_mailbox_backend_check (MNVFSMailboxBackend * backend, unsigned long check_id) G_GNUC_UNUSED;
+static GHashTable * mn_sylpheed_mailbox_backend_get_seen_numbers (MNSylpheedMailboxBackend * self, GError ** err) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxBackendClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_monitor_timeout_cb mn_sylpheed_mailbox_backend_monitor_timeout_cb
+#define self_get_seen_numbers mn_sylpheed_mailbox_backend_get_seen_numbers
+GType
+mn_sylpheed_mailbox_backend_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNSylpheedMailboxBackendClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_sylpheed_mailbox_backend_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNSylpheedMailboxBackend),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_sylpheed_mailbox_backend_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_VFS_MAILBOX_BACKEND, "MNSylpheedMailboxBackend", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNSylpheedMailboxBackend *)g_object_new(mn_sylpheed_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNSylpheedMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNSylpheedMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNSylpheedMailboxBackend *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNSylpheedMailboxBackend *)g_object_new_valist (mn_sylpheed_mailbox_backend_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::finalize"
+	MNSylpheedMailboxBackend *self G_GNUC_UNUSED = MN_SYLPHEED_MAILBOX_BACKEND (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 61 "mn-sylpheed-mailbox-backend.gob"
+	___2_mn_sylpheed_mailbox_backend_finalize(obj_self);
+#line 135 "mn-sylpheed-mailbox-backend.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_sylpheed_mailbox_backend_init (MNSylpheedMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_SYLPHEED_MAILBOX_BACKEND,MNSylpheedMailboxBackendPrivate);
+}
+#undef __GOB_FUNCTION__
+#line 56 "mn-sylpheed-mailbox-backend.gob"
+static void 
+mn_sylpheed_mailbox_backend_class_init (MNSylpheedMailboxBackendClass * class G_GNUC_UNUSED)
+#line 149 "mn-sylpheed-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+	MNVFSMailboxBackendClass *mn_vfs_mailbox_backend_class = (MNVFSMailboxBackendClass *)class;
+
+	g_type_class_add_private(class,sizeof(MNSylpheedMailboxBackendPrivate));
+
+	parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX_BACKEND);
+
+#line 61 "mn-sylpheed-mailbox-backend.gob"
+	g_object_class->finalize = ___finalize;
+#line 72 "mn-sylpheed-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->monitor_cb = ___3_mn_sylpheed_mailbox_backend_monitor_cb;
+#line 120 "mn-sylpheed-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->is = ___5_mn_sylpheed_mailbox_backend_is;
+#line 133 "mn-sylpheed-mailbox-backend.gob"
+	mn_vfs_mailbox_backend_class->check = ___6_mn_sylpheed_mailbox_backend_check;
+#line 167 "mn-sylpheed-mailbox-backend.c"
+ {
+#line 57 "mn-sylpheed-mailbox-backend.gob"
+
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Sylpheed";
+  
+#line 173 "mn-sylpheed-mailbox-backend.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 61 "mn-sylpheed-mailbox-backend.gob"
+static void 
+___2_mn_sylpheed_mailbox_backend_finalize (GObject * object G_GNUC_UNUSED)
+#line 183 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::finalize"
+{
+#line 63 "mn-sylpheed-mailbox-backend.gob"
+	
+    Self *self = SELF(object);
+
+    if (selfp->monitor_timeout_id)
+      g_source_remove(selfp->monitor_timeout_id);
+
+    PARENT_HANDLER(object);
+  }}
+#line 199 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 72 "mn-sylpheed-mailbox-backend.gob"
+static void 
+___3_mn_sylpheed_mailbox_backend_monitor_cb (MNVFSMailboxBackend * backend G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 206 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___info_uri,___event_type) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->monitor_cb)(___backend,___info_uri,___event_type); }
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::monitor_cb"
+{
+#line 76 "mn-sylpheed-mailbox-backend.gob"
+	
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	char *filename;
+	    
+	filename = eel_uri_get_basename(info_uri);
+	if (filename)
+	  {
+	    if (! strcmp(filename, SYLPHEED_MARK_FILE))
+	      {
+		Self *self = SELF(backend);
+		
+		/*
+		 * The mark file has been changed, deleted or created,
+		 * probably by a Sylpheed instance. To avoid races, we
+		 * will delay the check.
+		 */
+		    
+		if (selfp->monitor_timeout_id)
+		  g_source_remove(selfp->monitor_timeout_id);
+		    
+		selfp->monitor_timeout_id = g_timeout_add(2000, self_monitor_timeout_cb, self);
+	      }
+	    else if (mn_str_isnumeric(filename))
+	      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+		
+	    g_free(filename);
+	  }
+      }
+  }}
+#line 246 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 109 "mn-sylpheed-mailbox-backend.gob"
+static gboolean 
+mn_sylpheed_mailbox_backend_monitor_timeout_cb (gpointer data)
+#line 253 "mn-sylpheed-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::monitor_timeout_cb"
+{
+#line 111 "mn-sylpheed-mailbox-backend.gob"
+	
+    Self *self = data;
+
+    mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(MN_VFS_MAILBOX_BACKEND(self)->mailbox));
+    selfp->monitor_timeout_id = 0;
+
+    return FALSE;		/* remove source */
+  }}
+#line 266 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 120 "mn-sylpheed-mailbox-backend.gob"
+static gboolean 
+___5_mn_sylpheed_mailbox_backend_is (MNVFSMailboxBackend * dummy G_GNUC_UNUSED, MNVFSMailbox * mailbox)
+#line 272 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___dummy,___mailbox) \
+	((MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)? \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->is)(___dummy,___mailbox): \
+		((gboolean )0))
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::is"
+{
+#line 122 "mn-sylpheed-mailbox-backend.gob"
+	
+    gboolean is = FALSE;
+    GnomeVFSURI *markfile_uri;
+
+    markfile_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+    is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
+    gnome_vfs_uri_unref(markfile_uri);
+
+    return is;
+  }}
+#line 291 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 133 "mn-sylpheed-mailbox-backend.gob"
+static void 
+___6_mn_sylpheed_mailbox_backend_check (MNVFSMailboxBackend * backend G_GNUC_UNUSED, unsigned long check_id)
+#line 298 "mn-sylpheed-mailbox-backend.c"
+#define PARENT_HANDLER(___backend,___check_id) \
+	{ if(MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check) \
+		(* MN_VFS_MAILBOX_BACKEND_CLASS(parent_class)->check)(___backend,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::check"
+{
+#line 135 "mn-sylpheed-mailbox-backend.gob"
+	
+    GError *err = NULL;
+    GnomeVFSResult result;
+    GnomeVFSResult close_result;
+    GnomeVFSDirectoryHandle *handle;
+    GnomeVFSFileInfo *file_info;
+    GHashTable *seen_numbers;
+    GSList *messages = NULL;
+
+    mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+    seen_numbers = self_get_seen_numbers(SELF(backend), &err);
+    if (! seen_numbers)
+      {
+	GDK_THREADS_ENTER();
+	
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to read %s: %s"), SYLPHEED_MARK_FILE, err->message);
+	g_error_free(err);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	return;
+      }
+    
+    if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      goto finish;
+
+    result = gnome_vfs_directory_open_from_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+    if (result != GNOME_VFS_OK)
+      {
+	GDK_THREADS_ENTER();
+	
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	goto end;
+      }
+
+    file_info = gnome_vfs_file_info_new();
+    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+      if (mn_str_isnumeric(file_info->name))
+	{
+	  int num = atoi(file_info->name);
+		
+	  if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
+	    {
+	      GnomeVFSURI *message_uri;
+
+	      if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+		break;
+	      
+	      message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, file_info->name);
+	      messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+	      gnome_vfs_uri_unref(message_uri);
+	    }
+	}
+    gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
+
+  finish:
+    GDK_THREADS_ENTER();
+    
+    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      {
+	if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+	  {
+	    if (close_result == GNOME_VFS_OK)
+	      mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+	    else
+	      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
+	  }
+	else
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
+      }
+    
+    mn_g_object_slist_free(messages);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+  end:
+    g_hash_table_destroy(seen_numbers);
+  }}
+#line 394 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 224 "mn-sylpheed-mailbox-backend.gob"
+static GHashTable * 
+mn_sylpheed_mailbox_backend_get_seen_numbers (MNSylpheedMailboxBackend * self, GError ** err)
+#line 401 "mn-sylpheed-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox:Backend::get_seen_numbers"
+#line 224 "mn-sylpheed-mailbox-backend.gob"
+	g_return_val_if_fail (self != NULL, (GHashTable * )0);
+#line 224 "mn-sylpheed-mailbox-backend.gob"
+	g_return_val_if_fail (MN_IS_SYLPHEED_MAILBOX_BACKEND (self), (GHashTable * )0);
+#line 408 "mn-sylpheed-mailbox-backend.c"
+{
+#line 226 "mn-sylpheed-mailbox-backend.gob"
+	
+    GnomeVFSURI *markfile_uri;
+    GHashTable *seen_numbers = NULL;
+    GnomeVFSResult result;
+    int bytes_left;
+    char *buf;
+    
+    markfile_uri = gnome_vfs_uri_append_file_name(MN_VFS_MAILBOX_BACKEND(self)->mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+    result = mn_vfs_read_entire_file_uri(markfile_uri, &bytes_left, &buf);
+    gnome_vfs_uri_unref(markfile_uri);
+
+    if (result == GNOME_VFS_OK)
+      {
+	if (bytes_left >= sizeof(int))
+	  {
+	    int version = *((int *) buf);
+
+	    if (version == SYLPHEED_MARK_VERSION)
+	      {
+		MarkEntry *entry;
+
+		entry = (MarkEntry *) (buf + sizeof(int));
+		bytes_left -= sizeof(int);
+
+		seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
+		
+		while (bytes_left > 0)
+		  {
+		    if (bytes_left < sizeof(MarkEntry))
+		      {
+			g_set_error(err, 0, 0, _("unexpected end of file"));
+			g_hash_table_destroy(seen_numbers);
+			seen_numbers = NULL;
+			break;
+		      }
+
+		    if ((entry->flags & SYLPHEED_MSG_NEW) == 0 && (entry->flags & SYLPHEED_MSG_UNREAD) == 0)
+		      g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
+		    
+		    entry++;
+		    bytes_left -= sizeof(MarkEntry);
+		  }
+	      }
+	    else
+	      g_set_error(err, 0, 0, _("incompatible file version \"%i\""), version);
+	  }
+	else
+	  g_set_error(err, 0, 0, _("file version missing"));
+
+	g_free(buf);
+      }
+    else
+      g_set_error(err, 0, 0, "%s", gnome_vfs_result_to_string(result));
+      
+    return seen_numbers;
+  }}
+#line 467 "mn-sylpheed-mailbox-backend.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-sylpheed-mailbox-backend.gob b/src/mn-sylpheed-mailbox-backend.gob
@@ -0,0 +1,282 @@
+/* 
+ * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <stdlib.h>
+#include <glib/gi18n.h>
+#include <eel/eel.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-backend-private.h"
+#include "mn-vfs.h"
+#include "mn-util.h"
+#include "mn-message-mime.h"
+
+/* taken from procmsg.h in the Sylpheed sources */
+#define SYLPHEED_MSG_NEW		(1U << 0)
+#define SYLPHEED_MSG_UNREAD		(1U << 1)
+
+/* taken from defs.h in the Sylpheed sources */
+#define SYLPHEED_MARK_FILE		".sylpheed_mark"
+#define SYLPHEED_MARK_VERSION		2
+
+typedef struct
+{
+  int		num;
+  guint32	flags;
+} MarkEntry;
+%}
+
+class MN:Sylpheed:Mailbox:Backend from MN:VFS:Mailbox:Backend
+{
+  private unsigned int monitor_timeout_id;
+
+  class_init (class)
+  {
+    MN_VFS_MAILBOX_BACKEND_CLASS(class)->format = "Sylpheed";
+  }
+
+  override (G:Object) void
+    finalize (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    if (selfp->monitor_timeout_id)
+      g_source_remove(selfp->monitor_timeout_id);
+
+    PARENT_HANDLER(object);
+  }
+
+  override (MN:VFS:Mailbox:Backend) void
+    monitor_cb (MNVFSMailboxBackend *backend,
+		const char *info_uri,
+		GnomeVFSMonitorEventType event_type)
+  {
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	char *filename;
+	    
+	filename = eel_uri_get_basename(info_uri);
+	if (filename)
+	  {
+	    if (! strcmp(filename, SYLPHEED_MARK_FILE))
+	      {
+		Self *self = SELF(backend);
+		
+		/*
+		 * The mark file has been changed, deleted or created,
+		 * probably by a Sylpheed instance. To avoid races, we
+		 * will delay the check.
+		 */
+		    
+		if (selfp->monitor_timeout_id)
+		  g_source_remove(selfp->monitor_timeout_id);
+		    
+		selfp->monitor_timeout_id = g_timeout_add(2000, self_monitor_timeout_cb, self);
+	      }
+	    else if (mn_str_isnumeric(filename))
+	      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(backend->mailbox));
+		
+	    g_free(filename);
+	  }
+      }
+  }
+
+  private gboolean
+    monitor_timeout_cb (gpointer data)
+  {
+    Self *self = data;
+
+    mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(MN_VFS_MAILBOX_BACKEND(self)->mailbox));
+    selfp->monitor_timeout_id = 0;
+
+    return FALSE;		/* remove source */
+  }
+
+  override (MN:VFS:Mailbox:Backend) gboolean
+    is (MNVFSMailboxBackend *dummy, MNVFSMailbox *mailbox)
+  {
+    gboolean is = FALSE;
+    GnomeVFSURI *markfile_uri;
+
+    markfile_uri = gnome_vfs_uri_append_file_name(mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+    is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
+    gnome_vfs_uri_unref(markfile_uri);
+
+    return is;
+  }
+
+  override (MN:VFS:Mailbox:Backend) void
+    check (MNVFSMailboxBackend *backend, unsigned long check_id)
+  {
+    GError *err = NULL;
+    GnomeVFSResult result;
+    GnomeVFSResult close_result;
+    GnomeVFSDirectoryHandle *handle;
+    GnomeVFSFileInfo *file_info;
+    GHashTable *seen_numbers;
+    GSList *messages = NULL;
+
+    mn_vfs_mailbox_backend_monitor(backend, check_id, backend->mailbox->uri, GNOME_VFS_MONITOR_DIRECTORY);
+
+    seen_numbers = self_get_seen_numbers(SELF(backend), &err);
+    if (! seen_numbers)
+      {
+	GDK_THREADS_ENTER();
+	
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to read %s: %s"), SYLPHEED_MARK_FILE, err->message);
+	g_error_free(err);
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	return;
+      }
+    
+    if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      goto finish;
+
+    result = gnome_vfs_directory_open_from_uri(&handle, backend->mailbox->vfs_uri, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
+    if (result != GNOME_VFS_OK)
+      {
+	GDK_THREADS_ENTER();
+	
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	goto end;
+      }
+
+    file_info = gnome_vfs_file_info_new();
+    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
+      if (mn_str_isnumeric(file_info->name))
+	{
+	  int num = atoi(file_info->name);
+		
+	  if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
+	    {
+	      GnomeVFSURI *message_uri;
+
+	      if (mn_reentrant_mailbox_check_aborted(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+		break;
+	      
+	      message_uri = gnome_vfs_uri_append_file_name(backend->mailbox->vfs_uri, file_info->name);
+	      messages = g_slist_append(messages, mn_message_new_from_uri(MN_MAILBOX(backend->mailbox), message_uri));
+	      gnome_vfs_uri_unref(message_uri);
+	    }
+	}
+    gnome_vfs_file_info_unref(file_info);
+    close_result = gnome_vfs_directory_close(handle);
+
+  finish:
+    GDK_THREADS_ENTER();
+    
+    if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(backend->mailbox), check_id))
+      {
+	if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
+	  {
+	    if (close_result == GNOME_VFS_OK)
+	      mn_mailbox_set_messages(MN_MAILBOX(backend->mailbox), messages);
+	    else
+	      mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("unable to close folder: %s"), gnome_vfs_result_to_string(close_result));
+	  }
+	else
+	  mn_mailbox_set_error(MN_MAILBOX(backend->mailbox), _("error while reading folder: %s"), gnome_vfs_result_to_string(result));
+      }
+    
+    mn_g_object_slist_free(messages);
+
+    gdk_flush();
+    GDK_THREADS_LEAVE();
+
+  end:
+    g_hash_table_destroy(seen_numbers);
+  }
+
+  private GHashTable *
+    get_seen_numbers (self, GError **err)
+  {
+    GnomeVFSURI *markfile_uri;
+    GHashTable *seen_numbers = NULL;
+    GnomeVFSResult result;
+    int bytes_left;
+    char *buf;
+    
+    markfile_uri = gnome_vfs_uri_append_file_name(MN_VFS_MAILBOX_BACKEND(self)->mailbox->vfs_uri, SYLPHEED_MARK_FILE);
+    result = mn_vfs_read_entire_file_uri(markfile_uri, &bytes_left, &buf);
+    gnome_vfs_uri_unref(markfile_uri);
+
+    if (result == GNOME_VFS_OK)
+      {
+	if (bytes_left >= sizeof(int))
+	  {
+	    int version = *((int *) buf);
+
+	    if (version == SYLPHEED_MARK_VERSION)
+	      {
+		MarkEntry *entry;
+
+		entry = (MarkEntry *) (buf + sizeof(int));
+		bytes_left -= sizeof(int);
+
+		seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
+		
+		while (bytes_left > 0)
+		  {
+		    if (bytes_left < sizeof(MarkEntry))
+		      {
+			g_set_error(err, 0, 0, _("unexpected end of file"));
+			g_hash_table_destroy(seen_numbers);
+			seen_numbers = NULL;
+			break;
+		      }
+
+		    if ((entry->flags & SYLPHEED_MSG_NEW) == 0 && (entry->flags & SYLPHEED_MSG_UNREAD) == 0)
+		      g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
+		    
+		    entry++;
+		    bytes_left -= sizeof(MarkEntry);
+		  }
+	      }
+	    else
+	      g_set_error(err, 0, 0, _("incompatible file version \"%i\""), version);
+	  }
+	else
+	  g_set_error(err, 0, 0, _("file version missing"));
+
+	g_free(buf);
+      }
+    else
+      g_set_error(err, 0, 0, "%s", gnome_vfs_result_to_string(result));
+      
+    return seen_numbers;
+  }
+}
diff --git a/src/mn-sylpheed-mailbox-backend.h b/src/mn-sylpheed-mailbox-backend.h
@@ -0,0 +1,62 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifndef __MN_SYLPHEED_MAILBOX_BACKEND_H__
+#define __MN_SYLPHEED_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_SYLPHEED_MAILBOX_BACKEND	(mn_sylpheed_mailbox_backend_get_type())
+#define MN_SYLPHEED_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackend)
+#define MN_SYLPHEED_MAILBOX_BACKEND_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackend const)
+#define MN_SYLPHEED_MAILBOX_BACKEND_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackendClass)
+#define MN_IS_SYLPHEED_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_sylpheed_mailbox_backend_get_type ())
+
+#define MN_SYLPHEED_MAILBOX_BACKEND_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_sylpheed_mailbox_backend_get_type(), MNSylpheedMailboxBackendClass)
+
+/* Private structure type */
+typedef struct _MNSylpheedMailboxBackendPrivate MNSylpheedMailboxBackendPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_SYLPHEED_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_SYLPHEED_MAILBOX_BACKEND__
+typedef struct _MNSylpheedMailboxBackend MNSylpheedMailboxBackend;
+#endif
+struct _MNSylpheedMailboxBackend {
+	MNVFSMailboxBackend __parent__;
+	/*< private >*/
+	MNSylpheedMailboxBackendPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNSylpheedMailboxBackendClass MNSylpheedMailboxBackendClass;
+struct _MNSylpheedMailboxBackendClass {
+	MNVFSMailboxBackendClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_sylpheed_mailbox_backend_get_type	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-sylpheed-mailbox-private.h b/src/mn-sylpheed-mailbox-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_SYLPHEED_MAILBOX_PRIVATE_H__
-#define __MN_SYLPHEED_MAILBOX_PRIVATE_H__
-
-#include "mn-sylpheed-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-sylpheed-mailbox.c b/src/mn-sylpheed-mailbox.c
@@ -1,354 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:27 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-sylpheed-mailbox.h"
-
-#include "mn-sylpheed-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-sylpheed-mailbox.gob"
-
-#include "config.h"
-#include <stdlib.h>
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-/* taken from procmsg.h in the Sylpheed sources */
-#define SYLPHEED_MSG_NEW		(1U << 0)
-#define SYLPHEED_MSG_UNREAD		(1U << 1)
-
-/* taken from defs.h in the Sylpheed sources */
-#define SYLPHEED_MARK_FILE		".sylpheed_mark"
-#define SYLPHEED_MARK_VERSION		2
-
-  typedef struct
-  {
-    int		num;
-    guint32	flags;
-  } MarkEntry;
-
-#line 51 "mn-sylpheed-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_SYLPHEED_MAILBOX(x)
-#define SELF_CONST(x) MN_SYLPHEED_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_SYLPHEED_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_SYLPHEED_MAILBOX
-#define SELF_CLASS(x) MN_SYLPHEED_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_SYLPHEED_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNSylpheedMailbox Self;
-typedef MNSylpheedMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void mn_sylpheed_mailbox_init (MNSylpheedMailbox * o) G_GNUC_UNUSED;
-static void mn_sylpheed_mailbox_class_init (MNSylpheedMailboxClass * class) G_GNUC_UNUSED;
-static GObject * ___2_mn_sylpheed_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
-static gboolean ___3_mn_sylpheed_mailbox_impl_is (MNMailbox * dummy, MNURI * uri) G_GNUC_UNUSED;
-static void ___4_mn_sylpheed_mailbox_impl_check (MNMailbox * self) G_GNUC_UNUSED;
-static GHashTable * mn_sylpheed_mailbox_get_seen_numbers (MNSylpheedMailbox * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_get_seen_numbers mn_sylpheed_mailbox_get_seen_numbers
-GType
-mn_sylpheed_mailbox_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNSylpheedMailboxClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_sylpheed_mailbox_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNSylpheedMailbox),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_sylpheed_mailbox_init,
-			NULL
-		};
-
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNSylpheedMailbox", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNSylpheedMailbox *)g_object_new(mn_sylpheed_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNSylpheedMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNSylpheedMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNSylpheedMailbox *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNSylpheedMailbox *)g_object_new_valist (mn_sylpheed_mailbox_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-static void 
-mn_sylpheed_mailbox_init (MNSylpheedMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::init"
-}
-#undef __GOB_FUNCTION__
-#line 50 "mn-sylpheed-mailbox.gob"
-static void 
-mn_sylpheed_mailbox_class_init (MNSylpheedMailboxClass * class G_GNUC_UNUSED)
-#line 129 "mn-sylpheed-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::class_init"
-	GObjectClass *g_object_class = (GObjectClass *)class;
-	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
-
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-#line 55 "mn-sylpheed-mailbox.gob"
-	g_object_class->constructor = ___2_mn_sylpheed_mailbox_constructor;
-#line 79 "mn-sylpheed-mailbox.gob"
-	mn_mailbox_class->impl_is = ___3_mn_sylpheed_mailbox_impl_is;
-#line 96 "mn-sylpheed-mailbox.gob"
-	mn_mailbox_class->impl_check = ___4_mn_sylpheed_mailbox_impl_check;
-#line 143 "mn-sylpheed-mailbox.c"
- {
-#line 51 "mn-sylpheed-mailbox.gob"
-
-    MN_MAILBOX_CLASS(class)->format = "Sylpheed";
-  
-#line 149 "mn-sylpheed-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 55 "mn-sylpheed-mailbox.gob"
-static GObject * 
-___2_mn_sylpheed_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
-#line 159 "mn-sylpheed-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): \
-		((GObject * )0))
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::constructor"
-{
-#line 57 "mn-sylpheed-mailbox.gob"
-	
-    GObject *object;
-    MNMailbox *self;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-    
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       self->uri->text,
-		       GNOME_VFS_MONITOR_DIRECTORY,
-		       MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    return object;
-  }}
-#line 189 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 79 "mn-sylpheed-mailbox.gob"
-static gboolean 
-___3_mn_sylpheed_mailbox_impl_is (MNMailbox * dummy G_GNUC_UNUSED, MNURI * uri)
-#line 196 "mn-sylpheed-mailbox.c"
-#define PARENT_HANDLER(___dummy,___uri) \
-	((MN_MAILBOX_CLASS(parent_class)->impl_is)? \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_is)(___dummy,___uri): \
-		((gboolean )0))
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::impl_is"
-#line 79 "mn-sylpheed-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 79 "mn-sylpheed-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (gboolean )0);
-#line 207 "mn-sylpheed-mailbox.c"
-{
-#line 81 "mn-sylpheed-mailbox.gob"
-	
-    gboolean is = FALSE;
-
-    if (uri->vfs)
-      {
-	GnomeVFSURI *markfile_uri;
-
-	markfile_uri = gnome_vfs_uri_append_file_name(uri->vfs, SYLPHEED_MARK_FILE);
-	is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
-	gnome_vfs_uri_unref(markfile_uri);
-      }
-
-    return is;
-  }}
-#line 224 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 96 "mn-sylpheed-mailbox.gob"
-static void 
-___4_mn_sylpheed_mailbox_impl_check (MNMailbox * self G_GNUC_UNUSED)
-#line 231 "mn-sylpheed-mailbox.c"
-#define PARENT_HANDLER(___self) \
-	{ if(MN_MAILBOX_CLASS(parent_class)->impl_check) \
-		(* MN_MAILBOX_CLASS(parent_class)->impl_check)(___self); }
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::impl_check"
-#line 96 "mn-sylpheed-mailbox.gob"
-	g_return_if_fail (self != NULL);
-#line 96 "mn-sylpheed-mailbox.gob"
-	g_return_if_fail (MN_IS_MAILBOX (self));
-#line 241 "mn-sylpheed-mailbox.c"
-{
-#line 98 "mn-sylpheed-mailbox.gob"
-	
-    GnomeVFSResult result;
-    GnomeVFSResult close_result;
-    GnomeVFSDirectoryHandle *handle;
-    GnomeVFSFileInfo *file_info;
-    GHashTable *seen_numbers;
-    GSList *messages = NULL;
-
-    seen_numbers = self_get_seen_numbers(SELF(self));
-
-    result = gnome_vfs_directory_open_from_uri(&handle, self->uri->vfs, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-    if (result != GNOME_VFS_OK)
-      {
-	GDK_THREADS_ENTER();
-	
-	mn_mailbox_set_error(self, _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
-	mn_mailbox_end_check(self);
-	
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-	
-	return;
-      }
-
-    file_info = gnome_vfs_file_info_new();
-    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
-      if (mn_str_isnumeric(file_info->name))
-	{
-	  int num = atoi(file_info->name);
-		
-	  if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
-	    {
-	      GnomeVFSURI *message_uri;
-
-	      message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, file_info->name);
-	      messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
-	      gnome_vfs_uri_unref(message_uri);
-	    }
-	}
-    gnome_vfs_file_info_unref(file_info);
-    close_result = gnome_vfs_directory_close(handle);
-    
-    GDK_THREADS_ENTER();
-    
-    if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
-      {
-	if (close_result == GNOME_VFS_OK)
-	  mn_mailbox_set_messages(self, messages);
-	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);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    g_hash_table_destroy(seen_numbers);
-    mn_g_object_slist_free(messages);
-  }}
-#line 305 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
-#undef PARENT_HANDLER
-
-#line 160 "mn-sylpheed-mailbox.gob"
-static GHashTable * 
-mn_sylpheed_mailbox_get_seen_numbers (MNSylpheedMailbox * self)
-#line 312 "mn-sylpheed-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Sylpheed:Mailbox::get_seen_numbers"
-#line 160 "mn-sylpheed-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (GHashTable * )0);
-#line 160 "mn-sylpheed-mailbox.gob"
-	g_return_val_if_fail (MN_IS_SYLPHEED_MAILBOX (self), (GHashTable * )0);
-#line 319 "mn-sylpheed-mailbox.c"
-{
-#line 162 "mn-sylpheed-mailbox.gob"
-	
-    GHashTable *seen_numbers;
-    char *uri;
-    int file_size;
-    char *buf;
-    
-    seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
-
-    uri = g_build_path("/", MN_MAILBOX(self)->uri->text, SYLPHEED_MARK_FILE, NULL);
-    if (gnome_vfs_read_entire_file(uri, &file_size, &buf) == GNOME_VFS_OK)
-      {
-	if (file_size >= sizeof(int) && *((int *) buf) == SYLPHEED_MARK_VERSION)
-	  {
-	    int pos = sizeof(int);	/* start after version */
-
-	    while (pos + sizeof(MarkEntry) <= file_size)
-	      {
-		MarkEntry *entry = (MarkEntry *) (buf + pos);
-		
-		if (! (entry->flags & SYLPHEED_MSG_NEW) && ! (entry->flags & SYLPHEED_MSG_UNREAD))
-		  g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
-		
-		pos += sizeof(MarkEntry);
-	      }
-	  }
-
-	g_free(buf);
-      }
-    g_free(uri);
-    
-    return seen_numbers;
-  }}
-#line 354 "mn-sylpheed-mailbox.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-sylpheed-mailbox.gob b/src/mn-sylpheed-mailbox.gob
@@ -1,194 +0,0 @@
-/* 
- * Copyright (C) 2003-2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <stdlib.h>
-#include <glib/gi18n.h>
-#include "mn-mailbox-private.h"
-#include "mn-vfs.h"
-#include "mn-util.h"
-#include "mn-message-mime.h"
-
-/* taken from procmsg.h in the Sylpheed sources */
-#define SYLPHEED_MSG_NEW		(1U << 0)
-#define SYLPHEED_MSG_UNREAD		(1U << 1)
-
-/* taken from defs.h in the Sylpheed sources */
-#define SYLPHEED_MARK_FILE		".sylpheed_mark"
-#define SYLPHEED_MARK_VERSION		2
-
-  typedef struct
-  {
-    int		num;
-    guint32	flags;
-  } MarkEntry;
-%}
-
-class MN:Sylpheed:Mailbox from MN:Mailbox
-{
-  class_init (class) 
-  {
-    MN_MAILBOX_CLASS(class)->format = "Sylpheed";
-  }
-
-  override (G:Object) GObject *
-    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
-  {
-    GObject *object;
-    MNMailbox *self;
-
-    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
-    self = MN_MAILBOX(object);
-    
-    GDK_THREADS_ENTER();
-
-    mn_mailbox_monitor(self,
-		       self->uri->text,
-		       GNOME_VFS_MONITOR_DIRECTORY,
-		       MN_MAILBOX_MONITOR_EVENT_CHANGED
-		       | MN_MAILBOX_MONITOR_EVENT_DELETED
-		       | MN_MAILBOX_MONITOR_EVENT_CREATED);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    return object;
-  }
-  
-  override (MN:Mailbox) gboolean
-    impl_is (MNMailbox *dummy, MN:URI *uri (check null type))
-  {
-    gboolean is = FALSE;
-
-    if (uri->vfs)
-      {
-	GnomeVFSURI *markfile_uri;
-
-	markfile_uri = gnome_vfs_uri_append_file_name(uri->vfs, SYLPHEED_MARK_FILE);
-	is = mn_vfs_test(markfile_uri, G_FILE_TEST_IS_REGULAR);
-	gnome_vfs_uri_unref(markfile_uri);
-      }
-
-    return is;
-  }
-
-  override (MN:Mailbox) void
-    impl_check (MN:Mailbox *self (check null type))
-  {
-    GnomeVFSResult result;
-    GnomeVFSResult close_result;
-    GnomeVFSDirectoryHandle *handle;
-    GnomeVFSFileInfo *file_info;
-    GHashTable *seen_numbers;
-    GSList *messages = NULL;
-
-    seen_numbers = self_get_seen_numbers(SELF(self));
-
-    result = gnome_vfs_directory_open_from_uri(&handle, self->uri->vfs, GNOME_VFS_FILE_INFO_FOLLOW_LINKS);
-    if (result != GNOME_VFS_OK)
-      {
-	GDK_THREADS_ENTER();
-	
-	mn_mailbox_set_error(self, _("unable to open folder: %s"), gnome_vfs_result_to_string(result));
-	mn_mailbox_end_check(self);
-	
-	gdk_flush();
-	GDK_THREADS_LEAVE();
-	
-	return;
-      }
-
-    file_info = gnome_vfs_file_info_new();
-    while ((result = gnome_vfs_directory_read_next(handle, file_info)) == GNOME_VFS_OK)
-      if (mn_str_isnumeric(file_info->name))
-	{
-	  int num = atoi(file_info->name);
-		
-	  if (! g_hash_table_lookup(seen_numbers, GINT_TO_POINTER(num)))
-	    {
-	      GnomeVFSURI *message_uri;
-
-	      message_uri = gnome_vfs_uri_append_file_name(self->uri->vfs, file_info->name);
-	      messages = g_slist_append(messages, mn_message_new_from_uri(self->uri, message_uri));
-	      gnome_vfs_uri_unref(message_uri);
-	    }
-	}
-    gnome_vfs_file_info_unref(file_info);
-    close_result = gnome_vfs_directory_close(handle);
-    
-    GDK_THREADS_ENTER();
-    
-    if (result == GNOME_VFS_ERROR_EOF || result == GNOME_VFS_OK)
-      {
-	if (close_result == GNOME_VFS_OK)
-	  mn_mailbox_set_messages(self, messages);
-	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);
-
-    gdk_flush();
-    GDK_THREADS_LEAVE();
-
-    g_hash_table_destroy(seen_numbers);
-    mn_g_object_slist_free(messages);
-  }
-
-  private GHashTable *
-    get_seen_numbers (self)
-  {
-    GHashTable *seen_numbers;
-    char *uri;
-    int file_size;
-    char *buf;
-    
-    seen_numbers = g_hash_table_new(g_direct_hash, g_direct_equal);
-
-    uri = g_build_path("/", MN_MAILBOX(self)->uri->text, SYLPHEED_MARK_FILE, NULL);
-    if (gnome_vfs_read_entire_file(uri, &file_size, &buf) == GNOME_VFS_OK)
-      {
-	if (file_size >= sizeof(int) && *((int *) buf) == SYLPHEED_MARK_VERSION)
-	  {
-	    int pos = sizeof(int);	/* start after version */
-
-	    while (pos + sizeof(MarkEntry) <= file_size)
-	      {
-		MarkEntry *entry = (MarkEntry *) (buf + pos);
-		
-		if (! (entry->flags & SYLPHEED_MSG_NEW) && ! (entry->flags & SYLPHEED_MSG_UNREAD))
-		  g_hash_table_insert(seen_numbers, GINT_TO_POINTER(entry->num), GINT_TO_POINTER(TRUE));
-		
-		pos += sizeof(MarkEntry);
-	      }
-	  }
-
-	g_free(buf);
-      }
-    g_free(uri);
-    
-    return seen_numbers;
-  }
-}
diff --git a/src/mn-sylpheed-mailbox.h b/src/mn-sylpheed-mailbox.h
@@ -1,57 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_SYLPHEED_MAILBOX_H__
-#define __MN_SYLPHEED_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_SYLPHEED_MAILBOX	(mn_sylpheed_mailbox_get_type())
-#define MN_SYLPHEED_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_get_type(), MNSylpheedMailbox)
-#define MN_SYLPHEED_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_sylpheed_mailbox_get_type(), MNSylpheedMailbox const)
-#define MN_SYLPHEED_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_sylpheed_mailbox_get_type(), MNSylpheedMailboxClass)
-#define MN_IS_SYLPHEED_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_sylpheed_mailbox_get_type ())
-
-#define MN_SYLPHEED_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_sylpheed_mailbox_get_type(), MNSylpheedMailboxClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_SYLPHEED_MAILBOX__
-#define __TYPEDEF_MN_SYLPHEED_MAILBOX__
-typedef struct _MNSylpheedMailbox MNSylpheedMailbox;
-#endif
-struct _MNSylpheedMailbox {
-	MNMailbox __parent__;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNSylpheedMailboxClass MNSylpheedMailboxClass;
-struct _MNSylpheedMailboxClass {
-	MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_sylpheed_mailbox_get_type	(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-system-mailbox-properties-private.h b/src/mn-system-mailbox-properties-private.h
@@ -1,24 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_SYSTEM_MAILBOX_PROPERTIES_PRIVATE_H__
-#define __MN_SYSTEM_MAILBOX_PROPERTIES_PRIVATE_H__
-
-#include "mn-system-mailbox-properties.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct _MNSystemMailboxPropertiesPrivate {
-#line 36 "mn-system-mailbox-properties.gob"
-	GtkSizeGroup * size_group;
-#line 42 "mn-system-mailbox-properties.gob"
-	const char * system_uri;
-#line 18 "mn-system-mailbox-properties-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-system-mailbox-properties.c b/src/mn-system-mailbox-properties.c
@@ -1,335 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-system-mailbox-properties.h"
-
-#include "mn-system-mailbox-properties-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-system-mailbox-properties.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include "mn-mailbox-properties.h"
-
-#line 34 "mn-system-mailbox-properties.c"
-/* self casting macros */
-#define SELF(x) MN_SYSTEM_MAILBOX_PROPERTIES(x)
-#define SELF_CONST(x) MN_SYSTEM_MAILBOX_PROPERTIES_CONST(x)
-#define IS_SELF(x) MN_IS_SYSTEM_MAILBOX_PROPERTIES(x)
-#define TYPE_SELF MN_TYPE_SYSTEM_MAILBOX_PROPERTIES
-#define SELF_CLASS(x) MN_SYSTEM_MAILBOX_PROPERTIES_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_SYSTEM_MAILBOX_PROPERTIES_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNSystemMailboxProperties Self;
-typedef MNSystemMailboxPropertiesClass SelfClass;
-
-/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_system_mailbox_properties_class_init (MNSystemMailboxPropertiesClass * c) G_GNUC_UNUSED;
-static void mn_system_mailbox_properties_init (MNSystemMailboxProperties * self) G_GNUC_UNUSED;
-static gboolean mn_system_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri) G_GNUC_UNUSED;
-static MNURI * mn_system_mailbox_properties_get_uri (MNMailboxProperties * self) G_GNUC_UNUSED;
-
-enum {
-	PROP_0,
-	PROP_LABEL,
-	PROP_SIZE_GROUP,
-	PROP_COMPLETE
-};
-
-/* pointer to the class of our parent */
-static GtkLabelClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_set_uri mn_system_mailbox_properties_set_uri
-#define self_get_uri mn_system_mailbox_properties_get_uri
-
-
-static void
-___MN_Mailbox_Properties_init (MNMailboxPropertiesIface *iface)
-{
-#line 67 "mn-system-mailbox-properties.gob"
-	iface->set_uri = self_set_uri;
-#line 74 "mn-system-mailbox-properties.gob"
-	iface->get_uri = self_get_uri;
-#line 78 "mn-system-mailbox-properties.c"
-}
-
-GType
-mn_system_mailbox_properties_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNSystemMailboxPropertiesClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_system_mailbox_properties_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNSystemMailboxProperties),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_system_mailbox_properties_init,
-			NULL
-		};
-
-		static const GInterfaceInfo MN_Mailbox_Properties_info = {
-			(GInterfaceInitFunc) ___MN_Mailbox_Properties_init,
-			NULL,
-			NULL
-		};
-
-		type = g_type_register_static (GTK_TYPE_LABEL, "MNSystemMailboxProperties", &info, (GTypeFlags)0);
-		g_type_add_interface_static (type,
-			MN_TYPE_MAILBOX_PROPERTIES,
-			&MN_Mailbox_Properties_info);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNSystemMailboxProperties *)g_object_new(mn_system_mailbox_properties_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNSystemMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNSystemMailboxProperties *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNSystemMailboxProperties *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNSystemMailboxProperties *)g_object_new_valist (mn_system_mailbox_properties_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::dispose"
-	MNSystemMailboxProperties *self G_GNUC_UNUSED = MN_SYSTEM_MAILBOX_PROPERTIES (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 36 "mn-system-mailbox-properties.gob"
-	if(self->_priv->size_group) { g_object_unref ((gpointer) self->_priv->size_group); self->_priv->size_group = NULL; }
-#line 142 "mn-system-mailbox-properties.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::finalize"
-	MNSystemMailboxProperties *self G_GNUC_UNUSED = MN_SYSTEM_MAILBOX_PROPERTIES (obj_self);
-	gpointer priv G_GNUC_UNUSED = self->_priv;
-	if(G_OBJECT_CLASS(parent_class)->finalize) \
-		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-}
-#undef __GOB_FUNCTION__
-
-static void 
-mn_system_mailbox_properties_class_init (MNSystemMailboxPropertiesClass * c G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
-
-	g_type_class_add_private(c,sizeof(MNSystemMailboxPropertiesPrivate));
-
-	parent_class = g_type_class_ref (GTK_TYPE_LABEL);
-
-	g_object_class->dispose = ___dispose;
-	g_object_class->finalize = ___finalize;
-	g_object_class->get_property = ___object_get_property;
-	g_object_class->set_property = ___object_set_property;
-    {
-	g_object_class_override_property (g_object_class,
-		PROP_LABEL,
-		"label");
-	g_object_class_override_property (g_object_class,
-		PROP_SIZE_GROUP,
-		"size_group");
-	g_object_class_override_property (g_object_class,
-		PROP_COMPLETE,
-		"complete");
-    }
-}
-#undef __GOB_FUNCTION__
-#line 44 "mn-system-mailbox-properties.gob"
-static void 
-mn_system_mailbox_properties_init (MNSystemMailboxProperties * self G_GNUC_UNUSED)
-#line 188 "mn-system-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::init"
-	self->_priv = G_TYPE_INSTANCE_GET_PRIVATE(self,TYPE_SELF,MNSystemMailboxPropertiesPrivate);
- {
-#line 45 "mn-system-mailbox-properties.gob"
-
-    gtk_label_set_line_wrap(GTK_LABEL(self), TRUE);
-    gtk_misc_set_alignment(GTK_MISC(self), 0.0, 0.5);
-
-    selfp->system_uri = mn_uri_get_system_mailbox();
-    if (selfp->system_uri)
-      {
-	char *path;
-	char *markup;
-	
-	path = gnome_vfs_get_local_path_from_uri(selfp->system_uri);
-
-	markup = g_markup_printf_escaped(_("Your system mailbox (<span weight=\"bold\">%s</span>) will be used."), path ? path : selfp->system_uri);
-	gtk_label_set_markup(GTK_LABEL(self), markup);
-	g_free(markup);
-
-	g_free(path);
-      }
-    else
-      gtk_label_set_text(GTK_LABEL(self), _("The location of your system mailbox could not be detected. Please set the MAIL environment variable."));
-  
-#line 215 "mn-system-mailbox-properties.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
-	guint property_id,
-	const GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::set_property"
-{
-	MNSystemMailboxProperties *self G_GNUC_UNUSED;
-
-	self = MN_SYSTEM_MAILBOX_PROPERTIES (object);
-
-	switch (property_id) {
-	case PROP_SIZE_GROUP:
-		{
-#line 37 "mn-system-mailbox-properties.gob"
-{ GObject *___old = (GObject *)self->_priv->size_group; self->_priv->size_group = (void *)g_value_dup_object (VAL); if (___old != NULL) { g_object_unref (G_OBJECT (___old)); } }
-#line 236 "mn-system-mailbox-properties.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_get_property (GObject *object,
-	guint property_id,
-	GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::get_property"
-{
-	MNSystemMailboxProperties *self G_GNUC_UNUSED;
-
-	self = MN_SYSTEM_MAILBOX_PROPERTIES (object);
-
-	switch (property_id) {
-	case PROP_LABEL:
-		{
-#line 34 "mn-system-mailbox-properties.gob"
- g_value_set_string(VAL, _("System Mailbox")); 
-#line 267 "mn-system-mailbox-properties.c"
-		}
-		break;
-	case PROP_SIZE_GROUP:
-		{
-#line 37 "mn-system-mailbox-properties.gob"
-g_value_set_object (VAL, (gpointer)self->_priv->size_group);
-#line 274 "mn-system-mailbox-properties.c"
-		}
-		break;
-	case PROP_COMPLETE:
-		{
-#line 40 "mn-system-mailbox-properties.gob"
- g_value_set_boolean(VAL, selfp->system_uri != NULL); 
-#line 281 "mn-system-mailbox-properties.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 67 "mn-system-mailbox-properties.gob"
-static gboolean 
-mn_system_mailbox_properties_set_uri (MNMailboxProperties * self, MNURI * uri)
-#line 301 "mn-system-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::set_uri"
-#line 67 "mn-system-mailbox-properties.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 67 "mn-system-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (gboolean )0);
-#line 67 "mn-system-mailbox-properties.gob"
-	g_return_val_if_fail (uri != NULL, (gboolean )0);
-#line 310 "mn-system-mailbox-properties.c"
-{
-#line 70 "mn-system-mailbox-properties.gob"
-	
-    return MN_URI_IS_SYSTEM_MAILBOX(uri);
-  }}
-#line 316 "mn-system-mailbox-properties.c"
-#undef __GOB_FUNCTION__
-
-#line 74 "mn-system-mailbox-properties.gob"
-static MNURI * 
-mn_system_mailbox_properties_get_uri (MNMailboxProperties * self)
-#line 322 "mn-system-mailbox-properties.c"
-{
-#define __GOB_FUNCTION__ "MN:System:Mailbox:Properties::get_uri"
-#line 74 "mn-system-mailbox-properties.gob"
-	g_return_val_if_fail (self != NULL, (MNURI * )0);
-#line 74 "mn-system-mailbox-properties.gob"
-	g_return_val_if_fail (MN_IS_MAILBOX_PROPERTIES (self), (MNURI * )0);
-#line 329 "mn-system-mailbox-properties.c"
-{
-#line 76 "mn-system-mailbox-properties.gob"
-	
-    return mn_uri_new(SELF(self)->_priv->system_uri);
-  }}
-#line 335 "mn-system-mailbox-properties.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-system-mailbox-properties.gob b/src/mn-system-mailbox-properties.gob
@@ -1,79 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include <gtk/gtk.h>
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include "mn-mailbox-properties.h"
-%}
-
-class MN:System:Mailbox:Properties from Gtk:Label (interface MN:Mailbox:Properties)
-{
-  property STRING label (override)
-    get { g_value_set_string(VAL, _("System Mailbox")); };
-
-  private GtkSizeGroup *size_group unrefwith g_object_unref;
-  property OBJECT size_group (override, link);
-
-  property BOOLEAN complete (override)
-    get { g_value_set_boolean(VAL, selfp->system_uri != NULL); };
-  
-  private const char *system_uri;
-
-  init (self)
-  {
-    gtk_label_set_line_wrap(GTK_LABEL(self), TRUE);
-    gtk_misc_set_alignment(GTK_MISC(self), 0.0, 0.5);
-
-    selfp->system_uri = mn_uri_get_system_mailbox();
-    if (selfp->system_uri)
-      {
-	char *path;
-	char *markup;
-	
-	path = gnome_vfs_get_local_path_from_uri(selfp->system_uri);
-
-	markup = g_markup_printf_escaped(_("Your system mailbox (<span weight=\"bold\">%s</span>) will be used."), path ? path : selfp->system_uri);
-	gtk_label_set_markup(GTK_LABEL(self), markup);
-	g_free(markup);
-
-	g_free(path);
-      }
-    else
-      gtk_label_set_text(GTK_LABEL(self), _("The location of your system mailbox could not be detected. Please set the MAIL environment variable."));
-  }
-
-  interface MN:Mailbox:Properties private gboolean
-    set_uri (MN:Mailbox:Properties *self (check null type),
-	     MN:URI *uri (check null))
-  {
-    return MN_URI_IS_SYSTEM_MAILBOX(uri);
-  }
-
-  interface MN:Mailbox:Properties private MNURI *
-    get_uri (MN:Mailbox:Properties *self (check null type))
-  {
-    return mn_uri_new(SELF(self)->_priv->system_uri);
-  }
-}
diff --git a/src/mn-system-mailbox-properties.h b/src/mn-system-mailbox-properties.h
@@ -1,78 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include <gtk/gtk.h>
-
-#ifndef __MN_SYSTEM_MAILBOX_PROPERTIES_H__
-#define __MN_SYSTEM_MAILBOX_PROPERTIES_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_SYSTEM_MAILBOX_PROPERTIES	(mn_system_mailbox_properties_get_type())
-#define MN_SYSTEM_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_mailbox_properties_get_type(), MNSystemMailboxProperties)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_mailbox_properties_get_type(), MNSystemMailboxProperties const)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_system_mailbox_properties_get_type(), MNSystemMailboxPropertiesClass)
-#define MN_IS_SYSTEM_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_system_mailbox_properties_get_type ())
-
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_system_mailbox_properties_get_type(), MNSystemMailboxPropertiesClass)
-
-/* Private structure type */
-typedef struct _MNSystemMailboxPropertiesPrivate MNSystemMailboxPropertiesPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_SYSTEM_MAILBOX_PROPERTIES__
-#define __TYPEDEF_MN_SYSTEM_MAILBOX_PROPERTIES__
-typedef struct _MNSystemMailboxProperties MNSystemMailboxProperties;
-#endif
-struct _MNSystemMailboxProperties {
-	GtkLabel __parent__;
-	/*< private >*/
-	MNSystemMailboxPropertiesPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNSystemMailboxPropertiesClass MNSystemMailboxPropertiesClass;
-struct _MNSystemMailboxPropertiesClass {
-	GtkLabelClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_system_mailbox_properties_get_type	(void);
-
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label", __extension__ ({gchar **z = (arg); z;})
-#define MN_SYSTEM_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group", __extension__ ({GObject *z = (arg); z;})
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group", __extension__ ({GObject **z = (arg); z;})
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_LABEL(arg)	"label",(gchar **)(arg)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_PROP_SIZE_GROUP(arg)    	"size_group",(GObject *)(arg)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_SIZE_GROUP(arg)	"size_group",(GObject **)(arg)
-#define MN_SYSTEM_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-system-vfs-mailbox-private.h b/src/mn-system-vfs-mailbox-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_PRIVATE_H__
+#define __MN_SYSTEM_VFS_MAILBOX_PRIVATE_H__
+
+#include "mn-system-vfs-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-system-vfs-mailbox-properties-private.h b/src/mn-system-vfs-mailbox-properties-private.h
@@ -0,0 +1,17 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_PRIVATE_H__
+#define __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_PRIVATE_H__
+
+#include "mn-system-vfs-mailbox-properties.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-system-vfs-mailbox-properties.c b/src/mn-system-vfs-mailbox-properties.c
@@ -0,0 +1,217 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-system-vfs-mailbox-properties.h"
+
+#include "mn-system-vfs-mailbox-properties-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-system-vfs-mailbox-properties.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
+#include "mn-mailbox-properties.h"
+#include "mn-system-vfs-mailbox.h"
+#include "mn-stock.h"
+
+#line 36 "mn-system-vfs-mailbox-properties.c"
+/* self casting macros */
+#define SELF(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES(x)
+#define SELF_CONST(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CONST(x)
+#define IS_SELF(x) MN_IS_SYSTEM_VFS_MAILBOX_PROPERTIES(x)
+#define TYPE_SELF MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES
+#define SELF_CLASS(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNSystemVFSMailboxProperties Self;
+typedef MNSystemVFSMailboxPropertiesClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_system_vfs_mailbox_properties_class_init (MNSystemVFSMailboxPropertiesClass * class) G_GNUC_UNUSED;
+static void mn_system_vfs_mailbox_properties_init (MNSystemVFSMailboxProperties * self) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_COMPLETE,
+	PROP_DEFAULT_NAME
+};
+
+/* pointer to the class of our parent */
+static MNMailboxPropertiesClass *parent_class = NULL;
+
+GType
+mn_system_vfs_mailbox_properties_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNSystemVFSMailboxPropertiesClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_system_vfs_mailbox_properties_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNSystemVFSMailboxProperties),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_system_vfs_mailbox_properties_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_MAILBOX_PROPERTIES, "MNSystemVFSMailboxProperties", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNSystemVFSMailboxProperties *)g_object_new(mn_system_vfs_mailbox_properties_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNSystemVFSMailboxProperties * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNSystemVFSMailboxProperties *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNSystemVFSMailboxProperties *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNSystemVFSMailboxProperties *)g_object_new_valist (mn_system_vfs_mailbox_properties_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+#line 41 "mn-system-vfs-mailbox-properties.gob"
+static void 
+mn_system_vfs_mailbox_properties_class_init (MNSystemVFSMailboxPropertiesClass * class G_GNUC_UNUSED)
+#line 109 "mn-system-vfs-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox:Properties::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
+
+	parent_class = g_type_class_ref (MN_TYPE_MAILBOX_PROPERTIES);
+
+	g_object_class->get_property = ___object_get_property;
+    {
+	g_object_class_override_property (g_object_class,
+		PROP_COMPLETE,
+		"complete");
+	g_object_class_override_property (g_object_class,
+		PROP_DEFAULT_NAME,
+		"default_name");
+    }
+ {
+#line 42 "mn-system-vfs-mailbox-properties.gob"
+
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->type = "system-vfs";
+    p_class->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+    p_class->combo_label = _("System mailbox");
+  
+#line 134 "mn-system-vfs-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+#line 50 "mn-system-vfs-mailbox-properties.gob"
+static void 
+mn_system_vfs_mailbox_properties_init (MNSystemVFSMailboxProperties * self G_GNUC_UNUSED)
+#line 141 "mn-system-vfs-mailbox-properties.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox:Properties::init"
+ {
+#line 51 "mn-system-vfs-mailbox-properties.gob"
+
+    GtkWidget *label;
+    const char *system_uri;
+
+    label = gtk_label_new(NULL);
+
+    gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    system_uri = mn_system_vfs_mailbox_get_uri();
+    if (system_uri)
+      {
+	char *path;
+	char *markup;
+	
+	path = gnome_vfs_get_local_path_from_uri(system_uri);
+
+	markup = g_markup_printf_escaped(_("Your system mailbox is <span weight=\"bold\">%s</span>."), path ? path : system_uri);
+	gtk_label_set_markup(GTK_LABEL(label), markup);
+	g_free(markup);
+
+	g_free(path);
+      }
+    else
+      gtk_label_set_text(GTK_LABEL(label), _("The location of your system mailbox could not be detected. Check the MAIL environment variable."));
+
+    gtk_widget_show(label);
+    gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
+  
+#line 175 "mn-system-vfs-mailbox-properties.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox:Properties::get_property"
+{
+	MNSystemVFSMailboxProperties *self G_GNUC_UNUSED;
+
+	self = MN_SYSTEM_VFS_MAILBOX_PROPERTIES (object);
+
+	switch (property_id) {
+	case PROP_COMPLETE:
+		{
+#line 37 "mn-system-vfs-mailbox-properties.gob"
+ g_value_set_boolean(VAL, mn_system_vfs_mailbox_get_uri() != NULL); 
+#line 196 "mn-system-vfs-mailbox-properties.c"
+		}
+		break;
+	case PROP_DEFAULT_NAME:
+		{
+#line 39 "mn-system-vfs-mailbox-properties.gob"
+ g_value_set_string(VAL, _("System mailbox")); 
+#line 203 "mn-system-vfs-mailbox-properties.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
diff --git a/src/mn-system-vfs-mailbox-properties.gob b/src/mn-system-vfs-mailbox-properties.gob
@@ -0,0 +1,80 @@
+/* 
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-mailbox-properties.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
+#include "mn-mailbox-properties.h"
+#include "mn-system-vfs-mailbox.h"
+#include "mn-stock.h"
+%}
+
+class MN:System:VFS:Mailbox:Properties from MN:Mailbox:Properties
+{
+  property BOOLEAN complete (override)
+    get { g_value_set_boolean(VAL, mn_system_vfs_mailbox_get_uri() != NULL); };
+  property STRING default_name (override)
+    get { g_value_set_string(VAL, _("System mailbox")); };
+  
+  class_init (class)
+  {
+    MNMailboxPropertiesClass *p_class = MN_MAILBOX_PROPERTIES_CLASS(class);
+
+    p_class->type = "system-vfs";
+    p_class->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+    p_class->combo_label = _("System mailbox");
+  }
+
+  init (self)
+  {
+    GtkWidget *label;
+    const char *system_uri;
+
+    label = gtk_label_new(NULL);
+
+    gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
+    gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5);
+
+    system_uri = mn_system_vfs_mailbox_get_uri();
+    if (system_uri)
+      {
+	char *path;
+	char *markup;
+	
+	path = gnome_vfs_get_local_path_from_uri(system_uri);
+
+	markup = g_markup_printf_escaped(_("Your system mailbox is <span weight=\"bold\">%s</span>."), path ? path : system_uri);
+	gtk_label_set_markup(GTK_LABEL(label), markup);
+	g_free(markup);
+
+	g_free(path);
+      }
+    else
+      gtk_label_set_text(GTK_LABEL(label), _("The location of your system mailbox could not be detected. Check the MAIL environment variable."));
+
+    gtk_widget_show(label);
+    gtk_box_pack_start(GTK_BOX(self), label, FALSE, FALSE, 0);
+  }
+}
diff --git a/src/mn-system-vfs-mailbox-properties.h b/src/mn-system-vfs-mailbox-properties.h
@@ -0,0 +1,69 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-mailbox-properties.h"
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_H__
+#define __MN_SYSTEM_VFS_MAILBOX_PROPERTIES_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_SYSTEM_VFS_MAILBOX_PROPERTIES	(mn_system_vfs_mailbox_properties_get_type())
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxProperties)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxProperties const)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxPropertiesClass)
+#define MN_IS_SYSTEM_VFS_MAILBOX_PROPERTIES(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_system_vfs_mailbox_properties_get_type ())
+
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_system_vfs_mailbox_properties_get_type(), MNSystemVFSMailboxPropertiesClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_SYSTEM_VFS_MAILBOX_PROPERTIES__
+#define __TYPEDEF_MN_SYSTEM_VFS_MAILBOX_PROPERTIES__
+typedef struct _MNSystemVFSMailboxProperties MNSystemVFSMailboxProperties;
+#endif
+struct _MNSystemVFSMailboxProperties {
+	MNMailboxProperties __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNSystemVFSMailboxPropertiesClass MNSystemVFSMailboxPropertiesClass;
+struct _MNSystemVFSMailboxPropertiesClass {
+	MNMailboxPropertiesClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_system_vfs_mailbox_properties_get_type	(void);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete", __extension__ ({gboolean *z = (arg); z;})
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name", __extension__ ({gchar **z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_COMPLETE(arg)	"complete",(gboolean *)(arg)
+#define MN_SYSTEM_VFS_MAILBOX_PROPERTIES_GET_PROP_DEFAULT_NAME(arg)	"default_name",(gchar **)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-system-vfs-mailbox.c b/src/mn-system-vfs-mailbox.c
@@ -0,0 +1,237 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-system-vfs-mailbox.h"
+
+#include "mn-system-vfs-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-system-vfs-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-stock.h"
+#include "mn-mailbox-private.h"
+
+#line 34 "mn-system-vfs-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_SYSTEM_VFS_MAILBOX(x)
+#define SELF_CONST(x) MN_SYSTEM_VFS_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_SYSTEM_VFS_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_SYSTEM_VFS_MAILBOX
+#define SELF_CLASS(x) MN_SYSTEM_VFS_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_SYSTEM_VFS_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNSystemVFSMailbox Self;
+typedef MNSystemVFSMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_system_vfs_mailbox_init (MNSystemVFSMailbox * o) G_GNUC_UNUSED;
+static void mn_system_vfs_mailbox_class_init (MNSystemVFSMailboxClass * class) G_GNUC_UNUSED;
+static void ___2_mn_system_vfs_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static MNMailbox * ___3_mn_system_vfs_mailbox_parse_uri (MNMailbox * dummy, const char * uri) G_GNUC_UNUSED;
+static void ___4_mn_system_vfs_mailbox_check (MNMailbox * mailbox) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNVFSMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_get_uri mn_system_vfs_mailbox_get_uri
+GType
+mn_system_vfs_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNSystemVFSMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_system_vfs_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNSystemVFSMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_system_vfs_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_VFS_MAILBOX, "MNSystemVFSMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNSystemVFSMailbox *)g_object_new(mn_system_vfs_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNSystemVFSMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNSystemVFSMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNSystemVFSMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNSystemVFSMailbox *)g_object_new_valist (mn_system_vfs_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+static void 
+mn_system_vfs_mailbox_init (MNSystemVFSMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::init"
+}
+#undef __GOB_FUNCTION__
+#line 34 "mn-system-vfs-mailbox.gob"
+static void 
+mn_system_vfs_mailbox_class_init (MNSystemVFSMailboxClass * class G_GNUC_UNUSED)
+#line 111 "mn-system-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::class_init"
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)class;
+
+	parent_class = g_type_class_ref (MN_TYPE_VFS_MAILBOX);
+
+#line 40 "mn-system-vfs-mailbox.gob"
+	mn_mailbox_class->seal = ___2_mn_system_vfs_mailbox_seal;
+#line 50 "mn-system-vfs-mailbox.gob"
+	mn_mailbox_class->parse_uri = ___3_mn_system_vfs_mailbox_parse_uri;
+#line 63 "mn-system-vfs-mailbox.gob"
+	mn_mailbox_class->check = ___4_mn_system_vfs_mailbox_check;
+#line 124 "mn-system-vfs-mailbox.c"
+ {
+#line 35 "mn-system-vfs-mailbox.gob"
+
+    MN_MAILBOX_CLASS(class)->type = "system-vfs";
+    MN_VFS_MAILBOX_CLASS(class)->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+  
+#line 131 "mn-system-vfs-mailbox.c"
+ }
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 40 "mn-system-vfs-mailbox.gob"
+static void 
+___2_mn_system_vfs_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 141 "mn-system-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::seal"
+{
+#line 42 "mn-system-vfs-mailbox.gob"
+	
+    MN_VFS_MAILBOX(mailbox)->uri = g_strdup(self_get_uri());
+
+    mailbox->runtime_name = g_strdup(_("System mailbox"));
+
+    PARENT_HANDLER(mailbox);
+  }}
+#line 156 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 50 "mn-system-vfs-mailbox.gob"
+static MNMailbox * 
+___3_mn_system_vfs_mailbox_parse_uri (MNMailbox * dummy G_GNUC_UNUSED, const char * uri)
+#line 163 "mn-system-vfs-mailbox.c"
+#define PARENT_HANDLER(___dummy,___uri) \
+	((MN_MAILBOX_CLASS(parent_class)->parse_uri)? \
+		(* MN_MAILBOX_CLASS(parent_class)->parse_uri)(___dummy,___uri): \
+		((MNMailbox * )0))
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::parse_uri"
+{
+#line 52 "mn-system-vfs-mailbox.gob"
+	
+    const char *system_uri;
+    MNMailbox *mailbox = NULL;
+
+    system_uri = self_get_uri();
+    if (system_uri && gnome_vfs_uris_match(uri, system_uri))
+      mailbox = mn_mailbox_new("system-vfs", NULL);
+
+    return mailbox;
+  }}
+#line 182 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 63 "mn-system-vfs-mailbox.gob"
+static void 
+___4_mn_system_vfs_mailbox_check (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 189 "mn-system-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->check) \
+		(* MN_MAILBOX_CLASS(parent_class)->check)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::check"
+{
+#line 65 "mn-system-vfs-mailbox.gob"
+	
+    if (MN_VFS_MAILBOX(mailbox)->uri)
+      {
+	PARENT_HANDLER(mailbox);
+      }
+    else
+      {
+	mn_mailbox_set_error(mailbox, _("MAIL environment variable not defined"));
+	mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+      }
+  }}
+#line 208 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 77 "mn-system-vfs-mailbox.gob"
+const char * 
+mn_system_vfs_mailbox_get_uri (void)
+#line 215 "mn-system-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:System:VFS:Mailbox::get_uri"
+{
+#line 79 "mn-system-vfs-mailbox.gob"
+	
+    static char *global_uri = NULL;
+    G_LOCK_DEFINE_STATIC(global_uri);
+    const char *uri;
+
+    G_LOCK(global_uri);
+    if (! global_uri)
+      {
+	const char *mail = g_getenv("MAIL");
+	if (mail)
+	  global_uri = gnome_vfs_get_uri_from_local_path(mail);
+      }
+    uri = global_uri;
+    G_UNLOCK(global_uri);
+
+    return uri;
+  }}
+#line 237 "mn-system-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-system-vfs-mailbox.gob b/src/mn-system-vfs-mailbox.gob
@@ -0,0 +1,96 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include "mn-stock.h"
+#include "mn-mailbox-private.h"
+%}
+
+class MN:System:VFS:Mailbox from MN:VFS:Mailbox
+{
+  class_init (class)
+  {
+    MN_MAILBOX_CLASS(class)->type = "system-vfs";
+    MN_VFS_MAILBOX_CLASS(class)->stock_id = MN_STOCK_SYSTEM_MAILBOX;
+  }
+
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
+  {
+    MN_VFS_MAILBOX(mailbox)->uri = g_strdup(self_get_uri());
+
+    mailbox->runtime_name = g_strdup(_("System mailbox"));
+
+    PARENT_HANDLER(mailbox);
+  }
+
+  override (MN:Mailbox) MNMailbox *
+    parse_uri (MNMailbox *dummy, const char *uri)
+  {
+    const char *system_uri;
+    MNMailbox *mailbox = NULL;
+
+    system_uri = self_get_uri();
+    if (system_uri && gnome_vfs_uris_match(uri, system_uri))
+      mailbox = mn_mailbox_new("system-vfs", NULL);
+
+    return mailbox;
+  }
+  
+  override (MN:Mailbox) void
+    check (MNMailbox *mailbox)
+  {
+    if (MN_VFS_MAILBOX(mailbox)->uri)
+      {
+	PARENT_HANDLER(mailbox);
+      }
+    else
+      {
+	mn_mailbox_set_error(mailbox, _("MAIL environment variable not defined"));
+	mn_mailbox_set_must_poll(mailbox, FALSE); /* disable the mailbox */
+      }
+  }
+  
+  public const char *
+    get_uri (void)
+  {
+    static char *global_uri = NULL;
+    G_LOCK_DEFINE_STATIC(global_uri);
+    const char *uri;
+
+    G_LOCK(global_uri);
+    if (! global_uri)
+      {
+	const char *mail = g_getenv("MAIL");
+	if (mail)
+	  global_uri = gnome_vfs_get_uri_from_local_path(mail);
+      }
+    uri = global_uri;
+    G_UNLOCK(global_uri);
+
+    return uri;
+  }
+}
diff --git a/src/mn-system-vfs-mailbox.h b/src/mn-system-vfs-mailbox.h
@@ -0,0 +1,58 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox.h"
+
+#ifndef __MN_SYSTEM_VFS_MAILBOX_H__
+#define __MN_SYSTEM_VFS_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_SYSTEM_VFS_MAILBOX	(mn_system_vfs_mailbox_get_type())
+#define MN_SYSTEM_VFS_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailbox)
+#define MN_SYSTEM_VFS_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailbox const)
+#define MN_SYSTEM_VFS_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailboxClass)
+#define MN_IS_SYSTEM_VFS_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_system_vfs_mailbox_get_type ())
+
+#define MN_SYSTEM_VFS_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_system_vfs_mailbox_get_type(), MNSystemVFSMailboxClass)
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_SYSTEM_VFS_MAILBOX__
+#define __TYPEDEF_MN_SYSTEM_VFS_MAILBOX__
+typedef struct _MNSystemVFSMailbox MNSystemVFSMailbox;
+#endif
+struct _MNSystemVFSMailbox {
+	MNVFSMailbox __parent__;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNSystemVFSMailboxClass MNSystemVFSMailboxClass;
+struct _MNSystemVFSMailboxClass {
+	MNVFSMailboxClass __parent__;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_system_vfs_mailbox_get_type	(void);
+const char * 	mn_system_vfs_mailbox_get_uri	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-tooltips-private.h b/src/mn-tooltips-private.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #ifndef __MN_TOOLTIPS_PRIVATE_H__
 #define __MN_TOOLTIPS_PRIVATE_H__
@@ -12,12 +12,12 @@ extern "C" {
 
 #line 29 "mn-tooltips.gob"
 
-  typedef struct
-  {
-    MNTooltips	*self;
-    GtkWidget	*widget;
-    GtkWidget	*tip_widget;
-  } TooltipsData;
+typedef struct
+{
+  MNTooltips	*self;
+  GtkWidget	*widget;
+  GtkWidget	*tip_widget;
+} TooltipsData;
 
 #line 23 "mn-tooltips-private.h"
 struct _MNTooltipsPrivate {
diff --git a/src/mn-tooltips.c b/src/mn-tooltips.c
@@ -1,11 +1,11 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:58 2005
    (do not edit directly) */
 
 /* End world hunger, donate to the World Food Programme, http://www.wfp.org */
 
 #define GOB_VERSION_MAJOR 2
 #define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
+#define GOB_VERSION_PATCHLEVEL 12
 
 #define selfp (self->_priv)
 
@@ -40,21 +40,21 @@
 					 * to normal
 					 */
 
-  /* The private flags that are used in the private_flags member of GtkWidget.
-   */
-  typedef enum
-  {
-    PRIVATE_GTK_LEAVE_PENDING	= 1 <<  4
-  } GtkPrivateFlags;
+/* The private flags that are used in the private_flags member of GtkWidget.
+ */
+typedef enum
+{
+  PRIVATE_GTK_LEAVE_PENDING	= 1 <<  4
+} GtkPrivateFlags;
 
-  /* Macros for extracting a widgets private_flags from GtkWidget.
-   */
+/* Macros for extracting a widgets private_flags from GtkWidget.
+ */
 #define GTK_PRIVATE_FLAGS(wid)            (GTK_WIDGET (wid)->private_flags)
   
-  /* Macros for setting and clearing private widget flags.
-   * we use a preprocessor string concatenation here for a clear
-   * flags/private_flags distinction at the cost of single flag operations.
-   */
+/* Macros for setting and clearing private widget flags.
+ * we use a preprocessor string concatenation here for a clear
+ * flags/private_flags distinction at the cost of single flag operations.
+ */
 #define GTK_PRIVATE_SET_FLAG(wid,flag)    G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
 
 #line 61 "mn-tooltips.c"
@@ -184,7 +184,7 @@ static void
 mn_tooltips_init (MNTooltips * o G_GNUC_UNUSED)
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNTooltipsPrivate);
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_TOOLTIPS,MNTooltipsPrivate);
 }
 #undef __GOB_FUNCTION__
 static void 
@@ -214,11 +214,6 @@ ___1_mn_tooltips_finalize (GObject * object G_GNUC_UNUSED)
 		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::finalize"
-#line 82 "mn-tooltips.gob"
-	g_return_if_fail (object != NULL);
-#line 82 "mn-tooltips.gob"
-	g_return_if_fail (G_IS_OBJECT (object));
-#line 222 "mn-tooltips.c"
 {
 #line 84 "mn-tooltips.gob"
 	
@@ -238,14 +233,14 @@ ___1_mn_tooltips_finalize (GObject * object G_GNUC_UNUSED)
 
     PARENT_HANDLER(object);
   }}
-#line 242 "mn-tooltips.c"
+#line 237 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 #undef PARENT_HANDLER
 
 #line 102 "mn-tooltips.gob"
 static void 
 mn_tooltips_destroy_data (TooltipsData * data)
-#line 249 "mn-tooltips.c"
+#line 244 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::destroy_data"
 {
@@ -262,40 +257,35 @@ mn_tooltips_destroy_data (TooltipsData * data)
     g_object_unref(data->tip_widget);
     g_free(data);
   }}
-#line 266 "mn-tooltips.c"
+#line 261 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 117 "mn-tooltips.gob"
 static void 
 mn_tooltips_display_closed_h (GdkDisplay * display, gboolean is_error, gpointer user_data)
-#line 272 "mn-tooltips.c"
+#line 267 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::display_closed_h"
-#line 117 "mn-tooltips.gob"
-	g_return_if_fail (display != NULL);
-#line 117 "mn-tooltips.gob"
-	g_return_if_fail (GDK_IS_DISPLAY (display));
-#line 279 "mn-tooltips.c"
 {
 #line 121 "mn-tooltips.gob"
 	
     Self *self = SELF(user_data);
     self_unset_window(self);
   }}
-#line 286 "mn-tooltips.c"
+#line 276 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 126 "mn-tooltips.gob"
 static void 
 mn_tooltips_disconnect_display_closed (MNTooltips * self)
-#line 292 "mn-tooltips.c"
+#line 282 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::disconnect_display_closed"
 #line 126 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 126 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 299 "mn-tooltips.c"
+#line 289 "mn-tooltips.c"
 {
 #line 128 "mn-tooltips.gob"
 	
@@ -303,20 +293,20 @@ mn_tooltips_disconnect_display_closed (MNTooltips * self)
 					 self_display_closed_h,
 					 self);
   }}
-#line 307 "mn-tooltips.c"
+#line 297 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 134 "mn-tooltips.gob"
 static void 
 mn_tooltips_unset_window (MNTooltips * self)
-#line 313 "mn-tooltips.c"
+#line 303 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::unset_window"
 #line 134 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 134 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 320 "mn-tooltips.c"
+#line 310 "mn-tooltips.c"
 {
 #line 136 "mn-tooltips.gob"
 	
@@ -326,20 +316,20 @@ mn_tooltips_unset_window (MNTooltips * self)
 	gtk_widget_destroy(selfp->window);
       }
   }}
-#line 330 "mn-tooltips.c"
+#line 320 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 144 "mn-tooltips.gob"
 static void 
 mn_tooltips_update_screen (MNTooltips * self, gboolean new_window)
-#line 336 "mn-tooltips.c"
+#line 326 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::update_screen"
 #line 144 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 144 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 343 "mn-tooltips.c"
+#line 333 "mn-tooltips.c"
 {
 #line 146 "mn-tooltips.gob"
 	
@@ -366,20 +356,20 @@ mn_tooltips_update_screen (MNTooltips * self, gboolean new_window)
 		       G_CALLBACK(self_display_closed_h),
 		       self);
   }}
-#line 370 "mn-tooltips.c"
+#line 360 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 171 "mn-tooltips.gob"
 static void 
 mn_tooltips_force_window (MNTooltips * self)
-#line 376 "mn-tooltips.c"
+#line 366 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::force_window"
 #line 171 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 171 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 383 "mn-tooltips.c"
+#line 373 "mn-tooltips.c"
 {
 #line 173 "mn-tooltips.gob"
 	
@@ -400,32 +390,32 @@ mn_tooltips_force_window (MNTooltips * self)
 	eel_add_weak_pointer(&selfp->window);
       }
   }}
-#line 404 "mn-tooltips.c"
+#line 394 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 192 "mn-tooltips.gob"
 static TooltipsData * 
 mn_tooltips_get_data (GtkWidget * widget)
-#line 410 "mn-tooltips.c"
+#line 400 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::get_data"
 #line 192 "mn-tooltips.gob"
 	g_return_val_if_fail (widget != NULL, (TooltipsData * )0);
 #line 192 "mn-tooltips.gob"
 	g_return_val_if_fail (GTK_IS_WIDGET (widget), (TooltipsData * )0);
-#line 417 "mn-tooltips.c"
+#line 407 "mn-tooltips.c"
 {
 #line 194 "mn-tooltips.gob"
 	
     return g_object_get_data(G_OBJECT(widget), TOOLTIPS_DATA);
   }}
-#line 423 "mn-tooltips.c"
+#line 413 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 198 "mn-tooltips.gob"
 void 
 mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * tip_widget)
-#line 429 "mn-tooltips.c"
+#line 419 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::set_tip_widget"
 #line 198 "mn-tooltips.gob"
@@ -436,7 +426,7 @@ mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * t
 	g_return_if_fail (widget != NULL);
 #line 198 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 440 "mn-tooltips.c"
+#line 430 "mn-tooltips.c"
 {
 #line 202 "mn-tooltips.gob"
 	
@@ -492,20 +482,20 @@ mn_tooltips_set_tip_widget (MNTooltips * self, GtkWidget * widget, GtkWidget * t
 			 NULL);
       }
   }}
-#line 496 "mn-tooltips.c"
+#line 486 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 256 "mn-tooltips.gob"
 static gboolean 
 mn_tooltips_paint_window (MNTooltips * self)
-#line 502 "mn-tooltips.c"
+#line 492 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::paint_window"
 #line 256 "mn-tooltips.gob"
 	g_return_val_if_fail (self != NULL, (gboolean )0);
 #line 256 "mn-tooltips.gob"
 	g_return_val_if_fail (MN_IS_TOOLTIPS (self), (gboolean )0);
-#line 509 "mn-tooltips.c"
+#line 499 "mn-tooltips.c"
 {
 #line 258 "mn-tooltips.gob"
 	
@@ -526,20 +516,20 @@ mn_tooltips_paint_window (MNTooltips * self)
     
     return FALSE;
   }}
-#line 530 "mn-tooltips.c"
+#line 520 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 277 "mn-tooltips.gob"
 static void 
 mn_tooltips_draw_tips (MNTooltips * self)
-#line 536 "mn-tooltips.c"
+#line 526 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::draw_tips"
 #line 277 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 277 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 543 "mn-tooltips.c"
+#line 533 "mn-tooltips.c"
 {
 #line 279 "mn-tooltips.gob"
 	
@@ -623,13 +613,13 @@ mn_tooltips_draw_tips (MNTooltips * self)
     gtk_window_move(GTK_WINDOW(selfp->window), x, y);
     gtk_widget_show(selfp->window);
   }}
-#line 627 "mn-tooltips.c"
+#line 617 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 361 "mn-tooltips.gob"
 static gboolean 
 mn_tooltips_timeout_cb (gpointer data)
-#line 633 "mn-tooltips.c"
+#line 623 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::timeout_cb"
 {
@@ -646,20 +636,20 @@ mn_tooltips_timeout_cb (gpointer data)
 
     return FALSE;		/* remove timeout */
   }}
-#line 650 "mn-tooltips.c"
+#line 640 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 376 "mn-tooltips.gob"
 static void 
 mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
-#line 656 "mn-tooltips.c"
+#line 646 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::set_active_widget"
 #line 376 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 376 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 663 "mn-tooltips.c"
+#line 653 "mn-tooltips.c"
 {
 #line 378 "mn-tooltips.gob"
 	
@@ -670,7 +660,7 @@ mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
 	gtk_widget_hide(selfp->window);
       }
 
-    mn_source_remove(&selfp->timeout_id);
+    mn_source_clear(&selfp->timeout_id);
   
     selfp->active_data = NULL;
   
@@ -692,20 +682,20 @@ mn_tooltips_set_active_widget (MNTooltips * self, GtkWidget * widget)
     else
       selfp->use_sticky_delay = FALSE;
   }}
-#line 696 "mn-tooltips.c"
+#line 686 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 409 "mn-tooltips.gob"
 static void 
 mn_tooltips_show_tip (GtkWidget * widget)
-#line 702 "mn-tooltips.c"
+#line 692 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::show_tip"
 #line 409 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
 #line 409 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 709 "mn-tooltips.c"
+#line 699 "mn-tooltips.c"
 {
 #line 411 "mn-tooltips.gob"
 	
@@ -721,20 +711,20 @@ mn_tooltips_show_tip (GtkWidget * widget)
 	self_draw_tips(data->self);
       }
   }}
-#line 725 "mn-tooltips.c"
+#line 715 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 425 "mn-tooltips.gob"
 static void 
 mn_tooltips_hide_tip (GtkWidget * widget)
-#line 731 "mn-tooltips.c"
+#line 721 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::hide_tip"
 #line 425 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
 #line 425 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 738 "mn-tooltips.c"
+#line 728 "mn-tooltips.c"
 {
 #line 427 "mn-tooltips.gob"
 	
@@ -747,20 +737,20 @@ mn_tooltips_hide_tip (GtkWidget * widget)
 	 data->self->_priv->active_data->widget == widget))
       self_set_active_widget(data->self, NULL);
   }}
-#line 751 "mn-tooltips.c"
+#line 741 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 438 "mn-tooltips.gob"
 static gboolean 
 mn_tooltips_recently_shown (MNTooltips * self)
-#line 757 "mn-tooltips.c"
+#line 747 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::recently_shown"
 #line 438 "mn-tooltips.gob"
 	g_return_val_if_fail (self != NULL, (gboolean )0);
 #line 438 "mn-tooltips.gob"
 	g_return_val_if_fail (MN_IS_TOOLTIPS (self), (gboolean )0);
-#line 764 "mn-tooltips.c"
+#line 754 "mn-tooltips.c"
 {
 #line 440 "mn-tooltips.gob"
 	
@@ -772,20 +762,20 @@ mn_tooltips_recently_shown (MNTooltips * self)
       (now.tv_usec - selfp->last_popdown.tv_usec) / 1000;
     return (msec < STICKY_REVERT_DELAY);
   }}
-#line 776 "mn-tooltips.c"
+#line 766 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 450 "mn-tooltips.gob"
 static gboolean 
 mn_tooltips_get_keyboard_mode (GtkWidget * widget)
-#line 782 "mn-tooltips.c"
+#line 772 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::get_keyboard_mode"
 #line 450 "mn-tooltips.gob"
 	g_return_val_if_fail (widget != NULL, (gboolean )0);
 #line 450 "mn-tooltips.gob"
 	g_return_val_if_fail (GTK_IS_WIDGET (widget), (gboolean )0);
-#line 789 "mn-tooltips.c"
+#line 779 "mn-tooltips.c"
 {
 #line 452 "mn-tooltips.gob"
 	
@@ -796,20 +786,20 @@ mn_tooltips_get_keyboard_mode (GtkWidget * widget)
     else
       return FALSE;
   }}
-#line 800 "mn-tooltips.c"
+#line 790 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 461 "mn-tooltips.gob"
 static void 
 mn_tooltips_start_keyboard_mode (GtkWidget * widget)
-#line 806 "mn-tooltips.c"
+#line 796 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::start_keyboard_mode"
 #line 461 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
 #line 461 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 813 "mn-tooltips.c"
+#line 803 "mn-tooltips.c"
 {
 #line 463 "mn-tooltips.gob"
 	
@@ -825,20 +815,20 @@ mn_tooltips_start_keyboard_mode (GtkWidget * widget)
 	  self_show_tip(focus);
       }
   }}
-#line 829 "mn-tooltips.c"
+#line 819 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 477 "mn-tooltips.gob"
 static void 
 mn_tooltips_stop_keyboard_mode (GtkWidget * widget)
-#line 835 "mn-tooltips.c"
+#line 825 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::stop_keyboard_mode"
 #line 477 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
 #line 477 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 842 "mn-tooltips.c"
+#line 832 "mn-tooltips.c"
 {
 #line 479 "mn-tooltips.gob"
 	
@@ -854,20 +844,20 @@ mn_tooltips_stop_keyboard_mode (GtkWidget * widget)
 	g_object_set_data(G_OBJECT(toplevel), TOOLTIPS_KEYBOARD_MODE, GINT_TO_POINTER(FALSE));
       }
   }}
-#line 858 "mn-tooltips.c"
+#line 848 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 493 "mn-tooltips.gob"
 static void 
 mn_tooltips_start_delay (MNTooltips * self, GtkWidget * widget)
-#line 864 "mn-tooltips.c"
+#line 854 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::start_delay"
 #line 493 "mn-tooltips.gob"
 	g_return_if_fail (self != NULL);
 #line 493 "mn-tooltips.gob"
 	g_return_if_fail (MN_IS_TOOLTIPS (self));
-#line 871 "mn-tooltips.c"
+#line 861 "mn-tooltips.c"
 {
 #line 495 "mn-tooltips.gob"
 	
@@ -882,24 +872,17 @@ mn_tooltips_start_delay (MNTooltips * self, GtkWidget * widget)
 					  self);
       }
   }}
-#line 886 "mn-tooltips.c"
+#line 876 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
 #line 508 "mn-tooltips.gob"
 static void 
 mn_tooltips_event_after_h (GtkWidget * widget, GdkEvent * event, gpointer user_data)
-#line 892 "mn-tooltips.c"
+#line 882 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::event_after_h"
-#line 508 "mn-tooltips.gob"
-	g_return_if_fail (widget != NULL);
-#line 508 "mn-tooltips.gob"
-	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 508 "mn-tooltips.gob"
-	g_return_if_fail (event != NULL);
-#line 901 "mn-tooltips.c"
 {
-#line 512 "mn-tooltips.gob"
+#line 510 "mn-tooltips.gob"
 	
     Self *self;
     TooltipsData *old_data;
@@ -982,22 +965,22 @@ mn_tooltips_event_after_h (GtkWidget * widget, GdkEvent * event, gpointer user_d
 	  }
       }
   }}
-#line 986 "mn-tooltips.c"
+#line 969 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
-#line 595 "mn-tooltips.gob"
+#line 593 "mn-tooltips.gob"
 static void 
 mn_tooltips_widget_unmap (GtkWidget * widget, gpointer user_data)
-#line 992 "mn-tooltips.c"
+#line 975 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::widget_unmap"
-#line 595 "mn-tooltips.gob"
+#line 593 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
-#line 595 "mn-tooltips.gob"
+#line 593 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 999 "mn-tooltips.c"
+#line 982 "mn-tooltips.c"
 {
-#line 597 "mn-tooltips.gob"
+#line 595 "mn-tooltips.gob"
 	
     TooltipsData *data = user_data;
     Self *self = data->self;
@@ -1006,22 +989,22 @@ mn_tooltips_widget_unmap (GtkWidget * widget, gpointer user_data)
 	(selfp->active_data->widget == widget))
       self_set_active_widget(self, NULL);
   }}
-#line 1010 "mn-tooltips.c"
+#line 993 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
-#line 606 "mn-tooltips.gob"
+#line 604 "mn-tooltips.gob"
 static void 
 mn_tooltips_widget_remove (GtkWidget * widget, gpointer user_data)
-#line 1016 "mn-tooltips.c"
+#line 999 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::widget_remove"
-#line 606 "mn-tooltips.gob"
+#line 604 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
-#line 606 "mn-tooltips.gob"
+#line 604 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 1023 "mn-tooltips.c"
+#line 1006 "mn-tooltips.c"
 {
-#line 608 "mn-tooltips.gob"
+#line 606 "mn-tooltips.gob"
 	
     TooltipsData *data = user_data;
     Self *self = data->self;
@@ -1030,41 +1013,41 @@ mn_tooltips_widget_remove (GtkWidget * widget, gpointer user_data)
     selfp->data_list = g_slist_remove(selfp->data_list, data);
     self_destroy_data(data);
   }}
-#line 1034 "mn-tooltips.c"
+#line 1017 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
-#line 617 "mn-tooltips.gob"
+#line 615 "mn-tooltips.gob"
 void 
 mn_tooltips_toggle_keyboard_mode (GtkWidget * widget)
-#line 1040 "mn-tooltips.c"
+#line 1023 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::toggle_keyboard_mode"
-#line 617 "mn-tooltips.gob"
+#line 615 "mn-tooltips.gob"
 	g_return_if_fail (widget != NULL);
-#line 617 "mn-tooltips.gob"
+#line 615 "mn-tooltips.gob"
 	g_return_if_fail (GTK_IS_WIDGET (widget));
-#line 1047 "mn-tooltips.c"
+#line 1030 "mn-tooltips.c"
 {
-#line 619 "mn-tooltips.gob"
+#line 617 "mn-tooltips.gob"
 	
     if (self_get_keyboard_mode(widget))
       self_stop_keyboard_mode(widget);
     else
       self_start_keyboard_mode(widget);
   }}
-#line 1056 "mn-tooltips.c"
+#line 1039 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
 
-#line 626 "mn-tooltips.gob"
+#line 624 "mn-tooltips.gob"
 MNTooltips * 
 mn_tooltips_new (void)
-#line 1062 "mn-tooltips.c"
+#line 1045 "mn-tooltips.c"
 {
 #define __GOB_FUNCTION__ "MN:Tooltips::new"
 {
-#line 628 "mn-tooltips.gob"
+#line 626 "mn-tooltips.gob"
 	
     return GET_NEW;
   }}
-#line 1070 "mn-tooltips.c"
+#line 1053 "mn-tooltips.c"
 #undef __GOB_FUNCTION__
diff --git a/src/mn-tooltips.gob b/src/mn-tooltips.gob
@@ -20,19 +20,19 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-requires 2.0.10
+requires 2.0.12
 
 %headertop{
 #include <gtk/gtk.h>
 %}
 
 %privateheader{
-  typedef struct
-  {
-    MNTooltips	*self;
-    GtkWidget	*widget;
-    GtkWidget	*tip_widget;
-  } TooltipsData;
+typedef struct
+{
+  MNTooltips	*self;
+  GtkWidget	*widget;
+  GtkWidget	*tip_widget;
+} TooltipsData;
 %}
 
 %{
@@ -51,21 +51,21 @@ requires 2.0.10
 					 * to normal
 					 */
 
-  /* The private flags that are used in the private_flags member of GtkWidget.
-   */
-  typedef enum
-  {
-    PRIVATE_GTK_LEAVE_PENDING	= 1 <<  4
-  } GtkPrivateFlags;
+/* The private flags that are used in the private_flags member of GtkWidget.
+ */
+typedef enum
+{
+  PRIVATE_GTK_LEAVE_PENDING	= 1 <<  4
+} GtkPrivateFlags;
 
-  /* Macros for extracting a widgets private_flags from GtkWidget.
-   */
+/* Macros for extracting a widgets private_flags from GtkWidget.
+ */
 #define GTK_PRIVATE_FLAGS(wid)            (GTK_WIDGET (wid)->private_flags)
   
-  /* Macros for setting and clearing private widget flags.
-   * we use a preprocessor string concatenation here for a clear
-   * flags/private_flags distinction at the cost of single flag operations.
-   */
+/* Macros for setting and clearing private widget flags.
+ * we use a preprocessor string concatenation here for a clear
+ * flags/private_flags distinction at the cost of single flag operations.
+ */
 #define GTK_PRIVATE_SET_FLAG(wid,flag)    G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END
 %} 
 
@@ -80,7 +80,7 @@ class MN:Tooltips from G:Object
   private unsigned int timeout_id;
   
   override (G:Object) void
-    finalize (G:Object *object (check null type))
+    finalize (GObject *object)
   {
     Self *self = SELF(object);
     GSList *l;
@@ -115,7 +115,7 @@ class MN:Tooltips from G:Object
   }
 
   private void
-    display_closed_h (Gdk:Display *display (check null type),
+    display_closed_h (GdkDisplay *display,
 		      gboolean is_error,
 		      gpointer user_data)
   {
@@ -383,7 +383,7 @@ class MN:Tooltips from G:Object
 	gtk_widget_hide(selfp->window);
       }
 
-    mn_source_remove(&selfp->timeout_id);
+    mn_source_clear(&selfp->timeout_id);
   
     selfp->active_data = NULL;
   
@@ -506,9 +506,7 @@ class MN:Tooltips from G:Object
   }
 
   private void
-    event_after_h (Gtk:Widget *widget (check null type),
-		   GdkEvent *event (check null),
-		   gpointer user_data)
+    event_after_h (GtkWidget *widget, GdkEvent *event, gpointer user_data)
   {
     Self *self;
     TooltipsData *old_data;
diff --git a/src/mn-tooltips.h b/src/mn-tooltips.h
@@ -1,4 +1,4 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
 
 #include <glib.h>
 #include <glib-object.h>
diff --git a/src/mn-unsupported-mailbox-private.h b/src/mn-unsupported-mailbox-private.h
@@ -1,22 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_UNSUPPORTED_MAILBOX_PRIVATE_H__
-#define __MN_UNSUPPORTED_MAILBOX_PRIVATE_H__
-
-#include "mn-unsupported-mailbox.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-struct _MNUnsupportedMailboxPrivate {
-#line 32 "mn-unsupported-mailbox.gob"
-	char * reason;
-#line 16 "mn-unsupported-mailbox-private.h"
-};
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-unsupported-mailbox.c b/src/mn-unsupported-mailbox.c
@@ -1,268 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include <string.h> /* memset() */
-
-#include "mn-unsupported-mailbox.h"
-
-#include "mn-unsupported-mailbox-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 24 "mn-unsupported-mailbox.gob"
-
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-stock.h"
-
-#line 33 "mn-unsupported-mailbox.c"
-/* self casting macros */
-#define SELF(x) MN_UNSUPPORTED_MAILBOX(x)
-#define SELF_CONST(x) MN_UNSUPPORTED_MAILBOX_CONST(x)
-#define IS_SELF(x) MN_IS_UNSUPPORTED_MAILBOX(x)
-#define TYPE_SELF MN_TYPE_UNSUPPORTED_MAILBOX
-#define SELF_CLASS(x) MN_UNSUPPORTED_MAILBOX_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_UNSUPPORTED_MAILBOX_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNUnsupportedMailbox Self;
-typedef MNUnsupportedMailboxClass SelfClass;
-
-/* here are local prototypes */
-static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
-static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
-static void mn_unsupported_mailbox_init (MNUnsupportedMailbox * o) G_GNUC_UNUSED;
-static void mn_unsupported_mailbox_class_init (MNUnsupportedMailboxClass * class) G_GNUC_UNUSED;
-
-enum {
-	PROP_0,
-	PROP_REASON
-};
-
-/* pointer to the class of our parent */
-static MNMailboxClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_get_reason mn_unsupported_mailbox_get_reason
-#define self_new mn_unsupported_mailbox_new
-GType
-mn_unsupported_mailbox_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNUnsupportedMailboxClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_unsupported_mailbox_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNUnsupportedMailbox),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_unsupported_mailbox_init,
-			NULL
-		};
-
-		type = g_type_register_static (MN_TYPE_MAILBOX, "MNUnsupportedMailbox", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNUnsupportedMailbox *)g_object_new(mn_unsupported_mailbox_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNUnsupportedMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNUnsupportedMailbox *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNUnsupportedMailbox *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNUnsupportedMailbox *)g_object_new_valist (mn_unsupported_mailbox_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::finalize"
-	MNUnsupportedMailbox *self G_GNUC_UNUSED = MN_UNSUPPORTED_MAILBOX (obj_self);
-	gpointer priv G_GNUC_UNUSED = self->_priv;
-	if(G_OBJECT_CLASS(parent_class)->finalize) \
-		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 32 "mn-unsupported-mailbox.gob"
-	if(self->_priv->reason) { g_free ((gpointer) self->_priv->reason); self->_priv->reason = NULL; }
-#line 117 "mn-unsupported-mailbox.c"
-}
-#undef __GOB_FUNCTION__
-
-static void 
-mn_unsupported_mailbox_init (MNUnsupportedMailbox * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::init"
-	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,TYPE_SELF,MNUnsupportedMailboxPrivate);
-}
-#undef __GOB_FUNCTION__
-#line 37 "mn-unsupported-mailbox.gob"
-static void 
-mn_unsupported_mailbox_class_init (MNUnsupportedMailboxClass * class G_GNUC_UNUSED)
-#line 131 "mn-unsupported-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) class;
-
-	g_type_class_add_private(class,sizeof(MNUnsupportedMailboxPrivate));
-
-	parent_class = g_type_class_ref (MN_TYPE_MAILBOX);
-
-	g_object_class->finalize = ___finalize;
-	g_object_class->get_property = ___object_get_property;
-	g_object_class->set_property = ___object_set_property;
-    {
-	GParamSpec   *param_spec;
-
-	param_spec = g_param_spec_string
-		("reason" /* name */,
-		 NULL /* nick */,
-		 _("The reason why the mailbox is unsupported") /* blurb */,
-		 NULL /* default_value */,
-		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE));
-	g_object_class_install_property (g_object_class,
-		PROP_REASON,
-		param_spec);
-    }
- {
-#line 38 "mn-unsupported-mailbox.gob"
-
-    MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_UNSUPPORTED;
-    MN_MAILBOX_CLASS(class)->format = _("unsupported");
-  
-#line 162 "mn-unsupported-mailbox.c"
- }
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_set_property (GObject *object,
-	guint property_id,
-	const GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::set_property"
-{
-	MNUnsupportedMailbox *self G_GNUC_UNUSED;
-
-	self = MN_UNSUPPORTED_MAILBOX (object);
-
-	switch (property_id) {
-	case PROP_REASON:
-		{
-#line 33 "mn-unsupported-mailbox.gob"
-{ char *old = self->_priv->reason; self->_priv->reason = g_value_dup_string (VAL); g_free (old); }
-#line 183 "mn-unsupported-mailbox.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-#undef __GOB_FUNCTION__
-
-static void
-___object_get_property (GObject *object,
-	guint property_id,
-	GValue *VAL G_GNUC_UNUSED,
-	GParamSpec *pspec G_GNUC_UNUSED)
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::get_property"
-{
-	MNUnsupportedMailbox *self G_GNUC_UNUSED;
-
-	self = MN_UNSUPPORTED_MAILBOX (object);
-
-	switch (property_id) {
-	case PROP_REASON:
-		{
-#line 33 "mn-unsupported-mailbox.gob"
-g_value_set_string (VAL, self->_priv->reason);
-#line 214 "mn-unsupported-mailbox.c"
-		}
-		break;
-	default:
-/* Apparently in g++ this is needed, glib is b0rk */
-#ifndef __PRETTY_FUNCTION__
-#  undef G_STRLOC
-#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
-#endif
-		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-		break;
-	}
-}
-#undef __GOB_FUNCTION__
-
-
-#line 35 "mn-unsupported-mailbox.gob"
-const char * 
-mn_unsupported_mailbox_get_reason (MNUnsupportedMailbox * self)
-#line 233 "mn-unsupported-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::get_reason"
-#line 35 "mn-unsupported-mailbox.gob"
-	g_return_val_if_fail (self != NULL, (const char * )0);
-#line 35 "mn-unsupported-mailbox.gob"
-	g_return_val_if_fail (MN_IS_UNSUPPORTED_MAILBOX (self), (const char * )0);
-#line 240 "mn-unsupported-mailbox.c"
-{
-#line 35 "mn-unsupported-mailbox.gob"
-	 return selfp->reason; }}
-#line 244 "mn-unsupported-mailbox.c"
-#undef __GOB_FUNCTION__
-
-
-#line 43 "mn-unsupported-mailbox.gob"
-MNMailbox * 
-mn_unsupported_mailbox_new (MNURI * uri, const char * reason)
-#line 251 "mn-unsupported-mailbox.c"
-{
-#define __GOB_FUNCTION__ "MN:Unsupported:Mailbox::new"
-#line 43 "mn-unsupported-mailbox.gob"
-	g_return_val_if_fail (uri != NULL, (MNMailbox * )0);
-#line 43 "mn-unsupported-mailbox.gob"
-	g_return_val_if_fail (MN_IS_URI (uri), (MNMailbox * )0);
-#line 43 "mn-unsupported-mailbox.gob"
-	g_return_val_if_fail (reason != NULL, (MNMailbox * )0);
-#line 260 "mn-unsupported-mailbox.c"
-{
-#line 46 "mn-unsupported-mailbox.gob"
-	
-    return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)),
-				   MN_UNSUPPORTED_MAILBOX_PROP_REASON((char *) reason),
-				   NULL));
-  }}
-#line 268 "mn-unsupported-mailbox.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-unsupported-mailbox.gob b/src/mn-unsupported-mailbox.gob
@@ -1,51 +0,0 @@
-/* 
- * Copyright (C) 2003, 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include "mn-mailbox.h"
-%}
-%{
-#include "config.h"
-#include <glib/gi18n.h>
-#include "mn-stock.h"
-%}
-
-class MN:Unsupported:Mailbox from MN:Mailbox
-{
-  private char *reason destroywith g_free;
-  property STRING reason (blurb = _("The reason why the mailbox is unsupported"),
-			  link);
-  public const char *get_reason (self) { return selfp->reason; }
-
-  class_init (class)
-  {
-    MN_MAILBOX_CLASS(class)->stock_id = MN_STOCK_UNSUPPORTED;
-    MN_MAILBOX_CLASS(class)->format = _("unsupported");
-  }
-  
-  public MNMailbox *
-    new (MN:URI *uri (check null type),
-	 const char *reason (check null))
-  {
-    return MN_MAILBOX(GET_NEW_VARG(MN_MAILBOX_PROP_URI(G_OBJECT(uri)),
-				   MN_UNSUPPORTED_MAILBOX_PROP_REASON((char *) reason),
-				   NULL));
-  }
-}
diff --git a/src/mn-unsupported-mailbox.h b/src/mn-unsupported-mailbox.h
@@ -1,77 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include "mn-mailbox.h"
-
-#ifndef __MN_UNSUPPORTED_MAILBOX_H__
-#define __MN_UNSUPPORTED_MAILBOX_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_UNSUPPORTED_MAILBOX	(mn_unsupported_mailbox_get_type())
-#define MN_UNSUPPORTED_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_unsupported_mailbox_get_type(), MNUnsupportedMailbox)
-#define MN_UNSUPPORTED_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_unsupported_mailbox_get_type(), MNUnsupportedMailbox const)
-#define MN_UNSUPPORTED_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_unsupported_mailbox_get_type(), MNUnsupportedMailboxClass)
-#define MN_IS_UNSUPPORTED_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_unsupported_mailbox_get_type ())
-
-#define MN_UNSUPPORTED_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_unsupported_mailbox_get_type(), MNUnsupportedMailboxClass)
-
-/* Private structure type */
-typedef struct _MNUnsupportedMailboxPrivate MNUnsupportedMailboxPrivate;
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_UNSUPPORTED_MAILBOX__
-#define __TYPEDEF_MN_UNSUPPORTED_MAILBOX__
-typedef struct _MNUnsupportedMailbox MNUnsupportedMailbox;
-#endif
-struct _MNUnsupportedMailbox {
-	MNMailbox __parent__;
-	/*< private >*/
-	MNUnsupportedMailboxPrivate *_priv;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNUnsupportedMailboxClass MNUnsupportedMailboxClass;
-struct _MNUnsupportedMailboxClass {
-	MNMailboxClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_unsupported_mailbox_get_type	(void);
-const char * 	mn_unsupported_mailbox_get_reason	(MNUnsupportedMailbox * self);
-MNMailbox * 	mn_unsupported_mailbox_new	(MNURI * uri,
-					const char * reason);
-
-/*
- * Argument wrapping macros
- */
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
-#define MN_UNSUPPORTED_MAILBOX_PROP_REASON(arg)    	"reason", __extension__ ({gchar *z = (arg); z;})
-#define MN_UNSUPPORTED_MAILBOX_GET_PROP_REASON(arg)	"reason", __extension__ ({gchar **z = (arg); z;})
-#else /* __GNUC__ && !__STRICT_ANSI__ */
-#define MN_UNSUPPORTED_MAILBOX_PROP_REASON(arg)    	"reason",(gchar *)(arg)
-#define MN_UNSUPPORTED_MAILBOX_GET_PROP_REASON(arg)	"reason",(gchar **)(arg)
-#endif /* __GNUC__ && !__STRICT_ANSI__ */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-uri-private.h b/src/mn-uri-private.h
@@ -1,17 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#ifndef __MN_URI_PRIVATE_H__
-#define __MN_URI_PRIVATE_H__
-
-#include "mn-uri.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-uri.c b/src/mn-uri.c
@@ -1,883 +0,0 @@
-/* Generated by GOB (v2.0.11) on Sun Mar  6 22:34:28 2005
-   (do not edit directly) */
-
-/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
-
-#define GOB_VERSION_MAJOR 2
-#define GOB_VERSION_MINOR 0
-#define GOB_VERSION_PATCHLEVEL 11
-
-#define selfp (self->_priv)
-
-#include "mn-uri.h"
-
-#include "mn-uri-private.h"
-
-#ifdef G_LIKELY
-#define ___GOB_LIKELY(expr) G_LIKELY(expr)
-#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
-#else /* ! G_LIKELY */
-#define ___GOB_LIKELY(expr) (expr)
-#define ___GOB_UNLIKELY(expr) (expr)
-#endif /* G_LIKELY */
-
-#line 54 "mn-uri.gob"
-
-#include "config.h"
-#include <stdio.h>		/* required by stdlib.h on Darwin */
-#include <stdlib.h>		/* required by sys/socket.h on Darwin */
-#include <stdarg.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include <eel/eel.h>
-#include "mn-util.h"
-
-  typedef struct
-  {
-    const char		*name;
-
-    MNURIType		type;
-    MNURIFlags		flags;
-
-    int			default_port;
-    const char		*default_path;
-  } SchemeInfo;
-    
-  static const SchemeInfo our_schemes[] = {
-    { "pop",	MN_URI_POP,	0,		110,	NULL },
-    { "pops",	MN_URI_POP,	MN_URI_SSL,	995,	NULL },
-    { "imap",	MN_URI_IMAP,	0,		143,	"INBOX" },
-    { "imaps",	MN_URI_IMAP,	MN_URI_SSL,	993,	"INBOX" },
-    { "gmail",	MN_URI_GMAIL,	0,		-1,	NULL }
-  };
-
-#line 60 "mn-uri.c"
-/* self casting macros */
-#define SELF(x) MN_URI(x)
-#define SELF_CONST(x) MN_URI_CONST(x)
-#define IS_SELF(x) MN_IS_URI(x)
-#define TYPE_SELF MN_TYPE_URI
-#define SELF_CLASS(x) MN_URI_CLASS(x)
-
-#define SELF_GET_CLASS(x) MN_URI_GET_CLASS(x)
-
-/* self typedefs */
-typedef MNURI Self;
-typedef MNURIClass SelfClass;
-
-/* here are local prototypes */
-static void mn_uri_init (MNURI * o) G_GNUC_UNUSED;
-static void mn_uri_class_init (MNURIClass * c) G_GNUC_UNUSED;
-static gboolean mn_uri_is_ipv6_address (const char * hostname) G_GNUC_UNUSED;
-static const SchemeInfo * mn_uri_get_scheme_info (const char * scheme) G_GNUC_UNUSED;
-static void mn_uri_parse (MNURI * self) G_GNUC_UNUSED;
-static void mn_uri_build (MNURI * self) G_GNUC_UNUSED;
-static void mn_uri_set_human_readable (MNURI * self) G_GNUC_UNUSED;
-static void mn_uri_post_init (MNURI * self) G_GNUC_UNUSED;
-
-/* pointer to the class of our parent */
-static GObjectClass *parent_class = NULL;
-
-/* Short form macros */
-#define self_is_ipv6_address mn_uri_is_ipv6_address
-#define self_has_query mn_uri_has_query
-#define self_get_system_mailbox mn_uri_get_system_mailbox
-#define self_get_scheme_info mn_uri_get_scheme_info
-#define self_get_default_port mn_uri_get_default_port
-#define self_get_default_path mn_uri_get_default_path
-#define self_parse mn_uri_parse
-#define self_build mn_uri_build
-#define self_set_human_readable mn_uri_set_human_readable
-#define self_post_init mn_uri_post_init
-#define self_new mn_uri_new
-#define self_new_pop mn_uri_new_pop
-#define self_new_imap mn_uri_new_imap
-#define self_new_gmail mn_uri_new_gmail
-GType
-mn_uri_get_type (void)
-{
-	static GType type = 0;
-
-	if ___GOB_UNLIKELY(type == 0) {
-		static const GTypeInfo info = {
-			sizeof (MNURIClass),
-			(GBaseInitFunc) NULL,
-			(GBaseFinalizeFunc) NULL,
-			(GClassInitFunc) mn_uri_class_init,
-			(GClassFinalizeFunc) NULL,
-			NULL /* class_data */,
-			sizeof (MNURI),
-			0 /* n_preallocs */,
-			(GInstanceInitFunc) mn_uri_init,
-			NULL
-		};
-
-		type = g_type_register_static (G_TYPE_OBJECT, "MNURI", &info, (GTypeFlags)0);
-	}
-
-	return type;
-}
-
-/* a macro for creating a new object of our type */
-#define GET_NEW ((MNURI *)g_object_new(mn_uri_get_type(), NULL))
-
-/* a function for creating a new object of our type */
-#include <stdarg.h>
-static MNURI * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
-static MNURI *
-GET_NEW_VARG (const char *first, ...)
-{
-	MNURI *ret;
-	va_list ap;
-	va_start (ap, first);
-	ret = (MNURI *)g_object_new_valist (mn_uri_get_type (), first, ap);
-	va_end (ap);
-	return ret;
-}
-
-
-static void
-___dispose (GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:URI::dispose"
-	MNURI *self G_GNUC_UNUSED = MN_URI (obj_self);
-	if (G_OBJECT_CLASS (parent_class)->dispose) \
-		(* G_OBJECT_CLASS (parent_class)->dispose) (obj_self);
-#line 92 "mn-uri.gob"
-	if(self->vfs) { gnome_vfs_uri_unref ((gpointer) self->vfs); self->vfs = NULL; }
-#line 154 "mn-uri.c"
-}
-#undef __GOB_FUNCTION__
-
-
-static void
-___finalize(GObject *obj_self)
-{
-#define __GOB_FUNCTION__ "MN:URI::finalize"
-	MNURI *self G_GNUC_UNUSED = MN_URI (obj_self);
-	if(G_OBJECT_CLASS(parent_class)->finalize) \
-		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
-#line 91 "mn-uri.gob"
-	if(self->text) { g_free ((gpointer) self->text); self->text = NULL; }
-#line 168 "mn-uri.c"
-#line 93 "mn-uri.gob"
-	if(self->human_readable) { g_free ((gpointer) self->human_readable); self->human_readable = NULL; }
-#line 171 "mn-uri.c"
-#line 95 "mn-uri.gob"
-	if(self->scheme) { g_free ((gpointer) self->scheme); self->scheme = NULL; }
-#line 174 "mn-uri.c"
-#line 96 "mn-uri.gob"
-	if(self->username) { g_free ((gpointer) self->username); self->username = NULL; }
-#line 177 "mn-uri.c"
-#line 97 "mn-uri.gob"
-	if(self->password) { g_free ((gpointer) self->password); self->password = NULL; }
-#line 180 "mn-uri.c"
-#line 98 "mn-uri.gob"
-	if(self->authmech) { g_free ((gpointer) self->authmech); self->authmech = NULL; }
-#line 183 "mn-uri.c"
-#line 99 "mn-uri.gob"
-	if(self->hostname) { g_free ((gpointer) self->hostname); self->hostname = NULL; }
-#line 186 "mn-uri.c"
-#line 101 "mn-uri.gob"
-	if(self->path) { g_free ((gpointer) self->path); self->path = NULL; }
-#line 189 "mn-uri.c"
-#line 102 "mn-uri.gob"
-	if(self->queries) { g_strfreev ((gpointer) self->queries); self->queries = NULL; }
-#line 192 "mn-uri.c"
-}
-#undef __GOB_FUNCTION__
-
-static void 
-mn_uri_init (MNURI * o G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:URI::init"
-#line 54 "mn-uri.gob"
-	o->text = NULL;
-#line 202 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->vfs = NULL;
-#line 205 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->human_readable = NULL;
-#line 208 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->scheme = NULL;
-#line 211 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->username = NULL;
-#line 214 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->password = NULL;
-#line 217 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->authmech = NULL;
-#line 220 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->hostname = NULL;
-#line 223 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->port = -1;
-#line 226 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->path = NULL;
-#line 229 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->queries = NULL;
-#line 232 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->type = MN_URI_UNKNOWN;
-#line 235 "mn-uri.c"
-#line 54 "mn-uri.gob"
-	o->flags = 0;
-#line 238 "mn-uri.c"
-}
-#undef __GOB_FUNCTION__
-static void 
-mn_uri_class_init (MNURIClass * c G_GNUC_UNUSED)
-{
-#define __GOB_FUNCTION__ "MN:URI::class_init"
-	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
-
-	parent_class = g_type_class_ref (G_TYPE_OBJECT);
-
-	g_object_class->dispose = ___dispose;
-	g_object_class->finalize = ___finalize;
-}
-#undef __GOB_FUNCTION__
-
-
-
-#line 107 "mn-uri.gob"
-static gboolean 
-mn_uri_is_ipv6_address (const char * hostname)
-#line 259 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::is_ipv6_address"
-{
-#line 109 "mn-uri.gob"
-	
-    char dummy[16];		/* sizeof(struct in6_addr) */
-
-    g_return_val_if_fail(hostname != NULL, FALSE);
-
-    return inet_pton(AF_INET6, hostname, dummy) == 1;
-  }}
-#line 271 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 117 "mn-uri.gob"
-gboolean 
-mn_uri_has_query (MNURI * self, const char * query)
-#line 277 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::has_query"
-#line 117 "mn-uri.gob"
-	g_return_val_if_fail (self != NULL, (gboolean )0);
-#line 117 "mn-uri.gob"
-	g_return_val_if_fail (MN_IS_URI (self), (gboolean )0);
-#line 117 "mn-uri.gob"
-	g_return_val_if_fail (query != NULL, (gboolean )0);
-#line 286 "mn-uri.c"
-{
-#line 119 "mn-uri.gob"
-	
-    return self->queries && eel_g_strv_find(self->queries, query) != -1;
-  }}
-#line 292 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 123 "mn-uri.gob"
-const char * 
-mn_uri_get_system_mailbox (void)
-#line 298 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_system_mailbox"
-{
-#line 125 "mn-uri.gob"
-	
-    static char *global_uri = NULL;
-    G_LOCK_DEFINE_STATIC(global_uri);
-    const char *uri;
-
-    G_LOCK(global_uri);
-    if (! global_uri)
-      {
-	const char *mail = g_getenv("MAIL");
-	if (mail)
-	  global_uri = gnome_vfs_get_uri_from_local_path(mail);
-      }
-    uri = global_uri;
-    G_UNLOCK(global_uri);
-
-    return uri;
-  }}
-#line 320 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 143 "mn-uri.gob"
-static const SchemeInfo * 
-mn_uri_get_scheme_info (const char * scheme)
-#line 326 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_scheme_info"
-{
-#line 145 "mn-uri.gob"
-	
-    int i;
-
-    for (i = 0; i < G_N_ELEMENTS(our_schemes); i++)
-      if (! strcmp(scheme, our_schemes[i].name))
-	return &our_schemes[i];
-
-    return NULL;
-  }}
-#line 340 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 155 "mn-uri.gob"
-int 
-mn_uri_get_default_port (const char * scheme)
-#line 346 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_default_port"
-#line 155 "mn-uri.gob"
-	g_return_val_if_fail (scheme != NULL, (int )0);
-#line 351 "mn-uri.c"
-{
-#line 157 "mn-uri.gob"
-	
-    const SchemeInfo *scheme_info;
-
-    scheme_info = self_get_scheme_info(scheme);
-    return scheme_info ? scheme_info->default_port : -1;
-  }}
-#line 360 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 164 "mn-uri.gob"
-const char * 
-mn_uri_get_default_path (const char * scheme)
-#line 366 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::get_default_path"
-#line 164 "mn-uri.gob"
-	g_return_val_if_fail (scheme != NULL, (const char * )0);
-#line 371 "mn-uri.c"
-{
-#line 166 "mn-uri.gob"
-	
-    const SchemeInfo *scheme_info;
-
-    scheme_info = self_get_scheme_info(scheme);
-    return scheme_info ? scheme_info->default_path : NULL;
-  }}
-#line 380 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 173 "mn-uri.gob"
-static void 
-mn_uri_parse (MNURI * self)
-#line 386 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::parse"
-#line 173 "mn-uri.gob"
-	g_return_if_fail (self != NULL);
-#line 173 "mn-uri.gob"
-	g_return_if_fail (MN_IS_URI (self));
-#line 393 "mn-uri.c"
-{
-#line 175 "mn-uri.gob"
-	
-    int len;
-    int buflen;
-
-    if (self->vfs || ! self->text) /* no need to parse, or already parsed */
-      return;
-
-    len = strlen(self->text);
-    buflen = len + 1;
-
-    {
-      char *pat;
-      char scheme_buf[buflen];
-      char auth_buf[buflen];
-      char location_buf[buflen];
-      char username_buf[buflen];
-      char password_buf[buflen];
-      char authmech_buf[buflen];
-      char hostname_buf[buflen];
-      int _port;
-      char path_buf[buflen];
-      char queries_buf[buflen];
-      gboolean has_location = FALSE;
-      gboolean has_password = FALSE;
-      gboolean has_authmech = FALSE;
-      gboolean has_port = FALSE;
-      gboolean has_path = FALSE;
-      gboolean has_queries = FALSE;
-      int n;
-
-      /* split URI in 3 parts: scheme, auth and location */
-
-      pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
-      n = sscanf(self->text, pat, scheme_buf, auth_buf, location_buf);
-      g_free(pat);
-
-      if (n >= 2)
-	{
-	  if (n == 3)
-	    has_location = TRUE;
-	}
-      else
-	return;			/* unparsable */
-
-      /* split auth part in 3 subparts: username, password and authmech */
-
-      /*
-       * For backward compatibility with previous versions of Mail
-       * Notification, we also support ;auth= (in lowercase).
-       */
-      
-      pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
-      n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
-      g_free(pat);
-
-      if (n >= 2)
-	{
-	  has_password = TRUE;
-	  if (n == 3)
-	    has_authmech = TRUE;
-	}
-      else
-	{
-	  pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
-	  n = sscanf(auth_buf, pat, username_buf, authmech_buf);
-	  g_free(pat);
-
-	  if (n >= 1)
-	    {
-	      if (n == 2)
-		has_authmech = TRUE;
-	    }
-	  else
-	    return;		/* unparsable */
-	}
-
-      if (has_location)
-	{
-	  char hostport_buf[buflen];
-
-	  /* split location part in 3 subparts: hostport, path and queries */
-
-	  pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
-	  n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
-	  g_free(pat);
-
-	  if (n >= 2)
-	    {
-	      has_path = TRUE;
-	      if (n == 3)
-		has_queries = TRUE;
-	    }
-	  else
-	    {
-	      pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
-	      n = sscanf(location_buf, pat, hostport_buf, queries_buf);
-	      g_free(pat);
-
-	      if (n == 2)
-		has_queries = TRUE;
-	    }
-
-	  /* split hostport in 2 subparts: host and port */
-
-	  pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
-	  n = sscanf(hostport_buf, pat, hostname_buf, &_port);
-	  g_free(pat);
-	
-	  if (n < 1)
-	    {
-	      pat = g_strdup_printf("%%%i[^:]:%%u", len);
-	      n = sscanf(hostport_buf, pat, hostname_buf, &_port);
-	      g_free(pat);
-	    }
-	
-	  if (n == 2)
-	    has_port = TRUE;
-	}
-
-      self->scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
-      self->username = gnome_vfs_unescape_string(username_buf, NULL);
-      if (has_password)
-	self->password = gnome_vfs_unescape_string(password_buf, NULL);
-      if (has_authmech)
-	self->authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
-      if (has_location)
-	self->hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
-      self->port = has_port ? _port : self_get_default_port(self->scheme);
-      self->path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : g_strdup(self_get_default_path(self->scheme));
-      if (has_queries)
-	{
-	  int i;
-	    
-	  self->queries = g_strsplit(queries_buf, "&", 0);
-	  for (i = 0; self->queries[i]; i++)
-	    {
-	      char *unescaped;
-
-	      unescaped = gnome_vfs_unescape_string(self->queries[i], NULL);
-
-	      g_free(self->queries[i]);
-	      self->queries[i] = unescaped;
-	    }
-	}
-    }
-  }}
-#line 542 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 322 "mn-uri.gob"
-static void 
-mn_uri_build (MNURI * self)
-#line 548 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::build"
-#line 322 "mn-uri.gob"
-	g_return_if_fail (self != NULL);
-#line 322 "mn-uri.gob"
-	g_return_if_fail (MN_IS_URI (self));
-#line 555 "mn-uri.c"
-{
-#line 324 "mn-uri.gob"
-	
-    char *canonical = NULL;
-
-    if (self->vfs)
-      {
-	g_return_if_fail(self->text != NULL);
-	canonical = gnome_vfs_make_uri_canonical(self->text);
-      }
-    else if (self->scheme)
-      {
-	GString *string;
-	char *escaped;
-	int i;
-	
-	g_return_if_fail(self->username != NULL);
-
-	escaped = gnome_vfs_escape_string(self->scheme);
-	string = g_string_new(escaped);
-	g_free(escaped);
-
-	escaped = gnome_vfs_escape_string(self->username);
-	g_string_append_printf(string, "://%s", escaped);
-	g_free(escaped);
-
-	if (self->password)
-	  {
-	    escaped = gnome_vfs_escape_string(self->password);
-	    g_string_append_printf(string, ":%s", escaped);
-	    g_free(escaped);
-	  }
-
-	if (self->authmech)
-	  {
-	    escaped = gnome_vfs_escape_string(self->authmech);
-	    g_string_append_printf(string, ";AUTH=%s", escaped);
-	    g_free(escaped);
-	  }
-
-	if (self->hostname)
-	  {
-	    escaped = gnome_vfs_escape_host_and_path_string(self->hostname);
-	    g_string_append_printf(string, self_is_ipv6_address(self->hostname) ? "@[%s]" : "@%s", escaped);
-	    g_free(escaped);
-	  }
-
-	if (self->port >= 0 && self->port != self_get_default_port(self->scheme))
-	  g_string_append_printf(string, ":%i", self->port);
-
-	if (self->path)
-	  {
-	    const char *default_path;
-
-	    default_path = self_get_default_path(self->scheme);
-	    if (! default_path || strcmp(self->path, default_path))
-	      {
-		escaped = gnome_vfs_escape_path_string(self->path);
-		g_string_append_printf(string, "/%s", escaped);
-		g_free(escaped);
-	      }
-	  }
-
-	if (self->queries)
-	  for (i = 0; self->queries[i]; i++)
-	    {
-	      g_string_append_c(string, i == 0 ? '?' : '&');
-
-	      escaped = gnome_vfs_escape_string(self->queries[i]);
-	      g_string_append(string, escaped);
-	      g_free(escaped);
-	    }
-
-	canonical = g_string_free(string, FALSE);
-      }
-
-    if (canonical)
-      {
-	g_free(self->text);
-	self->text = canonical;
-      }
-  }}
-#line 638 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 405 "mn-uri.gob"
-static void 
-mn_uri_set_human_readable (MNURI * self)
-#line 644 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::set_human_readable"
-#line 405 "mn-uri.gob"
-	g_return_if_fail (self != NULL);
-#line 405 "mn-uri.gob"
-	g_return_if_fail (MN_IS_URI (self));
-#line 651 "mn-uri.c"
-{
-#line 407 "mn-uri.gob"
-	
-    g_return_if_fail(self->human_readable == NULL);
-
-    if (MN_URI_IS_SYSTEM_MAILBOX(self))
-      self->human_readable = g_strdup(_("System Mailbox"));
-    else if (self->vfs)
-      {
-	char *path;
-	
-	path = gnome_vfs_get_local_path_from_uri(self->text);
-	if (path)
-	  {
-	    self->human_readable = g_filename_to_utf8(path, -1, NULL, NULL, NULL);
-	    g_free(path);
-	  }
-
-	if (! self->human_readable)
-	  self->human_readable = gnome_vfs_uri_to_string(self->vfs, GNOME_VFS_URI_HIDE_PASSWORD);
-      }
-    else if (MN_URI_IS_POP(self))
-      self->human_readable = g_strdup_printf("%s@%s", self->username, self->hostname);
-    else if (MN_URI_IS_IMAP(self))
-      {
-	const char *default_path = self_get_default_path(self->scheme);
-	self->human_readable = (self->path && (! default_path || strcmp(self->path, default_path)))
-	  ? g_strdup_printf("%s@%s/%s", self->username, self->hostname, self->path)
-	  : g_strdup_printf("%s@%s", self->username, self->hostname);
-      }
-    else if (MN_URI_IS_GMAIL(self))
-      self->human_readable = g_strdup_printf("%s@gmail.com", self->username);
-    else
-      self->human_readable = g_strdup(self->text);
-  }}
-#line 687 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 441 "mn-uri.gob"
-static void 
-mn_uri_post_init (MNURI * self)
-#line 693 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::post_init"
-#line 441 "mn-uri.gob"
-	g_return_if_fail (self != NULL);
-#line 441 "mn-uri.gob"
-	g_return_if_fail (MN_IS_URI (self));
-#line 700 "mn-uri.c"
-{
-#line 443 "mn-uri.gob"
-	
-    const char *system_uri;
-
-    self_parse(self);
-    self_build(self);
-    
-    if (self->vfs)
-      {
-	self->type = MN_URI_VFS;
-	if (gnome_vfs_uri_is_local(self->vfs))
-	  self->flags |= MN_URI_LOCAL;
-      }
-    else if (self->scheme)
-      {
-	const SchemeInfo *scheme_info;
-
-	scheme_info = self_get_scheme_info(self->scheme);
-	if (scheme_info)
-	  {
-	    self->type = scheme_info->type;
-	    self->flags |= scheme_info->flags;
-	  }
-
-	if ((MN_URI_IS_POP(self) && self_has_query(self, "STLS"))
-	    || (MN_URI_IS_IMAP(self) && self_has_query(self, "STARTTLS")))
-	  self->flags |= MN_URI_INBAND_SSL;
-      }
-
-    system_uri = self_get_system_mailbox();
-    if (system_uri && ! strcmp(system_uri, self->text))
-      self->flags |= MN_URI_SYSTEM_MAILBOX;
-
-    self_set_human_readable(self);
-  }}
-#line 737 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 478 "mn-uri.gob"
-MNURI * 
-mn_uri_new (const char * text_uri)
-#line 743 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new"
-#line 478 "mn-uri.gob"
-	g_return_val_if_fail (text_uri != NULL, (MNURI * )0);
-#line 748 "mn-uri.c"
-{
-#line 480 "mn-uri.gob"
-	
-    Self *self;
-    char *scheme;
-
-    self = GET_NEW;
-    self->text = g_str_has_prefix(text_uri, "pop3:") /* also handle obsolete pop3 locators */
-      ? g_strconcat("pop://", text_uri + 5, NULL)
-      : g_strdup(text_uri);
-
-    /* only use GnomeVFS if we can't handle it ourselves */
-    scheme = gnome_vfs_get_uri_scheme(self->text);
-    if (! scheme || ! self_get_scheme_info(scheme))
-      self->vfs = gnome_vfs_uri_new(self->text);
-    g_free(scheme);
-    
-    self_post_init(self);
-    return self;
-  }}
-#line 769 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 499 "mn-uri.gob"
-MNURI * 
-mn_uri_new_pop (gboolean ssl, gboolean stls, const char * username, const char * password, const char * authmech, const char * hostname, int port)
-#line 775 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new_pop"
-#line 499 "mn-uri.gob"
-	g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 499 "mn-uri.gob"
-	g_return_val_if_fail (hostname != NULL, (MNURI * )0);
-#line 782 "mn-uri.c"
-{
-#line 507 "mn-uri.gob"
-	
-    Self *self;
-
-    self = GET_NEW;
-
-    self->scheme = g_strdup(ssl ? "pops" : "pop");
-    self->username = g_strdup(username);
-    self->password = g_strdup(password);
-    self->authmech = g_strdup(authmech);
-    self->hostname = g_strdup(hostname);
-    self->port = port;
-    if (stls)
-      {
-	self->queries = g_new(char *, 2);
-	self->queries[0] = g_strdup("STLS");
-	self->queries[1] = NULL;
-      }
-    
-    self_post_init(self);
-    return self;
-  }}
-#line 806 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 529 "mn-uri.gob"
-MNURI * 
-mn_uri_new_imap (gboolean ssl, gboolean starttls, const char * username, const char * password, const char * authmech, const char * hostname, int port, const char * mailbox, gboolean disable_idle)
-#line 812 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new_imap"
-#line 529 "mn-uri.gob"
-	g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 529 "mn-uri.gob"
-	g_return_val_if_fail (hostname != NULL, (MNURI * )0);
-#line 529 "mn-uri.gob"
-	g_return_val_if_fail (mailbox != NULL, (MNURI * )0);
-#line 821 "mn-uri.c"
-{
-#line 539 "mn-uri.gob"
-	
-    Self *self;
-    GSList *queries = NULL;
-
-    self = GET_NEW;
-
-    self->scheme = g_strdup(ssl ? "imaps" : "imap");
-    self->username = g_strdup(username);
-    self->password = g_strdup(password);
-    self->authmech = g_strdup(authmech);
-    self->hostname = g_strdup(hostname);
-    self->port = port;
-    self->path = g_strdup(mailbox);
-    if (starttls)
-      queries = g_slist_append(queries, "STARTTLS");
-    if (disable_idle)
-      queries = g_slist_append(queries, "noidle");
-
-    if (queries)
-      {
-	int i = 0;
-	GSList *l;
-
-	self->queries = g_new(char *, g_slist_length(queries) + 1);
-	MN_LIST_FOREACH(l, queries)
-	  self->queries[i++] = g_strdup(l->data);
-	self->queries[i] = NULL;
-	g_slist_free(queries);
-      }
-    
-    self_post_init(self);
-    return self;
-  }}
-#line 857 "mn-uri.c"
-#undef __GOB_FUNCTION__
-
-#line 573 "mn-uri.gob"
-MNURI * 
-mn_uri_new_gmail (const char * username, const char * password)
-#line 863 "mn-uri.c"
-{
-#define __GOB_FUNCTION__ "MN:URI::new_gmail"
-#line 573 "mn-uri.gob"
-	g_return_val_if_fail (username != NULL, (MNURI * )0);
-#line 868 "mn-uri.c"
-{
-#line 576 "mn-uri.gob"
-	
-    Self *self;
-
-    self = GET_NEW;
-
-    self->scheme = g_strdup("gmail");
-    self->username = g_strdup(username);
-    self->password = g_strdup(password);
-    
-    self_post_init(self);
-    return self;
-  }}
-#line 883 "mn-uri.c"
-#undef __GOB_FUNCTION__
diff --git a/src/mn-uri.gob b/src/mn-uri.gob
@@ -1,588 +0,0 @@
-/* 
- * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-requires 2.0.10
-
-%headertop{
-#include <libgnomevfs/gnome-vfs.h>
-%}
-
-%h{
-  typedef enum
-  {
-    MN_URI_VFS,
-    MN_URI_POP,
-    MN_URI_IMAP,
-    MN_URI_GMAIL,
-    MN_URI_UNKNOWN
-  } MNURIType;
-
-  typedef enum
-  {
-    MN_URI_LOCAL		= 1 << 0,
-    MN_URI_SYSTEM_MAILBOX	= 1 << 1,
-    MN_URI_SSL			= 1 << 2,
-    MN_URI_INBAND_SSL		= 1 << 3
-  } MNURIFlags;
-
-#define MN_URI_IS_VFS(uri)		((uri)->type == MN_URI_VFS)
-#define MN_URI_IS_POP(uri)		((uri)->type == MN_URI_POP)
-#define MN_URI_IS_IMAP(uri)		((uri)->type == MN_URI_IMAP)
-#define MN_URI_IS_GMAIL(uri)		((uri)->type == MN_URI_GMAIL)
-
-#define MN_URI_IS_LOCAL(uri)		(((uri)->flags & MN_URI_LOCAL) != 0)
-#define MN_URI_IS_SYSTEM_MAILBOX(uri)	(((uri)->flags & MN_URI_SYSTEM_MAILBOX) != 0)
-#define MN_URI_IS_SSL(uri)		(((uri)->flags & MN_URI_SSL) != 0)
-#define MN_URI_IS_INBAND_SSL(uri)	(((uri)->flags & MN_URI_INBAND_SSL) != 0)
-%}
-
-%{
-#include "config.h"
-#include <stdio.h>		/* required by stdlib.h on Darwin */
-#include <stdlib.h>		/* required by sys/socket.h on Darwin */
-#include <stdarg.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <glib/gi18n.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include <eel/eel.h>
-#include "mn-util.h"
-
-  typedef struct
-  {
-    const char		*name;
-
-    MNURIType		type;
-    MNURIFlags		flags;
-
-    int			default_port;
-    const char		*default_path;
-  } SchemeInfo;
-    
-  static const SchemeInfo our_schemes[] = {
-    { "pop",	MN_URI_POP,	0,		110,	NULL },
-    { "pops",	MN_URI_POP,	MN_URI_SSL,	995,	NULL },
-    { "imap",	MN_URI_IMAP,	0,		143,	"INBOX" },
-    { "imaps",	MN_URI_IMAP,	MN_URI_SSL,	993,	"INBOX" },
-    { "gmail",	MN_URI_GMAIL,	0,		-1,	NULL }
-  };
-%}
-
-class MN:URI from G:Object
-{
-  public char *text = NULL destroywith g_free;			/* always defined */
-  public GnomeVFSURI *vfs = NULL unrefwith gnome_vfs_uri_unref;
-  public char *human_readable = NULL destroywith g_free;	/* always defined */
-  
-  public char *scheme = NULL destroywith g_free;
-  public char *username = NULL destroywith g_free; /* if scheme is defined, always defined */
-  public char *password = NULL destroywith g_free;
-  public char *authmech = NULL destroywith g_free;
-  public char *hostname = NULL destroywith g_free;
-  public int port = -1;
-  public char *path = NULL destroywith g_free;
-  public char **queries = NULL destroywith g_strfreev;
-
-  public MNURIType type = MN_URI_UNKNOWN;
-  public MNURIFlags flags = 0;
-
-  private gboolean
-    is_ipv6_address (const char *hostname)
-  {
-    char dummy[16];		/* sizeof(struct in6_addr) */
-
-    g_return_val_if_fail(hostname != NULL, FALSE);
-
-    return inet_pton(AF_INET6, hostname, dummy) == 1;
-  }
-  
-  public gboolean
-    has_query (self, const char *query (check null))
-  {
-    return self->queries && eel_g_strv_find(self->queries, query) != -1;
-  }
-  
-  public const char *
-    get_system_mailbox (void)
-  {
-    static char *global_uri = NULL;
-    G_LOCK_DEFINE_STATIC(global_uri);
-    const char *uri;
-
-    G_LOCK(global_uri);
-    if (! global_uri)
-      {
-	const char *mail = g_getenv("MAIL");
-	if (mail)
-	  global_uri = gnome_vfs_get_uri_from_local_path(mail);
-      }
-    uri = global_uri;
-    G_UNLOCK(global_uri);
-
-    return uri;
-  }
-    
-  private const SchemeInfo *
-    get_scheme_info (const char *scheme)
-  {
-    int i;
-
-    for (i = 0; i < G_N_ELEMENTS(our_schemes); i++)
-      if (! strcmp(scheme, our_schemes[i].name))
-	return &our_schemes[i];
-
-    return NULL;
-  }
-  
-  public int
-    get_default_port (const char *scheme (check null))
-  {
-    const SchemeInfo *scheme_info;
-
-    scheme_info = self_get_scheme_info(scheme);
-    return scheme_info ? scheme_info->default_port : -1;
-  }
-  
-  public const char *
-    get_default_path (const char *scheme (check null))
-  {
-    const SchemeInfo *scheme_info;
-
-    scheme_info = self_get_scheme_info(scheme);
-    return scheme_info ? scheme_info->default_path : NULL;
-  }
-  
-  private void
-    parse (self)
-  {
-    int len;
-    int buflen;
-
-    if (self->vfs || ! self->text) /* no need to parse, or already parsed */
-      return;
-
-    len = strlen(self->text);
-    buflen = len + 1;
-
-    {
-      char *pat;
-      char scheme_buf[buflen];
-      char auth_buf[buflen];
-      char location_buf[buflen];
-      char username_buf[buflen];
-      char password_buf[buflen];
-      char authmech_buf[buflen];
-      char hostname_buf[buflen];
-      int _port;
-      char path_buf[buflen];
-      char queries_buf[buflen];
-      gboolean has_location = FALSE;
-      gboolean has_password = FALSE;
-      gboolean has_authmech = FALSE;
-      gboolean has_port = FALSE;
-      gboolean has_path = FALSE;
-      gboolean has_queries = FALSE;
-      int n;
-
-      /* split URI in 3 parts: scheme, auth and location */
-
-      pat = g_strdup_printf("%%%i[^:]://%%%i[^@]@%%%is", len, len, len);
-      n = sscanf(self->text, pat, scheme_buf, auth_buf, location_buf);
-      g_free(pat);
-
-      if (n >= 2)
-	{
-	  if (n == 3)
-	    has_location = TRUE;
-	}
-      else
-	return;			/* unparsable */
-
-      /* split auth part in 3 subparts: username, password and authmech */
-
-      /*
-       * For backward compatibility with previous versions of Mail
-       * Notification, we also support ;auth= (in lowercase).
-       */
-      
-      pat = g_strdup_printf("%%%i[^:]:%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len, len);
-      n = sscanf(auth_buf, pat, username_buf, password_buf, authmech_buf);
-      g_free(pat);
-
-      if (n >= 2)
-	{
-	  has_password = TRUE;
-	  if (n == 3)
-	    has_authmech = TRUE;
-	}
-      else
-	{
-	  pat = g_strdup_printf("%%%i[^;];%%*1[aA]%%*1[uU]%%*1[tT]%%*1[hH]=%%%is", len, len);
-	  n = sscanf(auth_buf, pat, username_buf, authmech_buf);
-	  g_free(pat);
-
-	  if (n >= 1)
-	    {
-	      if (n == 2)
-		has_authmech = TRUE;
-	    }
-	  else
-	    return;		/* unparsable */
-	}
-
-      if (has_location)
-	{
-	  char hostport_buf[buflen];
-
-	  /* split location part in 3 subparts: hostport, path and queries */
-
-	  pat = g_strdup_printf("%%%i[^/]/%%%i[^?]?%%%is", len, len, len);
-	  n = sscanf(location_buf, pat, hostport_buf, path_buf, queries_buf);
-	  g_free(pat);
-
-	  if (n >= 2)
-	    {
-	      has_path = TRUE;
-	      if (n == 3)
-		has_queries = TRUE;
-	    }
-	  else
-	    {
-	      pat = g_strdup_printf("%%%i[^?]?%%%is", len, len);
-	      n = sscanf(location_buf, pat, hostport_buf, queries_buf);
-	      g_free(pat);
-
-	      if (n == 2)
-		has_queries = TRUE;
-	    }
-
-	  /* split hostport in 2 subparts: host and port */
-
-	  pat = g_strdup_printf("[%%%i[^]]]:%%u", len);
-	  n = sscanf(hostport_buf, pat, hostname_buf, &_port);
-	  g_free(pat);
-	
-	  if (n < 1)
-	    {
-	      pat = g_strdup_printf("%%%i[^:]:%%u", len);
-	      n = sscanf(hostport_buf, pat, hostname_buf, &_port);
-	      g_free(pat);
-	    }
-	
-	  if (n == 2)
-	    has_port = TRUE;
-	}
-
-      self->scheme = gnome_vfs_unescape_string(scheme_buf, NULL);
-      self->username = gnome_vfs_unescape_string(username_buf, NULL);
-      if (has_password)
-	self->password = gnome_vfs_unescape_string(password_buf, NULL);
-      if (has_authmech)
-	self->authmech = gnome_vfs_unescape_string(authmech_buf, NULL);
-      if (has_location)
-	self->hostname = gnome_vfs_unescape_string(hostname_buf, NULL);
-      self->port = has_port ? _port : self_get_default_port(self->scheme);
-      self->path = has_path ? gnome_vfs_unescape_string(path_buf, NULL) : g_strdup(self_get_default_path(self->scheme));
-      if (has_queries)
-	{
-	  int i;
-	    
-	  self->queries = g_strsplit(queries_buf, "&", 0);
-	  for (i = 0; self->queries[i]; i++)
-	    {
-	      char *unescaped;
-
-	      unescaped = gnome_vfs_unescape_string(self->queries[i], NULL);
-
-	      g_free(self->queries[i]);
-	      self->queries[i] = unescaped;
-	    }
-	}
-    }
-  }
-  
-  private void
-    build (self)
-  {
-    char *canonical = NULL;
-
-    if (self->vfs)
-      {
-	g_return_if_fail(self->text != NULL);
-	canonical = gnome_vfs_make_uri_canonical(self->text);
-      }
-    else if (self->scheme)
-      {
-	GString *string;
-	char *escaped;
-	int i;
-	
-	g_return_if_fail(self->username != NULL);
-
-	escaped = gnome_vfs_escape_string(self->scheme);
-	string = g_string_new(escaped);
-	g_free(escaped);
-
-	escaped = gnome_vfs_escape_string(self->username);
-	g_string_append_printf(string, "://%s", escaped);
-	g_free(escaped);
-
-	if (self->password)
-	  {
-	    escaped = gnome_vfs_escape_string(self->password);
-	    g_string_append_printf(string, ":%s", escaped);
-	    g_free(escaped);
-	  }
-
-	if (self->authmech)
-	  {
-	    escaped = gnome_vfs_escape_string(self->authmech);
-	    g_string_append_printf(string, ";AUTH=%s", escaped);
-	    g_free(escaped);
-	  }
-
-	if (self->hostname)
-	  {
-	    escaped = gnome_vfs_escape_host_and_path_string(self->hostname);
-	    g_string_append_printf(string, self_is_ipv6_address(self->hostname) ? "@[%s]" : "@%s", escaped);
-	    g_free(escaped);
-	  }
-
-	if (self->port >= 0 && self->port != self_get_default_port(self->scheme))
-	  g_string_append_printf(string, ":%i", self->port);
-
-	if (self->path)
-	  {
-	    const char *default_path;
-
-	    default_path = self_get_default_path(self->scheme);
-	    if (! default_path || strcmp(self->path, default_path))
-	      {
-		escaped = gnome_vfs_escape_path_string(self->path);
-		g_string_append_printf(string, "/%s", escaped);
-		g_free(escaped);
-	      }
-	  }
-
-	if (self->queries)
-	  for (i = 0; self->queries[i]; i++)
-	    {
-	      g_string_append_c(string, i == 0 ? '?' : '&');
-
-	      escaped = gnome_vfs_escape_string(self->queries[i]);
-	      g_string_append(string, escaped);
-	      g_free(escaped);
-	    }
-
-	canonical = g_string_free(string, FALSE);
-      }
-
-    if (canonical)
-      {
-	g_free(self->text);
-	self->text = canonical;
-      }
-  }
-
-  private void
-    set_human_readable (self)
-  {
-    g_return_if_fail(self->human_readable == NULL);
-
-    if (MN_URI_IS_SYSTEM_MAILBOX(self))
-      self->human_readable = g_strdup(_("System Mailbox"));
-    else if (self->vfs)
-      {
-	char *path;
-	
-	path = gnome_vfs_get_local_path_from_uri(self->text);
-	if (path)
-	  {
-	    self->human_readable = g_filename_to_utf8(path, -1, NULL, NULL, NULL);
-	    g_free(path);
-	  }
-
-	if (! self->human_readable)
-	  self->human_readable = gnome_vfs_uri_to_string(self->vfs, GNOME_VFS_URI_HIDE_PASSWORD);
-      }
-    else if (MN_URI_IS_POP(self))
-      self->human_readable = g_strdup_printf("%s@%s", self->username, self->hostname);
-    else if (MN_URI_IS_IMAP(self))
-      {
-	const char *default_path = self_get_default_path(self->scheme);
-	self->human_readable = (self->path && (! default_path || strcmp(self->path, default_path)))
-	  ? g_strdup_printf("%s@%s/%s", self->username, self->hostname, self->path)
-	  : g_strdup_printf("%s@%s", self->username, self->hostname);
-      }
-    else if (MN_URI_IS_GMAIL(self))
-      self->human_readable = g_strdup_printf("%s@gmail.com", self->username);
-    else
-      self->human_readable = g_strdup(self->text);
-  }
-  
-  private void
-    post_init (self)
-  {
-    const char *system_uri;
-
-    self_parse(self);
-    self_build(self);
-    
-    if (self->vfs)
-      {
-	self->type = MN_URI_VFS;
-	if (gnome_vfs_uri_is_local(self->vfs))
-	  self->flags |= MN_URI_LOCAL;
-      }
-    else if (self->scheme)
-      {
-	const SchemeInfo *scheme_info;
-
-	scheme_info = self_get_scheme_info(self->scheme);
-	if (scheme_info)
-	  {
-	    self->type = scheme_info->type;
-	    self->flags |= scheme_info->flags;
-	  }
-
-	if ((MN_URI_IS_POP(self) && self_has_query(self, "STLS"))
-	    || (MN_URI_IS_IMAP(self) && self_has_query(self, "STARTTLS")))
-	  self->flags |= MN_URI_INBAND_SSL;
-      }
-
-    system_uri = self_get_system_mailbox();
-    if (system_uri && ! strcmp(system_uri, self->text))
-      self->flags |= MN_URI_SYSTEM_MAILBOX;
-
-    self_set_human_readable(self);
-  }
-  
-  public MNURI *
-    new (const char *text_uri (check null))
-  {
-    Self *self;
-    char *scheme;
-
-    self = GET_NEW;
-    self->text = g_str_has_prefix(text_uri, "pop3:") /* also handle obsolete pop3 locators */
-      ? g_strconcat("pop://", text_uri + 5, NULL)
-      : g_strdup(text_uri);
-
-    /* only use GnomeVFS if we can't handle it ourselves */
-    scheme = gnome_vfs_get_uri_scheme(self->text);
-    if (! scheme || ! self_get_scheme_info(scheme))
-      self->vfs = gnome_vfs_uri_new(self->text);
-    g_free(scheme);
-    
-    self_post_init(self);
-    return self;
-  }
-
-  public MNURI *
-    new_pop (gboolean ssl,
-	     gboolean stls,
-	     const char *username (check null),
-	     const char *password,
-	     const char *authmech,
-	     const char *hostname (check null),
-	     int port)
-  {
-    Self *self;
-
-    self = GET_NEW;
-
-    self->scheme = g_strdup(ssl ? "pops" : "pop");
-    self->username = g_strdup(username);
-    self->password = g_strdup(password);
-    self->authmech = g_strdup(authmech);
-    self->hostname = g_strdup(hostname);
-    self->port = port;
-    if (stls)
-      {
-	self->queries = g_new(char *, 2);
-	self->queries[0] = g_strdup("STLS");
-	self->queries[1] = NULL;
-      }
-    
-    self_post_init(self);
-    return self;
-  }
-
-  public MNURI *
-    new_imap (gboolean ssl,
-	      gboolean starttls,
-	      const char *username (check null),
-	      const char *password,
-	      const char *authmech,
-	      const char *hostname (check null),
-	      int port,
-	      const char *mailbox (check null),
-	      gboolean disable_idle)
-  {
-    Self *self;
-    GSList *queries = NULL;
-
-    self = GET_NEW;
-
-    self->scheme = g_strdup(ssl ? "imaps" : "imap");
-    self->username = g_strdup(username);
-    self->password = g_strdup(password);
-    self->authmech = g_strdup(authmech);
-    self->hostname = g_strdup(hostname);
-    self->port = port;
-    self->path = g_strdup(mailbox);
-    if (starttls)
-      queries = g_slist_append(queries, "STARTTLS");
-    if (disable_idle)
-      queries = g_slist_append(queries, "noidle");
-
-    if (queries)
-      {
-	int i = 0;
-	GSList *l;
-
-	self->queries = g_new(char *, g_slist_length(queries) + 1);
-	MN_LIST_FOREACH(l, queries)
-	  self->queries[i++] = g_strdup(l->data);
-	self->queries[i] = NULL;
-	g_slist_free(queries);
-      }
-    
-    self_post_init(self);
-    return self;
-  }
-
-  public MNURI *
-    new_gmail (const char *username (check null),
-	       const char *password)
-  {
-    Self *self;
-
-    self = GET_NEW;
-
-    self->scheme = g_strdup("gmail");
-    self->username = g_strdup(username);
-    self->password = g_strdup(password);
-    
-    self_post_init(self);
-    return self;
-  }
-}
diff --git a/src/mn-uri.h b/src/mn-uri.h
@@ -1,124 +0,0 @@
-/* Generated by GOB (v2.0.11)   (do not edit directly) */
-
-#include <glib.h>
-#include <glib-object.h>
-
-
-#include <libgnomevfs/gnome-vfs.h>
-
-#ifndef __MN_URI_H__
-#define __MN_URI_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-
-
-  typedef enum
-  {
-    MN_URI_VFS,
-    MN_URI_POP,
-    MN_URI_IMAP,
-    MN_URI_GMAIL,
-    MN_URI_UNKNOWN
-  } MNURIType;
-
-  typedef enum
-  {
-    MN_URI_LOCAL		= 1 << 0,
-    MN_URI_SYSTEM_MAILBOX	= 1 << 1,
-    MN_URI_SSL			= 1 << 2,
-    MN_URI_INBAND_SSL		= 1 << 3
-  } MNURIFlags;
-
-#define MN_URI_IS_VFS(uri)		((uri)->type == MN_URI_VFS)
-#define MN_URI_IS_POP(uri)		((uri)->type == MN_URI_POP)
-#define MN_URI_IS_IMAP(uri)		((uri)->type == MN_URI_IMAP)
-#define MN_URI_IS_GMAIL(uri)		((uri)->type == MN_URI_GMAIL)
-
-#define MN_URI_IS_LOCAL(uri)		(((uri)->flags & MN_URI_LOCAL) != 0)
-#define MN_URI_IS_SYSTEM_MAILBOX(uri)	(((uri)->flags & MN_URI_SYSTEM_MAILBOX) != 0)
-#define MN_URI_IS_SSL(uri)		(((uri)->flags & MN_URI_SSL) != 0)
-#define MN_URI_IS_INBAND_SSL(uri)	(((uri)->flags & MN_URI_INBAND_SSL) != 0)
-
-
-/*
- * Type checking and casting macros
- */
-#define MN_TYPE_URI	(mn_uri_get_type())
-#define MN_URI(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_uri_get_type(), MNURI)
-#define MN_URI_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_uri_get_type(), MNURI const)
-#define MN_URI_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_uri_get_type(), MNURIClass)
-#define MN_IS_URI(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_uri_get_type ())
-
-#define MN_URI_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_uri_get_type(), MNURIClass)
-
-/*
- * Main object structure
- */
-#ifndef __TYPEDEF_MN_URI__
-#define __TYPEDEF_MN_URI__
-typedef struct _MNURI MNURI;
-#endif
-struct _MNURI {
-	GObject __parent__;
-	/*< public >*/
-	char * text;
-	GnomeVFSURI * vfs;
-	char * human_readable;
-	char * scheme;
-	char * username;
-	char * password;
-	char * authmech;
-	char * hostname;
-	int port;
-	char * path;
-	char ** queries;
-	MNURIType type;
-	MNURIFlags flags;
-};
-
-/*
- * Class definition
- */
-typedef struct _MNURIClass MNURIClass;
-struct _MNURIClass {
-	GObjectClass __parent__;
-};
-
-
-/*
- * Public methods
- */
-GType	mn_uri_get_type	(void);
-gboolean 	mn_uri_has_query	(MNURI * self,
-					const char * query);
-const char * 	mn_uri_get_system_mailbox	(void);
-int 	mn_uri_get_default_port	(const char * scheme);
-const char * 	mn_uri_get_default_path	(const char * scheme);
-MNURI * 	mn_uri_new	(const char * text_uri);
-MNURI * 	mn_uri_new_pop	(gboolean ssl,
-					gboolean stls,
-					const char * username,
-					const char * password,
-					const char * authmech,
-					const char * hostname,
-					int port);
-MNURI * 	mn_uri_new_imap	(gboolean ssl,
-					gboolean starttls,
-					const char * username,
-					const char * password,
-					const char * authmech,
-					const char * hostname,
-					int port,
-					const char * mailbox,
-					gboolean disable_idle);
-MNURI * 	mn_uri_new_gmail	(const char * username,
-					const char * password);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif
diff --git a/src/mn-util.c b/src/mn-util.c
@@ -17,11 +17,13 @@
  */
 
 #include "config.h"
+#include <stdio.h>
 #include <string.h>
 #include <stdarg.h>
 #include <stdlib.h>
 #include <time.h>
 #include <errno.h>
+#include <gmodule.h>
 #include <gnome.h>
 #include <glade/glade.h>
 #include <eel/eel.h>
@@ -33,7 +35,14 @@
 
 /*** types *******************************************************************/
 
-enum {
+typedef struct
+{
+  GtkContainer	*container;
+  const char	*callback_prefix;
+} ContainerCreateInterfaceConnectInfo;
+
+enum
+{
   TARGET_URI_LIST,
   TARGET_MOZ_URL
 };
@@ -52,6 +61,16 @@ typedef struct
   
 /*** functions ***************************************************************/
 
+static GtkWidget *mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name);
+
+static void mn_container_create_interface_connect_cb (const char *handler_name,
+						      GObject *object,
+						      const char *signal_name,
+						      const char *signal_data,
+						      GObject *connect_object,
+						      gboolean after,
+						      gpointer user_data);
+
 static int mn_g_str_slist_compare_func (gconstpointer a, gconstpointer b);
 
 static void mn_file_chooser_dialog_file_activated_h (GtkFileChooser *chooser,
@@ -60,6 +79,12 @@ static void mn_file_chooser_dialog_response_h (GtkDialog *dialog,
 					       int response_id,
 					       gpointer user_data);
 
+static gboolean mn_scrolled_window_drag_motion_h (GtkWidget *widget,
+						  GdkDragContext *drag_context,
+						  int x,
+						  int y,
+						  unsigned int time,
+						  gpointer user_data);
 static void mn_drag_data_received_h (GtkWidget *widget,
 				     GdkDragContext *drag_context,
 				     int x,
@@ -109,22 +134,6 @@ mn_info (const char *format, ...)
 }
 
 /**
- * mn_g_slist_delete_link_deep:
- * @list: a #GSList of g_free'able objects
- * @link_: an element in the #GSList
- *
- * Equivalent of g_slist_delete_link() for a list of g_free'able
- * objects.
- *
- * Return value: new head of @list.
- **/
-GSList *
-mn_g_slist_delete_link_deep (GSList *list, GSList *link_)
-{
-  return mn_g_slist_delete_link_deep_custom(list, link_, (GFunc) g_free, NULL);
-}
-
-/**
  * mn_g_slist_delete_link_deep_custom:
  * @list: a #GSList of @element_free_func-freeable objects
  * @link_: an element in the #GSList
@@ -231,6 +240,33 @@ mn_str_isnumeric (const char *str)
   return TRUE;
 }
 
+
+/**
+ * mn_strstr_span:
+ * @big: a string.
+ * @little: a string to search for in @big.
+ *
+ * Locates the first occurrence of @little in @big.
+ *
+ * Return value: a pointer to the character following the first
+ * occurrence of @little in @big, or %NULL if @little does not appear
+ * in @big.
+ **/
+char *
+mn_strstr_span (const char *big, const char *little)
+{
+  char *s;
+
+  g_return_val_if_fail(big != NULL, NULL);
+  g_return_val_if_fail(little != NULL, NULL);
+
+  s = strstr(big, little);
+  if (s)
+    s += strlen(little);
+
+  return s;
+}
+
 GdkPixbuf *
 mn_pixbuf_new (const char *filename)
 {
@@ -249,6 +285,21 @@ mn_pixbuf_new (const char *filename)
   return pixbuf;
 }
 
+static GtkWidget *
+mn_glade_xml_get_widget (GladeXML *xml, const char *widget_name)
+{
+  GtkWidget *widget;
+
+  g_return_val_if_fail(GLADE_IS_XML(xml), NULL);
+  g_return_val_if_fail(widget_name != NULL, NULL);
+  
+  widget = glade_xml_get_widget(xml, widget_name);
+  if (! widget)
+    g_critical(_("widget \"%s\" not found in interface \"%s\""), widget_name, xml->filename);
+
+  return widget;
+}
+
 void
 mn_create_interface (const char *filename, ...)
 {
@@ -271,15 +322,106 @@ mn_create_interface (const char *filename, ...)
       widget = va_arg(args, GtkWidget **);
       g_return_if_fail(widget != NULL);
 
-      *widget = glade_xml_get_widget(xml, widget_name);
-      if (! *widget)
-	g_critical(_("widget \"%s\" not found in interface \"%s\""), widget_name, filename);
+      *widget = mn_glade_xml_get_widget(xml, widget_name);
     }
   va_end(args);
   
   g_object_unref(xml);
 }
 
+void
+mn_container_create_interface (GtkContainer *container,
+			       const char *filename,
+			       const char *child_name,
+			       const char *callback_prefix,
+			       ...)
+{
+  GladeXML *xml;
+  GtkWidget *child;
+  ContainerCreateInterfaceConnectInfo info;
+  va_list args;
+  const char *widget_name;
+
+  g_return_if_fail(GTK_IS_CONTAINER(container));
+  g_return_if_fail(filename != NULL);
+  g_return_if_fail(child_name != NULL);
+  g_return_if_fail(callback_prefix != NULL);
+
+  xml = glade_xml_new(filename, child_name, NULL);
+  g_return_if_fail(xml != NULL);
+
+  child = mn_glade_xml_get_widget(xml, child_name);
+  
+  if (GTK_IS_DIALOG(container))
+    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(container)->vbox), child, TRUE, TRUE, 0);
+  else
+    gtk_container_add(container, child);
+
+  info.container = container;
+  info.callback_prefix = callback_prefix;
+  glade_xml_signal_autoconnect_full(xml, mn_container_create_interface_connect_cb, &info);
+
+  va_start(args, callback_prefix);
+  while ((widget_name = va_arg(args, const char *)))
+    {
+      GtkWidget **widget;
+
+      widget = va_arg(args, GtkWidget **);
+      g_return_if_fail(widget != NULL);
+
+      *widget = mn_glade_xml_get_widget(xml, widget_name);
+    }
+  va_end(args);
+
+  g_object_unref(xml);
+}
+
+static void
+mn_container_create_interface_connect_cb (const char *handler_name,
+					  GObject *object,
+					  const char *signal_name,
+					  const char *signal_data,
+					  GObject *connect_object,
+					  gboolean after,
+					  gpointer user_data)
+{
+  static GModule *module = NULL;
+  ContainerCreateInterfaceConnectInfo *info = user_data;
+  char *cb_name;
+  GCallback cb;
+  GConnectFlags flags;
+
+  if (! module)
+    {
+      module = g_module_open(NULL, 0);
+      if (! module)
+	g_critical(_("unable to open self as a module: %s"), g_module_error());
+    }
+  
+  cb_name = g_strconcat(info->callback_prefix, handler_name, NULL);
+  if (! g_module_symbol(module, cb_name, (gpointer) &cb))
+    g_critical(_("signal handler \"%s\" not found"), cb_name);
+  g_free(cb_name);
+
+  flags = G_CONNECT_SWAPPED;
+  if (after)
+    flags |= G_CONNECT_AFTER;
+
+  g_signal_connect_data(object, signal_name, cb, info->container, NULL, flags);
+}
+
+GtkWindow *
+mn_widget_get_parent_window (GtkWidget *widget)
+{
+  GtkWidget *toplevel;
+
+  g_return_val_if_fail(GTK_IS_WIDGET(widget), NULL);
+
+  toplevel = gtk_widget_get_toplevel(widget);
+
+  return GTK_WIDGET_TOPLEVEL(toplevel) ? GTK_WINDOW(toplevel) : NULL;
+}
+
 /**
  * mn_file_chooser_dialog_allow_select_folder:
  * @dialog: a #GtkFileChooserDialog
@@ -358,12 +500,35 @@ mn_setup_dnd (GtkWidget *widget)
 		    targets,
 		    G_N_ELEMENTS(targets),
 		    GDK_ACTION_COPY);
+
+  if (GTK_IS_SCROLLED_WINDOW(widget))
+    g_signal_connect(widget,
+		     "drag-motion",
+		     G_CALLBACK(mn_scrolled_window_drag_motion_h),
+		     NULL);
+
   g_signal_connect(widget,
 		   "drag-data-received",
 		   G_CALLBACK(mn_drag_data_received_h),
 		   NULL);
 }
 
+static gboolean
+mn_scrolled_window_drag_motion_h (GtkWidget *widget,
+				  GdkDragContext *drag_context,
+				  int x,
+				  int y,
+				  unsigned int time,
+				  gpointer user_data)
+{
+  GtkAdjustment *adjustment;
+  
+  adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(widget));
+  gtk_adjustment_set_value(adjustment, (double) y / (widget->allocation.height - 2) * (adjustment->upper - adjustment->page_size));
+
+  return TRUE;			/* we're forcibly in a drop zone */
+}
+
 static void
 mn_drag_data_received_h (GtkWidget *widget,
 			 GdkDragContext *drag_context,
@@ -378,38 +543,44 @@ mn_drag_data_received_h (GtkWidget *widget,
     {
     case TARGET_URI_LIST:
       {
-	char *str;
 	char **uriv;
 	int i;
-	GSList *new_mailboxes = NULL;
-
-	/* complies to RFC 2483, section 5 */
+	GSList *invalid_uri_list = NULL;
 
-	if (selection_data->format != 8 || selection_data->length <= 0)
+	uriv = gtk_selection_data_get_uris(selection_data);
+	if (! uriv)
 	  {
-	    g_warning(_("received an invalid URI list"));
+	    mn_error_dialog(mn_widget_get_parent_window(widget),
+			    NULL,
+			    NULL,
+			    _("A drag and drop error has occurred"),
+			    _("An invalid location list has been received."));
 	    return;
 	  }
 
-	str = g_strndup(selection_data->data, selection_data->length);
-	uriv = g_strsplit(str, "\r\n", 0);
-	g_free(str);
-	
 	for (i = 0; uriv[i]; i++)
-	  if (*uriv[i] && *uriv[i] != '#' && ! mn_mailboxes_find(mn_shell->mailboxes, uriv[i]))
-	    new_mailboxes = g_slist_append(new_mailboxes, g_strdup(uriv[i]));
-
-	g_strfreev(uriv);
-
-	if (new_mailboxes)
+	  if (*uriv[i])
+	    {
+	      MNMailbox *mailbox;
+
+	      mailbox = mn_mailbox_new_from_uri(uriv[i]);
+	      if (mailbox)
+		{
+		  mn_mailbox_seal(mailbox);
+		  mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+		  g_object_unref(mailbox);
+		}
+	      else
+		invalid_uri_list = g_slist_append(invalid_uri_list, uriv[i]);
+	    }
+
+	if (invalid_uri_list)
 	  {
-	    GSList *gconf_mailboxes;
-		  
-	    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
-	    gconf_mailboxes = g_slist_concat(gconf_mailboxes, new_mailboxes);
-	    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-	    eel_g_slist_free_deep(gconf_mailboxes);
+	    mn_invalid_uri_list_dialog(mn_widget_get_parent_window(widget), _("A drag and drop error has occurred"), invalid_uri_list);
+	    g_slist_free(invalid_uri_list);
 	  }
+	
+	g_strfreev(uriv);
       }
       break;
 
@@ -419,11 +590,16 @@ mn_drag_data_received_h (GtkWidget *widget,
 	const guint16 *char_data;
 	int char_len;
 	int i;
+	MNMailbox *mailbox;
 
 	/* text/x-moz-url is encoded in UCS-2 but in format 8: broken */
 	if (selection_data->format != 8 || selection_data->length <= 0 || (selection_data->length % 2) != 0)
 	  {
-	    g_warning(_("received an invalid Mozilla URL"));
+	    mn_error_dialog(mn_widget_get_parent_window(widget),
+			    NULL,
+			    NULL,
+			    _("A drag and drop error has occurred"),
+			    _("An invalid Mozilla location has been received."));
 	    return;
 	  }
 
@@ -435,40 +611,23 @@ mn_drag_data_received_h (GtkWidget *widget,
 	  g_string_append_unichar(url, char_data[i]);
 
 	g_return_if_fail(mn_shell != NULL);
-	if (! mn_mailboxes_find(mn_shell->mailboxes, url->str))
+
+	mailbox = mn_mailbox_new_from_uri(url->str);
+	if (mailbox)
 	  {
-	    GSList *gconf_mailboxes;
-		  
-	    gconf_mailboxes = eel_gconf_get_string_list(MN_CONF_MAILBOXES);
-	    gconf_mailboxes = g_slist_append(gconf_mailboxes, g_strdup(url->str));
-	    eel_gconf_set_string_list(MN_CONF_MAILBOXES, gconf_mailboxes);
-	    eel_g_slist_free_deep(gconf_mailboxes);
+	    mn_mailbox_seal(mailbox);
+	    mn_mailboxes_queue_add(mn_shell->mailboxes, mailbox);
+	    g_object_unref(mailbox);
 	  }
-	
+	else
+	  mn_invalid_uri_dialog(mn_widget_get_parent_window(widget), _("A drag and drop error has occurred"), url->str);
+
 	g_string_free(url, TRUE);
       }
       break;
     }
 }
 
-char *
-mn_build_gnome_copied_files (MNGnomeCopiedFilesType type, GSList *uri_list)
-{
-  GString *string;
-  GSList *l;
-
-  string = g_string_new(type == MN_GNOME_COPIED_FILES_CUT ? "cut" : "copy");
-  MN_LIST_FOREACH(l, uri_list)
-    {
-      const char *uri = l->data;
-
-      g_string_append_c(string, '\n');
-      g_string_append(string, uri);
-    }
-
-  return g_string_free(string, FALSE);
-}
-
 gboolean
 mn_parse_gnome_copied_files (const char *gnome_copied_files,
 			     MNGnomeCopiedFilesType *type,
@@ -609,13 +768,10 @@ mn_error_dialog_real (GtkWindow *parent,
 {
   GtkWidget *dialog;
 
-  dialog = eel_alert_dialog_new(parent,
-				GTK_DIALOG_DESTROY_WITH_PARENT,
-				GTK_MESSAGE_ERROR,
-				GTK_BUTTONS_NONE,
-				primary,
-				secondary,
-				NULL);
+  g_return_if_fail(primary != NULL);
+  g_return_if_fail(secondary != NULL);
+
+  dialog = mn_alert_dialog_new(parent, GTK_MESSAGE_ERROR, primary, secondary);
 
   if (not_again_key)
     {
@@ -678,24 +834,70 @@ mn_error_dialog (GtkWindow *parent,
 		 const char *format,
 		 ...)
 {
+  va_list args;
   char *secondary;
 
-  if (format)
-    {
-      va_list args;
-      
-      va_start(args, format);
-      secondary = g_strdup_vprintf(format, args);
-      va_end(args);
-    }
-  else
-    secondary = NULL;
+  g_return_if_fail(primary != NULL);
+  g_return_if_fail(format != NULL);
+
+  va_start(args, format);
+  secondary = g_strdup_vprintf(format, args);
+  va_end(args);
 
   mn_error_dialog_real(parent, FALSE, not_again_key, help_link_id, primary, secondary);
   g_free(secondary);
 }
 
 void
+mn_invalid_uri_dialog (GtkWindow *parent,
+		       const char *primary,
+		       const char *invalid_uri)
+{
+  GSList *list = NULL;
+
+  g_return_if_fail(primary != NULL);
+  g_return_if_fail(invalid_uri != NULL);
+
+  list = g_slist_append(list, (gpointer) invalid_uri);
+  mn_invalid_uri_list_dialog(parent, primary, list);
+  g_slist_free(list);
+}
+
+void
+mn_invalid_uri_list_dialog (GtkWindow *parent,
+			    const char *primary,
+			    const GSList *invalid_uri_list)
+{
+  GString *string;
+  const GSList *l;
+
+  g_return_if_fail(primary != NULL);
+  g_return_if_fail(invalid_uri_list != NULL);
+
+  string = g_string_new(NULL);
+
+  MN_LIST_FOREACH(l, invalid_uri_list)
+    {
+      const char *uri = l->data;
+
+      g_string_append(string, uri);
+      if (l->next)
+	g_string_append_c(string, '\n');
+    }
+
+  mn_error_dialog(parent,
+		  NULL,
+		  NULL,
+		  primary,
+		  ngettext("The following location is invalid:\n\n%s",
+			   "The following locations are invalid:\n\n%s",
+			   g_slist_length((GSList *) invalid_uri_list)),
+		  string->str);
+
+  g_string_free(string, TRUE);
+}
+
+void
 mn_fatal_error_dialog (GtkWindow *parent, const char *format, ...)
 {
   va_list args;
@@ -713,6 +915,30 @@ mn_fatal_error_dialog (GtkWindow *parent, const char *format, ...)
   exit(1);  
 }
 
+GtkWidget *
+mn_alert_dialog_new (GtkWindow *parent,
+		     GtkMessageType type,
+		     const char *primary,
+		     const char *secondary)
+{
+  GtkWidget *dialog;
+
+  g_return_val_if_fail(primary != NULL, NULL);
+  g_return_val_if_fail(secondary != NULL, NULL);
+
+  dialog = gtk_message_dialog_new(parent,
+				  GTK_DIALOG_DESTROY_WITH_PARENT,
+				  type,
+				  GTK_BUTTONS_NONE,
+				  "%s",
+				  primary);
+
+  gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", secondary);
+  gtk_window_set_title(GTK_WINDOW(dialog), ""); /* HIG */
+
+  return dialog;
+}
+
 time_t
 mn_time (void)
 {
@@ -840,6 +1066,54 @@ mn_gtk_object_ref_and_sink (GtkObject *object)
 }
 
 int
+mn_utf8_strcmp (const char *s1, const char *s2)
+{
+  char *normalized_s1;
+  char *normalized_s2;
+  int cmp;
+
+  g_return_val_if_fail(s1 != NULL, 0);
+  g_return_val_if_fail(s2 != NULL, 0);
+
+  normalized_s1 = g_utf8_normalize(s1, -1, G_NORMALIZE_ALL);
+  normalized_s2 = g_utf8_normalize(s2, -1, G_NORMALIZE_ALL);
+
+  cmp = strcmp(normalized_s1, normalized_s2);
+
+  g_free(normalized_s1);
+  g_free(normalized_s2);
+
+  return cmp;
+}
+
+int
+mn_utf8_strcasecmp (const char *s1, const char *s2)
+{
+  char *normalized_s1;
+  char *normalized_s2;
+  char *folded_s1;
+  char *folded_s2;
+  int cmp;
+
+  g_return_val_if_fail(s1 != NULL, 0);
+  g_return_val_if_fail(s2 != NULL, 0);
+
+  normalized_s1 = g_utf8_normalize(s1, -1, G_NORMALIZE_ALL);
+  normalized_s2 = g_utf8_normalize(s2, -1, G_NORMALIZE_ALL);
+  folded_s1 = g_utf8_casefold(normalized_s1, -1);
+  folded_s2 = g_utf8_casefold(normalized_s2, -1);
+
+  cmp = strcmp(folded_s1, folded_s2);
+
+  g_free(normalized_s1);
+  g_free(normalized_s2);
+  g_free(folded_s1);
+  g_free(folded_s2);
+
+  return cmp;
+}
+
+int
 mn_utf8_strcasecoll (const char *s1, const char *s2)
 {
   char *folded_s1;
@@ -860,6 +1134,35 @@ mn_utf8_strcasecoll (const char *s1, const char *s2)
   return coll;
 }
 
+char *
+mn_utf8_escape (const char *str)
+{
+  GString *escaped;
+
+  g_return_val_if_fail(str != NULL, NULL);
+
+  escaped = g_string_new(NULL);
+
+  while (*str)
+    {
+      gunichar c;
+
+      c = g_utf8_get_char_validated(str, -1);
+      if (c != (gunichar) -2 && c != (gunichar) -1)
+	{
+	  g_string_append_unichar(escaped, c);
+	  str = g_utf8_next_char(str);
+	}
+      else
+	{
+	  g_string_append_printf(escaped, "\\x%02x", (unsigned int) (unsigned char) *str);
+	  str++;
+	}
+    }
+
+  return g_string_free(escaped, FALSE);
+}
+
 int
 mn_dialog_run_nonmodal (GtkDialog *dialog)
 {
@@ -951,7 +1254,7 @@ mn_ascii_validate (const char *str)
 }
 
 void
-mn_source_remove (unsigned int *tag)
+mn_source_clear (unsigned int *tag)
 {
   g_return_if_fail(tag != NULL);
 
@@ -999,3 +1302,15 @@ mn_ascii_str_case_has_prefix (const char *str, const char *prefix)
 
   return g_ascii_strncasecmp(str, prefix, prefix_len) == 0;
 }
+
+gboolean
+mn_rename (const char *from, const char *to, GError **err)
+{
+  if (rename(from, to) < 0)
+    {
+      g_set_error(err, 0, 0, _("unable to rename %s to %s: %s"), from, to, g_strerror(errno));
+      return FALSE;
+    }
+  else
+    return TRUE;
+}
diff --git a/src/mn-util.h b/src/mn-util.h
@@ -32,8 +32,6 @@ for ((var) = (head);				\
 void		mn_info				(const char	*format,
 						 ...) G_GNUC_PRINTF(1, 2);
 
-GSList		*mn_g_slist_delete_link_deep	(GSList		*list,
-						 GSList		*link_);
 GSList		*mn_g_slist_delete_link_deep_custom (GSList	*list,
 						     GSList	*link_,
 						     GFunc	element_free_func,
@@ -49,6 +47,8 @@ GSList		*mn_g_object_slist_delete_link	(GSList		*list,
 						 GSList		*link_);
 
 gboolean	mn_str_isnumeric		(const char	*str);
+char		*mn_strstr_span			(const char	*big,
+						 const char	*little);
 
 #define MN_IMAGE_FILE(path, name)	path G_DIR_SEPARATOR_S name
 #define MN_INTERFACE_FILE(name) 	UIDIR G_DIR_SEPARATOR_S name
@@ -56,6 +56,13 @@ gboolean	mn_str_isnumeric		(const char	*str);
 GdkPixbuf	*mn_pixbuf_new			(const char	*filename);
 void		mn_create_interface		(const char	*filename,
 						 ...);
+void		mn_container_create_interface	(GtkContainer	*container,
+						 const char	*filename,
+						 const char	*child_name,
+						 const char	*callback_prefix,
+						 ...);
+
+GtkWindow	*mn_widget_get_parent_window	(GtkWidget	*widget);
 
 void mn_file_chooser_dialog_allow_select_folder (GtkFileChooserDialog *dialog,
 						 int accept_id);
@@ -68,8 +75,6 @@ typedef enum
   MN_GNOME_COPIED_FILES_COPY
 } MNGnomeCopiedFilesType;
 
-char		*mn_build_gnome_copied_files	(MNGnomeCopiedFilesType type,
-						 GSList		*uri_list);
 gboolean	mn_parse_gnome_copied_files	(const char	*gnome_copied_files,
 						 MNGnomeCopiedFilesType *type,
 						 GSList		**uri_list);
@@ -92,10 +97,21 @@ void		mn_error_dialog			(GtkWindow	*parent,
 						 const char	*primary,
 						 const char	*format,
 						 ...) G_GNUC_PRINTF(5, 6);
+void		mn_invalid_uri_dialog		(GtkWindow	*parent,
+						 const char	*primary,
+						 const char	*invalid_uri);
+void		mn_invalid_uri_list_dialog	(GtkWindow	*parent,
+						 const char	*primary,
+						 const GSList	*invalid_uri_list);
 void		mn_fatal_error_dialog		(GtkWindow	*parent,
 						 const char	*format,
 						 ...) G_GNUC_PRINTF(2, 3) G_GNUC_NORETURN;
 
+GtkWidget	*mn_alert_dialog_new		(GtkWindow	*parent,
+						 GtkMessageType	type,
+						 const char	*primary,
+						 const char	*secondary);
+
 time_t		mn_time				(void);
 
 gpointer	mn_g_object_connect		(gpointer	object,
@@ -107,14 +123,19 @@ void		mn_execute_command		(const char	*conf_key);
 
 void		mn_gtk_object_ref_and_sink	(GtkObject	*object);
 
+int		mn_utf8_strcmp			(const char	*s1,
+						 const char	*s2);
+int		mn_utf8_strcasecmp		(const char	*s1,
+						 const char	*s2);
 int		mn_utf8_strcasecoll		(const char	*s1,
 						 const char	*s2);
+char		*mn_utf8_escape			(const char	*str);
 
 int		mn_dialog_run_nonmodal		(GtkDialog	*dialog);
 
 gboolean	mn_ascii_validate		(const char	*str);
 
-void		mn_source_remove		(unsigned int	*tag);
+void		mn_source_clear			(unsigned int	*tag);
 
 unsigned int	mn_timeout_add			(const char	*minutes_key,
 						 const char	*seconds_key,
@@ -124,4 +145,8 @@ unsigned int	mn_timeout_add			(const char	*minutes_key,
 gboolean	mn_ascii_str_case_has_prefix	(const char	*str,
 						 const char	*prefix);
 
+gboolean	mn_rename			(const char	*from,
+						 const char	*to,
+						 GError		**err);
+
 #endif /* _MN_UTIL_H */
diff --git a/src/mn-vfs-mailbox-backend-private.h b/src/mn-vfs-mailbox-backend-private.h
@@ -0,0 +1,27 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_VFS_MAILBOX_BACKEND_PRIVATE_H__
+#define __MN_VFS_MAILBOX_BACKEND_PRIVATE_H__
+
+#include "mn-vfs-mailbox-backend.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct _MNVFSMailboxBackendPrivate {
+#line 48 "mn-vfs-mailbox-backend.gob"
+	GMutex * mutex;
+#line 50 "mn-vfs-mailbox-backend.gob"
+	GnomeVFSMonitorHandle * monitor_handle;
+#line 18 "mn-vfs-mailbox-backend-private.h"
+};
+void 	mn_vfs_mailbox_backend_monitor	(MNVFSMailboxBackend * self, unsigned long check_id, const char * uri, GnomeVFSMonitorType monitor_type);
+void 	mn_vfs_mailbox_backend_lock	(MNVFSMailboxBackend * self);
+void 	mn_vfs_mailbox_backend_unlock	(MNVFSMailboxBackend * self);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs-mailbox-backend.c b/src/mn-vfs-mailbox-backend.c
@@ -0,0 +1,463 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-vfs-mailbox-backend.h"
+
+#include "mn-vfs-mailbox-backend-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 25 "mn-vfs-mailbox-backend.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-private.h"
+#include "mn-conf.h"
+#include "mn-util.h"
+
+#line 38 "mn-vfs-mailbox-backend.c"
+/* self casting macros */
+#define SELF(x) MN_VFS_MAILBOX_BACKEND(x)
+#define SELF_CONST(x) MN_VFS_MAILBOX_BACKEND_CONST(x)
+#define IS_SELF(x) MN_IS_VFS_MAILBOX_BACKEND(x)
+#define TYPE_SELF MN_TYPE_VFS_MAILBOX_BACKEND
+#define SELF_CLASS(x) MN_VFS_MAILBOX_BACKEND_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_VFS_MAILBOX_BACKEND_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNVFSMailboxBackend Self;
+typedef MNVFSMailboxBackendClass SelfClass;
+
+/* here are local prototypes */
+static void ___object_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
+static void ___object_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
+static void mn_vfs_mailbox_backend_init (MNVFSMailboxBackend * o) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_backend_class_init (MNVFSMailboxBackendClass * c) G_GNUC_UNUSED;
+static void ___1_mn_vfs_mailbox_backend_finalize (GObject * object) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_backend_real_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
+static void ___real_mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type);
+static void mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type) G_GNUC_UNUSED;
+
+enum {
+	PROP_0,
+	PROP_MAILBOX
+};
+
+/* pointer to the class of our parent */
+static GObjectClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_monitor mn_vfs_mailbox_backend_monitor
+#define self_real_monitor_cb mn_vfs_mailbox_backend_real_monitor_cb
+#define self_monitor_cb mn_vfs_mailbox_backend_monitor_cb
+#define self_is mn_vfs_mailbox_backend_is
+#define self_check mn_vfs_mailbox_backend_check
+#define self_lock mn_vfs_mailbox_backend_lock
+#define self_unlock mn_vfs_mailbox_backend_unlock
+GType
+mn_vfs_mailbox_backend_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNVFSMailboxBackendClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_vfs_mailbox_backend_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNVFSMailboxBackend),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_vfs_mailbox_backend_init,
+			NULL
+		};
+
+		type = g_type_register_static (G_TYPE_OBJECT, "MNVFSMailboxBackend", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNVFSMailboxBackend *)g_object_new(mn_vfs_mailbox_backend_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNVFSMailboxBackend * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNVFSMailboxBackend *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNVFSMailboxBackend *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNVFSMailboxBackend *)g_object_new_valist (mn_vfs_mailbox_backend_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::finalize"
+	MNVFSMailboxBackend *self G_GNUC_UNUSED = MN_VFS_MAILBOX_BACKEND (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+#line 52 "mn-vfs-mailbox-backend.gob"
+	___1_mn_vfs_mailbox_backend_finalize(obj_self);
+#line 129 "mn-vfs-mailbox-backend.c"
+#line 48 "mn-vfs-mailbox-backend.gob"
+	if(self->_priv->mutex) { g_mutex_free ((gpointer) self->_priv->mutex); self->_priv->mutex = NULL; }
+#line 132 "mn-vfs-mailbox-backend.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_vfs_mailbox_backend_init (MNVFSMailboxBackend * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_VFS_MAILBOX_BACKEND,MNVFSMailboxBackendPrivate);
+#line 48 "mn-vfs-mailbox-backend.gob"
+	o->_priv->mutex = g_mutex_new();
+#line 143 "mn-vfs-mailbox-backend.c"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_vfs_mailbox_backend_class_init (MNVFSMailboxBackendClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+
+	g_type_class_add_private(c,sizeof(MNVFSMailboxBackendPrivate));
+
+	parent_class = g_type_class_ref (G_TYPE_OBJECT);
+
+#line 52 "mn-vfs-mailbox-backend.gob"
+	g_object_class->finalize = ___finalize;
+#line 139 "mn-vfs-mailbox-backend.gob"
+	c->monitor_cb = ___real_mn_vfs_mailbox_backend_monitor_cb;
+#line 160 "mn-vfs-mailbox-backend.c"
+	c->is = NULL;
+	c->check = NULL;
+	g_object_class->get_property = ___object_get_property;
+	g_object_class->set_property = ___object_set_property;
+    {
+	GParamSpec   *param_spec;
+
+	param_spec = g_param_spec_pointer
+		("mailbox" /* name */,
+		 NULL /* nick */,
+		 NULL /* blurb */,
+		 (GParamFlags)(G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+	g_object_class_install_property (g_object_class,
+		PROP_MAILBOX,
+		param_spec);
+    }
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_set_property (GObject *object,
+	guint property_id,
+	const GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::set_property"
+{
+	MNVFSMailboxBackend *self G_GNUC_UNUSED;
+
+	self = MN_VFS_MAILBOX_BACKEND (object);
+
+	switch (property_id) {
+	case PROP_MAILBOX:
+		{
+#line 46 "mn-vfs-mailbox-backend.gob"
+self->mailbox = g_value_get_pointer (VAL);
+#line 196 "mn-vfs-mailbox-backend.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+static void
+___object_get_property (GObject *object,
+	guint property_id,
+	GValue *VAL G_GNUC_UNUSED,
+	GParamSpec *pspec G_GNUC_UNUSED)
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::get_property"
+{
+	MNVFSMailboxBackend *self G_GNUC_UNUSED;
+
+	self = MN_VFS_MAILBOX_BACKEND (object);
+
+	switch (property_id) {
+	case PROP_MAILBOX:
+		{
+#line 46 "mn-vfs-mailbox-backend.gob"
+g_value_set_pointer (VAL, self->mailbox);
+#line 227 "mn-vfs-mailbox-backend.c"
+		}
+		break;
+	default:
+/* Apparently in g++ this is needed, glib is b0rk */
+#ifndef __PRETTY_FUNCTION__
+#  undef G_STRLOC
+#  define G_STRLOC	__FILE__ ":" G_STRINGIFY (__LINE__)
+#endif
+		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+		break;
+	}
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 52 "mn-vfs-mailbox-backend.gob"
+static void 
+___1_mn_vfs_mailbox_backend_finalize (GObject * object G_GNUC_UNUSED)
+#line 247 "mn-vfs-mailbox-backend.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::finalize"
+{
+#line 54 "mn-vfs-mailbox-backend.gob"
+	
+    Self *self = SELF(object);
+
+    if (selfp->monitor_handle)
+      {
+	gnome_vfs_monitor_cancel(selfp->monitor_handle);
+	selfp->monitor_handle = NULL;
+      }
+
+    PARENT_HANDLER(object);
+  }}
+#line 266 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 66 "mn-vfs-mailbox-backend.gob"
+void 
+mn_vfs_mailbox_backend_monitor (MNVFSMailboxBackend * self, unsigned long check_id, const char * uri, GnomeVFSMonitorType monitor_type)
+#line 273 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::monitor"
+#line 66 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (self != NULL);
+#line 66 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 66 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (uri != NULL);
+#line 282 "mn-vfs-mailbox-backend.c"
+{
+#line 71 "mn-vfs-mailbox-backend.gob"
+	
+    GnomeVFSResult result;
+    GnomeVFSMonitorHandle *handle;
+
+    g_return_if_fail(SELF_GET_CLASS(self)->monitor_cb != NULL);
+    
+    self_lock(self);
+
+    handle = selfp->monitor_handle;
+
+    self_unlock(self);
+
+    if (handle)
+      return;
+
+    result = gnome_vfs_monitor_add(&handle,
+				   uri,
+				   monitor_type,
+				   self_real_monitor_cb,
+				   self);
+
+    if (result == GNOME_VFS_OK)
+      {
+	self_lock(self);
+
+	if (! selfp->monitor_handle)
+	  {
+	    selfp->monitor_handle = handle;
+	    handle = NULL;
+	  }
+
+	self_unlock(self);
+
+	if (handle)
+	  gnome_vfs_monitor_cancel(handle);
+      }
+    else
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(self->mailbox), check_id)
+	    && ! selfp->monitor_handle
+	    && result != self->mailbox->contents_monitor_result)
+	  {
+	    self->mailbox->contents_monitor_result = result;
+
+	    mn_mailbox_warning(MN_MAILBOX(self->mailbox), _("unable to monitor mailbox contents (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+	    mn_vfs_mailbox_monitor_error_dialog();
+
+	    if (! MN_MAILBOX(self->mailbox)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self->mailbox), TRUE);
+	  }
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+  }}
+#line 342 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 129 "mn-vfs-mailbox-backend.gob"
+static void 
+mn_vfs_mailbox_backend_real_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
+#line 348 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::real_monitor_cb"
+{
+#line 135 "mn-vfs-mailbox-backend.gob"
+	
+    self_monitor_cb(user_data, info_uri, event_type);
+  }}
+#line 356 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 139 "mn-vfs-mailbox-backend.gob"
+static void 
+mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 362 "mn-vfs-mailbox-backend.c"
+{
+	MNVFSMailboxBackendClass *klass;
+#line 139 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (self != NULL);
+#line 139 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 369 "mn-vfs-mailbox-backend.c"
+	klass = MN_VFS_MAILBOX_BACKEND_GET_CLASS(self);
+
+	if(klass->monitor_cb)
+		(*klass->monitor_cb)(self,info_uri,event_type);
+}
+#line 139 "mn-vfs-mailbox-backend.gob"
+static void 
+___real_mn_vfs_mailbox_backend_monitor_cb (MNVFSMailboxBackend * self G_GNUC_UNUSED, const char * info_uri, GnomeVFSMonitorEventType event_type)
+#line 378 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::monitor_cb"
+{
+#line 143 "mn-vfs-mailbox-backend.gob"
+	
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self->mailbox));
+  }}
+#line 389 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 150 "mn-vfs-mailbox-backend.gob"
+gboolean 
+mn_vfs_mailbox_backend_is (MNVFSMailboxBackend * self, MNVFSMailbox * mailbox)
+#line 395 "mn-vfs-mailbox-backend.c"
+{
+	MNVFSMailboxBackendClass *klass;
+#line 150 "mn-vfs-mailbox-backend.gob"
+	g_return_val_if_fail (self != NULL, (gboolean )0);
+#line 150 "mn-vfs-mailbox-backend.gob"
+	g_return_val_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self), (gboolean )0);
+#line 402 "mn-vfs-mailbox-backend.c"
+	klass = MN_VFS_MAILBOX_BACKEND_GET_CLASS(self);
+
+	if(klass->is)
+		return (*klass->is)(self,mailbox);
+	else
+		return (gboolean )(0);
+}
+
+#line 153 "mn-vfs-mailbox-backend.gob"
+void 
+mn_vfs_mailbox_backend_check (MNVFSMailboxBackend * self, unsigned long check_id)
+#line 414 "mn-vfs-mailbox-backend.c"
+{
+	MNVFSMailboxBackendClass *klass;
+#line 153 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (self != NULL);
+#line 153 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 421 "mn-vfs-mailbox-backend.c"
+	klass = MN_VFS_MAILBOX_BACKEND_GET_CLASS(self);
+
+	if(klass->check)
+		(*klass->check)(self,check_id);
+}
+
+#line 156 "mn-vfs-mailbox-backend.gob"
+void 
+mn_vfs_mailbox_backend_lock (MNVFSMailboxBackend * self)
+#line 431 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::lock"
+#line 156 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (self != NULL);
+#line 156 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 438 "mn-vfs-mailbox-backend.c"
+{
+#line 158 "mn-vfs-mailbox-backend.gob"
+	
+    g_mutex_lock(selfp->mutex);
+  }}
+#line 444 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
+
+#line 162 "mn-vfs-mailbox-backend.gob"
+void 
+mn_vfs_mailbox_backend_unlock (MNVFSMailboxBackend * self)
+#line 450 "mn-vfs-mailbox-backend.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox:Backend::unlock"
+#line 162 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (self != NULL);
+#line 162 "mn-vfs-mailbox-backend.gob"
+	g_return_if_fail (MN_IS_VFS_MAILBOX_BACKEND (self));
+#line 457 "mn-vfs-mailbox-backend.c"
+{
+#line 164 "mn-vfs-mailbox-backend.gob"
+	
+    g_mutex_unlock(selfp->mutex);
+  }}
+#line 463 "mn-vfs-mailbox-backend.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-vfs-mailbox-backend.gob b/src/mn-vfs-mailbox-backend.gob
@@ -0,0 +1,167 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include "mn-vfs-mailbox.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#include <gtk/gtk.h>
+#include "mn-mailbox-private.h"
+#include "mn-reentrant-mailbox-private.h"
+#include "mn-vfs-mailbox-private.h"
+#include "mn-conf.h"
+#include "mn-util.h"
+%}
+
+class MN:VFS:Mailbox:Backend from G:Object
+{
+  classwide const char *format;
+
+  /*
+   * In order to not create reference cycles, we do not keep a
+   * reference to the mailbox. As long as we are alive, it will always
+   * be valid, since we are one of its members.
+   */
+  protected MNVFSMailbox *mailbox;
+  property POINTER mailbox (link, flags = CONSTRUCT_ONLY, type = MNVFSMailbox *);
+
+  private GMutex *mutex = {g_mutex_new()} destroywith g_mutex_free;
+
+  private GnomeVFSMonitorHandle *monitor_handle;
+
+  override (G:Object) void
+    finalize (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    if (selfp->monitor_handle)
+      {
+	gnome_vfs_monitor_cancel(selfp->monitor_handle);
+	selfp->monitor_handle = NULL;
+      }
+
+    PARENT_HANDLER(object);
+  }
+
+  protected void
+    monitor (self,
+	     unsigned long check_id,
+	     const char *uri (check null),
+	     GnomeVFSMonitorType monitor_type)
+  {
+    GnomeVFSResult result;
+    GnomeVFSMonitorHandle *handle;
+
+    g_return_if_fail(SELF_GET_CLASS(self)->monitor_cb != NULL);
+    
+    self_lock(self);
+
+    handle = selfp->monitor_handle;
+
+    self_unlock(self);
+
+    if (handle)
+      return;
+
+    result = gnome_vfs_monitor_add(&handle,
+				   uri,
+				   monitor_type,
+				   self_real_monitor_cb,
+				   self);
+
+    if (result == GNOME_VFS_OK)
+      {
+	self_lock(self);
+
+	if (! selfp->monitor_handle)
+	  {
+	    selfp->monitor_handle = handle;
+	    handle = NULL;
+	  }
+
+	self_unlock(self);
+
+	if (handle)
+	  gnome_vfs_monitor_cancel(handle);
+      }
+    else
+      {
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(MN_REENTRANT_MAILBOX(self->mailbox), check_id)
+	    && ! selfp->monitor_handle
+	    && result != self->mailbox->contents_monitor_result)
+	  {
+	    self->mailbox->contents_monitor_result = result;
+
+	    mn_mailbox_warning(MN_MAILBOX(self->mailbox), _("unable to monitor mailbox contents (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+	    mn_vfs_mailbox_monitor_error_dialog();
+
+	    if (! MN_MAILBOX(self->mailbox)->must_poll)
+	      mn_mailbox_set_must_poll(MN_MAILBOX(self->mailbox), TRUE);
+	  }
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+      }
+  }
+  
+  private void
+    real_monitor_cb (GnomeVFSMonitorHandle *handle,
+		     const char *monitor_uri,
+		     const char *info_uri,
+		     GnomeVFSMonitorEventType event_type,
+		     gpointer user_data)
+  {
+    self_monitor_cb(user_data, info_uri, event_type);
+  }
+  
+  virtual private void
+    monitor_cb (self,
+		const char *info_uri,
+		GnomeVFSMonitorEventType event_type)
+  {
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self->mailbox));
+  }
+
+  virtual public gboolean
+    is (self, MN:VFS:Mailbox *mailbox);
+
+  virtual public void
+    check (self, unsigned long check_id);
+
+  protected void
+    lock (self)
+  {
+    g_mutex_lock(selfp->mutex);
+  }
+
+  protected void
+    unlock (self)
+  {
+    g_mutex_unlock(selfp->mutex);
+  }
+}
diff --git a/src/mn-vfs-mailbox-backend.h b/src/mn-vfs-mailbox-backend.h
@@ -0,0 +1,83 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include "mn-vfs-mailbox.h"
+
+#ifndef __MN_VFS_MAILBOX_BACKEND_H__
+#define __MN_VFS_MAILBOX_BACKEND_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_VFS_MAILBOX_BACKEND	(mn_vfs_mailbox_backend_get_type())
+#define MN_VFS_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackend)
+#define MN_VFS_MAILBOX_BACKEND_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackend const)
+#define MN_VFS_MAILBOX_BACKEND_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackendClass)
+#define MN_IS_VFS_MAILBOX_BACKEND(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_vfs_mailbox_backend_get_type ())
+
+#define MN_VFS_MAILBOX_BACKEND_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_vfs_mailbox_backend_get_type(), MNVFSMailboxBackendClass)
+
+/* Private structure type */
+typedef struct _MNVFSMailboxBackendPrivate MNVFSMailboxBackendPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_VFS_MAILBOX_BACKEND__
+#define __TYPEDEF_MN_VFS_MAILBOX_BACKEND__
+typedef struct _MNVFSMailboxBackend MNVFSMailboxBackend;
+#endif
+struct _MNVFSMailboxBackend {
+	GObject __parent__;
+	/*< private >*/
+	MNVFSMailbox * mailbox; /* protected */
+	MNVFSMailboxBackendPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNVFSMailboxBackendClass MNVFSMailboxBackendClass;
+struct _MNVFSMailboxBackendClass {
+	GObjectClass __parent__;
+	void (* monitor_cb) (MNVFSMailboxBackend * self, const char * info_uri, GnomeVFSMonitorEventType event_type);
+	gboolean (* is) (MNVFSMailboxBackend * self, MNVFSMailbox * mailbox);
+	void (* check) (MNVFSMailboxBackend * self, unsigned long check_id);
+	const char * format;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_vfs_mailbox_backend_get_type	(void);
+gboolean 	mn_vfs_mailbox_backend_is	(MNVFSMailboxBackend * self,
+					MNVFSMailbox * mailbox);
+void 	mn_vfs_mailbox_backend_check	(MNVFSMailboxBackend * self,
+					unsigned long check_id);
+
+/*
+ * Argument wrapping macros
+ */
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#define MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(arg)    	"mailbox", __extension__ ({MNVFSMailbox * z = (arg); z;})
+#define MN_VFS_MAILBOX_BACKEND_GET_PROP_MAILBOX(arg)	"mailbox", __extension__ ({MNVFSMailbox * *z = (arg); z;})
+#else /* __GNUC__ && !__STRICT_ANSI__ */
+#define MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(arg)    	"mailbox",(MNVFSMailbox * )(arg)
+#define MN_VFS_MAILBOX_BACKEND_GET_PROP_MAILBOX(arg)	"mailbox",(MNVFSMailbox * *)(arg)
+#endif /* __GNUC__ && !__STRICT_ANSI__ */
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs-mailbox-private.h b/src/mn-vfs-mailbox-private.h
@@ -0,0 +1,33 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#ifndef __MN_VFS_MAILBOX_PRIVATE_H__
+#define __MN_VFS_MAILBOX_PRIVATE_H__
+
+#include "mn-vfs-mailbox.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+#line 31 "mn-vfs-mailbox.gob"
+
+#include "mn-vfs-mailbox-backend.h"
+
+#line 18 "mn-vfs-mailbox-private.h"
+struct _MNVFSMailboxPrivate {
+#line 64 "mn-vfs-mailbox.gob"
+	GnomeVFSMonitorHandle * monitor_handle;
+#line 66 "mn-vfs-mailbox.gob"
+	GnomeVFSResult type_monitor_result;
+#line 69 "mn-vfs-mailbox.gob"
+	MNVFSMailboxBackend * backend;
+#line 26 "mn-vfs-mailbox-private.h"
+};
+void 	mn_vfs_mailbox_monitor_error_dialog	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs-mailbox.c b/src/mn-vfs-mailbox.c
@@ -0,0 +1,610 @@
+/* Generated by GOB (v2.0.12) on Tue Aug  9 22:01:57 2005
+   (do not edit directly) */
+
+/* End world hunger, donate to the World Food Programme, http://www.wfp.org */
+
+#define GOB_VERSION_MAJOR 2
+#define GOB_VERSION_MINOR 0
+#define GOB_VERSION_PATCHLEVEL 12
+
+#define selfp (self->_priv)
+
+#include <string.h> /* memset() */
+
+#include "mn-vfs-mailbox.h"
+
+#include "mn-vfs-mailbox-private.h"
+
+#ifdef G_LIKELY
+#define ___GOB_LIKELY(expr) G_LIKELY(expr)
+#define ___GOB_UNLIKELY(expr) G_UNLIKELY(expr)
+#else /* ! G_LIKELY */
+#define ___GOB_LIKELY(expr) (expr)
+#define ___GOB_UNLIKELY(expr) (expr)
+#endif /* G_LIKELY */
+
+#line 35 "mn-vfs-mailbox.gob"
+
+#include "config.h"
+#include <glib/gi18n.h>
+#ifdef WITH_MBOX
+#include "mn-mbox-mailbox-backend.h"
+#endif
+#ifdef WITH_MH
+#include "mn-mh-mailbox-backend.h"
+#endif
+#ifdef WITH_MAILDIR
+#include "mn-maildir-mailbox-backend.h"
+#endif
+#ifdef WITH_SYLPHEED
+#include "mn-sylpheed-mailbox-backend.h"
+#endif
+#include "mn-vfs.h"
+#include "mn-stock.h"
+#include "mn-conf.h"
+
+GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+
+#line 49 "mn-vfs-mailbox.c"
+/* self casting macros */
+#define SELF(x) MN_VFS_MAILBOX(x)
+#define SELF_CONST(x) MN_VFS_MAILBOX_CONST(x)
+#define IS_SELF(x) MN_IS_VFS_MAILBOX(x)
+#define TYPE_SELF MN_TYPE_VFS_MAILBOX
+#define SELF_CLASS(x) MN_VFS_MAILBOX_CLASS(x)
+
+#define SELF_GET_CLASS(x) MN_VFS_MAILBOX_GET_CLASS(x)
+
+/* self typedefs */
+typedef MNVFSMailbox Self;
+typedef MNVFSMailboxClass SelfClass;
+
+/* here are local prototypes */
+static void mn_vfs_mailbox_init (MNVFSMailbox * o) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_class_init (MNVFSMailboxClass * c) G_GNUC_UNUSED;
+static GObject * ___2_mn_vfs_mailbox_constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam * construct_params) G_GNUC_UNUSED;
+static void ___3_mn_vfs_mailbox_dispose (GObject * object) G_GNUC_UNUSED;
+static void ___4_mn_vfs_mailbox_seal (MNMailbox * mailbox) G_GNUC_UNUSED;
+static void mn_vfs_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data) G_GNUC_UNUSED;
+static void ___6_mn_vfs_mailbox_impl_check (MNReentrantMailbox * mailbox, unsigned long check_id) G_GNUC_UNUSED;
+
+/* pointer to the class of our parent */
+static MNReentrantMailboxClass *parent_class = NULL;
+
+/* Short form macros */
+#define self_init_types mn_vfs_mailbox_init_types
+#define self_monitor_cb mn_vfs_mailbox_monitor_cb
+#define self_monitor_error_dialog mn_vfs_mailbox_monitor_error_dialog
+GType
+mn_vfs_mailbox_get_type (void)
+{
+	static GType type = 0;
+
+	if ___GOB_UNLIKELY(type == 0) {
+		static const GTypeInfo info = {
+			sizeof (MNVFSMailboxClass),
+			(GBaseInitFunc) NULL,
+			(GBaseFinalizeFunc) NULL,
+			(GClassInitFunc) mn_vfs_mailbox_class_init,
+			(GClassFinalizeFunc) NULL,
+			NULL /* class_data */,
+			sizeof (MNVFSMailbox),
+			0 /* n_preallocs */,
+			(GInstanceInitFunc) mn_vfs_mailbox_init,
+			NULL
+		};
+
+		type = g_type_register_static (MN_TYPE_REENTRANT_MAILBOX, "MNVFSMailbox", &info, (GTypeFlags)0);
+	}
+
+	return type;
+}
+
+/* a macro for creating a new object of our type */
+#define GET_NEW ((MNVFSMailbox *)g_object_new(mn_vfs_mailbox_get_type(), NULL))
+
+/* a function for creating a new object of our type */
+#include <stdarg.h>
+static MNVFSMailbox * GET_NEW_VARG (const char *first, ...) G_GNUC_UNUSED;
+static MNVFSMailbox *
+GET_NEW_VARG (const char *first, ...)
+{
+	MNVFSMailbox *ret;
+	va_list ap;
+	va_start (ap, first);
+	ret = (MNVFSMailbox *)g_object_new_valist (mn_vfs_mailbox_get_type (), first, ap);
+	va_end (ap);
+	return ret;
+}
+
+
+static void
+___dispose (GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::dispose"
+	MNVFSMailbox *self G_GNUC_UNUSED = MN_VFS_MAILBOX (obj_self);
+#line 108 "mn-vfs-mailbox.gob"
+	___3_mn_vfs_mailbox_dispose(obj_self);
+#line 129 "mn-vfs-mailbox.c"
+#line 62 "mn-vfs-mailbox.gob"
+	if(self->vfs_uri) { gnome_vfs_uri_unref ((gpointer) self->vfs_uri); self->vfs_uri = NULL; }
+#line 132 "mn-vfs-mailbox.c"
+#line 69 "mn-vfs-mailbox.gob"
+	if(self->_priv->backend) { g_object_unref ((gpointer) self->_priv->backend); self->_priv->backend = NULL; }
+#line 135 "mn-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+
+static void
+___finalize(GObject *obj_self)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::finalize"
+	MNVFSMailbox *self G_GNUC_UNUSED = MN_VFS_MAILBOX (obj_self);
+	gpointer priv G_GNUC_UNUSED = self->_priv;
+	if(G_OBJECT_CLASS(parent_class)->finalize) \
+		(* G_OBJECT_CLASS(parent_class)->finalize)(obj_self);
+#line 61 "mn-vfs-mailbox.gob"
+	if(self->uri) { g_free ((gpointer) self->uri); self->uri = NULL; }
+#line 150 "mn-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+
+static void 
+mn_vfs_mailbox_init (MNVFSMailbox * o G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::init"
+	o->_priv = G_TYPE_INSTANCE_GET_PRIVATE(o,MN_TYPE_VFS_MAILBOX,MNVFSMailboxPrivate);
+#line 35 "mn-vfs-mailbox.gob"
+	o->_priv->type_monitor_result = GNOME_VFS_OK;
+#line 161 "mn-vfs-mailbox.c"
+#line 35 "mn-vfs-mailbox.gob"
+	o->contents_monitor_result = GNOME_VFS_OK;
+#line 164 "mn-vfs-mailbox.c"
+}
+#undef __GOB_FUNCTION__
+static void 
+mn_vfs_mailbox_class_init (MNVFSMailboxClass * c G_GNUC_UNUSED)
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::class_init"
+	GObjectClass *g_object_class G_GNUC_UNUSED = (GObjectClass*) c;
+	MNMailboxClass *mn_mailbox_class = (MNMailboxClass *)c;
+	MNReentrantMailboxClass *mn_reentrant_mailbox_class = (MNReentrantMailboxClass *)c;
+
+	g_type_class_add_private(c,sizeof(MNVFSMailboxPrivate));
+
+	parent_class = g_type_class_ref (MN_TYPE_REENTRANT_MAILBOX);
+
+#line 91 "mn-vfs-mailbox.gob"
+	g_object_class->constructor = ___2_mn_vfs_mailbox_constructor;
+#line 108 "mn-vfs-mailbox.gob"
+	g_object_class->dispose = ___dispose;
+#line 126 "mn-vfs-mailbox.gob"
+	mn_mailbox_class->seal = ___4_mn_vfs_mailbox_seal;
+#line 171 "mn-vfs-mailbox.gob"
+	mn_reentrant_mailbox_class->impl_check = ___6_mn_vfs_mailbox_impl_check;
+#line 187 "mn-vfs-mailbox.c"
+	g_object_class->finalize = ___finalize;
+}
+#undef __GOB_FUNCTION__
+
+
+
+#line 71 "mn-vfs-mailbox.gob"
+void 
+mn_vfs_mailbox_init_types (void)
+#line 197 "mn-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::init_types"
+{
+#line 73 "mn-vfs-mailbox.gob"
+	
+    int i = 0;
+
+#ifdef WITH_MBOX
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MBOX_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MH
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MH_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MAILDIR
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MAILDIR_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_SYLPHEED
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_SYLPHEED_MAILBOX_BACKEND;
+#endif
+    mn_vfs_mailbox_backend_types[i] = 0;
+  }}
+#line 219 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 91 "mn-vfs-mailbox.gob"
+static GObject * 
+___2_mn_vfs_mailbox_constructor (GType type G_GNUC_UNUSED, unsigned int n_construct_properties, GObjectConstructParam * construct_params)
+#line 225 "mn-vfs-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): \
+		((GObject * )0))
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::constructor"
+{
+#line 93 "mn-vfs-mailbox.gob"
+	
+    GObject *object;
+    Self *self;
+    SelfClass *class;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+    class = SELF_GET_CLASS(self);
+
+    if (class->stock_id)
+      mn_mailbox_set_stock_id(MN_MAILBOX(self), (char *) class->stock_id);
+
+    return object;
+  }}
+#line 248 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 108 "mn-vfs-mailbox.gob"
+static void 
+___3_mn_vfs_mailbox_dispose (GObject * object G_GNUC_UNUSED)
+#line 255 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___object) \
+	{ if(G_OBJECT_CLASS(parent_class)->dispose) \
+		(* G_OBJECT_CLASS(parent_class)->dispose)(___object); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::dispose"
+{
+#line 110 "mn-vfs-mailbox.gob"
+	
+    Self *self = SELF(object);
+
+    /*
+     * We are no longer operational after dispose (see unrefwith
+     * above), so we must remove our monitor.
+     */
+    if (selfp->monitor_handle)
+      {
+	gnome_vfs_monitor_cancel(selfp->monitor_handle);
+	selfp->monitor_handle = NULL;
+      }
+
+    PARENT_HANDLER(object);
+  }}
+#line 278 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 126 "mn-vfs-mailbox.gob"
+static void 
+___4_mn_vfs_mailbox_seal (MNMailbox * mailbox G_GNUC_UNUSED)
+#line 285 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox) \
+	{ if(MN_MAILBOX_CLASS(parent_class)->seal) \
+		(* MN_MAILBOX_CLASS(parent_class)->seal)(___mailbox); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::seal"
+{
+#line 128 "mn-vfs-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+
+    PARENT_HANDLER(mailbox);
+
+    if (self->uri)
+      {
+	self->vfs_uri = gnome_vfs_uri_new(self->uri);
+
+	if (! mailbox->runtime_name)
+	  {
+	    char *path;
+
+	    path = gnome_vfs_get_local_path_from_uri(self->uri);
+	    if (path)
+	      {
+		mailbox->runtime_name = g_filename_display_name(path);
+		g_free(path);
+	      }
+	    else
+	      mailbox->runtime_name = self->vfs_uri
+		? gnome_vfs_uri_to_string(self->vfs_uri, GNOME_VFS_URI_HIDE_PASSWORD)
+		: g_strdup(self->uri);
+	  }
+      }
+  }}
+#line 319 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 155 "mn-vfs-mailbox.gob"
+static void 
+mn_vfs_mailbox_monitor_cb (GnomeVFSMonitorHandle * handle, const char * monitor_uri, const char * info_uri, GnomeVFSMonitorEventType event_type, gpointer user_data)
+#line 326 "mn-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::monitor_cb"
+{
+#line 161 "mn-vfs-mailbox.gob"
+	
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	Self *self = user_data;
+	mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+      }
+  }}
+#line 340 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+
+#line 171 "mn-vfs-mailbox.gob"
+static void 
+___6_mn_vfs_mailbox_impl_check (MNReentrantMailbox * mailbox G_GNUC_UNUSED, unsigned long check_id)
+#line 346 "mn-vfs-mailbox.c"
+#define PARENT_HANDLER(___mailbox,___check_id) \
+	{ if(MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check) \
+		(* MN_REENTRANT_MAILBOX_CLASS(parent_class)->impl_check)(___mailbox,___check_id); }
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::impl_check"
+{
+#line 173 "mn-vfs-mailbox.gob"
+	
+    Self *self = SELF(mailbox);
+    MNVFSMailboxBackend *backend;
+    GnomeVFSMonitorHandle *handle;
+    GType backend_type = 0;
+    gboolean exists;
+
+    mn_reentrant_mailbox_lock(mailbox);
+
+    handle = selfp->monitor_handle;
+
+    backend = selfp->backend;
+    if (backend)
+      g_object_ref(backend);
+
+    mn_reentrant_mailbox_unlock(mailbox);
+
+    if (! handle)
+      {
+	GnomeVFSResult result;
+
+	result = gnome_vfs_monitor_add(&handle,
+				       self->uri,
+				       GNOME_VFS_MONITOR_FILE,
+				       self_monitor_cb,
+				       self);
+
+	if (result == GNOME_VFS_OK)
+	  {
+	    mn_reentrant_mailbox_lock(mailbox);
+
+	    if (! selfp->monitor_handle)
+	      {
+		selfp->monitor_handle = handle;
+		handle = NULL;
+	      }
+
+	    mn_reentrant_mailbox_unlock(mailbox);
+
+	    if (handle)
+	      gnome_vfs_monitor_cancel(handle);
+	    else
+	      {
+		GDK_THREADS_ENTER();
+		mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+		gdk_flush();
+		GDK_THREADS_LEAVE();
+	      }
+	  }
+	else
+	  {
+	    gboolean warn = FALSE;
+
+	    mn_reentrant_mailbox_lock(mailbox);
+
+	    if (! selfp->monitor_handle && result != selfp->type_monitor_result)
+	      {
+		warn = TRUE;
+		selfp->type_monitor_result = result;
+	      }
+
+	    mn_reentrant_mailbox_unlock(mailbox);
+	    
+	    if (warn)
+	      {
+		mn_mailbox_warning(MN_MAILBOX(self), _("unable to monitor mailbox type (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+	    
+		GDK_THREADS_ENTER();
+		self_monitor_error_dialog();
+		gdk_flush();
+		GDK_THREADS_LEAVE();
+	      }
+	  }
+      }
+    
+    if (backend && MN_VFS_MAILBOX_BACKEND_GET_CLASS(backend)->is(NULL, self))
+      backend_type = G_OBJECT_TYPE(backend);
+    else
+      {
+	exists = mn_vfs_test(self->vfs_uri, G_FILE_TEST_EXISTS);
+	if (exists)
+	  {
+	    int i;
+
+	    for (i = 0; mn_vfs_mailbox_backend_types[i]; i++)
+	      {
+		MNVFSMailboxBackendClass *class;
+		
+		class = g_type_class_peek(mn_vfs_mailbox_backend_types[i]);
+		g_return_if_fail(class != NULL);
+		
+		if (class->is(NULL, self))
+		  {
+		    backend_type = mn_vfs_mailbox_backend_types[i];
+		    break;
+		  }
+		
+		if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+		  goto end;
+	      }
+	  }
+      }
+    
+    if (! backend || backend_type != G_OBJECT_TYPE(backend))
+      {
+	gboolean is_local;
+	MNVFSMailboxBackend *new_backend = NULL;
+
+	is_local = gnome_vfs_uri_is_local(self->vfs_uri);
+
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    if (backend)
+	      {
+		/* reset must-poll and contents_monitor_result */
+		mn_mailbox_set_must_poll(MN_MAILBOX(self), selfp->monitor_handle == NULL);
+		self->contents_monitor_result = GNOME_VFS_OK;
+	      }
+
+	    if (backend_type)
+	      {
+		new_backend = g_object_new(backend_type, MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(self), NULL);
+
+		mn_mailbox_set_format(MN_MAILBOX(self), (char *) MN_VFS_MAILBOX_BACKEND_GET_CLASS(new_backend)->format);
+		if (! SELF_GET_CLASS(self)->stock_id)
+		  mn_mailbox_set_stock_id(MN_MAILBOX(self), is_local ? MN_STOCK_LOCAL : MN_STOCK_REMOTE);
+	      }
+	    else
+	      {
+		mn_mailbox_set_format(MN_MAILBOX(self), NULL);
+		if (! SELF_GET_CLASS(self)->stock_id)
+		  mn_mailbox_set_stock_id(MN_MAILBOX(self), MN_STOCK_UNKNOWN);
+		mn_mailbox_set_error(MN_MAILBOX(self), exists ? _("unknown mailbox format") : _("does not exist"));
+	      }
+	  }
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	mn_reentrant_mailbox_lock(mailbox);
+
+	if (backend)
+	  {
+	    g_object_unref(backend);
+	    backend = NULL;
+	  }
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    if (selfp->backend)
+	      {
+		g_object_unref(selfp->backend);
+		selfp->backend = NULL;
+	      }
+
+	    if (new_backend)
+	      {
+		selfp->backend = backend = new_backend;
+		new_backend = NULL;
+
+		g_object_ref(backend);
+	      }
+	  }
+	
+	mn_reentrant_mailbox_unlock(mailbox);
+
+	if (new_backend)
+	  g_object_unref(new_backend);
+      }
+    
+    if (backend)
+      mn_vfs_mailbox_backend_check(backend, check_id);
+    
+  end:
+    if (backend)
+      {
+	mn_reentrant_mailbox_lock(mailbox);
+	g_object_unref(backend);
+	mn_reentrant_mailbox_unlock(mailbox);
+      }
+  }}
+#line 537 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
+#undef PARENT_HANDLER
+
+#line 357 "mn-vfs-mailbox.gob"
+void 
+mn_vfs_mailbox_monitor_error_dialog (void)
+#line 544 "mn-vfs-mailbox.c"
+{
+#define __GOB_FUNCTION__ "MN:VFS:Mailbox::monitor_error_dialog"
+{
+#line 359 "mn-vfs-mailbox.gob"
+	
+    static gboolean first_time = TRUE;
+    int minutes;
+    int seconds;
+    char *str;
+
+    if (! first_time)
+      return;
+
+    if (eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
+      return;
+
+    first_time = FALSE;
+
+    minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
+    seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
+		    
+    if (minutes == 0)
+      str = g_strdup_printf(ngettext("As a fallback, they will be "
+				     "checked every %i second (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     "As a fallback, they will be "
+				     "checked every %i seconds (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     seconds),
+			    seconds);
+    else if (seconds == 0)
+      str = g_strdup_printf(ngettext("As a fallback, they will be "
+				     "checked every %i minute (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     "As a fallback, they will be "
+				     "checked every %i minutes (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     minutes),
+			    minutes);
+    else
+      str = g_strdup_printf(ngettext("As a fallback, they will be "
+				     "checked approximately every %i "
+				     "minute (this delay is "
+				     "configurable from the "
+				     "Properties Dialog).",
+				     "As a fallback, they will be "
+				     "checked approximately every %i "
+				     "minutes (this delay is "
+				     "configurable from the "
+				     "Properties Dialog).",
+				     minutes),
+			    minutes);
+		    
+    mn_error_dialog(NULL,
+		    MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
+		    "immediate-notification",
+		    _("A monitoring error has occurred"),
+		    _("Mail Notification was unable to enable immediate "
+		      "notification for one or more mailboxes. %s"), str);
+    g_free(str);
+  }}
+#line 610 "mn-vfs-mailbox.c"
+#undef __GOB_FUNCTION__
diff --git a/src/mn-vfs-mailbox.gob b/src/mn-vfs-mailbox.gob
@@ -0,0 +1,420 @@
+/* 
+ * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+requires 2.0.12
+
+%headertop{
+#include <libgnomevfs/gnome-vfs.h>
+#include "mn-reentrant-mailbox.h"
+%}
+
+%h{
+#define MN_VFS_MAILBOX_MAX_BACKEND_TYPES	4
+extern GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+%}
+
+%privateheader{
+#include "mn-vfs-mailbox-backend.h"
+%}
+
+%{
+#include "config.h"
+#include <glib/gi18n.h>
+#ifdef WITH_MBOX
+#include "mn-mbox-mailbox-backend.h"
+#endif
+#ifdef WITH_MH
+#include "mn-mh-mailbox-backend.h"
+#endif
+#ifdef WITH_MAILDIR
+#include "mn-maildir-mailbox-backend.h"
+#endif
+#ifdef WITH_SYLPHEED
+#include "mn-sylpheed-mailbox-backend.h"
+#endif
+#include "mn-vfs.h"
+#include "mn-stock.h"
+#include "mn-conf.h"
+
+GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+%}
+
+class MN:VFS:Mailbox from MN:Reentrant:Mailbox
+{
+  classwide const char *stock_id;
+
+  public char *uri destroywith g_free;
+  public GnomeVFSURI *vfs_uri unrefwith gnome_vfs_uri_unref;
+
+  private GnomeVFSMonitorHandle *monitor_handle;
+
+  private GnomeVFSResult type_monitor_result = GNOME_VFS_OK;
+  protected GnomeVFSResult contents_monitor_result = GNOME_VFS_OK;
+
+  private MNVFSMailboxBackend *backend unrefwith g_object_unref;
+  
+  public void
+    init_types (void)
+  {
+    int i = 0;
+
+#ifdef WITH_MBOX
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MBOX_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MH
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MH_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_MAILDIR
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_MAILDIR_MAILBOX_BACKEND;
+#endif
+#ifdef WITH_SYLPHEED
+    mn_vfs_mailbox_backend_types[i++] = MN_TYPE_SYLPHEED_MAILBOX_BACKEND;
+#endif
+    mn_vfs_mailbox_backend_types[i] = 0;
+  }
+  
+  override (G:Object) GObject *
+    constructor (GType type, unsigned int n_construct_properties, GObjectConstructParam *construct_params)
+  {
+    GObject *object;
+    Self *self;
+    SelfClass *class;
+
+    object = PARENT_HANDLER(type, n_construct_properties, construct_params);
+    self = SELF(object);
+    class = SELF_GET_CLASS(self);
+
+    if (class->stock_id)
+      mn_mailbox_set_stock_id(MN_MAILBOX(self), (char *) class->stock_id);
+
+    return object;
+  }
+
+  override (G:Object) void
+    dispose (GObject *object)
+  {
+    Self *self = SELF(object);
+
+    /*
+     * We are no longer operational after dispose (see unrefwith
+     * above), so we must remove our monitor.
+     */
+    if (selfp->monitor_handle)
+      {
+	gnome_vfs_monitor_cancel(selfp->monitor_handle);
+	selfp->monitor_handle = NULL;
+      }
+
+    PARENT_HANDLER(object);
+  }
+
+  override (MN:Mailbox) void
+    seal (MNMailbox *mailbox)
+  {
+    Self *self = SELF(mailbox);
+
+    PARENT_HANDLER(mailbox);
+
+    if (self->uri)
+      {
+	self->vfs_uri = gnome_vfs_uri_new(self->uri);
+
+	if (! mailbox->runtime_name)
+	  {
+	    char *path;
+
+	    path = gnome_vfs_get_local_path_from_uri(self->uri);
+	    if (path)
+	      {
+		mailbox->runtime_name = g_filename_display_name(path);
+		g_free(path);
+	      }
+	    else
+	      mailbox->runtime_name = self->vfs_uri
+		? gnome_vfs_uri_to_string(self->vfs_uri, GNOME_VFS_URI_HIDE_PASSWORD)
+		: g_strdup(self->uri);
+	  }
+      }
+  }
+  
+  private void
+    monitor_cb (GnomeVFSMonitorHandle *handle,
+		const char *monitor_uri,
+		const char *info_uri,
+		GnomeVFSMonitorEventType event_type,
+		gpointer user_data)
+  {
+    if (event_type == GNOME_VFS_MONITOR_EVENT_CHANGED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_DELETED
+	|| event_type == GNOME_VFS_MONITOR_EVENT_CREATED)
+      {
+	Self *self = user_data;
+	mn_reentrant_mailbox_queue_check(MN_REENTRANT_MAILBOX(self));
+      }
+  }
+
+  override (MN:Reentrant:Mailbox) void
+    impl_check (MNReentrantMailbox *mailbox, unsigned long check_id)
+  {
+    Self *self = SELF(mailbox);
+    MNVFSMailboxBackend *backend;
+    GnomeVFSMonitorHandle *handle;
+    GType backend_type = 0;
+    gboolean exists;
+
+    mn_reentrant_mailbox_lock(mailbox);
+
+    handle = selfp->monitor_handle;
+
+    backend = selfp->backend;
+    if (backend)
+      g_object_ref(backend);
+
+    mn_reentrant_mailbox_unlock(mailbox);
+
+    if (! handle)
+      {
+	GnomeVFSResult result;
+
+	result = gnome_vfs_monitor_add(&handle,
+				       self->uri,
+				       GNOME_VFS_MONITOR_FILE,
+				       self_monitor_cb,
+				       self);
+
+	if (result == GNOME_VFS_OK)
+	  {
+	    mn_reentrant_mailbox_lock(mailbox);
+
+	    if (! selfp->monitor_handle)
+	      {
+		selfp->monitor_handle = handle;
+		handle = NULL;
+	      }
+
+	    mn_reentrant_mailbox_unlock(mailbox);
+
+	    if (handle)
+	      gnome_vfs_monitor_cancel(handle);
+	    else
+	      {
+		GDK_THREADS_ENTER();
+		mn_mailbox_set_must_poll(MN_MAILBOX(self), FALSE);
+		gdk_flush();
+		GDK_THREADS_LEAVE();
+	      }
+	  }
+	else
+	  {
+	    gboolean warn = FALSE;
+
+	    mn_reentrant_mailbox_lock(mailbox);
+
+	    if (! selfp->monitor_handle && result != selfp->type_monitor_result)
+	      {
+		warn = TRUE;
+		selfp->type_monitor_result = result;
+	      }
+
+	    mn_reentrant_mailbox_unlock(mailbox);
+	    
+	    if (warn)
+	      {
+		mn_mailbox_warning(MN_MAILBOX(self), _("unable to monitor mailbox type (%s), poll mode activated"), gnome_vfs_result_to_string(result));
+	    
+		GDK_THREADS_ENTER();
+		self_monitor_error_dialog();
+		gdk_flush();
+		GDK_THREADS_LEAVE();
+	      }
+	  }
+      }
+    
+    if (backend && MN_VFS_MAILBOX_BACKEND_GET_CLASS(backend)->is(NULL, self))
+      backend_type = G_OBJECT_TYPE(backend);
+    else
+      {
+	exists = mn_vfs_test(self->vfs_uri, G_FILE_TEST_EXISTS);
+	if (exists)
+	  {
+	    int i;
+
+	    for (i = 0; mn_vfs_mailbox_backend_types[i]; i++)
+	      {
+		MNVFSMailboxBackendClass *class;
+		
+		class = g_type_class_peek(mn_vfs_mailbox_backend_types[i]);
+		g_return_if_fail(class != NULL);
+		
+		if (class->is(NULL, self))
+		  {
+		    backend_type = mn_vfs_mailbox_backend_types[i];
+		    break;
+		  }
+		
+		if (mn_reentrant_mailbox_check_aborted(mailbox, check_id))
+		  goto end;
+	      }
+	  }
+      }
+    
+    if (! backend || backend_type != G_OBJECT_TYPE(backend))
+      {
+	gboolean is_local;
+	MNVFSMailboxBackend *new_backend = NULL;
+
+	is_local = gnome_vfs_uri_is_local(self->vfs_uri);
+
+	GDK_THREADS_ENTER();
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    if (backend)
+	      {
+		/* reset must-poll and contents_monitor_result */
+		mn_mailbox_set_must_poll(MN_MAILBOX(self), selfp->monitor_handle == NULL);
+		self->contents_monitor_result = GNOME_VFS_OK;
+	      }
+
+	    if (backend_type)
+	      {
+		new_backend = g_object_new(backend_type, MN_VFS_MAILBOX_BACKEND_PROP_MAILBOX(self), NULL);
+
+		mn_mailbox_set_format(MN_MAILBOX(self), (char *) MN_VFS_MAILBOX_BACKEND_GET_CLASS(new_backend)->format);
+		if (! SELF_GET_CLASS(self)->stock_id)
+		  mn_mailbox_set_stock_id(MN_MAILBOX(self), is_local ? MN_STOCK_LOCAL : MN_STOCK_REMOTE);
+	      }
+	    else
+	      {
+		mn_mailbox_set_format(MN_MAILBOX(self), NULL);
+		if (! SELF_GET_CLASS(self)->stock_id)
+		  mn_mailbox_set_stock_id(MN_MAILBOX(self), MN_STOCK_UNKNOWN);
+		mn_mailbox_set_error(MN_MAILBOX(self), exists ? _("unknown mailbox format") : _("does not exist"));
+	      }
+	  }
+
+	gdk_flush();
+	GDK_THREADS_LEAVE();
+
+	mn_reentrant_mailbox_lock(mailbox);
+
+	if (backend)
+	  {
+	    g_object_unref(backend);
+	    backend = NULL;
+	  }
+
+	if (! mn_reentrant_mailbox_check_aborted_unlocked(mailbox, check_id))
+	  {
+	    if (selfp->backend)
+	      {
+		g_object_unref(selfp->backend);
+		selfp->backend = NULL;
+	      }
+
+	    if (new_backend)
+	      {
+		selfp->backend = backend = new_backend;
+		new_backend = NULL;
+
+		g_object_ref(backend);
+	      }
+	  }
+	
+	mn_reentrant_mailbox_unlock(mailbox);
+
+	if (new_backend)
+	  g_object_unref(new_backend);
+      }
+    
+    if (backend)
+      mn_vfs_mailbox_backend_check(backend, check_id);
+    
+  end:
+    if (backend)
+      {
+	mn_reentrant_mailbox_lock(mailbox);
+	g_object_unref(backend);
+	mn_reentrant_mailbox_unlock(mailbox);
+      }
+  }
+
+  protected void
+    monitor_error_dialog (void)
+  {
+    static gboolean first_time = TRUE;
+    int minutes;
+    int seconds;
+    char *str;
+
+    if (! first_time)
+      return;
+
+    if (eel_gconf_get_boolean(MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW))
+      return;
+
+    first_time = FALSE;
+
+    minutes = eel_gconf_get_integer(MN_CONF_DELAY_MINUTES);
+    seconds = eel_gconf_get_integer(MN_CONF_DELAY_SECONDS);
+		    
+    if (minutes == 0)
+      str = g_strdup_printf(ngettext("As a fallback, they will be "
+				     "checked every %i second (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     "As a fallback, they will be "
+				     "checked every %i seconds (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     seconds),
+			    seconds);
+    else if (seconds == 0)
+      str = g_strdup_printf(ngettext("As a fallback, they will be "
+				     "checked every %i minute (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     "As a fallback, they will be "
+				     "checked every %i minutes (this "
+				     "delay is configurable from the "
+				     "Properties Dialog).",
+				     minutes),
+			    minutes);
+    else
+      str = g_strdup_printf(ngettext("As a fallback, they will be "
+				     "checked approximately every %i "
+				     "minute (this delay is "
+				     "configurable from the "
+				     "Properties Dialog).",
+				     "As a fallback, they will be "
+				     "checked approximately every %i "
+				     "minutes (this delay is "
+				     "configurable from the "
+				     "Properties Dialog).",
+				     minutes),
+			    minutes);
+		    
+    mn_error_dialog(NULL,
+		    MN_CONF_IMMEDIATE_NOTIFICATION_ERROR_DIALOG_DO_NOT_SHOW,
+		    "immediate-notification",
+		    _("A monitoring error has occurred"),
+		    _("Mail Notification was unable to enable immediate "
+		      "notification for one or more mailboxes. %s"), str);
+    g_free(str);
+  }
+}
diff --git a/src/mn-vfs-mailbox.h b/src/mn-vfs-mailbox.h
@@ -0,0 +1,74 @@
+/* Generated by GOB (v2.0.12)   (do not edit directly) */
+
+#include <glib.h>
+#include <glib-object.h>
+
+
+#include <libgnomevfs/gnome-vfs.h>
+#include "mn-reentrant-mailbox.h"
+
+#ifndef __MN_VFS_MAILBOX_H__
+#define __MN_VFS_MAILBOX_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+
+
+#define MN_VFS_MAILBOX_MAX_BACKEND_TYPES	4
+extern GType mn_vfs_mailbox_backend_types[MN_VFS_MAILBOX_MAX_BACKEND_TYPES + 1];
+
+
+/*
+ * Type checking and casting macros
+ */
+#define MN_TYPE_VFS_MAILBOX	(mn_vfs_mailbox_get_type())
+#define MN_VFS_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_get_type(), MNVFSMailbox)
+#define MN_VFS_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_vfs_mailbox_get_type(), MNVFSMailbox const)
+#define MN_VFS_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_vfs_mailbox_get_type(), MNVFSMailboxClass)
+#define MN_IS_VFS_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_vfs_mailbox_get_type ())
+
+#define MN_VFS_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_vfs_mailbox_get_type(), MNVFSMailboxClass)
+
+/* Private structure type */
+typedef struct _MNVFSMailboxPrivate MNVFSMailboxPrivate;
+
+/*
+ * Main object structure
+ */
+#ifndef __TYPEDEF_MN_VFS_MAILBOX__
+#define __TYPEDEF_MN_VFS_MAILBOX__
+typedef struct _MNVFSMailbox MNVFSMailbox;
+#endif
+struct _MNVFSMailbox {
+	MNReentrantMailbox __parent__;
+	/*< public >*/
+	char * uri;
+	GnomeVFSURI * vfs_uri;
+	/*< private >*/
+	GnomeVFSResult contents_monitor_result; /* protected */
+	MNVFSMailboxPrivate *_priv;
+};
+
+/*
+ * Class definition
+ */
+typedef struct _MNVFSMailboxClass MNVFSMailboxClass;
+struct _MNVFSMailboxClass {
+	MNReentrantMailboxClass __parent__;
+	const char * stock_id;
+};
+
+
+/*
+ * Public methods
+ */
+GType	mn_vfs_mailbox_get_type	(void);
+void 	mn_vfs_mailbox_init_types	(void);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/src/mn-vfs.c b/src/mn-vfs.c
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -156,3 +156,20 @@ mn_vfs_test (GnomeVFSURI *uri, GFileTest test)
 
   return status;
 }
+
+GnomeVFSResult
+mn_vfs_read_entire_file_uri (GnomeVFSURI *uri,
+			     int *file_size,
+			     char **file_contents)
+{
+  char *text_uri;
+  GnomeVFSResult result;
+
+  g_return_val_if_fail(uri != NULL, GNOME_VFS_ERROR_BAD_PARAMETERS);
+
+  text_uri = gnome_vfs_uri_to_string(uri, GNOME_VFS_URI_HIDE_NONE);
+  result = gnome_vfs_read_entire_file(text_uri, file_size, file_contents);
+  g_free(text_uri);
+
+  return result;
+}
diff --git a/src/mn-vfs.h b/src/mn-vfs.h
@@ -1,5 +1,5 @@
 /* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
+ * Copyright (C) 2004, 2005 Jean-Yves Lefort <jylefort@brutele.be>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -32,4 +32,8 @@ void mn_vfs_read_line_context_free (MNVFSReadLineContext *context);
 
 gboolean mn_vfs_test (GnomeVFSURI *uri, GFileTest test);
 
+GnomeVFSResult mn_vfs_read_entire_file_uri (GnomeVFSURI *uri,
+					    int *file_size,
+					    char **file_contents);
+
 #endif /* _MN_VFS_H */
diff --git a/src/nautilus-cell-renderer-pixbuf-emblem.c b/src/nautilus-cell-renderer-pixbuf-emblem.c
@@ -0,0 +1,505 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+
+   nautilus-cell-renderer-pixbuf-emblem.c: cell renderer which can render
+   an emblem on top of a pixbuf (for use in FMListView and FMTreeView)
+ 
+   Copyright (C) 2003 Juerg Billeter
+  
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+  
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+  
+   You should have received a copy of the GNU General Public
+   License along with this program; if not, write to the
+   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+  
+   This is based on GtkCellRendererPixbuf written by
+   Jonathan Blandford <jrb@redhat.com>
+  
+   Author: Juerg Billeter <j@bitron.ch>
+*/
+
+#include "nautilus-cell-renderer-pixbuf-emblem.h"
+
+static void nautilus_cell_renderer_pixbuf_emblem_get_property (GObject *object,
+							guint		param_id,
+							GValue		*value,
+							GParamSpec	*pspec);
+static void nautilus_cell_renderer_pixbuf_emblem_set_property (GObject *object,
+							guint		param_id,
+							const GValue	*value,
+							GParamSpec	*pspec);
+static void nautilus_cell_renderer_pixbuf_emblem_init       (NautilusCellRendererPixbufEmblem *cellpixbuf);
+static void nautilus_cell_renderer_pixbuf_emblem_class_init  (NautilusCellRendererPixbufEmblemClass *klass);
+static void nautilus_cell_renderer_pixbuf_emblem_finalize (GObject *object);
+static void nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (NautilusCellRendererPixbufEmblem *cellpixbuf,
+                                                          GtkWidget             *widget);
+static void nautilus_cell_renderer_pixbuf_emblem_get_size   (GtkCellRenderer            *cell,
+                                                 GtkWidget                  *widget,
+                                                 GdkRectangle               *rectangle,
+                                                 gint                       *x_offset,
+                                                 gint                       *y_offset,
+                                                 gint                       *width,
+                                                 gint                       *height);
+static void     nautilus_cell_renderer_pixbuf_emblem_render     (GtkCellRenderer            *cell,
+                                                          GdkWindow                  *window,
+                                                          GtkWidget                  *widget,
+                                                          GdkRectangle               *background_area,
+                                                          GdkRectangle               *cell_area,
+                                                          GdkRectangle               *expose_area,
+                                                          GtkCellRendererState                       flags);
+
+enum {
+	PROP_ZERO,
+	PROP_PIXBUF,
+	PROP_PIXBUF_EXPANDER_OPEN,
+	PROP_PIXBUF_EXPANDER_CLOSED,
+	PROP_STOCK_ID,
+	PROP_STOCK_SIZE,
+	PROP_STOCK_DETAIL,
+	PROP_PIXBUF_EMBLEM
+};
+
+static gpointer parent_class;
+
+#define CELLINFO_KEY "nautilus-cell-renderer-pixbuf-emblem-info"
+
+typedef struct _NautilusCellRendererPixbufEmblemInfo NautilusCellRendererPixbufEmblemInfo;
+struct _NautilusCellRendererPixbufEmblemInfo
+{
+	gchar *stock_id;
+	GtkIconSize stock_size;
+	gchar *stock_detail;
+};
+
+GType
+nautilus_cell_renderer_pixbuf_emblem_get_type (void)
+{
+	static GType cell_pixbuf_type = 0;
+
+	if (!cell_pixbuf_type) {
+		static const GTypeInfo cell_pixbuf_info =
+		{
+			sizeof (NautilusCellRendererPixbufEmblemClass),
+			NULL,                                                     /* base_init */
+			NULL,                                                     /* base_finalize */
+			(GClassInitFunc) nautilus_cell_renderer_pixbuf_emblem_class_init,
+			NULL,                                                     /* class_finalize */
+			NULL,                                                     /* class_data */
+			sizeof (NautilusCellRendererPixbufEmblem),
+			0,                                                        /* n_preallocs */
+			(GInstanceInitFunc) nautilus_cell_renderer_pixbuf_emblem_init,
+		};
+
+		cell_pixbuf_type = g_type_register_static (GTK_TYPE_CELL_RENDERER,
+							   "NautilusCellRendererPixbufEmblem",
+							   &cell_pixbuf_info, 0);
+	}
+
+	return cell_pixbuf_type;
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_init (NautilusCellRendererPixbufEmblem *cellpixbuf)
+{
+	NautilusCellRendererPixbufEmblemInfo *cellinfo;
+	
+	cellinfo = g_new0 (NautilusCellRendererPixbufEmblemInfo, 1);
+	cellinfo->stock_size = GTK_ICON_SIZE_MENU;
+	g_object_set_data (G_OBJECT (cellpixbuf), CELLINFO_KEY, cellinfo);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_class_init (NautilusCellRendererPixbufEmblemClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS (klass);
+
+	parent_class = g_type_class_peek_parent (klass);
+
+	object_class->finalize = nautilus_cell_renderer_pixbuf_emblem_finalize;
+
+	object_class->get_property = nautilus_cell_renderer_pixbuf_emblem_get_property;
+	object_class->set_property = nautilus_cell_renderer_pixbuf_emblem_set_property;
+
+	cell_class->get_size = nautilus_cell_renderer_pixbuf_emblem_get_size;
+	cell_class->render = nautilus_cell_renderer_pixbuf_emblem_render;
+
+	g_object_class_install_property (object_class,
+				   PROP_PIXBUF,
+				   g_param_spec_object ("pixbuf",
+							"Pixbuf Object",
+							"The pixbuf to render",
+							GDK_TYPE_PIXBUF,
+							G_PARAM_READABLE |
+							G_PARAM_WRITABLE));
+
+	g_object_class_install_property (object_class,
+				   PROP_PIXBUF_EXPANDER_OPEN,
+				   g_param_spec_object ("pixbuf_expander_open",
+							"Pixbuf Expander Open",
+							"Pixbuf for open expander",
+							GDK_TYPE_PIXBUF,
+							G_PARAM_READABLE |
+							G_PARAM_WRITABLE));
+
+	g_object_class_install_property (object_class,
+				   PROP_PIXBUF_EXPANDER_CLOSED,
+				   g_param_spec_object ("pixbuf_expander_closed",
+							"Pixbuf Expander Closed",
+							"Pixbuf for closed expander",
+							GDK_TYPE_PIXBUF,
+							G_PARAM_READABLE |
+							G_PARAM_WRITABLE));
+
+	g_object_class_install_property (object_class,
+				   PROP_STOCK_ID,
+				   g_param_spec_string ("stock_id",
+							"Stock ID",
+							"The stock ID of the stock icon to render",
+							NULL,
+							G_PARAM_READWRITE));
+
+	g_object_class_install_property (object_class,
+				   PROP_STOCK_SIZE,
+				   g_param_spec_enum ("stock_size",
+						      "Size",
+						      "The size of the rendered icon",
+						      GTK_TYPE_ICON_SIZE,
+						      GTK_ICON_SIZE_MENU,
+						      G_PARAM_READWRITE));
+
+	g_object_class_install_property (object_class,
+				   PROP_STOCK_DETAIL,
+				   g_param_spec_string ("stock_detail",
+							"Detail",
+							"Render detail to pass to the theme engine",
+							NULL,
+							G_PARAM_READWRITE));
+
+	g_object_class_install_property (object_class,
+					 PROP_PIXBUF_EMBLEM,
+					 g_param_spec_object ("pixbuf_emblem",
+							      "Pixbuf Emblem Object",
+							      "The emblem to overlay",
+							      GDK_TYPE_PIXBUF,
+							      G_PARAM_READABLE |
+							      G_PARAM_WRITABLE));
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_finalize (GObject *object)
+{
+	NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
+	NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+	
+	if (cellpixbuf->pixbuf && cellinfo->stock_id) {
+		g_object_unref (cellpixbuf->pixbuf);
+	}
+	
+	if (cellinfo->stock_id) {
+		g_free (cellinfo->stock_id);
+	}
+	
+	if (cellinfo->stock_detail) {
+		g_free (cellinfo->stock_detail);
+	}
+	
+	g_free (cellinfo);
+	g_object_set_data (object, CELLINFO_KEY, NULL);
+
+	(* G_OBJECT_CLASS (parent_class)->finalize) (object);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_get_property (GObject        *object,
+                                       guint           param_id,
+                                       GValue         *value,
+                                       GParamSpec     *pspec)
+{
+	NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
+	NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+                                                                            
+	switch (param_id)
+	{
+		case PROP_PIXBUF:
+			g_value_set_object (value,
+					    cellpixbuf->pixbuf ? G_OBJECT (cellpixbuf->pixbuf) : NULL);
+			break;
+		case PROP_PIXBUF_EXPANDER_OPEN:
+			g_value_set_object (value,
+					    cellpixbuf->pixbuf_expander_open ? G_OBJECT (cellpixbuf->pixbuf_expander_open) : NULL);
+			break;
+		case PROP_PIXBUF_EXPANDER_CLOSED:
+			g_value_set_object (value,
+					    cellpixbuf->pixbuf_expander_closed ? G_OBJECT (cellpixbuf->pixbuf_expander_closed) : NULL);
+			break;
+		case PROP_STOCK_ID:
+			g_value_set_string (value, cellinfo->stock_id);
+			break;
+		case PROP_STOCK_SIZE:
+			g_value_set_enum (value, cellinfo->stock_size);
+			break;
+		case PROP_STOCK_DETAIL:
+			g_value_set_string (value, cellinfo->stock_detail);
+			break;
+		case PROP_PIXBUF_EMBLEM:
+			g_value_set_object (value,
+					    cellpixbuf->pixbuf_emblem ? G_OBJECT (cellpixbuf->pixbuf_emblem) : NULL);
+			break;
+
+		default:
+			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+			break;
+	}
+}
+                                                                                                                                                                       
+static void
+nautilus_cell_renderer_pixbuf_emblem_set_property (GObject      *object,
+                                            guint         param_id,
+                                            const GValue *value,
+                                            GParamSpec   *pspec)
+{
+	GdkPixbuf *pixbuf;
+	NautilusCellRendererPixbufEmblem *cellpixbuf = NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM (object);
+	NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (object, CELLINFO_KEY);
+                                                                            
+	switch (param_id)
+	{
+		case PROP_PIXBUF:
+			pixbuf = (GdkPixbuf*) g_value_get_object (value);
+			if (pixbuf) {
+				g_object_ref (pixbuf);
+			}
+			if (cellpixbuf->pixbuf) {
+				g_object_unref (cellpixbuf->pixbuf);
+			}
+			cellpixbuf->pixbuf = pixbuf;
+			break;
+		case PROP_PIXBUF_EXPANDER_OPEN:
+			pixbuf = (GdkPixbuf*) g_value_get_object (value);
+			if (pixbuf) {
+				g_object_ref (pixbuf);
+			}
+			if (cellpixbuf->pixbuf_expander_open) {
+				g_object_unref (cellpixbuf->pixbuf_expander_open);
+			}
+			cellpixbuf->pixbuf_expander_open = pixbuf;
+			break;
+		case PROP_PIXBUF_EXPANDER_CLOSED:
+			pixbuf = (GdkPixbuf*) g_value_get_object (value);
+			if (pixbuf) {
+				g_object_ref (pixbuf);
+			}
+			if (cellpixbuf->pixbuf_expander_closed) {
+				g_object_unref (cellpixbuf->pixbuf_expander_closed);
+			}
+			cellpixbuf->pixbuf_expander_closed = pixbuf;
+			break;
+		case PROP_STOCK_ID:
+			if (cellinfo->stock_id) {
+				g_free (cellinfo->stock_id);
+			}
+			cellinfo->stock_id = g_strdup (g_value_get_string (value));
+			break;
+		case PROP_STOCK_SIZE:
+			cellinfo->stock_size = g_value_get_enum (value);
+			break;
+		case PROP_STOCK_DETAIL:
+			if (cellinfo->stock_detail) {
+				g_free (cellinfo->stock_detail);
+			}
+			cellinfo->stock_detail = g_strdup (g_value_get_string (value));
+			break;
+		case PROP_PIXBUF_EMBLEM:
+			pixbuf = (GdkPixbuf *) g_value_get_object (value);
+			if (pixbuf) {
+				g_object_ref (pixbuf);
+			}
+			if (cellpixbuf->pixbuf_emblem) {
+				g_object_unref (cellpixbuf->pixbuf_emblem);
+			}
+			cellpixbuf->pixbuf_emblem = pixbuf;
+			break;
+
+		default:
+			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+			break;
+	}
+}
+
+GtkCellRenderer *
+nautilus_cell_renderer_pixbuf_emblem_new (void)
+{
+	return g_object_new (NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NULL);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (NautilusCellRendererPixbufEmblem *cellpixbuf,
+					      GtkWidget             *widget)
+{
+	NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cellpixbuf), CELLINFO_KEY);
+
+	if (cellpixbuf->pixbuf) {
+		g_object_unref (cellpixbuf->pixbuf);
+	}
+
+	cellpixbuf->pixbuf = gtk_widget_render_icon (widget,
+					       cellinfo->stock_id,
+					       cellinfo->stock_size,
+					       cellinfo->stock_detail);
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_get_size (GtkCellRenderer *cell,
+				   GtkWidget       *widget,
+				   GdkRectangle    *cell_area,
+				   gint            *x_offset,
+				   gint            *y_offset,
+				   gint            *width,
+				   gint            *height)
+{
+	NautilusCellRendererPixbufEmblem *cellpixbuf = (NautilusCellRendererPixbufEmblem *) cell;
+	NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cell), CELLINFO_KEY);
+	gint pixbuf_width  = 0;
+	gint pixbuf_height = 0;
+	gint calc_width;
+	gint calc_height;
+
+	if (!cellpixbuf->pixbuf && cellinfo->stock_id)
+		nautilus_cell_renderer_pixbuf_emblem_create_stock_pixbuf (cellpixbuf, widget);
+
+	if (cellpixbuf->pixbuf) {
+		pixbuf_width  = gdk_pixbuf_get_width (cellpixbuf->pixbuf);
+		pixbuf_height = gdk_pixbuf_get_height (cellpixbuf->pixbuf);
+	}
+	if (cellpixbuf->pixbuf_expander_open) {
+		pixbuf_width  = MAX (pixbuf_width, gdk_pixbuf_get_width (cellpixbuf->pixbuf_expander_open));
+		pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_open));
+	}
+	if (cellpixbuf->pixbuf_expander_closed) {
+		pixbuf_width  = MAX (pixbuf_width, gdk_pixbuf_get_width (cellpixbuf->pixbuf_expander_closed));
+		pixbuf_height = MAX (pixbuf_height, gdk_pixbuf_get_height (cellpixbuf->pixbuf_expander_closed));
+	}
+  
+	calc_width  = (gint) cell->xpad * 2 + pixbuf_width;
+	calc_height = (gint) cell->ypad * 2 + pixbuf_height;
+  
+	if (x_offset) *x_offset = 0;
+	if (y_offset) *y_offset = 0;
+
+	if (cell_area && pixbuf_width > 0 && pixbuf_height > 0) {
+		if (x_offset) {
+			*x_offset = (((gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
+				1.0 - cell->xalign : cell->xalign) * 
+				(cell_area->width - calc_width - 2 * cell->xpad));
+			*x_offset = MAX (*x_offset, 0) + cell->xpad;
+		}
+		if (y_offset) {
+			*y_offset = (cell->yalign *
+				(cell_area->height - calc_height - 2 * cell->ypad));
+			*y_offset = MAX (*y_offset, 0) + cell->ypad;
+		}
+	}
+
+	if (width)
+		*width = calc_width;
+  
+	if (height)
+		*height = calc_height;
+}
+
+static void
+nautilus_cell_renderer_pixbuf_emblem_render (GtkCellRenderer      *cell,
+                                 GdkWindow            *window,
+                                 GtkWidget            *widget,
+                                 GdkRectangle         *background_area,
+                                 GdkRectangle         *cell_area,
+                                 GdkRectangle         *expose_area,
+                                 GtkCellRendererState  flags)
+ 
+{
+	NautilusCellRendererPixbufEmblem *cellpixbuf = (NautilusCellRendererPixbufEmblem *) cell;
+	NautilusCellRendererPixbufEmblemInfo *cellinfo = g_object_get_data (G_OBJECT (cell), CELLINFO_KEY);
+	GdkPixbuf *pixbuf;
+	GdkRectangle pix_rect;
+	GdkRectangle pix_emblem_rect;
+	GdkRectangle draw_rect;
+	gboolean stock_pixbuf = FALSE;
+	
+	pixbuf = cellpixbuf->pixbuf;
+	if (cell->is_expander) {
+		if (cell->is_expanded &&
+		    cellpixbuf->pixbuf_expander_open != NULL) {
+			pixbuf = cellpixbuf->pixbuf_expander_open;
+		} else if (!cell->is_expanded &&
+			   cellpixbuf->pixbuf_expander_closed != NULL) {
+			pixbuf = cellpixbuf->pixbuf_expander_closed;
+		}
+	}
+
+	if (!pixbuf && !cellinfo->stock_id) {
+		return;
+	} else if (!pixbuf && cellinfo->stock_id) {
+		stock_pixbuf = TRUE;
+	}
+
+	nautilus_cell_renderer_pixbuf_emblem_get_size (cell, widget, cell_area,
+				     &pix_rect.x,
+				     &pix_rect.y,
+				     &pix_rect.width,
+				     &pix_rect.height);
+
+	if (stock_pixbuf)
+		pixbuf = cellpixbuf->pixbuf;
+  
+	pix_rect.x += cell_area->x;
+	pix_rect.y += cell_area->y;
+	pix_rect.width  -= cell->xpad * 2;
+	pix_rect.height -= cell->ypad * 2;
+
+	if (gdk_rectangle_intersect (cell_area, &pix_rect, &draw_rect) &&
+	    gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
+		gdk_draw_pixbuf (window,
+			widget->style->black_gc,
+			pixbuf,
+			/* pixbuf 0, 0 is at pix_rect.x, pix_rect.y */
+			draw_rect.x - pix_rect.x,
+			draw_rect.y - pix_rect.y,
+			draw_rect.x,
+			draw_rect.y,
+			draw_rect.width,
+			draw_rect.height,
+			GDK_RGB_DITHER_NORMAL,
+			0, 0);
+	}
+
+	if (cellpixbuf->pixbuf_emblem) {
+		pix_emblem_rect.width = gdk_pixbuf_get_width (cellpixbuf->pixbuf_emblem);
+		pix_emblem_rect.height = gdk_pixbuf_get_height (cellpixbuf->pixbuf_emblem);
+		pix_emblem_rect.x = pix_rect.x;
+		pix_emblem_rect.y = pix_rect.y + pix_rect.height - pix_emblem_rect.height;
+		if (gdk_rectangle_intersect (cell_area, &pix_emblem_rect, &draw_rect) &&
+		    gdk_rectangle_intersect (expose_area, &draw_rect, &draw_rect)) {
+			gdk_draw_pixbuf (window,
+				widget->style->black_gc,
+				cellpixbuf->pixbuf_emblem,
+				/* pixbuf 0, 0 is at pix_emblem_rect.x, pix_emblem_rect.y */
+				draw_rect.x - pix_emblem_rect.x,
+				draw_rect.y - pix_emblem_rect.y,
+				draw_rect.x,
+				draw_rect.y,
+				draw_rect.width,
+				draw_rect.height,
+				GDK_RGB_DITHER_NORMAL,
+				0, 0);
+		}
+	}
+}
diff --git a/src/nautilus-cell-renderer-pixbuf-emblem.h b/src/nautilus-cell-renderer-pixbuf-emblem.h
@@ -0,0 +1,65 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+
+   nautilus-cell-renderer-pixbuf-emblem.h: cell renderer which can render
+   an emblem on top of a pixbuf (for use in FMListView and FMTreeView)
+ 
+   Copyright (C) 2003 Juerg Billeter
+  
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+  
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+  
+   You should have received a copy of the GNU General Public
+   License along with this program; if not, write to the
+   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.
+
+   This is based on GtkCellRendererPixbuf written by
+   Jonathan Blandford <jrb@redhat.com>
+  
+   Author: Juerg Billeter <j@bitron.ch>
+*/
+
+#ifndef NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+#define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H
+
+#include <gtk/gtkcellrenderer.h>
+
+#define NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM \
+	(nautilus_cell_renderer_pixbuf_emblem_get_type ())
+#define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+	(GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblem))
+#define NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+	(GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM, NautilusCellRendererPixbufEmblemClass))
+#define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM(obj) \
+	(GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+#define NAUTILUS_IS_CELL_RENDERER_PIXBUF_EMBLEM_CLASS(klass) \
+	(GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_CELL_RENDERER_PIXBUF_EMBLEM))
+	
+typedef struct _NautilusCellRendererPixbufEmblem NautilusCellRendererPixbufEmblem;
+typedef struct _NautilusCellRendererPixbufEmblemClass NautilusCellRendererPixbufEmblemClass;
+
+struct _NautilusCellRendererPixbufEmblem {
+	GtkCellRenderer	parent;
+	
+	/*< private >*/
+	GdkPixbuf *pixbuf;
+	GdkPixbuf *pixbuf_expander_open;
+	GdkPixbuf *pixbuf_expander_closed;
+	GdkPixbuf *pixbuf_emblem;
+};
+
+struct _NautilusCellRendererPixbufEmblemClass {
+	GtkCellRendererClass parent_class;
+};
+
+GType		 nautilus_cell_renderer_pixbuf_emblem_get_type (void);
+GtkCellRenderer *nautilus_cell_renderer_pixbuf_emblem_new      (void);
+
+#endif /* NAUTILUS_CELL_RENDERER_PIXBUF_EMBLEM_H */
diff --git a/src/org-gnome-mail-notification.eplug.in b/src/org-gnome-mail-notification.eplug.in
@@ -0,0 +1,17 @@
+<e-plugin-list>
+  <e-plugin
+    id="org.gnome.evolution.mail-notification"
+    type="shlib"
+    name="Mail Notification"
+    location="@PLUGINDIR@/liborg-gnome-mail-notification.so">
+
+    <description>Provides Evolution mailbox support for Mail Notification.</description>
+    <author name="Jean-Yves Lefort" email="jylefort@brutele.be"/>
+
+    <hook class="org.gnome.evolution.mail.events:1.0">
+      <event id="folder.changed"
+	handle="org_gnome_mail_notification_folder_changed"
+	target="folder"/>
+    </hook>
+  </e-plugin>
+</e-plugin-list>
diff --git a/src/xhtml-lat1.ent b/src/xhtml-lat1.ent
@@ -1,196 +0,0 @@
-<!-- Portions (C) International Organization for Standardization 1986
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-<!-- Character entity set. Typical invocation:
-    <!ENTITY % HTMLlat1 PUBLIC
-       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
-       "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
-    %HTMLlat1;
--->
-
-<!ENTITY nbsp   "&#160;"> <!-- no-break space = non-breaking space,
-                                  U+00A0 ISOnum -->
-<!ENTITY iexcl  "&#161;"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
-<!ENTITY cent   "&#162;"> <!-- cent sign, U+00A2 ISOnum -->
-<!ENTITY pound  "&#163;"> <!-- pound sign, U+00A3 ISOnum -->
-<!ENTITY curren "&#164;"> <!-- currency sign, U+00A4 ISOnum -->
-<!ENTITY yen    "&#165;"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
-<!ENTITY brvbar "&#166;"> <!-- broken bar = broken vertical bar,
-                                  U+00A6 ISOnum -->
-<!ENTITY sect   "&#167;"> <!-- section sign, U+00A7 ISOnum -->
-<!ENTITY uml    "&#168;"> <!-- diaeresis = spacing diaeresis,
-                                  U+00A8 ISOdia -->
-<!ENTITY copy   "&#169;"> <!-- copyright sign, U+00A9 ISOnum -->
-<!ENTITY ordf   "&#170;"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
-<!ENTITY laquo  "&#171;"> <!-- left-pointing double angle quotation mark
-                                  = left pointing guillemet, U+00AB ISOnum -->
-<!ENTITY not    "&#172;"> <!-- not sign = discretionary hyphen,
-                                  U+00AC ISOnum -->
-<!ENTITY shy    "&#173;"> <!-- soft hyphen = discretionary hyphen,
-                                  U+00AD ISOnum -->
-<!ENTITY reg    "&#174;"> <!-- registered sign = registered trade mark sign,
-                                  U+00AE ISOnum -->
-<!ENTITY macr   "&#175;"> <!-- macron = spacing macron = overline
-                                  = APL overbar, U+00AF ISOdia -->
-<!ENTITY deg    "&#176;"> <!-- degree sign, U+00B0 ISOnum -->
-<!ENTITY plusmn "&#177;"> <!-- plus-minus sign = plus-or-minus sign,
-                                  U+00B1 ISOnum -->
-<!ENTITY sup2   "&#178;"> <!-- superscript two = superscript digit two
-                                  = squared, U+00B2 ISOnum -->
-<!ENTITY sup3   "&#179;"> <!-- superscript three = superscript digit three
-                                  = cubed, U+00B3 ISOnum -->
-<!ENTITY acute  "&#180;"> <!-- acute accent = spacing acute,
-                                  U+00B4 ISOdia -->
-<!ENTITY micro  "&#181;"> <!-- micro sign, U+00B5 ISOnum -->
-<!ENTITY para   "&#182;"> <!-- pilcrow sign = paragraph sign,
-                                  U+00B6 ISOnum -->
-<!ENTITY middot "&#183;"> <!-- middle dot = Georgian comma
-                                  = Greek middle dot, U+00B7 ISOnum -->
-<!ENTITY cedil  "&#184;"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
-<!ENTITY sup1   "&#185;"> <!-- superscript one = superscript digit one,
-                                  U+00B9 ISOnum -->
-<!ENTITY ordm   "&#186;"> <!-- masculine ordinal indicator,
-                                  U+00BA ISOnum -->
-<!ENTITY raquo  "&#187;"> <!-- right-pointing double angle quotation mark
-                                  = right pointing guillemet, U+00BB ISOnum -->
-<!ENTITY frac14 "&#188;"> <!-- vulgar fraction one quarter
-                                  = fraction one quarter, U+00BC ISOnum -->
-<!ENTITY frac12 "&#189;"> <!-- vulgar fraction one half
-                                  = fraction one half, U+00BD ISOnum -->
-<!ENTITY frac34 "&#190;"> <!-- vulgar fraction three quarters
-                                  = fraction three quarters, U+00BE ISOnum -->
-<!ENTITY iquest "&#191;"> <!-- inverted question mark
-                                  = turned question mark, U+00BF ISOnum -->
-<!ENTITY Agrave "&#192;"> <!-- latin capital letter A with grave
-                                  = latin capital letter A grave,
-                                  U+00C0 ISOlat1 -->
-<!ENTITY Aacute "&#193;"> <!-- latin capital letter A with acute,
-                                  U+00C1 ISOlat1 -->
-<!ENTITY Acirc  "&#194;"> <!-- latin capital letter A with circumflex,
-                                  U+00C2 ISOlat1 -->
-<!ENTITY Atilde "&#195;"> <!-- latin capital letter A with tilde,
-                                  U+00C3 ISOlat1 -->
-<!ENTITY Auml   "&#196;"> <!-- latin capital letter A with diaeresis,
-                                  U+00C4 ISOlat1 -->
-<!ENTITY Aring  "&#197;"> <!-- latin capital letter A with ring above
-                                  = latin capital letter A ring,
-                                  U+00C5 ISOlat1 -->
-<!ENTITY AElig  "&#198;"> <!-- latin capital letter AE
-                                  = latin capital ligature AE,
-                                  U+00C6 ISOlat1 -->
-<!ENTITY Ccedil "&#199;"> <!-- latin capital letter C with cedilla,
-                                  U+00C7 ISOlat1 -->
-<!ENTITY Egrave "&#200;"> <!-- latin capital letter E with grave,
-                                  U+00C8 ISOlat1 -->
-<!ENTITY Eacute "&#201;"> <!-- latin capital letter E with acute,
-                                  U+00C9 ISOlat1 -->
-<!ENTITY Ecirc  "&#202;"> <!-- latin capital letter E with circumflex,
-                                  U+00CA ISOlat1 -->
-<!ENTITY Euml   "&#203;"> <!-- latin capital letter E with diaeresis,
-                                  U+00CB ISOlat1 -->
-<!ENTITY Igrave "&#204;"> <!-- latin capital letter I with grave,
-                                  U+00CC ISOlat1 -->
-<!ENTITY Iacute "&#205;"> <!-- latin capital letter I with acute,
-                                  U+00CD ISOlat1 -->
-<!ENTITY Icirc  "&#206;"> <!-- latin capital letter I with circumflex,
-                                  U+00CE ISOlat1 -->
-<!ENTITY Iuml   "&#207;"> <!-- latin capital letter I with diaeresis,
-                                  U+00CF ISOlat1 -->
-<!ENTITY ETH    "&#208;"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
-<!ENTITY Ntilde "&#209;"> <!-- latin capital letter N with tilde,
-                                  U+00D1 ISOlat1 -->
-<!ENTITY Ograve "&#210;"> <!-- latin capital letter O with grave,
-                                  U+00D2 ISOlat1 -->
-<!ENTITY Oacute "&#211;"> <!-- latin capital letter O with acute,
-                                  U+00D3 ISOlat1 -->
-<!ENTITY Ocirc  "&#212;"> <!-- latin capital letter O with circumflex,
-                                  U+00D4 ISOlat1 -->
-<!ENTITY Otilde "&#213;"> <!-- latin capital letter O with tilde,
-                                  U+00D5 ISOlat1 -->
-<!ENTITY Ouml   "&#214;"> <!-- latin capital letter O with diaeresis,
-                                  U+00D6 ISOlat1 -->
-<!ENTITY times  "&#215;"> <!-- multiplication sign, U+00D7 ISOnum -->
-<!ENTITY Oslash "&#216;"> <!-- latin capital letter O with stroke
-                                  = latin capital letter O slash,
-                                  U+00D8 ISOlat1 -->
-<!ENTITY Ugrave "&#217;"> <!-- latin capital letter U with grave,
-                                  U+00D9 ISOlat1 -->
-<!ENTITY Uacute "&#218;"> <!-- latin capital letter U with acute,
-                                  U+00DA ISOlat1 -->
-<!ENTITY Ucirc  "&#219;"> <!-- latin capital letter U with circumflex,
-                                  U+00DB ISOlat1 -->
-<!ENTITY Uuml   "&#220;"> <!-- latin capital letter U with diaeresis,
-                                  U+00DC ISOlat1 -->
-<!ENTITY Yacute "&#221;"> <!-- latin capital letter Y with acute,
-                                  U+00DD ISOlat1 -->
-<!ENTITY THORN  "&#222;"> <!-- latin capital letter THORN,
-                                  U+00DE ISOlat1 -->
-<!ENTITY szlig  "&#223;"> <!-- latin small letter sharp s = ess-zed,
-                                  U+00DF ISOlat1 -->
-<!ENTITY agrave "&#224;"> <!-- latin small letter a with grave
-                                  = latin small letter a grave,
-                                  U+00E0 ISOlat1 -->
-<!ENTITY aacute "&#225;"> <!-- latin small letter a with acute,
-                                  U+00E1 ISOlat1 -->
-<!ENTITY acirc  "&#226;"> <!-- latin small letter a with circumflex,
-                                  U+00E2 ISOlat1 -->
-<!ENTITY atilde "&#227;"> <!-- latin small letter a with tilde,
-                                  U+00E3 ISOlat1 -->
-<!ENTITY auml   "&#228;"> <!-- latin small letter a with diaeresis,
-                                  U+00E4 ISOlat1 -->
-<!ENTITY aring  "&#229;"> <!-- latin small letter a with ring above
-                                  = latin small letter a ring,
-                                  U+00E5 ISOlat1 -->
-<!ENTITY aelig  "&#230;"> <!-- latin small letter ae
-                                  = latin small ligature ae, U+00E6 ISOlat1 -->
-<!ENTITY ccedil "&#231;"> <!-- latin small letter c with cedilla,
-                                  U+00E7 ISOlat1 -->
-<!ENTITY egrave "&#232;"> <!-- latin small letter e with grave,
-                                  U+00E8 ISOlat1 -->
-<!ENTITY eacute "&#233;"> <!-- latin small letter e with acute,
-                                  U+00E9 ISOlat1 -->
-<!ENTITY ecirc  "&#234;"> <!-- latin small letter e with circumflex,
-                                  U+00EA ISOlat1 -->
-<!ENTITY euml   "&#235;"> <!-- latin small letter e with diaeresis,
-                                  U+00EB ISOlat1 -->
-<!ENTITY igrave "&#236;"> <!-- latin small letter i with grave,
-                                  U+00EC ISOlat1 -->
-<!ENTITY iacute "&#237;"> <!-- latin small letter i with acute,
-                                  U+00ED ISOlat1 -->
-<!ENTITY icirc  "&#238;"> <!-- latin small letter i with circumflex,
-                                  U+00EE ISOlat1 -->
-<!ENTITY iuml   "&#239;"> <!-- latin small letter i with diaeresis,
-                                  U+00EF ISOlat1 -->
-<!ENTITY eth    "&#240;"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
-<!ENTITY ntilde "&#241;"> <!-- latin small letter n with tilde,
-                                  U+00F1 ISOlat1 -->
-<!ENTITY ograve "&#242;"> <!-- latin small letter o with grave,
-                                  U+00F2 ISOlat1 -->
-<!ENTITY oacute "&#243;"> <!-- latin small letter o with acute,
-                                  U+00F3 ISOlat1 -->
-<!ENTITY ocirc  "&#244;"> <!-- latin small letter o with circumflex,
-                                  U+00F4 ISOlat1 -->
-<!ENTITY otilde "&#245;"> <!-- latin small letter o with tilde,
-                                  U+00F5 ISOlat1 -->
-<!ENTITY ouml   "&#246;"> <!-- latin small letter o with diaeresis,
-                                  U+00F6 ISOlat1 -->
-<!ENTITY divide "&#247;"> <!-- division sign, U+00F7 ISOnum -->
-<!ENTITY oslash "&#248;"> <!-- latin small letter o with stroke,
-                                  = latin small letter o slash,
-                                  U+00F8 ISOlat1 -->
-<!ENTITY ugrave "&#249;"> <!-- latin small letter u with grave,
-                                  U+00F9 ISOlat1 -->
-<!ENTITY uacute "&#250;"> <!-- latin small letter u with acute,
-                                  U+00FA ISOlat1 -->
-<!ENTITY ucirc  "&#251;"> <!-- latin small letter u with circumflex,
-                                  U+00FB ISOlat1 -->
-<!ENTITY uuml   "&#252;"> <!-- latin small letter u with diaeresis,
-                                  U+00FC ISOlat1 -->
-<!ENTITY yacute "&#253;"> <!-- latin small letter y with acute,
-                                  U+00FD ISOlat1 -->
-<!ENTITY thorn  "&#254;"> <!-- latin small letter thorn with,
-                                  U+00FE ISOlat1 -->
-<!ENTITY yuml   "&#255;"> <!-- latin small letter y with diaeresis,
-                                  U+00FF ISOlat1 -->
diff --git a/src/xhtml-special.ent b/src/xhtml-special.ent
@@ -1,79 +0,0 @@
-<!-- Special characters for HTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLspecial PUBLIC
-        "-//W3C//ENTITIES Special for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
-     %HTMLspecial;
--->
-
-<!-- Portions (C) International Organization for Standardization 1986:
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-
-<!-- Relevant ISO entity set is given unless names are newly introduced.
-     New names (i.e., not in ISO 8879 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- C0 Controls and Basic Latin -->
-<!ENTITY quot    "&#34;"> <!--  quotation mark = APL quote,
-                                    U+0022 ISOnum -->
-<!ENTITY amp     "&#38;"> <!--  ampersand, U+0026 ISOnum -->
-<!ENTITY lt      "&#60;"> <!--  less-than sign, U+003C ISOnum -->
-<!ENTITY gt      "&#62;"> <!--  greater-than sign, U+003E ISOnum -->
-<!ENTITY apos	 "&#39;"> <!--  apostrophe mark, U+0027 ISOnum -->
-
-<!-- Latin Extended-A -->
-<!ENTITY OElig   "&#338;"> <!--  latin capital ligature OE,
-                                    U+0152 ISOlat2 -->
-<!ENTITY oelig   "&#339;"> <!--  latin small ligature oe, U+0153 ISOlat2 -->
-<!-- ligature is a misnomer, this is a separate character in some languages -->
-<!ENTITY Scaron  "&#352;"> <!--  latin capital letter S with caron,
-                                    U+0160 ISOlat2 -->
-<!ENTITY scaron  "&#353;"> <!--  latin small letter s with caron,
-                                    U+0161 ISOlat2 -->
-<!ENTITY Yuml    "&#376;"> <!--  latin capital letter Y with diaeresis,
-                                    U+0178 ISOlat2 -->
-
-<!-- Spacing Modifier Letters -->
-<!ENTITY circ    "&#710;"> <!--  modifier letter circumflex accent,
-                                    U+02C6 ISOpub -->
-<!ENTITY tilde   "&#732;"> <!--  small tilde, U+02DC ISOdia -->
-
-<!-- General Punctuation -->
-<!ENTITY ensp    "&#8194;"> <!-- en space, U+2002 ISOpub -->
-<!ENTITY emsp    "&#8195;"> <!-- em space, U+2003 ISOpub -->
-<!ENTITY thinsp  "&#8201;"> <!-- thin space, U+2009 ISOpub -->
-<!ENTITY zwnj    "&#8204;"> <!-- zero width non-joiner,
-                                    U+200C NEW RFC 2070 -->
-<!ENTITY zwj     "&#8205;"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
-<!ENTITY lrm     "&#8206;"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
-<!ENTITY rlm     "&#8207;"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
-<!ENTITY ndash   "&#8211;"> <!-- en dash, U+2013 ISOpub -->
-<!ENTITY mdash   "&#8212;"> <!-- em dash, U+2014 ISOpub -->
-<!ENTITY lsquo   "&#8216;"> <!-- left single quotation mark,
-                                    U+2018 ISOnum -->
-<!ENTITY rsquo   "&#8217;"> <!-- right single quotation mark,
-                                    U+2019 ISOnum -->
-<!ENTITY sbquo   "&#8218;"> <!-- single low-9 quotation mark, U+201A NEW -->
-<!ENTITY ldquo   "&#8220;"> <!-- left double quotation mark,
-                                    U+201C ISOnum -->
-<!ENTITY rdquo   "&#8221;"> <!-- right double quotation mark,
-                                    U+201D ISOnum -->
-<!ENTITY bdquo   "&#8222;"> <!-- double low-9 quotation mark, U+201E NEW -->
-<!ENTITY dagger  "&#8224;"> <!-- dagger, U+2020 ISOpub -->
-<!ENTITY Dagger  "&#8225;"> <!-- double dagger, U+2021 ISOpub -->
-<!ENTITY permil  "&#8240;"> <!-- per mille sign, U+2030 ISOtech -->
-<!ENTITY lsaquo  "&#8249;"> <!-- single left-pointing angle quotation mark,
-                                    U+2039 ISO proposed -->
-<!-- lsaquo is proposed but not yet ISO standardized -->
-<!ENTITY rsaquo  "&#8250;"> <!-- single right-pointing angle quotation mark,
-                                    U+203A ISO proposed -->
-<!-- rsaquo is proposed but not yet ISO standardized -->
-<!ENTITY euro   "&#8364;"> <!--  euro sign, U+20AC NEW -->
diff --git a/src/xhtml-symbol.ent b/src/xhtml-symbol.ent
@@ -1,242 +0,0 @@
-<!-- Mathematical, Greek and Symbolic characters for HTML -->
-
-<!-- Character entity set. Typical invocation:
-     <!ENTITY % HTMLsymbol PUBLIC
-        "-//W3C//ENTITIES Symbols for XHTML//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
-     %HTMLsymbol;
--->
-
-<!-- Portions (C) International Organization for Standardization 1986:
-     Permission to copy in any form is granted for use with
-     conforming SGML systems and applications as defined in
-     ISO 8879, provided this notice is included in all copies.
--->
-
-<!-- Relevant ISO entity set is given unless names are newly introduced.
-     New names (i.e., not in ISO 8879 list) do not clash with any
-     existing ISO 8879 entity names. ISO 10646 character numbers
-     are given for each character, in hex. values are decimal
-     conversions of the ISO 10646 values and refer to the document
-     character set. Names are Unicode names. 
--->
-
-<!-- Latin Extended-B -->
-<!ENTITY fnof     "&#402;"> <!-- latin small f with hook = function
-                                    = florin, U+0192 ISOtech -->
-
-<!-- Greek -->
-<!ENTITY Alpha    "&#913;"> <!-- greek capital letter alpha, U+0391 -->
-<!ENTITY Beta     "&#914;"> <!-- greek capital letter beta, U+0392 -->
-<!ENTITY Gamma    "&#915;"> <!-- greek capital letter gamma,
-                                    U+0393 ISOgrk3 -->
-<!ENTITY Delta    "&#916;"> <!-- greek capital letter delta,
-                                    U+0394 ISOgrk3 -->
-<!ENTITY Epsilon  "&#917;"> <!-- greek capital letter epsilon, U+0395 -->
-<!ENTITY Zeta     "&#918;"> <!-- greek capital letter zeta, U+0396 -->
-<!ENTITY Eta      "&#919;"> <!-- greek capital letter eta, U+0397 -->
-<!ENTITY Theta    "&#920;"> <!-- greek capital letter theta,
-                                    U+0398 ISOgrk3 -->
-<!ENTITY Iota     "&#921;"> <!-- greek capital letter iota, U+0399 -->
-<!ENTITY Kappa    "&#922;"> <!-- greek capital letter kappa, U+039A -->
-<!ENTITY Lambda   "&#923;"> <!-- greek capital letter lambda,
-                                    U+039B ISOgrk3 -->
-<!ENTITY Mu       "&#924;"> <!-- greek capital letter mu, U+039C -->
-<!ENTITY Nu       "&#925;"> <!-- greek capital letter nu, U+039D -->
-<!ENTITY Xi       "&#926;"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
-<!ENTITY Omicron  "&#927;"> <!-- greek capital letter omicron, U+039F -->
-<!ENTITY Pi       "&#928;"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
-<!ENTITY Rho      "&#929;"> <!-- greek capital letter rho, U+03A1 -->
-<!-- there is no Sigmaf, and no U+03A2 character either -->
-<!ENTITY Sigma    "&#931;"> <!-- greek capital letter sigma,
-                                    U+03A3 ISOgrk3 -->
-<!ENTITY Tau      "&#932;"> <!-- greek capital letter tau, U+03A4 -->
-<!ENTITY Upsilon  "&#933;"> <!-- greek capital letter upsilon,
-                                    U+03A5 ISOgrk3 -->
-<!ENTITY Phi      "&#934;"> <!-- greek capital letter phi,
-                                    U+03A6 ISOgrk3 -->
-<!ENTITY Chi      "&#935;"> <!-- greek capital letter chi, U+03A7 -->
-<!ENTITY Psi      "&#936;"> <!-- greek capital letter psi,
-                                    U+03A8 ISOgrk3 -->
-<!ENTITY Omega    "&#937;"> <!-- greek capital letter omega,
-                                    U+03A9 ISOgrk3 -->
-
-<!ENTITY alpha    "&#945;"> <!-- greek small letter alpha,
-                                    U+03B1 ISOgrk3 -->
-<!ENTITY beta     "&#946;"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
-<!ENTITY gamma    "&#947;"> <!-- greek small letter gamma,
-                                    U+03B3 ISOgrk3 -->
-<!ENTITY delta    "&#948;"> <!-- greek small letter delta,
-                                    U+03B4 ISOgrk3 -->
-<!ENTITY epsilon  "&#949;"> <!-- greek small letter epsilon,
-                                    U+03B5 ISOgrk3 -->
-<!ENTITY zeta     "&#950;"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
-<!ENTITY eta      "&#951;"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
-<!ENTITY theta    "&#952;"> <!-- greek small letter theta,
-                                    U+03B8 ISOgrk3 -->
-<!ENTITY iota     "&#953;"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
-<!ENTITY kappa    "&#954;"> <!-- greek small letter kappa,
-                                    U+03BA ISOgrk3 -->
-<!ENTITY lambda   "&#955;"> <!-- greek small letter lambda,
-                                    U+03BB ISOgrk3 -->
-<!ENTITY mu       "&#956;"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
-<!ENTITY nu       "&#957;"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
-<!ENTITY xi       "&#958;"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
-<!ENTITY omicron  "&#959;"> <!-- greek small letter omicron, U+03BF NEW -->
-<!ENTITY pi       "&#960;"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
-<!ENTITY rho      "&#961;"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
-<!ENTITY sigmaf   "&#962;"> <!-- greek small letter final sigma,
-                                    U+03C2 ISOgrk3 -->
-<!ENTITY sigma    "&#963;"> <!-- greek small letter sigma,
-                                    U+03C3 ISOgrk3 -->
-<!ENTITY tau      "&#964;"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
-<!ENTITY upsilon  "&#965;"> <!-- greek small letter upsilon,
-                                    U+03C5 ISOgrk3 -->
-<!ENTITY phi      "&#966;"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
-<!ENTITY chi      "&#967;"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
-<!ENTITY psi      "&#968;"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
-<!ENTITY omega    "&#969;"> <!-- greek small letter omega,
-                                    U+03C9 ISOgrk3 -->
-<!ENTITY thetasym "&#977;"> <!-- greek small letter theta symbol,
-                                    U+03D1 NEW -->
-<!ENTITY upsih    "&#978;"> <!-- greek upsilon with hook symbol,
-                                    U+03D2 NEW -->
-<!ENTITY piv      "&#982;"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
-
-<!-- General Punctuation -->
-<!ENTITY bull     "&#8226;"> <!-- bullet = black small circle,
-                                     U+2022 ISOpub  -->
-<!-- bullet is NOT the same as bullet operator, U+2219 -->
-<!ENTITY hellip   "&#8230;"> <!-- horizontal ellipsis = three dot leader,
-                                     U+2026 ISOpub  -->
-<!ENTITY prime    "&#8242;"> <!-- prime = minutes = feet, U+2032 ISOtech -->
-<!ENTITY Prime    "&#8243;"> <!-- double prime = seconds = inches,
-                                     U+2033 ISOtech -->
-<!ENTITY oline    "&#8254;"> <!-- overline = spacing overscore,
-                                     U+203E NEW -->
-<!ENTITY frasl    "&#8260;"> <!-- fraction slash, U+2044 NEW -->
-
-<!-- Letterlike Symbols -->
-<!ENTITY weierp   "&#8472;"> <!-- script capital P = power set
-                                     = Weierstrass p, U+2118 ISOamso -->
-<!ENTITY image    "&#8465;"> <!-- blackletter capital I = imaginary part,
-                                     U+2111 ISOamso -->
-<!ENTITY real     "&#8476;"> <!-- blackletter capital R = real part symbol,
-                                     U+211C ISOamso -->
-<!ENTITY trade    "&#8482;"> <!-- trade mark sign, U+2122 ISOnum -->
-<!ENTITY alefsym  "&#8501;"> <!-- alef symbol = first transfinite cardinal,
-                                     U+2135 NEW -->
-<!-- alef symbol is NOT the same as hebrew letter alef,
-     U+05D0 although the same glyph could be used to depict both characters -->
-
-<!-- Arrows -->
-<!ENTITY larr     "&#8592;"> <!-- leftwards arrow, U+2190 ISOnum -->
-<!ENTITY uarr     "&#8593;"> <!-- upwards arrow, U+2191 ISOnum-->
-<!ENTITY rarr     "&#8594;"> <!-- rightwards arrow, U+2192 ISOnum -->
-<!ENTITY darr     "&#8595;"> <!-- downwards arrow, U+2193 ISOnum -->
-<!ENTITY harr     "&#8596;"> <!-- left right arrow, U+2194 ISOamsa -->
-<!ENTITY crarr    "&#8629;"> <!-- downwards arrow with corner leftwards
-                                     = carriage return, U+21B5 NEW -->
-<!ENTITY lArr     "&#8656;"> <!-- leftwards double arrow, U+21D0 ISOtech -->
-<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
-    but also does not have any other character for that function. So ? lArr can
-    be used for 'is implied by' as ISOtech suggests -->
-<!ENTITY uArr     "&#8657;"> <!-- upwards double arrow, U+21D1 ISOamsa -->
-<!ENTITY rArr     "&#8658;"> <!-- rightwards double arrow,
-                                     U+21D2 ISOtech -->
-<!-- Unicode does not say this is the 'implies' character but does not have 
-     another character with this function so ?
-     rArr can be used for 'implies' as ISOtech suggests -->
-<!ENTITY dArr     "&#8659;"> <!-- downwards double arrow, U+21D3 ISOamsa -->
-<!ENTITY hArr     "&#8660;"> <!-- left right double arrow,
-                                     U+21D4 ISOamsa -->
-
-<!-- Mathematical Operators -->
-<!ENTITY forall   "&#8704;"> <!-- for all, U+2200 ISOtech -->
-<!ENTITY part     "&#8706;"> <!-- partial differential, U+2202 ISOtech  -->
-<!ENTITY exist    "&#8707;"> <!-- there exists, U+2203 ISOtech -->
-<!ENTITY empty    "&#8709;"> <!-- empty set = null set = diameter,
-                                     U+2205 ISOamso -->
-<!ENTITY nabla    "&#8711;"> <!-- nabla = backward difference,
-                                     U+2207 ISOtech -->
-<!ENTITY isin     "&#8712;"> <!-- element of, U+2208 ISOtech -->
-<!ENTITY notin    "&#8713;"> <!-- not an element of, U+2209 ISOtech -->
-<!ENTITY ni       "&#8715;"> <!-- contains as member, U+220B ISOtech -->
-<!-- should there be a more memorable name than 'ni'? -->
-<!ENTITY prod     "&#8719;"> <!-- n-ary product = product sign,
-                                     U+220F ISOamsb -->
-<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
-     the same glyph might be used for both -->
-<!ENTITY sum      "&#8721;"> <!-- n-ary sumation, U+2211 ISOamsb -->
-<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
-     though the same glyph might be used for both -->
-<!ENTITY minus    "&#8722;"> <!-- minus sign, U+2212 ISOtech -->
-<!ENTITY lowast   "&#8727;"> <!-- asterisk operator, U+2217 ISOtech -->
-<!ENTITY radic    "&#8730;"> <!-- square root = radical sign,
-                                     U+221A ISOtech -->
-<!ENTITY prop     "&#8733;"> <!-- proportional to, U+221D ISOtech -->
-<!ENTITY infin    "&#8734;"> <!-- infinity, U+221E ISOtech -->
-<!ENTITY ang      "&#8736;"> <!-- angle, U+2220 ISOamso -->
-<!ENTITY and      "&#8743;"> <!-- logical and = wedge, U+2227 ISOtech -->
-<!ENTITY or       "&#8744;"> <!-- logical or = vee, U+2228 ISOtech -->
-<!ENTITY cap      "&#8745;"> <!-- intersection = cap, U+2229 ISOtech -->
-<!ENTITY cup      "&#8746;"> <!-- union = cup, U+222A ISOtech -->
-<!ENTITY int      "&#8747;"> <!-- integral, U+222B ISOtech -->
-<!ENTITY there4   "&#8756;"> <!-- therefore, U+2234 ISOtech -->
-<!ENTITY sim      "&#8764;"> <!-- tilde operator = varies with = similar to,
-                                     U+223C ISOtech -->
-<!-- tilde operator is NOT the same character as the tilde, U+007E,
-     although the same glyph might be used to represent both  -->
-<!ENTITY cong     "&#8773;"> <!-- approximately equal to, U+2245 ISOtech -->
-<!ENTITY asymp    "&#8776;"> <!-- almost equal to = asymptotic to,
-                                     U+2248 ISOamsr -->
-<!ENTITY ne       "&#8800;"> <!-- not equal to, U+2260 ISOtech -->
-<!ENTITY equiv    "&#8801;"> <!-- identical to, U+2261 ISOtech -->
-<!ENTITY le       "&#8804;"> <!-- less-than or equal to, U+2264 ISOtech -->
-<!ENTITY ge       "&#8805;"> <!-- greater-than or equal to,
-                                     U+2265 ISOtech -->
-<!ENTITY sub      "&#8834;"> <!-- subset of, U+2282 ISOtech -->
-<!ENTITY sup      "&#8835;"> <!-- superset of, U+2283 ISOtech -->
-<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol 
-     font encoding and is not included. Should it be, for symmetry?
-     It is in ISOamsn  --> 
-<!ENTITY nsub     "&#8836;"> <!-- not a subset of, U+2284 ISOamsn -->
-<!ENTITY sube     "&#8838;"> <!-- subset of or equal to, U+2286 ISOtech -->
-<!ENTITY supe     "&#8839;"> <!-- superset of or equal to,
-                                     U+2287 ISOtech -->
-<!ENTITY oplus    "&#8853;"> <!-- circled plus = direct sum,
-                                     U+2295 ISOamsb -->
-<!ENTITY otimes   "&#8855;"> <!-- circled times = vector product,
-                                     U+2297 ISOamsb -->
-<!ENTITY perp     "&#8869;"> <!-- up tack = orthogonal to = perpendicular,
-                                     U+22A5 ISOtech -->
-<!ENTITY sdot     "&#8901;"> <!-- dot operator, U+22C5 ISOamsb -->
-<!-- dot operator is NOT the same character as U+00B7 middle dot -->
-
-<!-- Miscellaneous Technical -->
-<!ENTITY lceil    "&#8968;"> <!-- left ceiling = apl upstile,
-                                     U+2308 ISOamsc  -->
-<!ENTITY rceil    "&#8969;"> <!-- right ceiling, U+2309 ISOamsc  -->
-<!ENTITY lfloor   "&#8970;"> <!-- left floor = apl downstile,
-                                     U+230A ISOamsc  -->
-<!ENTITY rfloor   "&#8971;"> <!-- right floor, U+230B ISOamsc  -->
-<!ENTITY lang     "&#9001;"> <!-- left-pointing angle bracket = bra,
-                                     U+2329 ISOtech -->
-<!-- lang is NOT the same character as U+003C 'less than' 
-     or U+2039 'single left-pointing angle quotation mark' -->
-<!ENTITY rang     "&#9002;"> <!-- right-pointing angle bracket = ket,
-                                     U+232A ISOtech -->
-<!-- rang is NOT the same character as U+003E 'greater than' 
-     or U+203A 'single right-pointing angle quotation mark' -->
-
-<!-- Geometric Shapes -->
-<!ENTITY loz      "&#9674;"> <!-- lozenge, U+25CA ISOpub -->
-
-<!-- Miscellaneous Symbols -->
-<!ENTITY spades   "&#9824;"> <!-- black spade suit, U+2660 ISOpub -->
-<!-- black here seems to mean filled as opposed to hollow -->
-<!ENTITY clubs    "&#9827;"> <!-- black club suit = shamrock,
-                                     U+2663 ISOpub -->
-<!ENTITY hearts   "&#9829;"> <!-- black heart suit = valentine,
-                                     U+2665 ISOpub -->
-<!ENTITY diams    "&#9830;"> <!-- black diamond suit, U+2666 ISOpub -->
diff --git a/tests/Makefile.am b/tests/Makefile.am
@@ -1,26 +1,14 @@
 tests = \
-	test-sgml-ref.stamp			\
-	test-uri.stamp				\
 	test-vfs-read-line1-smallblock.output	\
 	test-vfs-read-line1-largeblock.output	\
 	test-vfs-read-line2-smallblock.output	\
 	test-vfs-read-line2-largeblock.output
 
 noinst_PROGRAMS = \
-	test-sgml-ref			\
-	test-uri			\
 	test-vfs-read-line-smallblock	\
 	test-vfs-read-line-largeblock
 noinst_DATA = $(tests)
 
-test_sgml_ref_SOURCES = \
-	$(top_srcdir)/src/mn-sgml-ref.c	\
-	test-sgml-ref.c
-
-test_uri_SOURCES = \
-	$(top_srcdir)/src/mn-uri.c	\
-	test-uri.c
-
 test_vfs_read_line_sources = \
 	$(top_srcdir)/src/mn-vfs.c	\
 	$(top_srcdir)/src/mn-vfs.h	\
@@ -40,14 +28,6 @@ AM_CPPFLAGS = $(WARN_CFLAGS) $(G_ASSERTIONS) $(GNOME_CFLAGS) \
 	-I$(top_srcdir)/src \
 	-DMN_REGRESSION_TEST
 
-test-sgml-ref.stamp: test-sgml-ref
-	./test-sgml-ref
-	@touch test-sgml-ref.stamp
-
-test-uri.stamp: test-uri
-	./test-uri
-	@touch test-uri.stamp
-
 test-vfs-read-line1-smallblock.output: test-vfs-read-line-smallblock test-vfs-read-line1.input test-vfs-read-line1.expected
 	./test-vfs-read-line-smallblock file://`pwd`/test-vfs-read-line1.input > test-vfs-read-line1-smallblock.output
 	@if cmp test-vfs-read-line1-smallblock.output test-vfs-read-line1.expected > /dev/null; then echo "+++ VFS-READ-LINE TEST 1-SMALLBLOCK PASSED"; else echo "--- VFS-READ-LINE TEST 1-SMALLBLOCK FAILED"; exit 1; fi
diff --git a/tests/Makefile.in b/tests/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +15,6 @@
 @SET_MAKE@
 
 
-SOURCES = $(test_sgml_ref_SOURCES) $(test_uri_SOURCES) $(test_vfs_read_line_largeblock_SOURCES) $(test_vfs_read_line_smallblock_SOURCES)
-
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -37,28 +35,26 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-noinst_PROGRAMS = test-sgml-ref$(EXEEXT) test-uri$(EXEEXT) \
-	test-vfs-read-line-smallblock$(EXEEXT) \
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+noinst_PROGRAMS = test-vfs-read-line-smallblock$(EXEEXT) \
 	test-vfs-read-line-largeblock$(EXEEXT)
 subdir = tests
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 PROGRAMS = $(noinst_PROGRAMS)
-am_test_sgml_ref_OBJECTS = mn-sgml-ref.$(OBJEXT) \
-	test-sgml-ref.$(OBJEXT)
-test_sgml_ref_OBJECTS = $(am_test_sgml_ref_OBJECTS)
-test_sgml_ref_LDADD = $(LDADD)
-am_test_uri_OBJECTS = mn-uri.$(OBJEXT) test-uri.$(OBJEXT)
-test_uri_OBJECTS = $(am_test_uri_OBJECTS)
-test_uri_LDADD = $(LDADD)
 am__objects_1 = test_vfs_read_line_largeblock-mn-vfs.$(OBJEXT) \
 	test_vfs_read_line_largeblock-test-vfs-read-line.$(OBJEXT)
 am_test_vfs_read_line_largeblock_OBJECTS = $(am__objects_1)
@@ -76,13 +72,15 @@ depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(test_sgml_ref_SOURCES) $(test_uri_SOURCES) \
-	$(test_vfs_read_line_largeblock_SOURCES) \
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(test_vfs_read_line_largeblock_SOURCES) \
 	$(test_vfs_read_line_smallblock_SOURCES)
-DIST_SOURCES = $(test_sgml_ref_SOURCES) $(test_uri_SOURCES) \
-	$(test_vfs_read_line_largeblock_SOURCES) \
+DIST_SOURCES = $(test_vfs_read_line_largeblock_SOURCES) \
 	$(test_vfs_read_line_smallblock_SOURCES)
 DATA = $(noinst_DATA)
 ETAGS = etags
@@ -92,6 +90,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -104,15 +103,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -129,10 +137,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -143,9 +147,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -158,12 +165,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -171,7 +181,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -188,25 +197,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -227,20 +239,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -255,24 +286,18 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
 tests = \
-	test-sgml-ref.stamp			\
-	test-uri.stamp				\
 	test-vfs-read-line1-smallblock.output	\
 	test-vfs-read-line1-largeblock.output	\
 	test-vfs-read-line2-smallblock.output	\
 	test-vfs-read-line2-largeblock.output
 
 noinst_DATA = $(tests)
-test_sgml_ref_SOURCES = \
-	$(top_srcdir)/src/mn-sgml-ref.c	\
-	test-sgml-ref.c
-
-test_uri_SOURCES = \
-	$(top_srcdir)/src/mn-uri.c	\
-	test-uri.c
-
 test_vfs_read_line_sources = \
 	$(top_srcdir)/src/mn-vfs.c	\
 	$(top_srcdir)/src/mn-vfs.h	\
@@ -302,7 +327,7 @@ EXTRA_DIST = \
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .c .o .obj
+.SUFFIXES: .c .lo .o .obj
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -334,13 +359,11 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 
 clean-noinstPROGRAMS:
-	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
-test-sgml-ref$(EXEEXT): $(test_sgml_ref_OBJECTS) $(test_sgml_ref_DEPENDENCIES) 
-	@rm -f test-sgml-ref$(EXEEXT)
-	$(LINK) $(test_sgml_ref_LDFLAGS) $(test_sgml_ref_OBJECTS) $(test_sgml_ref_LDADD) $(LIBS)
-test-uri$(EXEEXT): $(test_uri_OBJECTS) $(test_uri_DEPENDENCIES) 
-	@rm -f test-uri$(EXEEXT)
-	$(LINK) $(test_uri_LDFLAGS) $(test_uri_OBJECTS) $(test_uri_LDADD) $(LIBS)
+	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
 test-vfs-read-line-largeblock$(EXEEXT): $(test_vfs_read_line_largeblock_OBJECTS) $(test_vfs_read_line_largeblock_DEPENDENCIES) 
 	@rm -f test-vfs-read-line-largeblock$(EXEEXT)
 	$(LINK) $(test_vfs_read_line_largeblock_LDFLAGS) $(test_vfs_read_line_largeblock_OBJECTS) $(test_vfs_read_line_largeblock_LDADD) $(LIBS)
@@ -354,10 +377,6 @@ mostlyclean-compile:
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-sgml-ref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mn-uri.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sgml-ref.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-uri.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vfs_read_line_largeblock-test-vfs-read-line.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_vfs_read_line_smallblock-mn-vfs.Po@am__quote@
@@ -377,33 +396,12 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
-mn-sgml-ref.o: $(top_srcdir)/src/mn-sgml-ref.c
-@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-sgml-ref.o -MD -MP -MF "$(DEPDIR)/mn-sgml-ref.Tpo" -c -o mn-sgml-ref.o `test -f '$(top_srcdir)/src/mn-sgml-ref.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-sgml-ref.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mn-sgml-ref.Tpo" "$(DEPDIR)/mn-sgml-ref.Po"; else rm -f "$(DEPDIR)/mn-sgml-ref.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/mn-sgml-ref.c' object='mn-sgml-ref.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-sgml-ref.o `test -f '$(top_srcdir)/src/mn-sgml-ref.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-sgml-ref.c
-
-mn-sgml-ref.obj: $(top_srcdir)/src/mn-sgml-ref.c
-@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-sgml-ref.obj -MD -MP -MF "$(DEPDIR)/mn-sgml-ref.Tpo" -c -o mn-sgml-ref.obj `if test -f '$(top_srcdir)/src/mn-sgml-ref.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-sgml-ref.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-sgml-ref.c'; fi`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mn-sgml-ref.Tpo" "$(DEPDIR)/mn-sgml-ref.Po"; else rm -f "$(DEPDIR)/mn-sgml-ref.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/mn-sgml-ref.c' object='mn-sgml-ref.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-sgml-ref.obj `if test -f '$(top_srcdir)/src/mn-sgml-ref.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-sgml-ref.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-sgml-ref.c'; fi`
-
-mn-uri.o: $(top_srcdir)/src/mn-uri.c
-@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-uri.o -MD -MP -MF "$(DEPDIR)/mn-uri.Tpo" -c -o mn-uri.o `test -f '$(top_srcdir)/src/mn-uri.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-uri.c; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mn-uri.Tpo" "$(DEPDIR)/mn-uri.Po"; else rm -f "$(DEPDIR)/mn-uri.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/mn-uri.c' object='mn-uri.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-uri.o `test -f '$(top_srcdir)/src/mn-uri.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-uri.c
-
-mn-uri.obj: $(top_srcdir)/src/mn-uri.c
-@am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mn-uri.obj -MD -MP -MF "$(DEPDIR)/mn-uri.Tpo" -c -o mn-uri.obj `if test -f '$(top_srcdir)/src/mn-uri.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-uri.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-uri.c'; fi`; \
-@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/mn-uri.Tpo" "$(DEPDIR)/mn-uri.Po"; else rm -f "$(DEPDIR)/mn-uri.Tpo"; exit 1; fi
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$(top_srcdir)/src/mn-uri.c' object='mn-uri.obj' libtool=no @AMDEPBACKSLASH@
+.c.lo:
+@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mn-uri.obj `if test -f '$(top_srcdir)/src/mn-uri.c'; then $(CYGPATH_W) '$(top_srcdir)/src/mn-uri.c'; else $(CYGPATH_W) '$(srcdir)/$(top_srcdir)/src/mn-uri.c'; fi`
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
 test_vfs_read_line_largeblock-mn-vfs.o: $(top_srcdir)/src/mn-vfs.c
 @am__fastdepCC_TRUE@	if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_largeblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT test_vfs_read_line_largeblock-mn-vfs.o -MD -MP -MF "$(DEPDIR)/test_vfs_read_line_largeblock-mn-vfs.Tpo" -c -o test_vfs_read_line_largeblock-mn-vfs.o `test -f '$(top_srcdir)/src/mn-vfs.c' || echo '$(srcdir)/'`$(top_srcdir)/src/mn-vfs.c; \
@@ -460,6 +458,15 @@ test_vfs_read_line_smallblock-test-vfs-read-line.obj: test-vfs-read-line.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='test-vfs-read-line.c' object='test_vfs_read_line_smallblock-test-vfs-read-line.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(test_vfs_read_line_smallblock_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o test_vfs_read_line_smallblock-test-vfs-read-line.obj `if test -f 'test-vfs-read-line.c'; then $(CYGPATH_W) 'test-vfs-read-line.c'; else $(CYGPATH_W) '$(srcdir)/test-vfs-read-line.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -568,13 +575,14 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+	mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
+	distclean-libtool distclean-tags
 
 dvi: dvi-am
 
@@ -603,7 +611,8 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -616,24 +625,17 @@ ps-am:
 uninstall-am: uninstall-info-am
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-noinstPROGRAMS ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-info-am
-
-
-test-sgml-ref.stamp: test-sgml-ref
-	./test-sgml-ref
-	@touch test-sgml-ref.stamp
-
-test-uri.stamp: test-uri
-	./test-uri
-	@touch test-uri.stamp
+	clean-libtool clean-noinstPROGRAMS ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
 
 test-vfs-read-line1-smallblock.output: test-vfs-read-line-smallblock test-vfs-read-line1.input test-vfs-read-line1.expected
 	./test-vfs-read-line-smallblock file://`pwd`/test-vfs-read-line1.input > test-vfs-read-line1-smallblock.output
diff --git a/tests/test-sgml-ref.c b/tests/test-sgml-ref.c
@@ -1,51 +0,0 @@
-/* 
- * Copyright (C) 2005 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include <glib.h>
-#include "mn-sgml-ref.h"
-
-#define FAIL							\
-  {								\
-    g_printerr("failure at %s\n", G_STRLOC);			\
-    exit(1);							\
-  }
-
-int
-main (int argc, char **argv)
-{
-  if (strcmp(mn_sgml_ref_expand("&lt;tag&gt;"), "<tag>") != 0)
-    FAIL;
-  if (strcmp(mn_sgml_ref_expand("&#65;&#66;&#67;"), "ABC") != 0)
-    FAIL;
-  if (strcmp(mn_sgml_ref_expand("&#65&#66&#67"), "ABC") != 0)
-    FAIL;
-  if (strcmp(mn_sgml_ref_expand("&#x41;&#x42;&#x43;"), "ABC") != 0)
-    FAIL;
-  if (strcmp(mn_sgml_ref_expand("&#X41;&#X42;&#X43;"), "ABC") != 0)
-    FAIL;
-  if (strcmp(mn_sgml_ref_expand("&lt;tag&gt; &unknown;"), "<tag> &unknown;") != 0)
-    FAIL;
-  if (strcmp(mn_sgml_ref_expand("&lt;tag&gt; &unknown end"), "<tag> &unknown end") != 0)
-    FAIL;
-
-  g_print("+++ SGML-REF TEST PASSED\n");
-
-  return 0;
-}
diff --git a/tests/test-uri.c b/tests/test-uri.c
@@ -1,164 +0,0 @@
-/* 
- * Copyright (C) 2004 Jean-Yves Lefort <jylefort@brutele.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include "mn-uri.h"
-
-static char *
-build_uri (const char *scheme,
-	   const char *password,
-	   const char *authmech,
-	   const char *hostname,
-	   int port,
-	   const char *path,
-	   const char *queries)
-{
-  GString *uri;
-
-  uri = g_string_new(scheme);
-  g_string_append(uri, "://username");
-
-  if (password)
-    g_string_append_printf(uri, ":%s", password);
-  if (authmech)
-    g_string_append_printf(uri, ";AUTH=%s", authmech);
-  if (hostname)
-    g_string_append_printf(uri, "@%s", hostname);
-  if (port != -1)
-    g_string_append_printf(uri, ":%i", port);
-  if (path)
-    g_string_append_printf(uri, "/%s", path);
-  if (queries)
-    g_string_append_printf(uri, "?%s", queries);
-
-  return g_string_free(uri, FALSE);
-}
-
-static char *
-build_canonical_uri (const char *scheme,
-		     const char *password,
-		     const char *authmech,
-		     const char *hostname,
-		     int port,
-		     const char *path,
-		     const char *queries)
-{
-  int default_port = -1;
-  const char *default_path = NULL;
-  
-  if (! strcmp(scheme, "pop") || ! strcmp(scheme, "pops"))
-    {
-      if (! hostname || path)
-	return NULL;
-    }
-  else if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
-    {
-      if (! hostname)
-	return NULL;
-    }
-  else if (! strcmp(scheme, "gmail"))
-    {
-      if (authmech || hostname || port != -1 || path || queries)
-	return NULL;
-    }
-  
-  if (! strcmp(scheme, "pop"))
-    default_port = 110;
-  else if (! strcmp(scheme, "pops"))
-    default_port = 995;
-  else if (! strcmp(scheme, "imap"))
-    default_port = 143;
-  else if (! strcmp(scheme, "imaps"))
-    default_port = 993;
-
-  if (! strcmp(scheme, "imap") || ! strcmp(scheme, "imaps"))
-    default_path = "INBOX";
-
-  return build_uri(scheme,
-		   password,
-		   authmech,
-		   hostname,
-		   port != default_port ? port : -1,
-		   (! path || ! default_path || strcmp(path, default_path)) ? path : NULL,
-		   queries);
-}
-
-static void
-assert_strequal (const char *uri, const char *str1, const char *str2)
-{
-  if (! ((! str1 && ! str2) || (str1 && str2 && ! strcmp(str1, str2))))
-    {
-      g_print("%s and %s differ\n", str1, str2);
-      g_print("uri was %s\n", uri);
-      exit(1);
-    }
-}
-
-int
-main (int argc, char **argv)
-{
-#define FOR(iterator, var) \
-  for (iterator = 0; iterator < G_N_ELEMENTS(var); iterator++)
-
-  int a, b, c, d, e, f, g;
-  const char *schemes[] = { "pop", "pops", "imap", "imaps", "gmail" };
-  const char *passwords[] = { NULL, "password" };
-  const char *authmechs[] = { NULL, "CRAM-MD5" };
-  const char *hostnames[] = { NULL, "hostname", "[::1]" };
-  int ports[] = { -1, 110, 995, 143, 993, 555 };
-  const char *paths[] = { NULL, "INBOX", "foo-path" };
-  const char *queries[] = { NULL, "STARTTLS", "STLS", "foo-query", "noidle" };
-  int n_uri = 0;
-  int n_canonical = 0;
-  
-  g_type_init();
-
-  FOR(a, schemes)
-    FOR(b, passwords)
-    FOR(c, authmechs)
-    FOR(d, hostnames)
-    FOR(e, ports)
-    FOR(f, paths)
-    FOR(g, queries)
-  {
-    char *uri;
-    char *canonical_uri;
-    MNURI *obj;
-
-    n_uri++;
-
-    uri = build_uri(schemes[a], passwords[b], authmechs[c], hostnames[d], ports[e], paths[f], queries[g]);
-    canonical_uri = build_canonical_uri(schemes[a], passwords[b], authmechs[c], hostnames[d], ports[e], paths[f], queries[g]);
-
-    obj = mn_uri_new(uri);
-    if (canonical_uri)
-      {
-	n_canonical++;
-	assert_strequal(uri, obj->text, canonical_uri);
-      }
-
-    g_free(uri);
-    g_free(canonical_uri);
-    g_object_unref(obj);
-  }
-
-  g_print("+++ URI TEST PASSED (%i URI tested, %i could be canonicalized)\n", n_uri, n_canonical);
-
-  return 0;
-}
diff --git a/ui/Makefile.am b/ui/Makefile.am
@@ -1,26 +1,15 @@
 uidir = $(pkgdatadir)/ui
 
-if WITH_POP3_OR_IMAP_OR_GMAIL
-authentication_interface = authentication.glade
-authentication_project = authentication.gladep
-endif
-
 dist_ui_DATA = \
-	$(authentication_interface)		\
-	edit-toolbars.glade			\
-	mailbox-properties.glade		\
-	main.glade				\
+	edit-toolbars-dialog.glade		\
+	mail-summary-popup.glade		\
+	mailbox-properties-dialog.glade		\
 	menus.xml				\
-	properties.glade			\
-	summary-popup.glade			\
-	toolbars.xml				\
-	welcome.glade
+	properties-dialog.glade			\
+	toolbars.xml
 
 EXTRA_DIST = \
-	$(authentication_project)		\
-	edit-toolbars.gladep			\
-	mailbox-properties.gladep		\
-	main.gladep				\
-	properties.gladep			\
-	summary-popup.gladep			\
-	welcome.gladep
+	edit-toolbars-dialog.gladep		\
+	mail-summary-popup.gladep		\
+	mailbox-properties-dialog.gladep	\
+	properties-dialog.gladep
diff --git a/ui/Makefile.in b/ui/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004  Free Software Foundation, Inc.
+# 2003, 2004, 2005  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -34,13 +34,19 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
 subdir = ui
-DIST_COMMON = $(am__dist_ui_DATA_DIST) $(srcdir)/Makefile.am \
+DIST_COMMON = $(dist_ui_DATA) $(srcdir)/Makefile.am \
 	$(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/icu.m4 \
-	$(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/sasl2.m4 \
-	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
+am__aclocal_m4_deps = $(top_srcdir)/m4/evolution-plugin.m4 \
+	$(top_srcdir)/m4/gnome.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/openssl.m4 \
+	$(top_srcdir)/m4/reentrant-resolver.m4 \
+	$(top_srcdir)/m4/sasl2.m4 $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
@@ -48,9 +54,6 @@ CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 SOURCES =
 DIST_SOURCES =
-am__dist_ui_DATA_DIST = authentication.glade edit-toolbars.glade \
-	mailbox-properties.glade main.glade menus.xml properties.glade \
-	summary-popup.glade toolbars.xml welcome.glade
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -65,6 +68,7 @@ ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
 AMDEP_TRUE = @AMDEP_TRUE@
 AMTAR = @AMTAR@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOMAKE = @AUTOMAKE@
@@ -77,15 +81,24 @@ CCDEPMODE = @CCDEPMODE@
 CFLAGS = @CFLAGS@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DATADIRNAME = @DATADIRNAME@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
 EGREP = @EGREP@
+EVOLUTION_PLUGIN_CFLAGS = @EVOLUTION_PLUGIN_CFLAGS@
+EVOLUTION_PLUGIN_LIBS = @EVOLUTION_PLUGIN_LIBS@
 EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
 GCONFTOOL = @GCONFTOOL@
 GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@
 GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@
@@ -102,10 +115,6 @@ GNOME_LIBS = @GNOME_LIBS@
 GOB2 = @GOB2@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
-ICONV = @ICONV@
-ICU_CFLAGS = @ICU_CFLAGS@
-ICU_CONFIG = @ICU_CONFIG@
-ICU_LIBS = @ICU_LIBS@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -116,9 +125,12 @@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
 INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
 INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
 INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_ICONV = @INTLTOOL_ICONV@
 INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
 INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
 INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@
+INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@
 INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
 INTLTOOL_PERL = @INTLTOOL_PERL@
 INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
@@ -131,12 +143,15 @@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
 INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
 INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
 INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@
 INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
 INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
 LDFLAGS = @LDFLAGS@
 LIBBONOBO_IDL = @LIBBONOBO_IDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -144,7 +159,6 @@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
 MAKEINFO = @MAKEINFO@
 MKINSTALLDIRS = @MKINSTALLDIRS@
 MSGFMT = @MSGFMT@
-MSGMERGE = @MSGMERGE@
 OBJEXT = @OBJEXT@
 OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
 OPENSSL_LIBS = @OPENSSL_LIBS@
@@ -161,25 +175,28 @@ POFILES = @POFILES@
 POSUB = @POSUB@
 PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
 PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANLIB = @RANLIB@
 SASL_CFLAGS = @SASL_CFLAGS@
 SASL_LIBS = @SASL_LIBS@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
-SOUP_CFLAGS = @SOUP_CFLAGS@
-SOUP_LIBS = @SOUP_LIBS@
 STRIP = @STRIP@
 USE_NLS = @USE_NLS@
 VERSION = @VERSION@
 WARN_CFLAGS = @WARN_CFLAGS@
+WITH_EVOLUTION_FALSE = @WITH_EVOLUTION_FALSE@
+WITH_EVOLUTION_TRUE = @WITH_EVOLUTION_TRUE@
 WITH_GMAIL_FALSE = @WITH_GMAIL_FALSE@
-WITH_GMAIL_TIMESTAMPS_FALSE = @WITH_GMAIL_TIMESTAMPS_FALSE@
-WITH_GMAIL_TIMESTAMPS_TRUE = @WITH_GMAIL_TIMESTAMPS_TRUE@
 WITH_GMAIL_TRUE = @WITH_GMAIL_TRUE@
 WITH_IMAP_FALSE = @WITH_IMAP_FALSE@
 WITH_IMAP_TRUE = @WITH_IMAP_TRUE@
 WITH_MAILDIR_FALSE = @WITH_MAILDIR_FALSE@
 WITH_MAILDIR_TRUE = @WITH_MAILDIR_TRUE@
 WITH_MBOX_FALSE = @WITH_MBOX_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_FALSE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_OR_EVOLUTION_TRUE@
+WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE = @WITH_MBOX_OR_MH_OR_MAILDIR_OR_SYLPHEED_TRUE@
 WITH_MBOX_TRUE = @WITH_MBOX_TRUE@
 WITH_MH_FALSE = @WITH_MH_FALSE@
 WITH_MH_TRUE = @WITH_MH_TRUE@
@@ -200,20 +217,39 @@ WITH_SSL_TRUE = @WITH_SSL_TRUE@
 WITH_SYLPHEED_FALSE = @WITH_SYLPHEED_FALSE@
 WITH_SYLPHEED_TRUE = @WITH_SYLPHEED_TRUE@
 XGETTEXT = @XGETTEXT@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
 ac_ct_STRIP = @ac_ct_STRIP@
+ac_prefix_program = @ac_prefix_program@
+ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
 bindir = @bindir@
+build = @build@
 build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
 datadir = @datadir@
+evolution_plugindir = @evolution_plugindir@
 exec_prefix = @exec_prefix@
+gnome_cappletdir = @gnome_cappletdir@
+gnome_prefix = @gnome_prefix@
+host = @host@
 host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
@@ -228,29 +264,25 @@ program_transform_name = @program_transform_name@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
+target = @target@
 target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
 uidir = $(pkgdatadir)/ui
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authentication_interface = authentication.glade
-@WITH_POP3_OR_IMAP_OR_GMAIL_TRUE@authentication_project = authentication.gladep
 dist_ui_DATA = \
-	$(authentication_interface)		\
-	edit-toolbars.glade			\
-	mailbox-properties.glade		\
-	main.glade				\
+	edit-toolbars-dialog.glade		\
+	mail-summary-popup.glade		\
+	mailbox-properties-dialog.glade		\
 	menus.xml				\
-	properties.glade			\
-	summary-popup.glade			\
-	toolbars.xml				\
-	welcome.glade
+	properties-dialog.glade			\
+	toolbars.xml
 
 EXTRA_DIST = \
-	$(authentication_project)		\
-	edit-toolbars.gladep			\
-	mailbox-properties.gladep		\
-	main.gladep				\
-	properties.gladep			\
-	summary-popup.gladep			\
-	welcome.gladep
+	edit-toolbars-dialog.gladep		\
+	mail-summary-popup.gladep		\
+	mailbox-properties-dialog.gladep	\
+	properties-dialog.gladep
 
 all: all-am
 
@@ -284,6 +316,15 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
 uninstall-info-am:
 install-dist_uiDATA: $(dist_ui_DATA)
 	@$(NORMAL_INSTALL)
@@ -369,11 +410,11 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-generic clean-libtool mostlyclean-am
 
 distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-generic distclean-libtool
 
 dvi: dvi-am
 
@@ -401,7 +442,7 @@ maintainer-clean-am: distclean-am maintainer-clean-generic
 
 mostlyclean: mostlyclean-am
 
-mostlyclean-am: mostlyclean-generic
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
 
 pdf: pdf-am
 
@@ -413,15 +454,15 @@ ps-am:
 
 uninstall-am: uninstall-dist_uiDATA uninstall-info-am
 
-.PHONY: all all-am check check-am clean clean-generic distclean \
-	distclean-generic distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am \
-	install-dist_uiDATA install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am uninstall uninstall-am uninstall-dist_uiDATA \
-	uninstall-info-am
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dist_uiDATA install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-dist_uiDATA uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ui/authentication.glade b/ui/authentication.glade
@@ -1,260 +0,0 @@
-<?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_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">12</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area1">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="button1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="button2">
-	      <property name="visible">True</property>
-	      <property name="sensitive">False</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">_Authenticate</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHBox" id="hbox1">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">12</property>
-
-	  <child>
-	    <widget class="GtkImage" id="image1">
-	      <property name="visible">True</property>
-	      <property name="stock">gtk-dialog-authentication</property>
-	      <property name="icon_size">6</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox1">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes"></property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">True</property>
-		  <property name="selectable">True</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox2">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox2">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">12</property>
-
-		      <child>
-			<widget class="GtkLabel" id="username_label">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Username:</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="mnemonic_widget">username_entry</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="username_entry">
-			  <property name="visible">True</property>
-			  <property name="sensitive">False</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">True</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
-			  <property name="activates_default">False</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox3">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">12</property>
-
-		      <child>
-			<widget class="GtkLabel" id="password_label">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Password:</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="mnemonic_widget">password_entry</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkEntry" id="password_entry">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="editable">True</property>
-			  <property name="visibility">False</property>
-			  <property name="max_length">0</property>
-			  <property name="text" translatable="yes"></property>
-			  <property name="has_frame">True</property>
-			  <property name="invisible_char">*</property>
-			  <property name="activates_default">True</property>
-			  <signal name="changed" handler="mn_authenticated_mailbox_password_prompt_changed_h" object="dialog" last_modification_time="Sun, 10 Oct 2004 21:53:42 GMT"/>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/authentication.gladep b/ui/authentication.gladep
@@ -1,14 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
-
-<glade-project>
-  <name>Mail Notification Authentication</name>
-  <program_name>mail-notification</program_name>
-  <directory>../</directory>
-  <source_directory>../src</source_directory>
-  <pixmaps_directory>../art</pixmaps_directory>
-  <output_main_file>FALSE</output_main_file>
-  <output_support_files>FALSE</output_support_files>
-  <output_build_files>FALSE</output_build_files>
-  <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/edit-toolbars-dialog.glade b/ui/edit-toolbars-dialog.glade
@@ -0,0 +1,163 @@
+<?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">5</property>
+  <property name="title" translatable="yes">Edit Toolbars</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">True</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="focus_on_map">True</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">2</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="helpbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-help</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-11</property>
+	    </widget>
+	  </child>
+
+	  <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">1</property>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment1">
+		  <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="hbox1">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkImage" id="image1">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-undo</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="label1">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">_Use Default</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>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">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="label" translatable="yes">_Add a New Toolbar</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">2</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="button3">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-close</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-7</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<placeholder/>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/edit-toolbars-dialog.gladep b/ui/edit-toolbars-dialog.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 Edit Toolbars Dialog</name>
+  <program_name>mail-notification</program_name>
+  <directory>../</directory>
+  <source_directory>../src</source_directory>
+  <pixmaps_directory>../art</pixmaps_directory>
+  <output_main_file>FALSE</output_main_file>
+  <output_support_files>FALSE</output_support_files>
+  <output_build_files>FALSE</output_build_files>
+  <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/edit-toolbars.glade b/ui/edit-toolbars.glade
@@ -1,159 +0,0 @@
-<?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">Edit Toolbars</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">True</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>
-  <signal name="response" handler="mn_main_window_edit_toolbars_response_h" last_modification_time="Thu, 10 Feb 2005 14:42:36 GMT"/>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</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="helpbutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-help</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-11</property>
-	    </widget>
-	  </child>
-
-	  <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">1</property>
-
-	      <child>
-		<widget class="GtkAlignment" id="alignment1">
-		  <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="hbox1">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkImage" id="image1">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-undo</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="label1">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Use Default</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="label" translatable="yes">_Add a New Toolbar</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">2</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="button3">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-close</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-7</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<placeholder/>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/edit-toolbars.gladep b/ui/edit-toolbars.gladep
@@ -1,14 +0,0 @@
-<?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 Edit Toolbars</name>
-  <program_name>mail-notification</program_name>
-  <directory>../</directory>
-  <source_directory>../src</source_directory>
-  <pixmaps_directory>../art</pixmaps_directory>
-  <output_main_file>FALSE</output_main_file>
-  <output_support_files>FALSE</output_support_files>
-  <output_build_files>FALSE</output_build_files>
-  <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/mail-summary-popup.glade b/ui/mail-summary-popup.glade
@@ -0,0 +1,120 @@
+<?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="GtkWindow" id="popup">
+  <property name="title" translatable="yes"></property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">False</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">False</property>
+  <property name="skip_taskbar_hint">True</property>
+  <property name="skip_pager_hint">True</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">False</property>
+
+  <child>
+    <widget class="GtkEventBox" id="eventbox">
+      <property name="visible">True</property>
+      <property name="visible_window">False</property>
+      <property name="above_child">False</property>
+      <signal name="button_press_event" handler="button_press_event_h" last_modification_time="Sun, 24 Jul 2005 01:50:26 GMT"/>
+
+      <child>
+	<widget class="GtkVBox" id="vbox1">
+	  <property name="border_width">12</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">12</property>
+
+	  <child>
+	    <widget class="GtkHBox" id="hbox1">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">12</property>
+
+	      <child>
+		<widget class="GtkImage" id="image">
+		  <property name="visible">True</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="mn-mail-summary-popup-title">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;span size=&quot;larger&quot; weight=&quot;bold&quot;&gt;Mail Summary&lt;/span&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">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">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkHSeparator" id="hseparator1">
+	      <property name="visible">True</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="Custom" id="mn-message-view">
+	      <property name="visible">True</property>
+	      <property name="creation_function">mn_mail_summary_popup_message_view_new_cb</property>
+	      <property name="int1">0</property>
+	      <property name="int2">0</property>
+	      <property name="last_modification_time">Sun, 24 Jul 2005 01:51:23 GMT</property>
+	      <signal name="button_press_event" handler="button_press_event_h" last_modification_time="Sun, 24 Jul 2005 01:51:17 GMT"/>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+	</widget>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/mail-summary-popup.gladep b/ui/mail-summary-popup.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 Mail Summary Popup</name>
+  <program_name>mail-notification</program_name>
+  <directory>../</directory>
+  <source_directory>../src</source_directory>
+  <pixmaps_directory>../art</pixmaps_directory>
+  <output_main_file>FALSE</output_main_file>
+  <output_support_files>FALSE</output_support_files>
+  <output_build_files>FALSE</output_build_files>
+  <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/mailbox-properties-dialog.glade b/ui/mailbox-properties-dialog.glade
@@ -0,0 +1,336 @@
+<?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">5</property>
+  <property name="title" translatable="yes"></property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">False</property>
+  <property name="destroy_with_parent">False</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="focus_on_map">True</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">2</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>
+	</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="GtkVBox" id="vbox">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">18</property>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox3">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">6</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label2">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <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">1</property>
+		  <property name="yscale">1</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">12</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkVBox" id="vbox4">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">6</property>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox16">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">12</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="mailbox_type_label">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Mailbox _type:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">mailbox_type_combo</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkComboBox" id="mailbox_type_combo">
+			      <property name="visible">True</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
+			      <signal name="changed" handler="type_changed_h" last_modification_time="Sat, 23 Jul 2005 18:47:02 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox17">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">12</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="mailbox_name_label">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Mailbox _name:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">mailbox_name_entry</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox18">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">6</property>
+
+			      <child>
+				<widget class="GtkEntry" id="mailbox_name_entry">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">True</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">0</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char">*</property>
+				  <property name="activates_default">False</property>
+				  <signal name="changed" handler="name_changed_h" last_modification_time="Sat, 23 Jul 2005 18:25:45 GMT"/>
+				  <signal name="activate" handler="entry_activate_h" last_modification_time="Sat, 23 Jul 2005 18:25:59 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="mailbox_name_default_button">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">_Use Default</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="name_default_button_clicked_h" last_modification_time="Sat, 23 Jul 2005 18:26:16 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox2">
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">6</property>
+
+	      <child>
+		<widget class="GtkLabel" id="type_section_label">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes"></property>
+		  <property name="use_underline">False</property>
+		  <property name="use_markup">True</property>
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap">False</property>
+		  <property name="selectable">False</property>
+		  <property name="xalign">0</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xpad">0</property>
+		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkAlignment" id="alignment1">
+		  <property name="visible">True</property>
+		  <property name="xalign">0.5</property>
+		  <property name="yalign">0.5</property>
+		  <property name="xscale">1</property>
+		  <property name="yscale">1</property>
+		  <property name="top_padding">0</property>
+		  <property name="bottom_padding">0</property>
+		  <property name="left_padding">12</property>
+		  <property name="right_padding">0</property>
+
+		  <child>
+		    <widget class="GtkEventBox" id="properties_event_box">
+		      <property name="visible">True</property>
+		      <property name="visible_window">False</property>
+		      <property name="above_child">False</property>
+
+		      <child>
+			<placeholder/>
+		      </child>
+		    </widget>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
diff --git a/ui/mailbox-properties-dialog.gladep b/ui/mailbox-properties-dialog.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 Mailbox Properties Dialog</name>
+  <program_name>mail-notification</program_name>
+  <directory>../</directory>
+  <source_directory>../src</source_directory>
+  <pixmaps_directory>../art</pixmaps_directory>
+  <output_main_file>FALSE</output_main_file>
+  <output_support_files>FALSE</output_support_files>
+  <output_build_files>FALSE</output_build_files>
+  <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/mailbox-properties.glade b/ui/mailbox-properties.glade
@@ -1,122 +0,0 @@
-<?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_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</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>
-	</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="GtkVBox" id="vbox1">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">6</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox16">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkLabel" id="mailbox_type_label">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">_Mailbox type:</property>
-		  <property name="use_underline">True</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="mnemonic_widget">mailbox_type_combo</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkComboBox" id="mailbox_type_combo">
-		  <property name="visible">True</property>
-		  <signal name="changed" handler="mn_mailbox_properties_dialog_mailbox_type_changed_h" object="dialog" last_modification_time="Wed, 11 Aug 2004 16:33:22 GMT"/>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkEventBox" id="properties_event_box">
-	      <property name="visible">True</property>
-	      <property name="visible_window">False</property>
-	      <property name="above_child">False</property>
-
-	      <child>
-		<placeholder/>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/mailbox-properties.gladep b/ui/mailbox-properties.gladep
@@ -1,14 +0,0 @@
-<?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 Mailbox Properties</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>mailbox-properties-strings.c</translatable_strings_file>
-</glade-project>
diff --git a/ui/main.glade b/ui/main.glade
@@ -1,93 +0,0 @@
-<?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="GtkWindow" id="window">
-  <property name="title" translatable="yes">Mail Notification</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</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_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <signal name="window_state_event" handler="mn_main_window_window_state_event_h" last_modification_time="Sun, 13 Feb 2005 02:14:14 GMT"/>
-
-  <child>
-    <widget class="GtkVBox" id="vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</property>
-
-      <child>
-	<widget class="Custom" id="menubar">
-	  <property name="visible">True</property>
-	  <property name="creation_function">mn_main_window_get_widget_cb</property>
-	  <property name="string1">/menubar</property>
-	  <property name="int1">0</property>
-	  <property name="int2">0</property>
-	  <property name="last_modification_time">Thu, 10 Feb 2005 11:52:55 GMT</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="Custom" id="toolbar">
-	  <property name="visible">True</property>
-	  <property name="creation_function">mn_main_window_toolbar_new_cb</property>
-	  <property name="int1">0</property>
-	  <property name="int2">0</property>
-	  <property name="last_modification_time">Thu, 10 Feb 2005 11:53:22 GMT</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkScrolledWindow" id="scrolled">
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-	  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-	  <property name="shadow_type">GTK_SHADOW_NONE</property>
-	  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-	  <child>
-	    <placeholder/>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkStatusbar" id="statusbar">
-	  <property name="visible">True</property>
-	  <property name="has_resize_grip">True</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">False</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/main.gladep b/ui/main.gladep
@@ -1,14 +0,0 @@
-<?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</name>
-  <program_name>mail-notification</program_name>
-  <directory>../</directory>
-  <source_directory>../src</source_directory>
-  <pixmaps_directory>../art</pixmaps_directory>
-  <output_main_file>FALSE</output_main_file>
-  <output_support_files>FALSE</output_support_files>
-  <output_build_files>FALSE</output_build_files>
-  <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/properties-dialog.glade b/ui/properties-dialog.glade
@@ -0,0 +1,1890 @@
+<?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">5</property>
+  <property name="title" translatable="yes">Mail Notification Properties</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</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="focus_on_map">True</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">2</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>
+	</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="GtkNotebook" id="notebook">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="can_focus">True</property>
+	  <property name="show_tabs">True</property>
+	  <property name="show_border">True</property>
+	  <property name="tab_pos">GTK_POS_TOP</property>
+	  <property name="scrollable">False</property>
+	  <property name="enable_popup">False</property>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox12">
+	      <property name="border_width">12</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">18</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox22">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label36">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment1">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox23">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="autostart_check">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Start Mail Notification on GNOME login</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <signal name="toggled" handler="autostart_toggled_h" last_modification_time="Sat, 23 Jul 2005 21:06:40 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="blink_check">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Blink on errors</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="summary_tooltip_check">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Dis_play mail summary in tooltip</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox24">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label38">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Commands&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <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">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox25">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox33">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="command_mail_reader_check">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">_Mail reader:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <signal name="toggled" handler="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:24 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkEntry" id="command_mail_reader_entry">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">True</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">0</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char">*</property>
+				  <property name="activates_default">False</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox29">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="command_new_mail_check">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">When _new mail arrives:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <signal name="toggled" handler="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:29 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkEntry" id="command_new_mail_entry">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">True</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">0</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char">*</property>
+				  <property name="activates_default">False</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox30">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="command_mail_read_check">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">When _all mail has been read:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <signal name="toggled" handler="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:35 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkEntry" id="command_mail_read_entry">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="editable">True</property>
+				  <property name="visibility">True</property>
+				  <property name="max_length">0</property>
+				  <property name="text" translatable="yes"></property>
+				  <property name="has_frame">True</property>
+				  <property name="invisible_char">*</property>
+				  <property name="activates_default">False</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox26">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label40">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Double-click Action&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <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">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox27">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="action_main_window_radio">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Display the main window</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <signal name="toggled" handler="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:07:42 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="action_mail_reader_radio">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Launch the mail reader</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <property name="group">action_main_window_radio</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="action_update_radio">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Update the mail status</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <property name="group">action_main_window_radio</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label25">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">General</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox13">
+	      <property name="border_width">12</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">18</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox19">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label32">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment4">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox11">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">12</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="delay_label">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">_Delay between mail checks:</property>
+			      <property name="use_underline">True</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="mnemonic_widget">minutes_spin</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox12">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">6</property>
+
+			      <child>
+				<widget class="GtkSpinButton" id="minutes_spin">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="climb_rate">1</property>
+				  <property name="digits">0</property>
+				  <property name="numeric">True</property>
+				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+				  <property name="snap_to_ticks">False</property>
+				  <property name="wrap">False</property>
+				  <property name="adjustment">1 0 1440 1 10 10</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="minutes_label">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">minutes</property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkSpinButton" id="seconds_spin">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="climb_rate">1</property>
+				  <property name="digits">0</property>
+				  <property name="numeric">True</property>
+				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+				  <property name="snap_to_ticks">False</property>
+				  <property name="wrap">False</property>
+				  <property name="adjustment">1 0 59 1 10 10</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="seconds_label">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">seconds</property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">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>
+		    <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">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox20">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label34">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Mailbox List&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment5">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox21">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkScrolledWindow" id="scrolled">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+			      <property name="shadow_type">GTK_SHADOW_IN</property>
+			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+			      <child>
+				<placeholder/>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="selected_label">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes"></property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox5">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">True</property>
+			      <property name="spacing">6</property>
+
+			      <child>
+				<widget class="GtkButton" id="button2">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label">gtk-add</property>
+				  <property name="use_stock">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="add_clicked_h" last_modification_time="Sat, 23 Jul 2005 21:09:18 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="remove">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label">gtk-remove</property>
+				  <property name="use_stock">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="remove_clicked_h" last_modification_time="Sat, 23 Jul 2005 21:09:25 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkButton" id="properties">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label">gtk-properties</property>
+				  <property name="use_stock">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="properties_clicked_h" last_modification_time="Sat, 23 Jul 2005 21:09:58 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">True</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label26">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Mailboxes</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkVBox" id="vbox14">
+	      <property name="border_width">12</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">18</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox15">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label28">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment6">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox16">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="summary_enable_check">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Enable mail summary popup</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <signal name="toggled" handler="summary_enable_toggled_h" last_modification_time="Sun, 24 Jul 2005 23:21:58 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox15">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkCheckButton" id="summary_autoclose_check">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">_Automatically close after:</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <property name="active">False</property>
+				  <property name="inconsistent">False</property>
+				  <property name="draw_indicator">True</property>
+				  <signal name="toggled" handler="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:08:08 GMT"/>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox16">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">6</property>
+
+				  <child>
+				    <widget class="GtkSpinButton" id="summary_minutes_spin">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="climb_rate">1</property>
+				      <property name="digits">0</property>
+				      <property name="numeric">True</property>
+				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+				      <property name="snap_to_ticks">False</property>
+				      <property name="wrap">False</property>
+				      <property name="adjustment">1 0 1440 1 10 10</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="summary_minutes_label">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">minutes</property>
+				      <property name="use_underline">False</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkSpinButton" id="summary_seconds_spin">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="climb_rate">1</property>
+				      <property name="digits">0</property>
+				      <property name="numeric">True</property>
+				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+				      <property name="snap_to_ticks">False</property>
+				      <property name="wrap">False</property>
+				      <property name="adjustment">1 0 59 1 10 10</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="summary_seconds_label">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">seconds</property>
+				      <property name="use_underline">False</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">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>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="summary_only_recent_check">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Only display _recent mail</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox17">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label30">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Position&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment7">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox18">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox17">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkLabel" id="summary_position_label">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">_Position:</property>
+				  <property name="use_underline">True</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="mnemonic_widget">summary_position_combo</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkComboBox" id="summary_position_combo">
+				  <property name="visible">True</property>
+				  <property name="add_tearoffs">False</property>
+				  <property name="focus_on_click">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox18">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkLabel" id="summary_horizontal_offset_label">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">_Horizontal offset:</property>
+				  <property name="use_underline">True</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="mnemonic_widget">summary_horizontal_offset_spin</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox19">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">6</property>
+
+				  <child>
+				    <widget class="GtkSpinButton" id="summary_horizontal_offset_spin">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="climb_rate">1</property>
+				      <property name="digits">0</property>
+				      <property name="numeric">True</property>
+				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+				      <property name="snap_to_ticks">False</property>
+				      <property name="wrap">False</property>
+				      <property name="adjustment">1 0 9999 1 10 10</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="summary_horizontal_pixels_label">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">pixels</property>
+				      <property name="use_underline">False</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">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>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox20">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkLabel" id="summary_vertical_offset_label">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">_Vertical offset:</property>
+				  <property name="use_underline">True</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="mnemonic_widget">summary_vertical_offset_spin</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHBox" id="hbox21">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">6</property>
+
+				  <child>
+				    <widget class="GtkSpinButton" id="summary_vertical_offset_spin">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="climb_rate">1</property>
+				      <property name="digits">0</property>
+				      <property name="numeric">True</property>
+				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+				      <property name="snap_to_ticks">False</property>
+				      <property name="wrap">False</property>
+				      <property name="adjustment">1 0 9999 1 10 10</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="summary_vertical_pixels_label">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">pixels</property>
+				      <property name="use_underline">False</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0.5</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">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>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox28">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">6</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="label42">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Fonts&lt;/span&gt;</property>
+		      <property name="use_underline">False</property>
+		      <property name="use_markup">True</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkAlignment" id="alignment8">
+		      <property name="visible">True</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xscale">1</property>
+		      <property name="yscale">1</property>
+		      <property name="top_padding">0</property>
+		      <property name="bottom_padding">0</property>
+		      <property name="left_padding">12</property>
+		      <property name="right_padding">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox29">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="summary_fonts_from_theme_radio">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">_Use fonts from theme</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <signal name="toggled" handler="toggled_h" last_modification_time="Sat, 23 Jul 2005 21:08:22 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="summary_custom_fonts_radio">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Use these _fonts:</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <property name="group">summary_fonts_from_theme_radio</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox39">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkAlignment" id="summary_title_font_alignment">
+				  <property name="visible">True</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xscale">1</property>
+				  <property name="yscale">1</property>
+				  <property name="top_padding">0</property>
+				  <property name="bottom_padding">0</property>
+				  <property name="left_padding">30</property>
+				  <property name="right_padding">0</property>
+
+				  <child>
+				    <widget class="GtkLabel" id="summary_title_font_label">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">_Title:</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="mnemonic_widget">summary_title_font_button</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				  </child>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkFontButton" id="summary_title_font_button">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="show_style">True</property>
+				  <property name="show_size">True</property>
+				  <property name="use_font">False</property>
+				  <property name="use_size">False</property>
+				  <property name="focus_on_click">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox40">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">12</property>
+
+			      <child>
+				<widget class="GtkAlignment" id="summary_contents_font_alignment">
+				  <property name="visible">True</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xscale">1</property>
+				  <property name="yscale">1</property>
+				  <property name="top_padding">0</property>
+				  <property name="bottom_padding">0</property>
+				  <property name="left_padding">30</property>
+				  <property name="right_padding">0</property>
+
+				  <child>
+				    <widget class="GtkLabel" id="summary_contents_font_label">
+				      <property name="visible">True</property>
+				      <property name="label" translatable="yes">Co_ntents:</property>
+				      <property name="use_underline">True</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="mnemonic_widget">summary_contents_font_button</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
+				    </widget>
+				  </child>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkFontButton" id="summary_contents_font_button">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="show_style">True</property>
+				  <property name="show_size">True</property>
+				  <property name="use_font">False</property>
+				  <property name="use_size">False</property>
+				  <property name="focus_on_click">True</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">True</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox41">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkButton" id="summary_test_button">
+		      <property name="visible">True</property>
+		      <property name="can_focus">True</property>
+		      <property name="relief">GTK_RELIEF_NORMAL</property>
+		      <property name="focus_on_click">True</property>
+		      <signal name="clicked" handler="summary_test_button_clicked_h" last_modification_time="Wed, 27 Jul 2005 07:48:49 GMT"/>
+
+		      <child>
+			<widget class="GtkAlignment" id="alignment9">
+			  <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="hbox42">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">2</property>
+
+			      <child>
+				<widget class="GtkImage" id="image1">
+				  <property name="visible">True</property>
+				  <property name="icon_size">4</property>
+				  <property name="icon_name">stock_test-mode</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="label43">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">_Display a Test Popup</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>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">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>
+		    <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">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label27">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Mail Summary Popup</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="type">tab</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/properties-dialog.gladep b/ui/properties-dialog.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 Properties Dialog</name>
+  <program_name>mail-notification</program_name>
+  <directory>../</directory>
+  <source_directory>../src</source_directory>
+  <pixmaps_directory>../art</pixmaps_directory>
+  <output_main_file>FALSE</output_main_file>
+  <output_support_files>FALSE</output_support_files>
+  <output_build_files>FALSE</output_build_files>
+  <translatable_strings_file>../</translatable_strings_file>
+</glade-project>
diff --git a/ui/properties.glade b/ui/properties.glade
@@ -1,1744 +0,0 @@
-<?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">Mail Notification Properties</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">True</property>
-  <property name="destroy_with_parent">False</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>
-  <signal name="response" handler="mn_properties_dialog_response_h" last_modification_time="Sat, 02 Oct 2004 18:23:37 GMT"/>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox1">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">0</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="helpbutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-help</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-11</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="closebutton1">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-close</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-7</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkNotebook" id="notebook">
-	  <property name="border_width">5</property>
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="show_tabs">True</property>
-	  <property name="show_border">True</property>
-	  <property name="tab_pos">GTK_POS_TOP</property>
-	  <property name="scrollable">False</property>
-	  <property name="enable_popup">False</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox12">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox22">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label36">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment1">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox23">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="autostart_check">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Whether to start Mail Notification when you log into your GNOME session or not</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Start Mail Notification on GNOME login</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="mn_properties_dialog_autostart_toggled_h" last_modification_time="Mon, 23 Aug 2004 01:36:43 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="blink_check">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Whether the status icon should blink on errors or not</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Blink on errors</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="summary_tooltip_check">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Whether to display the mail summary in the status icon tooltip or not</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Dis_play mail summary in tooltip</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox24">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label38">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Commands&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <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">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox25">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox33">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="command_mail_reader_check">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Whether to set a mail reader or not</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">_Mail reader:</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Fri, 29 Oct 2004 16:42:45 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="command_mail_reader_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">The command to run to launch the mail reader</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox29">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="command_new_mail_check">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Whether to run a command when new mail arrives or not</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">When _new mail arrives:</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Sun, 27 Jul 2003 08:45:08 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="command_new_mail_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">The command to run when new mail arrives</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox30">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="command_mail_read_check">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Whether to run a command when all mail is read or not</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">When _all mail is read:</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Sat, 09 Oct 2004 17:36:36 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="command_mail_read_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">The command to run when all mail is read</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox26">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label40">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Double-click Action&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment3">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox27">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="action_main_window_radio">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Display the main window</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Tue, 26 Oct 2004 11:27:38 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="action_mail_reader_radio">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Launch the mail reader</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">action_main_window_radio</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="action_update_radio">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Update the mail status</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">action_main_window_radio</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label25">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">General</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox13">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox19">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label32">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment4">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox11">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">12</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="delay_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">_Delay between mail checks:</property>
-			      <property name="use_underline">True</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="mnemonic_widget">minutes_spin</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox12">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkSpinButton" id="minutes_spin">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">The amount of time to wait between mail checks</property>
-				  <property name="can_focus">True</property>
-				  <property name="climb_rate">1</property>
-				  <property name="digits">0</property>
-				  <property name="numeric">True</property>
-				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				  <property name="snap_to_ticks">False</property>
-				  <property name="wrap">False</property>
-				  <property name="adjustment">1 0 1440 1 10 10</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="minutes_label">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">minutes</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkSpinButton" id="seconds_spin">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">The amount of time to wait between mail checks</property>
-				  <property name="can_focus">True</property>
-				  <property name="climb_rate">1</property>
-				  <property name="digits">0</property>
-				  <property name="numeric">True</property>
-				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				  <property name="snap_to_ticks">False</property>
-				  <property name="wrap">False</property>
-				  <property name="adjustment">1 0 59 1 10 10</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="seconds_label">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">seconds</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </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">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox20">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label34">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Mailbox List&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment5">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox21">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkScrolledWindow" id="scrolled">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<placeholder/>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="selected_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes"></property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox5">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkButton" id="button2">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label">gtk-add</property>
-				  <property name="use_stock">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <signal name="clicked" handler="mn_properties_dialog_add_clicked_h" last_modification_time="Thu, 27 May 2004 20:34:29 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="remove">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label">gtk-remove</property>
-				  <property name="use_stock">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <signal name="clicked" handler="mn_properties_dialog_remove_clicked_h" last_modification_time="Sat, 06 Dec 2003 14:00:02 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="properties">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label">gtk-properties</property>
-				  <property name="use_stock">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <signal name="clicked" handler="mn_properties_dialog_properties_clicked_h" last_modification_time="Sat, 05 Jun 2004 20:07:54 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label26">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Mailboxes</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox14">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox15">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label28">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;General&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment6">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox16">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="summary_enable_check">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Whether to display the mail summary popup when new mail arrives or not</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Enable mail summary popup</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Wed, 15 Sep 2004 19:20:43 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox15">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="summary_autoclose_check">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Whether to automatically close the mail summary popup or not</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">_Automatically close after:</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Wed, 15 Sep 2004 19:20:52 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox16">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkSpinButton" id="summary_minutes_spin">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">The amount of time to wait before closing the mail summary popup</property>
-				      <property name="can_focus">True</property>
-				      <property name="climb_rate">1</property>
-				      <property name="digits">0</property>
-				      <property name="numeric">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">False</property>
-				      <property name="adjustment">1 0 1440 1 10 10</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="summary_minutes_label">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">minutes</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkSpinButton" id="summary_seconds_spin">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">The amount of time to wait before closing the mail summary popup</property>
-				      <property name="can_focus">True</property>
-				      <property name="climb_rate">1</property>
-				      <property name="digits">0</property>
-				      <property name="numeric">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">False</property>
-				      <property name="adjustment">1 0 59 1 10 10</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="summary_seconds_label">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">seconds</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="summary_only_recent_check">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Whether to hide previously displayed mail or not</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Only display _recent mail</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox17">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label30">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Position&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment7">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox18">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox17">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkLabel" id="summary_position_label">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">P_osition:</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="mnemonic_widget">summary_position_combo</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkComboBox" id="summary_position_combo">
-				  <property name="visible">True</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox18">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkLabel" id="summary_horizontal_offset_label">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Hori_zontal offset:</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="mnemonic_widget">summary_horizontal_offset_spin</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox19">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkSpinButton" id="summary_horizontal_offset_spin">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">The number of pixels to leave between the left or right side of the screen and the mail summary popup</property>
-				      <property name="can_focus">True</property>
-				      <property name="climb_rate">1</property>
-				      <property name="digits">0</property>
-				      <property name="numeric">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">False</property>
-				      <property name="adjustment">1 0 9999 1 10 10</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="summary_horizontal_pixels_label">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">pixels</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox20">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkLabel" id="summary_vertical_offset_label">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">_Vertical offset:</property>
-				  <property name="use_underline">True</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="mnemonic_widget">summary_vertical_offset_spin</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox21">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">False</property>
-				  <property name="spacing">6</property>
-
-				  <child>
-				    <widget class="GtkSpinButton" id="summary_vertical_offset_spin">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">The number of pixels to leave between the top or bottom side of the screen and the mail summary popup</property>
-				      <property name="can_focus">True</property>
-				      <property name="climb_rate">1</property>
-				      <property name="digits">0</property>
-				      <property name="numeric">True</property>
-				      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				      <property name="snap_to_ticks">False</property>
-				      <property name="wrap">False</property>
-				      <property name="adjustment">1 0 9999 1 10 10</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="summary_vertical_pixels_label">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">pixels</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox28">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label42">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;span weight=&quot;bold&quot;&gt;Fonts&lt;/span&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkAlignment" id="alignment8">
-		      <property name="visible">True</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xscale">1</property>
-		      <property name="yscale">1</property>
-		      <property name="top_padding">0</property>
-		      <property name="bottom_padding">0</property>
-		      <property name="left_padding">12</property>
-		      <property name="right_padding">0</property>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox29">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="summary_fonts_from_theme_radio">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Use fonts from theme</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="mn_properties_dialog_toggled_h" last_modification_time="Thu, 03 Feb 2005 20:37:10 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="summary_custom_fonts_radio">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Use these _fonts:</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">summary_fonts_from_theme_radio</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox39">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkAlignment" id="summary_title_font_alignment">
-				  <property name="visible">True</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xscale">1</property>
-				  <property name="yscale">1</property>
-				  <property name="top_padding">0</property>
-				  <property name="bottom_padding">0</property>
-				  <property name="left_padding">30</property>
-				  <property name="right_padding">0</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="summary_title_font_label">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">_Title:</property>
-				      <property name="use_underline">True</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="mnemonic_widget">summary_title_font_button</property>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkFontButton" id="summary_title_font_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="show_style">True</property>
-				  <property name="show_size">True</property>
-				  <property name="use_font">False</property>
-				  <property name="use_size">False</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox40">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">12</property>
-
-			      <child>
-				<widget class="GtkAlignment" id="summary_contents_font_alignment">
-				  <property name="visible">True</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xscale">1</property>
-				  <property name="yscale">1</property>
-				  <property name="top_padding">0</property>
-				  <property name="bottom_padding">0</property>
-				  <property name="left_padding">30</property>
-				  <property name="right_padding">0</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="summary_contents_font_label">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Co_ntents:</property>
-				      <property name="use_underline">True</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="mnemonic_widget">summary_contents_font_button</property>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkFontButton" id="summary_contents_font_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="show_style">True</property>
-				  <property name="show_size">True</property>
-				  <property name="use_font">False</property>
-				  <property name="use_size">False</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label27">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Mail Summary Popup</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</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/properties.gladep b/ui/properties.gladep
@@ -1,14 +0,0 @@
-<?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 Properties</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>properties-strings.c</translatable_strings_file>
-</glade-project>
diff --git a/ui/summary-popup.glade b/ui/summary-popup.glade
@@ -1,115 +0,0 @@
-<?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="GtkWindow" id="mn-mail-summary-popup">
-  <property name="title" translatable="yes"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">False</property>
-  <property name="skip_taskbar_hint">True</property>
-  <property name="skip_pager_hint">True</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
-  <child>
-    <widget class="GtkEventBox" id="eventbox1">
-      <property name="visible">True</property>
-      <property name="visible_window">False</property>
-      <property name="above_child">False</property>
-      <signal name="button_press_event" handler="mn_summary_popup_button_press_event_h" last_modification_time="Wed, 15 Sep 2004 18:53:08 GMT"/>
-
-      <child>
-	<widget class="GtkVBox" id="vbox1">
-	  <property name="border_width">12</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">12</property>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox1">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkImage" id="image">
-		  <property name="visible">True</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="mn-mail-summary-popup-title">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;span size=&quot;larger&quot; weight=&quot;bold&quot;&gt;Mail Summary&lt;/span&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.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>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHSeparator" id="hseparator1">
-	      <property name="visible">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="Custom" id="mn-message-view">
-	      <property name="visible">True</property>
-	      <property name="creation_function">mn_summary_popup_message_view_new_cb</property>
-	      <property name="int1">0</property>
-	      <property name="int2">0</property>
-	      <property name="last_modification_time">Sat, 12 Feb 2005 15:59:50 GMT</property>
-	      <signal name="button_press_event" handler="mn_summary_popup_button_press_event_h" last_modification_time="Sat, 12 Feb 2005 17:30:20 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
diff --git a/ui/summary-popup.gladep b/ui/summary-popup.gladep
@@ -1,14 +0,0 @@
-<?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 Summary Popup</name>
-  <program_name>mail-notification</program_name>
-  <directory>../</directory>
-  <source_directory>../src</source_directory>
-  <pixmaps_directory>../art</pixmaps_directory>
-  <output_main_file>FALSE</output_main_file>
-  <output_support_files>FALSE</output_support_files>
-  <output_build_files>FALSE</output_build_files>
-  <translatable_strings_file>../</translatable_strings_file>
-</glade-project>
diff --git a/ui/welcome.glade b/ui/welcome.glade
@@ -1,244 +0,0 @@
-<?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_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</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="label5">
-	      <property name="visible">True</property>
-	      <property name="can_focus">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 need 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; (or on some systems &lt;span weight=&quot;bold&quot;&gt;Applications → Preferences → More Preferences → 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">True</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
@@ -1,14 +0,0 @@
-<?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>