diff -Nru evolution-3.4.3/calendar/alarm-notify/alarm-notify.ui evolution-3.4.4/calendar/alarm-notify/alarm-notify.ui
--- evolution-3.4.3/calendar/alarm-notify/alarm-notify.ui	2012-06-18 07:52:55.000000000 +0900
+++ evolution-3.4.4/calendar/alarm-notify/alarm-notify.ui	2012-08-13 06:30:29.000000000 +0900
@@ -1,359 +1,391 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
-  <!-- interface-requires gtk+ 2.12 -->
-  <!-- interface-naming-policy toplevel-contextual -->
-  <object class="GtkAdjustment" id="adjustment1">
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAdjustment" id="adjustment-days">
     <property name="upper">65535</property>
     <property name="step_increment">1</property>
     <property name="page_increment">5</property>
   </object>
-  <object class="GtkAdjustment" id="adjustment2">
+  <object class="GtkAdjustment" id="adjustment-hours">
     <property name="upper">65535</property>
     <property name="step_increment">1</property>
     <property name="page_increment">5</property>
   </object>
-  <object class="GtkAdjustment" id="adjustment3">
+  <object class="GtkAdjustment" id="adjustment-minutes">
     <property name="upper">65535</property>
     <property name="value">5</property>
     <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
+    <property name="page_increment">5</property>
   </object>
-  <object class="GtkDialog" id="alarm-notify">
+  <object class="GtkImage" id="apply-icon">
     <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="stock">gtk-apply</property>
+  </object>
+  <object class="GtkDialog" id="alarm-notify">
+    <property name="can_focus">False</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Appointments</property>
-    <property name="default_width">384</property>
-    <property name="default_height">200</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkVBox" id="content-area">
-        <property name="visible">True</property>
+      <object class="GtkBox" id="dialog-vbox1">
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <property name="orientation">vertical</property>
+        <property name="spacing">2</property>
+        <child internal-child="action_area">
+          <object class="GtkButtonBox" id="dialog-action_area1">
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="dismiss-all-button">
+                <property name="label" translatable="yes">Dismiss _All</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="image">close-icon</property>
+                <property name="use_underline">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
         <child>
-          <object class="GtkHBox" id="main-columns">
+          <object class="GtkGrid" id="main-grid">
             <property name="visible">True</property>
-            <property name="border_width">5</property>
-            <property name="spacing">12</property>
+            <property name="can_focus">False</property>
+            <property name="margin_left">6</property>
+            <property name="margin_right">6</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
+            <property name="row_spacing">6</property>
+            <property name="column_spacing">6</property>
             <child>
               <object class="GtkImage" id="alarm-image">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="valign">start</property>
                 <property name="yalign">0</property>
                 <property name="stock">gtk-dialog-info</property>
                 <property name="icon-size">6</property>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="position">0</property>
+                <property name="left_attach">0</property>
+                <property name="top_attach">0</property>
+                <property name="width">1</property>
+                <property name="height">3</property>
               </packing>
             </child>
             <child>
-              <object class="GtkTable" id="main-table">
+              <object class="GtkScrolledWindow" id="appointments-scrolled-window">
+                <property name="height_request">75</property>
                 <property name="visible">True</property>
-                <property name="n_rows">3</property>
-                <property name="n_columns">2</property>
-                <property name="column_spacing">6</property>
-                <property name="row_spacing">12</property>
+                <property name="can_focus">True</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkScrolledWindow" id="appointments-scrolled-window">
-                    <property name="width_request">375</property>
+                  <object class="GtkTreeView" id="appointments-treeview">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GtkTreeView" id="appointments-treeview">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="headers_visible">False</property>
-                      </object>
+                    <property name="headers_visible">False</property>
+                    <child internal-child="selection">
+                      <object class="GtkTreeSelection" id="treeview-selection2"/>
                     </child>
                   </object>
-                  <packing>
-                    <property name="right_attach">2</property>
-                  </packing>
                 </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">0</property>
+                <property name="width">2</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkScrolledWindow" id="description">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkScrolledWindow" id="description">
+                  <object class="GtkTextView" id="description-label">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">automatic</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <property name="shadow_type">in</property>
-                    <child>
-                      <object class="GtkTextView" id="description-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="editable">False</property>
-                        <property name="wrap_mode">word</property>
-                      </object>
-                    </child>
+                    <property name="editable">False</property>
+                    <property name="wrap_mode">word</property>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVButtonBox" id="button-box">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="halign">start</property>
+                <property name="valign">start</property>
+                <property name="spacing">6</property>
+                <property name="layout_style">start</property>
+                <child>
+                  <object class="GtkButton" id="snooze-button">
+                    <property name="label" translatable="yes">_Snooze</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="can_default">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="image">refresh-icon</property>
+                    <property name="use_underline">True</property>
                   </object>
                   <packing>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkVButtonBox" id="button-box">
+                  <object class="GtkButton" id="edit-button">
+                    <property name="label">gtk-edit</property>
+                    <property name="use_action_appearance">False</property>
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">6</property>
-                    <property name="layout_style">start</property>
-                    <child>
-                      <object class="GtkButton" id="snooze-button">
-                        <property name="label" translatable="yes">_Snooze</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="can_default">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="image">refresh-icon</property>
-                        <property name="use_underline">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkButton" id="edit-button">
-                        <property name="label">gtk-edit</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="can_default">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkButton" id="print-button">
-                        <property name="label">gtk-print</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="can_default">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="use_stock">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkButton" id="dismiss-button">
-                        <property name="label" translatable="yes">_Dismiss</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="image">apply-icon</property>
-                        <property name="use_underline">True</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">3</property>
-                      </packing>
-                    </child>
+                    <property name="can_focus">True</property>
+                    <property name="can_default">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_stock">True</property>
                   </object>
                   <packing>
-                    <property name="left_attach">1</property>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">1</property>
-                    <property name="bottom_attach">2</property>
-                    <property name="x_options"></property>
-                    <property name="y_options"></property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkTable" id="detail-table">
-                    <property name="visible">True</property>
-                    <property name="n_rows">2</property>
-                    <property name="n_columns">2</property>
-                    <property name="column_spacing">6</property>
-                    <property name="row_spacing">6</property>
-                    <child>
-                      <object class="GtkLabel" id="snooze-label">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Snooze _time:</property>
-                        <property name="use_underline">True</property>
-                      </object>
-                      <packing>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkHBox" id="snooze-box">
-                        <property name="visible">True</property>
-                        <property name="spacing">6</property>
-                        <child>
-                          <object class="GtkSpinButton" id="snooze-time-days">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
-                            <property name="adjustment">adjustment1</property>
-                            <property name="climb_rate">1</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="days-label">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">days</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">1</property>
-                          </packing>
-                        </child>
-
-                        <child>
-                          <object class="GtkSpinButton" id="snooze-time-hrs">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
-                            <property name="adjustment">adjustment2</property>
-                            <property name="climb_rate">1</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">2</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="hrs-label">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">hours</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">3</property>
-                          </packing>
-                        </child>
-
-
-                        <child>
-                          <object class="GtkSpinButton" id="snooze-time-min">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="invisible_char">&#x25CF;</property>
-                            <property name="adjustment">adjustment3</property>
-                            <property name="climb_rate">1</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">4</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="minutes-label">
-                            <property name="visible">True</property>
-                            <property name="label" translatable="yes">minutes</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">False</property>
-                            <property name="position">5</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">1</property>
-                        <property name="bottom_attach">2</property>
-                        <property name="y_options">GTK_FILL</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="location-label">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">location of appointment</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="location-labe">
-                        <property name="visible">True</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Location:</property>
-                        <property name="selectable">True</property>
-                      </object>
-                      <packing>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"></property>
-                      </packing>
-                    </child>
+                  <object class="GtkButton" id="print-button">
+                    <property name="label">gtk-print</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="can_default">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_stock">True</property>
                   </object>
                   <packing>
-                    <property name="right_attach">2</property>
-                    <property name="top_attach">2</property>
-                    <property name="bottom_attach">3</property>
-                    <property name="y_options"></property>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">2</property>
                   </packing>
                 </child>
                 <child>
-                  <placeholder/>
+                  <object class="GtkButton" id="dismiss-button">
+                    <property name="label" translatable="yes">_Dismiss</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="image">apply-icon</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">3</property>
+                  </packing>
                 </child>
               </object>
               <packing>
-                <property name="position">1</property>
+                <property name="left_attach">2</property>
+                <property name="top_attach">1</property>
+                <property name="width">1</property>
+                <property name="height">1</property>
               </packing>
             </child>
-          </object>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="action-area">
-            <property name="visible">True</property>
-            <property name="layout_style">end</property>
             <child>
-              <object class="GtkButton" id="dismiss-all-button">
-                <property name="label" translatable="yes">Dismiss _All</property>
+              <object class="GtkGrid" id="bottom-grid">
                 <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="receives_default">False</property>
-                <property name="image">close-icon</property>
-                <property name="use_underline">True</property>
+                <property name="can_focus">False</property>
+                <property name="row_spacing">6</property>
+                <property name="column_spacing">6</property>
+                <child>
+                  <object class="GtkLabel" id="location-labe">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Location:</property>
+                    <property name="selectable">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="location-label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">location of appointment</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">0</property>
+                    <property name="width">6</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="snooze-label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">Snooze _time:</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="snooze-time-days">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="halign">start</property>
+                    <property name="invisible_char">●</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="adjustment">adjustment-days</property>
+                    <property name="climb_rate">1</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="days-label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="label" translatable="yes">days</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">2</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="snooze-time-hrs">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="halign">start</property>
+                    <property name="invisible_char">●</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="adjustment">adjustment-hours</property>
+                    <property name="climb_rate">1</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">3</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="hrs-label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="label" translatable="yes">hours</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">4</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="snooze-time-min">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="halign">start</property>
+                    <property name="invisible_char">●</property>
+                    <property name="invisible_char_set">True</property>
+                    <property name="adjustment">adjustment-minutes</property>
+                    <property name="climb_rate">1</property>
+                    <property name="snap_to_ticks">True</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">5</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="minutes-label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="halign">start</property>
+                    <property name="xalign">0</property>
+                    <property name="label" translatable="yes">minutes</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">6</property>
+                    <property name="top_attach">1</property>
+                    <property name="width">1</property>
+                    <property name="height">1</property>
+                  </packing>
+                </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
+                <property name="left_attach">1</property>
+                <property name="top_attach">2</property>
+                <property name="width">2</property>
+                <property name="height">1</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
@@ -364,14 +396,12 @@
   </object>
   <object class="GtkImage" id="close-icon">
     <property name="visible">True</property>
+    <property name="can_focus">False</property>
     <property name="stock">gtk-close</property>
   </object>
   <object class="GtkImage" id="refresh-icon">
     <property name="visible">True</property>
+    <property name="can_focus">False</property>
     <property name="stock">gtk-refresh</property>
   </object>
-  <object class="GtkImage" id="apply-icon">
-    <property name="visible">True</property>
-    <property name="stock">gtk-apply</property>
-  </object>
 </interface>
diff -Nru evolution-3.4.3/calendar/alarm-notify/alarm-queue.c evolution-3.4.4/calendar/alarm-notify/alarm-queue.c
--- evolution-3.4.3/calendar/alarm-notify/alarm-queue.c	2012-06-18 07:52:55.000000000 +0900
+++ evolution-3.4.4/calendar/alarm-notify/alarm-queue.c	2012-08-13 06:30:29.000000000 +0900
@@ -1465,6 +1465,7 @@
 			gtk_tree_selection_select_iter (
 				selection, &tray_data->iter);
 
+			gtk_window_present (GTK_WINDOW (alarm_notifications_dialog->dialog));
 		}
 
 	} else {
diff -Nru evolution-3.4.3/calendar/alarm-notify/Makefile.in evolution-3.4.4/calendar/alarm-notify/Makefile.in

diff -Nru evolution-3.4.3/calendar/gui/dialogs/comp-editor.c evolution-3.4.4/calendar/gui/dialogs/comp-editor.c
--- evolution-3.4.3/calendar/gui/dialogs/comp-editor.c	2012-06-18 07:52:55.000000000 +0900
+++ evolution-3.4.4/calendar/gui/dialogs/comp-editor.c	2012-08-13 06:30:29.000000000 +0900
@@ -665,7 +665,7 @@
 			listen_for_changes (editor);
 		}
 
-		priv->changed = FALSE;
+		comp_editor_set_changed (editor, FALSE);
 		priv->saved = TRUE;
 	}
 
@@ -996,6 +996,8 @@
 			(GtkWindow *) editor, priv->cal_client, priv->comp))
 			return;
 
+	gtk_widget_set_sensitive (GTK_WIDGET (editor), FALSE);
+
 	if (save_comp_with_send (editor)) {
 		CompEditorFlags flags;
 		gboolean delegate;
@@ -1028,6 +1030,8 @@
 	} else
 		correct = FALSE;
 
+	gtk_widget_set_sensitive (GTK_WIDGET (editor), TRUE);
+
 	if (correct)
 		close_dialog (editor);
 }
@@ -3125,7 +3129,7 @@
 
 	fill_widgets (editor);
 
-	priv->changed =FALSE;
+	comp_editor_set_changed (editor, FALSE);
 
 	listen_for_changes (editor);
 }
diff -Nru evolution-3.4.3/calendar/gui/dialogs/event-page.c evolution-3.4.4/calendar/gui/dialogs/event-page.c
--- evolution-3.4.3/calendar/gui/dialogs/event-page.c	2012-06-18 07:59:41.000000000 +0900
+++ evolution-3.4.4/calendar/gui/dialogs/event-page.c	2012-08-13 06:30:29.000000000 +0900
@@ -914,6 +914,11 @@
 		priv->sod = NULL;
 	}
 
+	if (priv->alarm_dialog) {
+		gtk_widget_destroy (priv->alarm_dialog);
+		priv->alarm_dialog = NULL;
+	}
+
 	/* Chain up to parent's dispose() method. */
 	G_OBJECT_CLASS (event_page_parent_class)->dispose (object);
 }
@@ -3188,6 +3193,15 @@
 }
 #endif
 
+static gboolean
+alarm_dialog_delete_event_cb (GtkWidget *alarm_dialog)
+{
+	gtk_widget_hide (alarm_dialog);
+
+	/* stop processing other handlers */
+	return TRUE;
+}
+
 /* Hooks the widget signals */
 static gboolean
 init_widgets (EventPage *epage)
@@ -3329,7 +3343,7 @@
 		G_CALLBACK (gtk_widget_hide), priv->alarm_dialog);
 	g_signal_connect (
 		priv->alarm_dialog, "delete-event",
-		G_CALLBACK (gtk_widget_hide), priv->alarm_dialog);
+		G_CALLBACK (alarm_dialog_delete_event_cb), priv->alarm_dialog);
 	priv->alarm_list_dlg_widget = alarm_list_dialog_peek (client, priv->alarm_list_store);
 	gtk_widget_reparent (priv->alarm_list_dlg_widget, priv->alarm_box);
 	gtk_widget_show_all (priv->alarm_list_dlg_widget);
diff -Nru evolution-3.4.3/composer/e-msg-composer.c evolution-3.4.4/composer/e-msg-composer.c
--- evolution-3.4.3/composer/e-msg-composer.c	2012-06-18 07:59:41.000000000 +0900
+++ evolution-3.4.4/composer/e-msg-composer.c	2012-08-13 06:30:29.000000000 +0900
@@ -3594,6 +3594,12 @@
 		g_warn_if_fail (message == NULL);
 		async_context_free (context);
 		g_error_free (error);
+
+		if (e_msg_composer_is_exiting (composer)) {
+			gtk_window_present (GTK_WINDOW (composer));
+			composer->priv->application_exiting = FALSE;
+		}
+
 		return;
 	}
 
@@ -3605,6 +3611,12 @@
 			error->message, NULL);
 		async_context_free (context);
 		g_error_free (error);
+
+		if (e_msg_composer_is_exiting (composer)) {
+			gtk_window_present (GTK_WINDOW (composer));
+			composer->priv->application_exiting = FALSE;
+		}
+
 		return;
 	}
 
@@ -3620,6 +3632,9 @@
 
 	g_object_unref (message);
 
+	if (e_msg_composer_is_exiting (composer))
+		g_object_weak_ref (G_OBJECT (context->activity), (GWeakNotify) gtk_widget_destroy, composer);
+
 	async_context_free (context);
 }
 
@@ -3940,6 +3955,8 @@
 	}
 
 	if (blacklisted) {
+		gchar *base_dir;
+
 		/* Don't blacklist files in trusted base directories. */
 		if (g_str_has_prefix (filename, g_get_user_data_dir ()))
 			blacklisted = FALSE;
@@ -3947,6 +3964,20 @@
 			blacklisted = FALSE;
 		if (g_str_has_prefix (filename, g_get_user_config_dir ()))
 			blacklisted = FALSE;
+
+		/* Apparently KDE still uses ~/.kde heavily, and some
+		 * distributions use ~/.kde4 to distinguish KDE4 data
+		 * from KDE3 data.  Trust these directories as well. */
+
+		base_dir = g_build_filename (g_get_home_dir (), ".kde", NULL);
+		if (g_str_has_prefix (filename, base_dir))
+			blacklisted = FALSE;
+		g_free (base_dir);
+
+		base_dir = g_build_filename (g_get_home_dir (), ".kde4", NULL);
+		if (g_str_has_prefix (filename, base_dir))
+			blacklisted = FALSE;
+		g_free (base_dir);
 	}
 
 	g_strfreev (parts);
@@ -4876,6 +4907,11 @@
 	editor = GTKHTML_EDITOR (composer);
 	widget = GTK_WIDGET (composer);
 
+	/* this means that there is an async operation running,
+	   in which case the composer cannot be closed */
+	if (!gtk_action_group_get_sensitive (composer->priv->async_actions))
+		return FALSE;
+
 	if (!gtkhtml_editor_get_changed (editor))
 		return TRUE;
 
diff -Nru evolution-3.4.3/doc/reference/shell/html/ch01.html evolution-3.4.4/doc/reference/shell/html/ch01.html
--- evolution-3.4.3/doc/reference/shell/html/ch01.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/ch01.html	2012-08-13 09:36:47.000000000 +0900
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp698440"></a>The Shell</h2></div></div></div>
+<a name="idp2286608"></a>The Shell</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="EShell.html">EShell</a></span><span class="refpurpose"> — the backbone of Evolution</span>
diff -Nru evolution-3.4.3/doc/reference/shell/html/ch02.html evolution-3.4.4/doc/reference/shell/html/ch02.html
--- evolution-3.4.3/doc/reference/shell/html/ch02.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/ch02.html	2012-08-13 09:36:47.000000000 +0900
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp703480"></a>Basic Utility Functions</h2></div></div></div>
+<a name="idp266512"></a>Basic Utility Functions</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="eshell-Mail-Accounts.html">Mail Accounts</a></span><span class="refpurpose"></span>
diff -Nru evolution-3.4.3/doc/reference/shell/html/ch03.html evolution-3.4.4/doc/reference/shell/html/ch03.html
--- evolution-3.4.3/doc/reference/shell/html/ch03.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/ch03.html	2012-08-13 09:36:47.000000000 +0900
@@ -21,7 +21,7 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp204096"></a>Actions</h2></div></div></div>
+<a name="idp381776"></a>Actions</h2></div></div></div>
 <div class="toc"><dl>
 <dt>
 <span class="refentrytitle"><a href="eshell-Shell-Actions.html">Shell Actions</a></span><span class="refpurpose"></span>
diff -Nru evolution-3.4.3/doc/reference/shell/html/ch04.html evolution-3.4.4/doc/reference/shell/html/ch04.html
--- evolution-3.4.3/doc/reference/shell/html/ch04.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/ch04.html	2012-08-13 09:36:47.000000000 +0900
@@ -21,17 +21,17 @@
 </tr></table>
 <div class="chapter">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp204992"></a>Object Hierarchy</h2></div></div></div>
+<a name="idp382656"></a>Object Hierarchy</h2></div></div></div>
 <pre class="screen">
     <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
         <a class="link" href="eshell-Bit-Arrays-(Legacy).html#EBitArray">EBitArray</a>
         <a class="link" href="eshell-Personalized-Signatures.html#ESignature">ESignature</a>
-        <a href="/usr/share/gtk-doc/html/libedataserver/EList.html">EList</a>
+        <a href="../libedataserver/EList.html">EList</a>
             <a class="link" href="eshell-Container-for-Signatures.html#ESignatureList">ESignatureList</a>
         <a href="http://library.gnome.org/devel/gio/unstable/GApplication.html">GApplication</a>
             <a href="http://developer.gnome.org/devel/gtk/GtkApplication.html">GtkApplication</a>
                 <a class="link" href="EShell.html" title="EShell">EShell</a>
-        <a href="/usr/share/gtk-doc/html/libebackend/EExtension.html">EExtension</a>
+        <a href="../libebackend/EExtension.html">EExtension</a>
             <a class="link" href="EShellBackend.html" title="EShellBackend">EShellBackend</a>
         <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
             <a href="http://developer.gnome.org/devel/gtk/GtkWidget.html">GtkWidget</a>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellBackend.html evolution-3.4.4/doc/reference/shell/html/EShellBackend.html
--- evolution-3.4.3/doc/reference/shell/html/EShellBackend.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellBackend.html	2012-08-13 09:36:47.000000000 +0900
@@ -69,7 +69,7 @@
 <a name="EShellBackend.object-hierarchy"></a><h2>Object Hierarchy</h2>
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="/usr/share/gtk-doc/html/libebackend/EExtension.html">EExtension</a>
+   +----<a href="../libebackend/EExtension.html">EExtension</a>
          +----EShellBackend
 </pre>
 </div>
diff -Nru evolution-3.4.3/doc/reference/shell/html/eshell-Container-for-Signatures.html evolution-3.4.4/doc/reference/shell/html/eshell-Container-for-Signatures.html
--- evolution-3.4.3/doc/reference/shell/html/eshell-Container-for-Signatures.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/eshell-Container-for-Signatures.html	2012-08-13 09:36:47.000000000 +0900
@@ -62,7 +62,7 @@
 <a name="eshell-Container-for-Signatures.object-hierarchy"></a><h2>Object Hierarchy</h2>
 <pre class="synopsis">
   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
-   +----<a href="/usr/share/gtk-doc/html/libedataserver/EList.html">EList</a>
+   +----<a href="../libedataserver/EList.html">EList</a>
          +----ESignatureList
 </pre>
 </div>
@@ -93,8 +93,8 @@
 signals according to notifications from GConf.
 </p>
 <p>
-You can modify the list using <a href="/usr/share/gtk-doc/html/libedataserver/EList.html#e-list-append"><code class="function">e_list_append()</code></a>, <a href="/usr/share/gtk-doc/html/libedataserver/EList.html#e-list-remove"><code class="function">e_list_remove()</code></a>, and
-<a href="/usr/share/gtk-doc/html/libedataserver/EIterator.html#e-iterator-delete"><code class="function">e_iterator_delete()</code></a>. After adding, removing, or changing accounts,
+You can modify the list using <a href="../libedataserver/EList.html#e-list-append"><code class="function">e_list_append()</code></a>, <a href="../libedataserver/EList.html#e-list-remove"><code class="function">e_list_remove()</code></a>, and
+<a href="../libedataserver/EIterator.html#e-iterator-delete"><code class="function">e_iterator_delete()</code></a>. After adding, removing, or changing accounts,
 you must call <a class="link" href="eshell-Container-for-Signatures.html#e-signature-list-save" title="e_signature_list_save ()"><code class="function">e_signature_list_save()</code></a> to push the changes back to
 GConf.
 </p>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellContent.html evolution-3.4.4/doc/reference/shell/html/EShellContent.html
--- evolution-3.4.3/doc/reference/shell/html/EShellContent.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellContent.html	2012-08-13 09:36:47.000000000 +0900
@@ -81,7 +81,7 @@
 <a name="EShellContent.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellContent implements
- AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  EAlertSink and  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  EAlertSink and  <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellContent.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShell.html evolution-3.4.4/doc/reference/shell/html/EShell.html
--- evolution-3.4.3/doc/reference/shell/html/EShell.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShell.html	2012-08-13 09:36:47.000000000 +0900
@@ -111,7 +111,7 @@
 <a name="EShell.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShell implements
- <a href="http://library.gnome.org/devel/gio/unstable/GActionGroup.html">GActionGroup</a>,  <a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html">GActionMap</a>,  <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a> and  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ <a href="http://library.gnome.org/devel/gio/unstable/GActionGroup.html">GActionGroup</a>,  <a href="http://library.gnome.org/devel/gio/unstable/GActionMap.html">GActionMap</a>,  <a href="http://library.gnome.org/devel/gio/unstable/GInitable.html">GInitable</a> and  <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShell.properties"></a><h2>Properties</h2>
@@ -511,7 +511,7 @@
 <a name="e-shell-get-module-directory"></a><h3>e_shell_get_module_directory ()</h3>
 <pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *       e_shell_get_module_directory        (<em class="parameter"><code><a class="link" href="EShell.html" title="EShell"><span class="type">EShell</span></a> *shell</code></em>);</pre>
 <p>
-Returns the directory from which <a href="/usr/share/gtk-doc/html/libebackend/EModule.html"><span class="type">EModule</span></a>s were loaded.
+Returns the directory from which <a href="../libebackend/EModule.html"><span class="type">EModule</span></a>s were loaded.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -523,7 +523,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the <a href="/usr/share/gtk-doc/html/libebackend/EModule.html"><span class="type">EModule</span></a> directory</td>
+<td>the <a href="../libebackend/EModule.html"><span class="type">EModule</span></a> directory</td>
 </tr>
 </tbody>
 </table></div>
@@ -901,7 +901,7 @@
 <a name="EShell--module-directory"></a><h3>The <code class="literal">"module-directory"</code> property</h3>
 <pre class="programlisting">  "module-directory"         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write / Construct Only</pre>
 <p>
-The directory from which to load <a href="/usr/share/gtk-doc/html/libebackend/EModule.html"><span class="type">EModule</span></a>s.
+The directory from which to load <a href="../libebackend/EModule.html"><span class="type">EModule</span></a>s.
 </p>
 <p>Default value: NULL</p>
 </div>
diff -Nru evolution-3.4.3/doc/reference/shell/html/eshell-Mail-Accounts.html evolution-3.4.4/doc/reference/shell/html/eshell-Mail-Accounts.html
--- evolution-3.4.3/doc/reference/shell/html/eshell-Mail-Accounts.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/eshell-Mail-Accounts.html	2012-08-13 09:36:47.000000000 +0900
@@ -40,13 +40,13 @@
 <pre class="synopsis">
 #include &lt;e-util/e-account-utils.h&gt;
 
-<a href="/usr/share/gtk-doc/html/libedataserver/EAccountList.html"><span class="returnvalue">EAccountList</span></a> *      <a class="link" href="eshell-Mail-Accounts.html#e-get-account-list" title="e_get_account_list ()">e_get_account_list</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-default-account" title="e_get_default_account ()">e_get_default_account</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
-<span class="returnvalue">void</span>                <a class="link" href="eshell-Mail-Accounts.html#e-set-default-account" title="e_set_default_account ()">e_set_default_account</a>               (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> *account</code></em>);
-<a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-account-by-name" title="e_get_account_by_name ()">e_get_account_by_name</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
-<a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-account-by-uid" title="e_get_account_by_uid ()">e_get_account_by_uid</a>                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
-<a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-any-enabled-account" title="e_get_any_enabled_account ()">e_get_any_enabled_account</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-default-transport" title="e_get_default_transport ()">e_get_default_transport</a>             (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="../libedataserver/EAccountList.html"><span class="returnvalue">EAccountList</span></a> *      <a class="link" href="eshell-Mail-Accounts.html#e-get-account-list" title="e_get_account_list ()">e_get_account_list</a>                  (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-default-account" title="e_get_default_account ()">e_get_default_account</a>               (<em class="parameter"><code><span class="type">void</span></code></em>);
+<span class="returnvalue">void</span>                <a class="link" href="eshell-Mail-Accounts.html#e-set-default-account" title="e_set_default_account ()">e_set_default_account</a>               (<em class="parameter"><code><a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> *account</code></em>);
+<a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-account-by-name" title="e_get_account_by_name ()">e_get_account_by_name</a>               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
+<a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-account-by-uid" title="e_get_account_by_uid ()">e_get_account_by_uid</a>                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);
+<a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-any-enabled-account" title="e_get_any_enabled_account ()">e_get_any_enabled_account</a>           (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          <a class="link" href="eshell-Mail-Accounts.html#e-get-default-transport" title="e_get_default_transport ()">e_get_default_transport</a>             (<em class="parameter"><code><span class="type">void</span></code></em>);
 </pre>
 </div>
 <div class="refsect1">
@@ -56,15 +56,15 @@
 <a name="eshell-Mail-Accounts.details"></a><h2>Details</h2>
 <div class="refsect2">
 <a name="e-get-account-list"></a><h3>e_get_account_list ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libedataserver/EAccountList.html"><span class="returnvalue">EAccountList</span></a> *      e_get_account_list                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../libedataserver/EAccountList.html"><span class="returnvalue">EAccountList</span></a> *      e_get_account_list                  (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
-Returns the global <a href="/usr/share/gtk-doc/html/libedataserver/EAccountList.html"><span class="type">EAccountList</span></a>.
+Returns the global <a href="../libedataserver/EAccountList.html"><span class="type">EAccountList</span></a>.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the global <a href="/usr/share/gtk-doc/html/libedataserver/EAccountList.html"><span class="type">EAccountList</span></a>
+<td>the global <a href="../libedataserver/EAccountList.html"><span class="type">EAccountList</span></a>
 </td>
 </tr></tbody>
 </table></div>
@@ -72,15 +72,15 @@
 <hr>
 <div class="refsect2">
 <a name="e-get-default-account"></a><h3>e_get_default_account ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_default_account               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_default_account               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
-Returns the <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> marked as the default mail account.
+Returns the <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> marked as the default mail account.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the default <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a>
+<td>the default <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a>
 </td>
 </tr></tbody>
 </table></div>
@@ -88,7 +88,7 @@
 <hr>
 <div class="refsect2">
 <a name="e-set-default-account"></a><h3>e_set_default_account ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>                e_set_default_account               (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> *account</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span>                e_set_default_account               (<em class="parameter"><code><a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> *account</code></em>);</pre>
 <p>
 Marks <em class="parameter"><code>account</code></em> as the default mail account.
 </p>
@@ -96,7 +96,7 @@
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><em class="parameter"><code>account</code></em> :</span></p></td>
-<td>an <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a>
+<td>an <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a>
 </td>
 </tr></tbody>
 </table></div>
@@ -104,9 +104,9 @@
 <hr>
 <div class="refsect2">
 <a name="e-get-account-by-name"></a><h3>e_get_account_by_name ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_account_by_name               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
+<pre class="programlisting"><a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_account_by_name               (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
 <p>
-Returns the <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> with the given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such
+Returns the <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> with the given name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such
 account exists.
 </p>
 <div class="variablelist"><table border="0">
@@ -118,7 +118,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> having the given account name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>an <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> having the given account name, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 </td>
 </tr>
 </tbody>
@@ -127,11 +127,11 @@
 <hr>
 <div class="refsect2">
 <a name="e-get-account-by-uid"></a><h3>e_get_account_by_uid ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_account_by_uid                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
+<pre class="programlisting"><a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_account_by_uid                (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uid</code></em>);</pre>
 <p>
-Returns the <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> corresponding to the given unique identity (UID),
-or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such account exists.  The <em class="parameter"><code>uid</code></em> can refer to an <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a>
-UID, a <a href="/usr/share/gtk-doc/html/camel/CamelStore.html"><span class="type">CamelStore</span></a> UID, or even a <a href="/usr/share/gtk-doc/html/camel/CamelTransport.html"><span class="type">CamelTransport</span></a> UID.
+Returns the <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> corresponding to the given unique identity (UID),
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no such account exists.  The <em class="parameter"><code>uid</code></em> can refer to an <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a>
+UID, a <a href="../camel/CamelStore.html"><span class="type">CamelStore</span></a> UID, or even a <a href="../camel/CamelTransport.html"><span class="type">CamelTransport</span></a> UID.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -142,7 +142,7 @@
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the corresponding <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>the corresponding <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 </td>
 </tr>
 </tbody>
@@ -151,35 +151,35 @@
 <hr>
 <div class="refsect2">
 <a name="e-get-any-enabled-account"></a><h3>e_get_any_enabled_account ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_any_enabled_account           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_any_enabled_account           (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 Returns the default mail account if it's enabled, otherwise the first
-enabled mail account in the global <a href="/usr/share/gtk-doc/html/libedataserver/EAccountList.html"><span class="type">EAccountList</span></a>, or finally <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+enabled mail account in the global <a href="../libedataserver/EAccountList.html"><span class="type">EAccountList</span></a>, or finally <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
 all mail accounts are disabled or none exist.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an enabled <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there are none</td>
+<td>an enabled <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a>, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there are none</td>
 </tr></tbody>
 </table></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="e-get-default-transport"></a><h3>e_get_default_transport ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_default_transport             (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a href="../libedataserver/EAccount.html"><span class="returnvalue">EAccount</span></a> *          e_get_default_transport             (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>
 Returns transport information for the default account if it's enabled and
 has transport information, or else from the first enabled mail account in
-the global <a href="/usr/share/gtk-doc/html/libedataserver/EAccountList.html"><span class="type">EAccountList</span></a> that has transport information, or finally <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+the global <a href="../libedataserver/EAccountList.html"><span class="type">EAccountList</span></a> that has transport information, or finally <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 if no transport information could be found.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
 <tbody><tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>an <a href="/usr/share/gtk-doc/html/libedataserver/EAccount.html"><span class="type">EAccount</span></a> with transport info, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+<td>an <a href="../libedataserver/EAccount.html"><span class="type">EAccount</span></a> with transport info, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
 </td>
 </tr></tbody>
 </table></div>
diff -Nru evolution-3.4.3/doc/reference/shell/html/eshell-Miscellaneous-Utilities.html evolution-3.4.4/doc/reference/shell/html/eshell-Miscellaneous-Utilities.html
--- evolution-3.4.3/doc/reference/shell/html/eshell-Miscellaneous-Utilities.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/eshell-Miscellaneous-Utilities.html	2012-08-13 09:36:47.000000000 +0900
@@ -112,11 +112,11 @@
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="eshell-Miscellaneous-Utilities.html#e-binding-transform-source-to-uid" title="e_binding_transform_source_to_uid ()">e_binding_transform_source_to_uid</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/GBinding.html"><span class="type">GBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *source_value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *target_value</code></em>,
-                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);
+                                                         <em class="parameter"><code><a href="../libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="eshell-Miscellaneous-Utilities.html#e-binding-transform-uid-to-source" title="e_binding_transform_uid_to_source ()">e_binding_transform_uid_to_source</a>   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/GBinding.html"><span class="type">GBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *source_value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *target_value</code></em>,
-                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);
+                                                         <em class="parameter"><code><a href="../libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);
 <a href="http://library.gnome.org/devel/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="returnvalue">GSList</span></a> *            <a class="link" href="eshell-Miscellaneous-Utilities.html#e-charset-add-radio-actions" title="e_charset_add_radio_actions ()">e_charset_add_radio_actions</a>         (<em class="parameter"><code><a href="http://developer.gnome.org/devel/gtk/GtkActionGroup.html"><span class="type">GtkActionGroup</span></a> *action_group</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *action_prefix</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *default_charset</code></em>,
@@ -350,7 +350,7 @@
 <pre class="programlisting"><span class="returnvalue">void</span>                e_categories_add_change_hook        (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Hook-Functions.html#GHookFunc"><span class="type">GHookFunc</span></a> func</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> object</code></em>);</pre>
 <p>
-A saner alternative to <a href="/usr/share/gtk-doc/html/libedataserver/libedataserver-e-categories.html#e-categories-register-change-listener"><code class="function">e_categories_register_change_listener()</code></a>.
+A saner alternative to <a href="../libedataserver/libedataserver-e-categories.html#e-categories-register-change-listener"><code class="function">e_categories_register_change_listener()</code></a>.
 </p>
 <p>
 Adds a hook function to be called when a category is added, removed or
@@ -756,9 +756,9 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            e_binding_transform_source_to_uid   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/GBinding.html"><span class="type">GBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *source_value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *target_value</code></em>,
-                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);</pre>
 <p>
-Transforms an <a href="/usr/share/gtk-doc/html/libedataserver/ESource.html"><span class="type">ESource</span></a> object to its UID string.
+Transforms an <a href="../libedataserver/ESource.html"><span class="type">ESource</span></a> object to its UID string.
 </p>
 <div class="variablelist"><table border="0">
 <col align="left" valign="top">
@@ -780,13 +780,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>source_list</code></em> :</span></p></td>
-<td>an <a href="/usr/share/gtk-doc/html/libedataserver/ESourceList.html"><span class="type">ESourceList</span></a>
+<td>an <a href="../libedataserver/ESourceList.html"><span class="type">ESourceList</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>source_value</code></em> was an <a href="/usr/share/gtk-doc/html/libedataserver/ESource.html"><span class="type">ESource</span></a> object</td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>source_value</code></em> was an <a href="../libedataserver/ESource.html"><span class="type">ESource</span></a> object</td>
 </tr>
 </tbody>
 </table></div>
@@ -797,9 +797,9 @@
 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            e_binding_transform_uid_to_source   (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/GBinding.html"><span class="type">GBinding</span></a> *binding</code></em>,
                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *source_value</code></em>,
                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *target_value</code></em>,
-                                                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);</pre>
+                                                         <em class="parameter"><code><a href="../libedataserver/ESourceList.html"><span class="type">ESourceList</span></a> *source_list</code></em>);</pre>
 <p>
-Transforms an <a href="/usr/share/gtk-doc/html/libedataserver/ESource.html"><span class="type">ESource</span></a> UID string to the corresponding <a href="/usr/share/gtk-doc/html/libedataserver/ESource.html"><span class="type">ESource</span></a> object
+Transforms an <a href="../libedataserver/ESource.html"><span class="type">ESource</span></a> UID string to the corresponding <a href="../libedataserver/ESource.html"><span class="type">ESource</span></a> object
 in <em class="parameter"><code>source_list</code></em>.
 </p>
 <div class="variablelist"><table border="0">
@@ -822,13 +822,13 @@
 </tr>
 <tr>
 <td><p><span class="term"><em class="parameter"><code>source_list</code></em> :</span></p></td>
-<td>an <a href="/usr/share/gtk-doc/html/libedataserver/ESourceList.html"><span class="type">ESourceList</span></a>
+<td>an <a href="../libedataserver/ESourceList.html"><span class="type">ESourceList</span></a>
 </td>
 </tr>
 <tr>
 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 <td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>source_list</code></em> had an <a href="/usr/share/gtk-doc/html/libedataserver/ESource.html"><span class="type">ESource</span></a> object with a matching
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>source_list</code></em> had an <a href="../libedataserver/ESource.html"><span class="type">ESource</span></a> object with a matching
 UID string</td>
 </tr>
 </tbody>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellSearchbar.html evolution-3.4.4/doc/reference/shell/html/EShellSearchbar.html
--- evolution-3.4.3/doc/reference/shell/html/EShellSearchbar.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellSearchbar.html	2012-08-13 09:36:47.000000000 +0900
@@ -106,7 +106,7 @@
 <a name="EShellSearchbar.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellSearchbar implements
- AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  <a href="http://developer.gnome.org/devel/gtk/gtk3-Orientable.html#GtkOrientable">GtkOrientable</a> and  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  <a href="http://developer.gnome.org/devel/gtk/gtk3-Orientable.html#GtkOrientable">GtkOrientable</a> and  <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellSearchbar.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellSidebar.html evolution-3.4.4/doc/reference/shell/html/EShellSidebar.html
--- evolution-3.4.3/doc/reference/shell/html/EShellSidebar.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellSidebar.html	2012-08-13 09:36:47.000000000 +0900
@@ -76,7 +76,7 @@
 <a name="EShellSidebar.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellSidebar implements
- AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  EAlertSink and  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  EAlertSink and  <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellSidebar.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellSwitcher.html evolution-3.4.4/doc/reference/shell/html/EShellSwitcher.html
--- evolution-3.4.3/doc/reference/shell/html/EShellSwitcher.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellSwitcher.html	2012-08-13 09:36:47.000000000 +0900
@@ -77,7 +77,7 @@
 <a name="EShellSwitcher.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellSwitcher implements
- AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a> and  <a href="http://developer.gnome.org/devel/gtk/GtkToolShell.html">GtkToolShell</a>.</p>
+ AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  <a href="../libebackend/EExtensible.html">EExtensible</a> and  <a href="http://developer.gnome.org/devel/gtk/GtkToolShell.html">GtkToolShell</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellSwitcher.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellTaskbar.html evolution-3.4.4/doc/reference/shell/html/EShellTaskbar.html
--- evolution-3.4.3/doc/reference/shell/html/EShellTaskbar.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellTaskbar.html	2012-08-13 09:36:47.000000000 +0900
@@ -72,7 +72,7 @@
 <a name="EShellTaskbar.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellTaskbar implements
- AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  <a href="http://developer.gnome.org/devel/gtk/gtk3-Orientable.html#GtkOrientable">GtkOrientable</a> and  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  <a href="http://developer.gnome.org/devel/gtk/gtk3-Orientable.html#GtkOrientable">GtkOrientable</a> and  <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellTaskbar.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellView.html evolution-3.4.4/doc/reference/shell/html/EShellView.html
--- evolution-3.4.3/doc/reference/shell/html/EShellView.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellView.html	2012-08-13 09:36:47.000000000 +0900
@@ -103,7 +103,7 @@
 <a name="EShellView.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellView implements
- <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellView.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/EShellWindow.html evolution-3.4.4/doc/reference/shell/html/EShellWindow.html
--- evolution-3.4.3/doc/reference/shell/html/EShellWindow.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/EShellWindow.html	2012-08-13 09:36:47.000000000 +0900
@@ -118,7 +118,7 @@
 <a name="EShellWindow.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 EShellWindow implements
- AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  EAlertSink and  <a href="/usr/share/gtk-doc/html/libebackend/EExtensible.html">EExtensible</a>.</p>
+ AtkImplementorIface,  <a href="http://developer.gnome.org/devel/gtk/GtkBuildable.html">GtkBuildable</a>,  EAlertSink and  <a href="../libebackend/EExtensible.html">EExtensible</a>.</p>
 </div>
 <div class="refsect1">
 <a name="EShellWindow.properties"></a><h2>Properties</h2>
diff -Nru evolution-3.4.3/doc/reference/shell/html/ix01.html evolution-3.4.4/doc/reference/shell/html/ix01.html
--- evolution-3.4.3/doc/reference/shell/html/ix01.html	2012-06-18 09:38:42.000000000 +0900
+++ evolution-3.4.4/doc/reference/shell/html/ix01.html	2012-08-13 09:36:47.000000000 +0900
@@ -20,7 +20,7 @@
 </tr></table>
 <div class="index">
 <div class="titlepage"><div><div><h2 class="title">
-<a name="idp205672"></a>Index</h2></div></div></div>
+<a name="idp383336"></a>Index</h2></div></div></div>
 <div class="index">
 <div class="indexdiv">
 <h3>A</h3>

diff -Nru evolution-3.4.3/e-util/e-util.c evolution-3.4.4/e-util/e-util.c
--- evolution-3.4.3/e-util/e-util.c	2012-06-18 07:53:05.000000000 +0900
+++ evolution-3.4.4/e-util/e-util.c	2012-08-13 06:30:29.000000000 +0900
@@ -353,6 +353,11 @@
 
 		if (g_settings_get_boolean (settings, "maximized")) {
 			GdkScreen *screen;
+			GdkRectangle monitor_area;
+			gint x, y, monitor;
+
+			x = g_settings_get_int (settings, "x");
+			y = g_settings_get_int (settings, "y");
 
 			screen = gtk_window_get_screen (window);
 			gtk_window_get_size (window, &width, &height);
@@ -360,10 +365,13 @@
 			data->premax_width = width;
 			data->premax_height = height;
 
-			width = gdk_screen_get_width (screen);
-			height = gdk_screen_get_height (screen);
+			monitor = gdk_screen_get_monitor_at_point (screen, x, y);
+			if (monitor < 0 || monitor >= gdk_screen_get_n_monitors (screen))
+				monitor = 0;
+
+			gdk_screen_get_monitor_workarea (screen, monitor, &monitor_area);
 
-			gtk_window_resize (window, width, height);
+			gtk_window_resize (window, monitor_area.width, monitor_area.height);
 			gtk_window_maximize (window);
 		}
 	}
diff -Nru evolution-3.4.3/libemail-engine/mail-folder-cache.c evolution-3.4.4/libemail-engine/mail-folder-cache.c
--- evolution-3.4.3/libemail-engine/mail-folder-cache.c	2012-06-18 07:59:41.000000000 +0900
+++ evolution-3.4.4/libemail-engine/mail-folder-cache.c	2012-08-13 06:30:29.000000000 +0900
@@ -825,6 +825,7 @@
 	CamelFolderInfo *fi;
 	StoreInfo *si;
 	GError *error = NULL;
+	gboolean free_fi = TRUE;
 
 	fi = camel_store_get_folder_info_finish (store, result, &error);
 
@@ -852,14 +853,10 @@
 		si->first_update = FALSE;
 	}
 
-	if (fi != NULL) {
-		gboolean free_fi = TRUE;
-
-		if (ud->done != NULL)
-			free_fi = ud->done (ud->cache, store, fi, ud->data);
-		if (free_fi)
-			camel_store_free_folder_info (store, fi);
-	}
+	if (ud->done != NULL)
+		free_fi = ud->done (ud->cache, store, fi, ud->data);
+	if (fi && free_fi)
+		camel_store_free_folder_info (store, fi);
 
 	if (ud->cancellable != NULL)
 		g_object_unref (ud->cancellable);

diff -Nru evolution-3.4.3/mail/e-mail-label-list-store.c evolution-3.4.4/mail/e-mail-label-list-store.c
--- evolution-3.4.3/mail/e-mail-label-list-store.c	2012-06-18 07:53:20.000000000 +0900
+++ evolution-3.4.4/mail/e-mail-label-list-store.c	2012-08-13 06:30:29.000000000 +0900
@@ -205,17 +205,13 @@
 }
 
 static void
-labels_model_changed_cb (GtkTreeModel *model,
-                         GtkTreePath *path,
-                         GtkTreeIter *iter,
-                         gpointer user_data)
+labels_model_changed_cb (EMailLabelListStore *store)
 {
-	EMailLabelListStore *store;
 	GPtrArray *array;
 	GtkTreeIter tmp_iter;
 	gboolean iter_set;
 
-	store = E_MAIL_LABEL_LIST_STORE (user_data);
+	g_return_if_fail (E_IS_MAIL_LABEL_LIST_STORE (store));
 
 	/* Make sure we don't enter an infinite synchronizing loop */
 	g_signal_handlers_block_by_func (
@@ -302,16 +298,16 @@
 		store->priv->mail_settings, "labels", store);
 
 	/* Connect to ListStore change notifications */
-	g_signal_connect (
+	g_signal_connect_swapped (
 		store, "row-inserted",
 		G_CALLBACK (labels_model_changed_cb), store);
-	g_signal_connect (
+	g_signal_connect_swapped (
 		store, "row-changed",
 		G_CALLBACK (labels_model_changed_cb), store);
-	g_signal_connect (
+	g_signal_connect_swapped (
 		store, "row-deleted",
 		G_CALLBACK (labels_model_changed_cb), store);
-	g_signal_connect (
+	g_signal_connect_swapped (
 		store, "rows-reordered",
 		G_CALLBACK (labels_model_changed_cb), store);
 
diff -Nru evolution-3.4.3/mail/e-mail-migrate.c evolution-3.4.4/mail/e-mail-migrate.c
--- evolution-3.4.3/mail/e-mail-migrate.c	2012-06-18 07:59:41.000000000 +0900
+++ evolution-3.4.4/mail/e-mail-migrate.c	2012-08-13 06:30:29.000000000 +0900
@@ -73,43 +73,6 @@
 
 /* 1.4 upgrade functions */
 
-#define EM_TYPE_MIGRATE_SESSION \
-	(em_migrate_session_get_type ())
-
-typedef struct _EMMigrateSession {
-	CamelSession parent_object;
-
-	CamelStore *store;   /* new folder tree store */
-	gchar *srcdir;        /* old folder tree path */
-} EMMigrateSession;
-
-typedef struct _EMMigrateSessionClass {
-	CamelSessionClass parent_class;
-
-} EMMigrateSessionClass;
-
-GType em_migrate_session_get_type (void);
-
-G_DEFINE_TYPE (EMMigrateSession, em_migrate_session, CAMEL_TYPE_SESSION)
-
-static void
-em_migrate_session_class_init (EMMigrateSessionClass *class)
-{
-}
-
-static void
-em_migrate_session_init (EMMigrateSession *session)
-{
-}
-
-static EMMigrateSession *
-em_migrate_session_new (const gchar *user_data_dir)
-{
-	return g_object_new (
-		EM_TYPE_MIGRATE_SESSION,
-		"user-data-dir", user_data_dir, NULL);
-}
-
 static GtkProgressBar *progress;
 
 static void
@@ -466,372 +429,6 @@
 	g_object_unref (client);
 }
 
-static gboolean
-mbox_to_maildir_migration_needed (EShellBackend *shell_backend)
-{
-	gchar *local_store;
-	gchar *local_outbox;
-	const gchar *data_dir;
-	gboolean migration_needed = FALSE;
-
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
-
-	local_store = g_build_filename (data_dir, "local", NULL);
-	local_outbox = g_build_filename (local_store, ".Outbox", NULL);
-
-	/* If this is a fresh install (no local store exists yet)
-	 * then obviously there's nothing to migrate to Maildir. */
-	if (!g_file_test (local_store, G_FILE_TEST_IS_DIR))
-		migration_needed = FALSE;
-
-	/* Look for a Maildir Outbox folder. */
-	else if (!g_file_test (local_outbox, G_FILE_TEST_IS_DIR))
-		migration_needed = TRUE;
-
-	g_free (local_store);
-	g_free (local_outbox);
-
-	return migration_needed;
-}
-
-/* Folder names with '.' are converted to '_' */
-static gchar *
-sanitize_maildir_folder_name (gchar *folder_name)
-{
-	gchar *maildir_folder_name;
-
-	maildir_folder_name = g_strdup (folder_name);
-	g_strdelimit (maildir_folder_name, ".", '_');
-
-	 return maildir_folder_name;
-}
-
-static void
-copy_folder (CamelStore *mbox_store,
-             CamelStore *maildir_store,
-             const gchar *mbox_fname,
-             const gchar *maildir_fname)
-{
-	CamelFolder *fromfolder, *tofolder;
-	GPtrArray *uids;
-
-	fromfolder = camel_store_get_folder_sync (
-		mbox_store, mbox_fname, 0, NULL, NULL);
-	if (fromfolder == NULL) {
-		g_warning ("Cannot find mbox folder %s \n", mbox_fname);
-		return;
-	}
-
-	tofolder = camel_store_get_folder_sync (
-		maildir_store, maildir_fname,
-		CAMEL_STORE_FOLDER_CREATE,
-		NULL, NULL);
-	if (tofolder == NULL) {
-		g_warning ("Cannot create maildir folder %s \n", maildir_fname);
-		g_object_unref (fromfolder);
-		return;
-	}
-
-	uids = camel_folder_get_uids (fromfolder);
-	camel_folder_transfer_messages_to_sync (
-			fromfolder, uids, tofolder,
-			FALSE, NULL,
-			NULL, NULL);
-	camel_folder_free_uids (fromfolder, uids);
-
-	g_object_unref (fromfolder);
-	g_object_unref (tofolder);
-}
-
-static void
-copy_folders (CamelStore *mbox_store,
-              CamelStore *maildir_store,
-              CamelFolderInfo *fi,
-              EMMigrateSession *session)
-{
-	if (fi) {
-		if (!g_str_has_prefix (fi->full_name, ".#evolution")) {
-			gchar *maildir_folder_name;
-
-			/* sanitize folder names and copy folders */
-			maildir_folder_name = sanitize_maildir_folder_name (fi->full_name);
-			copy_folder (
-				mbox_store, maildir_store,
-				fi->full_name, maildir_folder_name);
-			g_free (maildir_folder_name);
-		}
-
-		if (fi->child)
-			copy_folders (mbox_store, maildir_store, fi->child, session);
-
-		copy_folders (mbox_store, maildir_store, fi->next, session);
-	}
-}
-
-struct MigrateStore {
-	EMMigrateSession *session;
-	CamelStore *mbox_store;
-	CamelStore *maildir_store;
-	gboolean complete;
-};
-
-static void
-migrate_stores (struct MigrateStore *ms)
-{
-	CamelFolderInfo *mbox_fi;
-	CamelStore *mbox_store = ms->mbox_store;
-	CamelStore *maildir_store = ms->maildir_store;
-
-	mbox_fi = camel_store_get_folder_info_sync (
-		mbox_store, NULL,
-		CAMEL_STORE_FOLDER_INFO_RECURSIVE |
-		CAMEL_STORE_FOLDER_INFO_FAST |
-		CAMEL_STORE_FOLDER_INFO_SUBSCRIBED,
-		NULL, NULL);
-
-	/* FIXME progres dialog */
-	copy_folders (mbox_store, maildir_store, mbox_fi, ms->session);
-	ms->complete = TRUE;
-
-	return;
-}
-
-static gboolean
-migrate_mbox_to_maildir (EShellBackend *shell_backend,
-                         EMMigrateSession *session)
-{
-	CamelService *mbox_service, *maildir_service;
-	CamelStore *mbox_store, *maildir_store;
-	CamelSettings *settings;
-	const gchar *data_dir;
-	gchar *path;
-	struct MigrateStore ms;
-
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
-
-	mbox_service = camel_session_add_service (
-		CAMEL_SESSION (session), "local_mbox", "mbox",
-		CAMEL_PROVIDER_STORE, NULL);
-
-	settings = camel_service_get_settings (mbox_service);
-	path = g_build_filename (data_dir, "local_mbox", NULL);
-	g_object_set (settings, "path", path, NULL);
-	g_free (path);
-
-	maildir_service = camel_session_add_service (
-		CAMEL_SESSION (session), "local", "maildir",
-		CAMEL_PROVIDER_STORE, NULL);
-
-	settings = camel_service_get_settings (maildir_service);
-	path = g_build_filename (data_dir, "local", NULL);
-	g_object_set (settings, "path", path, NULL);
-	g_mkdir (path, 0700);
-	g_free (path);
-
-	mbox_store = CAMEL_STORE (mbox_service);
-	maildir_store = CAMEL_STORE (maildir_service);
-
-	ms.mbox_store = mbox_store;
-	ms.maildir_store = maildir_store;
-	ms.session = session;
-	ms.complete = FALSE;
-
-	g_thread_create ((GThreadFunc) migrate_stores, &ms, TRUE, NULL);
-	while (!ms.complete)
-		g_main_context_iteration (NULL, TRUE);
-
-	return TRUE;
-}
-
-static void
-rename_mbox_dir (EShellBackend *shell_backend)
-{
-	gchar *local_mbox_path, *new_mbox_path;
-	const gchar *data_dir;
-
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
-	local_mbox_path = g_build_filename (data_dir, "local", NULL);
-	new_mbox_path = g_build_filename (data_dir, "local_mbox", NULL);
-
-	if (!g_file_test (local_mbox_path, G_FILE_TEST_EXISTS))
-		goto exit;
-
-	if (g_file_test (new_mbox_path, G_FILE_TEST_EXISTS))
-		goto exit;
-
-	g_rename (local_mbox_path, new_mbox_path);
-
-exit:
-	g_free (local_mbox_path);
-	g_free (new_mbox_path);
-}
-
-static gboolean
-create_mbox_account (EShellBackend *shell_backend,
-                     EMMigrateSession *session)
-{
-	EMailBackend *mail_backend;
-	EMailSession *mail_session;
-	CamelService *service;
-	CamelURL *url;
-	EAccountList *accounts;
-	EAccount *account;
-	const gchar *data_dir;
-	gchar *name, *id, *temp, *uri, *folder_uri;
-
-	mail_backend = E_MAIL_BACKEND (shell_backend);
-	mail_session = e_mail_backend_get_session (mail_backend);
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
-
-	account = e_account_new ();
-	account->enabled = TRUE;
-
-	g_free (account->uid);
-	account->uid = g_strdup ("local_mbox");
-
-	url = camel_url_new ("mbox:", NULL);
-	temp = g_build_filename (data_dir, "local_mbox", NULL);
-	camel_url_set_path (url, temp);
-	g_free (temp);
-
-	uri = camel_url_to_string (url, 0);
-	e_account_set_string (account, E_ACCOUNT_SOURCE_URL, uri);
-
-#ifndef G_OS_WIN32
-	name = g_locale_to_utf8 (g_get_user_name (), -1, NULL, NULL, NULL);
-#else
-	name = g_strdup (g_get_user_name ());
-#endif
-
-	id = g_strconcat (name, "@", "localhost", NULL);
-	e_account_set_string (account, E_ACCOUNT_ID_NAME, name);
-	e_account_set_string (account, E_ACCOUNT_ID_ADDRESS, id);
-	e_account_set_string (account, E_ACCOUNT_NAME, id);
-
-	accounts = e_get_account_list ();
-	if (e_account_list_find (accounts, E_ACCOUNT_ID_ADDRESS, id)) {
-		g_object_unref (account);
-		goto exit;
-	}
-
-	/* This will also add it to the EMailSession. */
-	e_account_list_add (accounts, account);
-
-	service = camel_session_get_service (
-		CAMEL_SESSION (mail_session), account->uid);
-
-	folder_uri = e_mail_folder_uri_build (
-		CAMEL_STORE (service), "Sent");
-	e_account_set_string (
-		account, E_ACCOUNT_SENT_FOLDER_URI, folder_uri);
-	g_free (folder_uri);
-
-	folder_uri = e_mail_folder_uri_build (
-		CAMEL_STORE (service), "Drafts");
-	e_account_set_string (
-		account, E_ACCOUNT_DRAFTS_FOLDER_URI, folder_uri);
-	g_free (folder_uri);
-
-	e_account_list_save (accounts);
-
-exit:
-	camel_url_free (url);
-	g_free (uri);
-	g_free (name);
-	g_free (id);
-
-	return TRUE;
-}
-
-static void
-change_sent_and_drafts_local_folders (EShellBackend *shell_backend)
-{
-	EMailBackend *backend;
-	EMailSession *session;
-	EAccountList *accounts;
-	EIterator *iter;
-	const gchar *data_dir;
-	gboolean changed = FALSE;
-	CamelURL *url;
-	gchar *tmp_uri, *drafts_uri, *sent_uri, *old_drafts_uri, *old_sent_uri;
-
-	accounts = e_get_account_list ();
-	if (!accounts)
-		return;
-
-	backend = E_MAIL_BACKEND (shell_backend);
-	session = e_mail_backend_get_session (backend);
-
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
-
-	tmp_uri = g_strconcat ("mbox:", data_dir, "/", "local", NULL);
-	url = camel_url_new (tmp_uri, NULL);
-	g_free (tmp_uri);
-
-	g_return_if_fail (url != NULL);
-
-	camel_url_set_fragment (url, "Drafts");
-	drafts_uri = camel_url_to_string (url, CAMEL_URL_HIDE_ALL);
-
-	camel_url_set_fragment (url, "Sent");
-	sent_uri = camel_url_to_string (url, CAMEL_URL_HIDE_ALL);
-
-	camel_url_free (url);
-
-	tmp_uri = g_strconcat (
-		"mbox:", g_get_home_dir (),
-		"/.evolution/mail/local", NULL);
-	url = camel_url_new (tmp_uri, NULL);
-	g_free (tmp_uri);
-
-	g_return_if_fail (url != NULL);
-
-	camel_url_set_fragment (url, "Drafts");
-	old_drafts_uri = camel_url_to_string (url, CAMEL_URL_HIDE_ALL);
-
-	camel_url_set_fragment (url, "Sent");
-	old_sent_uri = camel_url_to_string (url, CAMEL_URL_HIDE_ALL);
-
-	camel_url_free (url);
-
-	for (iter = e_list_get_iterator ((EList *) accounts);
-	     e_iterator_is_valid (iter); e_iterator_next (iter)) {
-		EAccount *account = (EAccount *) e_iterator_get (iter);
-		const gchar *uri;
-
-		if (!account)
-			continue;
-
-		uri = e_account_get_string (account, E_ACCOUNT_DRAFTS_FOLDER_URI);
-		if (g_strcmp0 (uri, drafts_uri) == 0 ||
-		    g_strcmp0 (uri, old_drafts_uri) == 0) {
-			changed = TRUE;
-			e_account_set_string (
-				account, E_ACCOUNT_DRAFTS_FOLDER_URI,
-				e_mail_session_get_local_folder_uri (
-				session, E_MAIL_LOCAL_FOLDER_DRAFTS));
-		}
-
-		uri = e_account_get_string (account, E_ACCOUNT_SENT_FOLDER_URI);
-		if (g_strcmp0 (uri, sent_uri) == 0 || g_strcmp0 (uri, old_sent_uri) == 0) {
-			changed = TRUE;
-			e_account_set_string (
-				account, E_ACCOUNT_SENT_FOLDER_URI,
-				e_mail_session_get_local_folder_uri (
-				session, E_MAIL_LOCAL_FOLDER_SENT));
-		}
-	}
-
-	g_object_unref (iter);
-	g_free (old_drafts_uri);
-	g_free (drafts_uri);
-	g_free (old_sent_uri);
-	g_free (sent_uri);
-
-	if (changed)
-		e_account_list_save (accounts);
-}
-
 static void
 em_rename_camel_url_params (CamelURL *url)
 {
@@ -1072,45 +669,6 @@
 	e_account_list_save (account_list);
 }
 
-static gboolean
-migrate_local_store (EShellBackend *shell_backend)
-{
-	EMMigrateSession *session;
-	const gchar *data_dir;
-	gchar *local_store;
-	gint response;
-
-	if (!mbox_to_maildir_migration_needed (shell_backend))
-		return TRUE;
-
-	response = e_alert_run_dialog_for_args (
-		e_shell_get_active_window (NULL),
-		"mail:ask-migrate-store", NULL);
-
-	if (response == GTK_RESPONSE_CANCEL)
-		exit (EXIT_SUCCESS);
-
-	rename_mbox_dir (shell_backend);
-	data_dir = e_shell_backend_get_data_dir (shell_backend);
-	local_store = g_build_filename (data_dir, "local", NULL);
-
-	if (!g_file_test (local_store, G_FILE_TEST_EXISTS))
-		g_mkdir_with_parents (local_store, 0700);
-
-	session = em_migrate_session_new (data_dir);
-	camel_session_set_online (CAMEL_SESSION (session), FALSE);
-
-	migrate_mbox_to_maildir (shell_backend, session);
-	create_mbox_account (shell_backend, session);
-	change_sent_and_drafts_local_folders (shell_backend);
-
-	g_object_unref (session);
-
-	g_free (local_store);
-
-	return TRUE;
-}
-
 static void
 em_ensure_proxy_ignore_hosts_being_list (void)
 {
@@ -1303,9 +861,6 @@
 	 * match CamelSettings property names. */
 	em_rename_account_params ();
 
-	if (!migrate_local_store (shell_backend))
-		return FALSE;
-
 	if (major <= 2 || (major == 3 && minor < 4))
 		em_rename_folder_views (shell_backend);
 
diff -Nru evolution-3.4.3/mail/mail-dialogs.ui evolution-3.4.4/mail/mail-dialogs.ui
--- evolution-3.4.3/mail/mail-dialogs.ui	2012-06-18 07:53:26.000000000 +0900
+++ evolution-3.4.4/mail/mail-dialogs.ui	2012-08-13 06:30:29.000000000 +0900
@@ -313,6 +313,19 @@
           </packing>
         </child>
         <child>
+          <object class="EDateEdit" id="target_date">
+            <property name="allow-no-date-set">True</property>
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="right_attach">3</property>
+            <property name="top_attach">1</property>
+            <property name="bottom_attach">2</property>
+            <property name="y_options">GTK_FILL</property>
+          </packing>
+        </child>
+        <child>
           <object class="GtkCheckButton" id="completed">
             <property name="label" translatable="yes" comments="Translators: Flag Completed">Co_mpleted</property>
             <property name="visible">True</property>
diff -Nru evolution-3.4.3/mail/mail-send-recv.c evolution-3.4.4/mail/mail-send-recv.c
--- evolution-3.4.3/mail/mail-send-recv.c	2012-06-18 07:59:41.000000000 +0900
+++ evolution-3.4.4/mail/mail-send-recv.c	2012-08-13 06:30:29.000000000 +0900
@@ -897,10 +897,21 @@
 
 	/* remove/free this active download */
 	d(printf("%s: freeing info %p\n", G_STRFUNC, info));
-	if (info->type == SEND_SEND)
+	if (info->type == SEND_SEND) {
+		gpointer key = NULL, value = NULL;
+		if (!g_hash_table_lookup_extended (info->data->active, SEND_URI_KEY, &key, &value))
+			key = NULL;
+
 		g_hash_table_steal (info->data->active, SEND_URI_KEY);
-	else
+		g_free (key);
+	} else {
+		gpointer key = NULL, value = NULL;
+		if (!g_hash_table_lookup_extended (info->data->active, uid, &key, &value))
+			key = NULL;
+
 		g_hash_table_steal (info->data->active, uid);
+		g_free (key);
+	}
 	info->data->infos = g_list_remove (info->data->infos, info);
 
 	if (g_hash_table_size (info->data->active) == 0) {
@@ -1040,17 +1051,19 @@
 			m->folders->pdata[i], 0,
 			cancellable, &local_error);
 		if (folder) {
-			/* FIXME Not passing a GError here. */
-			camel_folder_synchronize_sync (
-				folder, FALSE, cancellable, NULL);
-			camel_folder_refresh_info_sync (folder, cancellable, NULL);
+			if (camel_folder_synchronize_sync (folder, FALSE, cancellable, &local_error))
+				camel_folder_refresh_info_sync (folder, cancellable, &local_error);
 			g_object_unref (folder);
-		} else if (local_error != NULL) {
-			g_warning ("Failed to refresh folders: %s", local_error->message);
+		}
+
+		if (local_error != NULL) {
+			if (!g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+				g_warning ("Failed to refresh folders: %s", local_error->message);
 			g_clear_error (&local_error);
 		}
 
-		if (g_cancellable_is_cancelled (m->info->cancellable))
+		if (g_cancellable_is_cancelled (m->info->cancellable) ||
+		    g_cancellable_is_cancelled (cancellable))
 			break;
 
 		if (m->info->state != SEND_CANCELLED)
diff -Nru evolution-3.4.3/mail/message-list.c evolution-3.4.4/mail/message-list.c
--- evolution-3.4.3/mail/message-list.c	2012-06-18 07:59:41.000000000 +0900
+++ evolution-3.4.4/mail/message-list.c	2012-08-13 06:30:29.000000000 +0900
@@ -2668,11 +2668,8 @@
 	if (message_list->folder) {
 		mail_regen_cancel (message_list);
 
-		if (message_list->uid_nodemap) {
+		if (message_list->uid_nodemap)
 			g_hash_table_foreach (message_list->uid_nodemap, (GHFunc) clear_info, message_list);
-			g_hash_table_destroy (message_list->uid_nodemap);
-			message_list->uid_nodemap = NULL;
-		}
 
 		g_signal_handlers_disconnect_by_func (
 			message_list->folder, folder_changed, message_list);
@@ -2680,6 +2677,11 @@
 		message_list->folder = NULL;
 	}
 
+	if (message_list->uid_nodemap) {
+		g_hash_table_destroy (message_list->uid_nodemap);
+		message_list->uid_nodemap = NULL;
+	}
+
 	if (priv->invisible) {
 		g_object_unref (priv->invisible);
 		priv->invisible = NULL;
@@ -3883,6 +3885,10 @@
 	if (message_list->folder) {
 		g_signal_handlers_disconnect_by_func (
 			message_list->folder, folder_changed, message_list);
+
+		if (message_list->uid_nodemap)
+			g_hash_table_foreach (message_list->uid_nodemap, (GHFunc) clear_info, message_list);
+
 		g_object_unref (message_list->folder);
 		message_list->folder = NULL;
 	}
diff -Nru evolution-3.4.3/Makefile.in evolution-3.4.4/Makefile.in
--- evolution-3.4.3/Makefile.in	2012-06-18 08:34:47.000000000 +0900
+++ evolution-3.4.4/Makefile.in	2012-08-13 09:34:43.000000000 +0900
@@ -960,7 +960,7 @@
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	chmod -R a-w $(distdir); chmod u+w $(distdir)
 	mkdir $(distdir)/_build
 	mkdir $(distdir)/_inst
 	chmod a-w $(distdir)

diff -Nru evolution-3.4.3/modules/mail/e-mail-shell-sidebar.c evolution-3.4.4/modules/mail/e-mail-shell-sidebar.c
--- evolution-3.4.3/modules/mail/e-mail-shell-sidebar.c	2012-06-18 07:53:28.000000000 +0900
+++ evolution-3.4.4/modules/mail/e-mail-shell-sidebar.c	2012-08-13 06:30:29.000000000 +0900
@@ -73,6 +73,8 @@
 	if (is_folder)
 		icon_name = em_folder_utils_get_icon_name (flags);
 	else {
+		g_free (display_name);
+
 		icon_name = shell_view_class->icon_name;
 		display_name = g_strdup (shell_view_class->label);
 	}

diff -Nru evolution-3.4.3/shell/e-convert-local-mail.c evolution-3.4.4/shell/e-convert-local-mail.c
--- evolution-3.4.3/shell/e-convert-local-mail.c	1970-01-01 09:00:00.000000000 +0900
+++ evolution-3.4.4/shell/e-convert-local-mail.c	2012-08-13 06:30:29.000000000 +0900
@@ -0,0 +1,344 @@
+/*
+ * e-convert-local-mail.c
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) version 3.
+ *
+ * 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with the program; if not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+#include <config.h>
+
+#include <glib/gstdio.h>
+#include <camel/camel.h>
+
+#include <libedataserver/e-data-server-util.h>
+
+#include <shell/e-shell.h>
+#include <libemail-utils/e-account-utils.h>
+#include <libevolution-utils/e-alert-dialog.h>
+
+#define MBOX_UID "local_mbox"
+
+/* Forward Declarations */
+void e_convert_local_mail (EShell *shell);
+
+static gboolean
+mail_to_maildir_migration_needed (const gchar *mail_data_dir)
+{
+	gchar *local_store;
+	gchar *local_outbox;
+	gboolean migration_needed = FALSE;
+
+	local_store = g_build_filename (mail_data_dir, "local", NULL);
+	local_outbox = g_build_filename (local_store, ".Outbox", NULL);
+
+	/* If this is a fresh install (no local store exists yet)
+	 * then obviously there's nothing to migrate to Maildir. */
+	if (!g_file_test (local_store, G_FILE_TEST_IS_DIR))
+		migration_needed = FALSE;
+
+	/* Look for a Maildir Outbox folder. */
+	else if (!g_file_test (local_outbox, G_FILE_TEST_IS_DIR))
+		migration_needed = TRUE;
+
+	g_free (local_store);
+	g_free (local_outbox);
+
+	return migration_needed;
+}
+
+/* Folder names with '.' are converted to '_' */
+static gchar *
+sanitize_maildir_folder_name (gchar *folder_name)
+{
+	gchar *maildir_folder_name;
+
+	maildir_folder_name = g_strdup (folder_name);
+	g_strdelimit (maildir_folder_name, ".", '_');
+
+	 return maildir_folder_name;
+}
+
+static void
+copy_folder (CamelStore *mail_store,
+             CamelStore *maildir_store,
+             const gchar *mail_fname,
+             const gchar *maildir_fname)
+{
+	CamelFolder *fromfolder, *tofolder;
+	GPtrArray *uids;
+
+	fromfolder = camel_store_get_folder_sync (
+		mail_store, mail_fname, 0, NULL, NULL);
+	if (fromfolder == NULL) {
+		g_warning ("Cannot find mail folder %s \n", mail_fname);
+		return;
+	}
+
+	tofolder = camel_store_get_folder_sync (
+		maildir_store, maildir_fname,
+		CAMEL_STORE_FOLDER_CREATE, NULL, NULL);
+	if (tofolder == NULL) {
+		g_warning ("Cannot create maildir folder %s \n", maildir_fname);
+		g_object_unref (fromfolder);
+		return;
+	}
+
+	uids = camel_folder_get_uids (fromfolder);
+	camel_folder_transfer_messages_to_sync (
+		fromfolder, uids, tofolder, FALSE, NULL, NULL, NULL);
+	camel_folder_free_uids (fromfolder, uids);
+
+	g_object_unref (fromfolder);
+	g_object_unref (tofolder);
+}
+
+static void
+copy_folders (CamelStore *mail_store,
+              CamelStore *maildir_store,
+              CamelFolderInfo *fi,
+              CamelSession *session)
+{
+	if (fi) {
+		if (!g_str_has_prefix (fi->full_name, ".#evolution")) {
+			gchar *maildir_folder_name;
+
+			/* sanitize folder names and copy folders */
+			maildir_folder_name = sanitize_maildir_folder_name (fi->full_name);
+			copy_folder (
+				mail_store, maildir_store,
+				fi->full_name, maildir_folder_name);
+			g_free (maildir_folder_name);
+		}
+
+		if (fi->child)
+			copy_folders (mail_store, maildir_store, fi->child, session);
+
+		copy_folders (mail_store, maildir_store, fi->next, session);
+	}
+}
+
+struct MigrateStore {
+	CamelSession *session;
+	CamelStore *mail_store;
+	CamelStore *maildir_store;
+	gboolean complete;
+};
+
+static void
+migrate_stores (struct MigrateStore *ms)
+{
+	CamelFolderInfo *mail_fi;
+	CamelStore *mail_store = ms->mail_store;
+	CamelStore *maildir_store = ms->maildir_store;
+
+	mail_fi = camel_store_get_folder_info_sync (
+		mail_store, NULL,
+		CAMEL_STORE_FOLDER_INFO_RECURSIVE |
+		CAMEL_STORE_FOLDER_INFO_FAST |
+		CAMEL_STORE_FOLDER_INFO_SUBSCRIBED,
+		NULL, NULL);
+
+	/* FIXME progres dialog */
+	copy_folders (mail_store, maildir_store, mail_fi, ms->session);
+	ms->complete = TRUE;
+}
+
+static void
+rename_mbox_dir (const gchar *mail_data_dir)
+{
+	gchar *old_mail_dir;
+	gchar *new_mail_dir;
+	gboolean need_rename;
+
+	old_mail_dir = g_build_filename (mail_data_dir, "local", NULL);
+	new_mail_dir = g_build_filename (mail_data_dir, MBOX_UID, NULL);
+
+	/* Rename if old directory exists and new directory does not. */
+	need_rename =
+		g_file_test (old_mail_dir, G_FILE_TEST_EXISTS) &&
+		!g_file_test (new_mail_dir, G_FILE_TEST_EXISTS);
+
+	if (need_rename)
+		g_rename (old_mail_dir, new_mail_dir);
+
+	g_free (old_mail_dir);
+	g_free (new_mail_dir);
+}
+
+static gboolean
+migrate_mbox_to_maildir (CamelSession *session)
+{
+	CamelService *mbox_service;
+	CamelService *maildir_service;
+	CamelSettings *settings;
+	const gchar *data_dir;
+	gchar *path;
+	struct MigrateStore ms;
+	GError *error = NULL;
+
+	data_dir = camel_session_get_user_data_dir (session);
+
+	mbox_service = camel_session_add_service (
+		session, MBOX_UID, "mbox",
+		CAMEL_PROVIDER_STORE, &error);
+
+	if (error != NULL) {
+		g_warn_if_fail (mbox_service == NULL);
+		g_warning ("%s: %s", G_STRFUNC, error->message);
+		g_error_free (error);
+		return FALSE;
+	}
+
+	settings = camel_service_get_settings (mbox_service);
+	path = g_build_filename (data_dir, MBOX_UID, NULL);
+	g_object_set (settings, "path", path, NULL);
+	g_free (path);
+
+	maildir_service = camel_session_add_service (
+		session, "local", "maildir",
+		CAMEL_PROVIDER_STORE, &error);
+
+	if (error != NULL) {
+		g_warn_if_fail (maildir_service == NULL);
+		g_warning ("%s: %s", G_STRFUNC, error->message);
+		g_object_unref (mbox_service);
+		g_error_free (error);
+		return FALSE;
+	}
+
+	settings = camel_service_get_settings (maildir_service);
+	path = g_build_filename (data_dir, "local", NULL);
+	g_object_set (settings, "path", path, NULL);
+	g_mkdir (path, 0700);
+	g_free (path);
+
+	ms.mail_store = CAMEL_STORE (mbox_service);
+	ms.maildir_store = CAMEL_STORE (maildir_service);
+	ms.session = session;
+	ms.complete = FALSE;
+
+	g_thread_create ((GThreadFunc) migrate_stores, &ms, TRUE, NULL);
+	while (!ms.complete)
+		g_main_context_iteration (NULL, TRUE);
+
+	return TRUE;
+}
+
+static gboolean
+create_mbox_account (CamelSession *session)
+{
+	CamelURL *url;
+	EAccountList *accounts;
+	EAccount *account;
+	const gchar *data_dir;
+	gchar *name, *id, *temp, *uri;
+
+	data_dir = camel_session_get_user_data_dir (session);
+
+	account = e_account_new ();
+	account->enabled = TRUE;
+
+	g_free (account->uid);
+	account->uid = g_strdup ("local_mbox");
+
+	url = camel_url_new ("mbox:", NULL);
+	temp = g_build_filename (data_dir, "local_mbox", NULL);
+	camel_url_set_path (url, temp);
+	g_free (temp);
+
+	uri = camel_url_to_string (url, 0);
+	e_account_set_string (account, E_ACCOUNT_SOURCE_URL, uri);
+
+#ifndef G_OS_WIN32
+	name = g_locale_to_utf8 (g_get_user_name (), -1, NULL, NULL, NULL);
+#else
+	name = g_strdup (g_get_user_name ());
+#endif
+
+	id = g_strconcat (name, "@", "localhost", NULL);
+	e_account_set_string (account, E_ACCOUNT_ID_NAME, name);
+	e_account_set_string (account, E_ACCOUNT_ID_ADDRESS, id);
+	e_account_set_string (account, E_ACCOUNT_NAME, "local_mbox");
+
+	accounts = e_get_account_list ();
+	if (e_account_list_find (accounts, E_ACCOUNT_ID_ADDRESS, id)) {
+		g_object_unref (account);
+		goto exit;
+	}
+
+	e_account_list_add (accounts, account);
+
+exit:
+	camel_url_free (url);
+	g_free (uri);
+	g_free (name);
+	g_free (id);
+
+	return TRUE;
+}
+
+void
+e_convert_local_mail (EShell *shell)
+{
+	CamelSession *session;
+	const gchar *user_data_dir;
+	const gchar *user_cache_dir;
+	gchar *mail_data_dir;
+	gchar *mail_cache_dir;
+	gchar *local_store;
+	gint response;
+
+	camel_provider_init ();
+
+	user_data_dir = e_get_user_data_dir ();
+	user_cache_dir = e_get_user_cache_dir ();
+
+	mail_data_dir = g_build_filename (user_data_dir, "mail", NULL);
+	mail_cache_dir = g_build_filename (user_cache_dir, "mail", NULL);
+
+	if (!mail_to_maildir_migration_needed (mail_data_dir))
+		goto exit;
+
+	response = e_alert_run_dialog_for_args (
+		e_shell_get_active_window (NULL),
+		"mail:ask-migrate-store", NULL);
+
+	if (response == GTK_RESPONSE_CANCEL)
+		exit (EXIT_SUCCESS);
+
+	rename_mbox_dir (mail_data_dir);
+
+	local_store = g_build_filename (mail_data_dir, "local", NULL);
+
+	if (!g_file_test (local_store, G_FILE_TEST_EXISTS))
+		g_mkdir_with_parents (local_store, 0700);
+
+	g_free (local_store);
+
+	session = g_object_new (
+		CAMEL_TYPE_SESSION,
+		"online", FALSE,
+		"user-data-dir", mail_data_dir,
+		"user-cache-dir", mail_cache_dir,
+		NULL);
+
+	migrate_mbox_to_maildir (session);
+	create_mbox_account (session);
+
+	g_object_unref (session);
+
+exit:
+	g_free (mail_data_dir);
+	g_free (mail_cache_dir);
+}
diff -Nru evolution-3.4.3/shell/main.c evolution-3.4.4/shell/main.c
--- evolution-3.4.3/shell/main.c	2012-06-18 07:53:52.000000000 +0900
+++ evolution-3.4.4/shell/main.c	2012-08-13 06:30:29.000000000 +0900
@@ -118,6 +118,9 @@
 static gchar *requested_view = NULL;
 static gchar **remaining_args;
 
+/* Forward declarations */
+void e_convert_local_mail (EShell *shell);
+
 static void
 categories_icon_theme_hack (void)
 {
@@ -651,6 +654,18 @@
 		goto exit;
 	}
 
+	/* This routine converts the local mail store from mbox format to
+	 * Maildir format as needed.  The reason the code is here and not
+	 * in the mail module is because we inform the user at startup of
+	 * the impending mail conversion by displaying a popup dialog and
+	 * waiting for confirmation before proceeding.
+	 *
+	 * This has to be done before we load modules because some of the
+	 * EShellBackends immediately add GMainContext sources that would
+	 * otherwise get dispatched during gtk_dialog_run(), and we don't
+	 * want them dispatched until after the conversion is complete. */
+	e_convert_local_mail (shell);
+
 	e_shell_load_modules (shell);
 
 	if (!disable_eplugin) {
diff -Nru evolution-3.4.3/shell/Makefile.am evolution-3.4.4/shell/Makefile.am
--- evolution-3.4.3/shell/Makefile.am	2012-06-18 07:53:49.000000000 +0900
+++ evolution-3.4.4/shell/Makefile.am	2012-08-13 07:24:10.000000000 +0900
@@ -140,7 +140,8 @@
 	$(CLUTTER_CFLAGS)
 
 evolution_SOURCES =				\
-	main.c
+	main.c					\
+	e-convert-local-mail.c
 
 evolution_LDADD =							\
 	libeshell.la							\
@@ -150,6 +151,7 @@
 	$(top_builddir)/libemail-utils/libemail-utils.la		\
 	$(top_builddir)/e-util/libeutil.la				\
 	$(top_builddir)/filter/libfilter.la				\
+	$(top_builddir)/libevolution-utils/libevolution-utils.la \
 	$(EVOLUTION_DATA_SERVER_LIBS)					\
 	$(GNOME_PLATFORM_LIBS)						\
 	$(DBUS_GLIB_LIBS)						\
diff -Nru evolution-3.4.3/shell/Makefile.in evolution-3.4.4/shell/Makefile.in
--- evolution-3.4.3/shell/Makefile.in	2012-06-18 08:34:42.000000000 +0900
+++ evolution-3.4.4/shell/Makefile.in	2012-08-13 09:34:38.000000000 +0900
@@ -158,7 +158,8 @@
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(libeshell_la_LDFLAGS) $(LDFLAGS) -o $@
 PROGRAMS = $(bin_PROGRAMS) $(privlibexec_PROGRAMS)
-am_evolution_OBJECTS = evolution-main.$(OBJEXT)
+am_evolution_OBJECTS = evolution-main.$(OBJEXT) \
+	evolution-e-convert-local-mail.$(OBJEXT)
 evolution_OBJECTS = $(am_evolution_OBJECTS)
 evolution_DEPENDENCIES = libeshell.la \
 	$(top_builddir)/widgets/e-timezone-dialog/libetimezonedialog.la \
@@ -166,9 +167,10 @@
 	$(top_builddir)/widgets/misc/libemiscwidgets.la \
 	$(top_builddir)/libemail-utils/libemail-utils.la \
 	$(top_builddir)/e-util/libeutil.la \
-	$(top_builddir)/filter/libfilter.la $(am__DEPENDENCIES_1) \
+	$(top_builddir)/filter/libfilter.la \
+	$(top_builddir)/libevolution-utils/libevolution-utils.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(EVOLUTIONICON)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(EVOLUTIONICON)
 evolution_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(evolution_LDFLAGS) $(LDFLAGS) -o $@
@@ -652,7 +654,8 @@
 	$(CLUTTER_CFLAGS)
 
 evolution_SOURCES = \
-	main.c
+	main.c					\
+	e-convert-local-mail.c
 
 evolution_LDADD = \
 	libeshell.la							\
@@ -662,6 +665,7 @@
 	$(top_builddir)/libemail-utils/libemail-utils.la		\
 	$(top_builddir)/e-util/libeutil.la				\
 	$(top_builddir)/filter/libfilter.la				\
+	$(top_builddir)/libevolution-utils/libevolution-utils.la \
 	$(EVOLUTION_DATA_SERVER_LIBS)					\
 	$(GNOME_PLATFORM_LIBS)						\
 	$(DBUS_GLIB_LIBS)						\
@@ -885,6 +889,7 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evolution-e-convert-local-mail.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evolution-main.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/killev-killev.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libeshell_la-e-shell-backend.Plo@am__quote@
@@ -1059,6 +1064,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(evolution_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evolution-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
 
+evolution-e-convert-local-mail.o: e-convert-local-mail.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(evolution_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evolution-e-convert-local-mail.o -MD -MP -MF $(DEPDIR)/evolution-e-convert-local-mail.Tpo -c -o evolution-e-convert-local-mail.o `test -f 'e-convert-local-mail.c' || echo '$(srcdir)/'`e-convert-local-mail.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/evolution-e-convert-local-mail.Tpo $(DEPDIR)/evolution-e-convert-local-mail.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='e-convert-local-mail.c' object='evolution-e-convert-local-mail.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(evolution_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evolution-e-convert-local-mail.o `test -f 'e-convert-local-mail.c' || echo '$(srcdir)/'`e-convert-local-mail.c
+
+evolution-e-convert-local-mail.obj: e-convert-local-mail.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(evolution_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT evolution-e-convert-local-mail.obj -MD -MP -MF $(DEPDIR)/evolution-e-convert-local-mail.Tpo -c -o evolution-e-convert-local-mail.obj `if test -f 'e-convert-local-mail.c'; then $(CYGPATH_W) 'e-convert-local-mail.c'; else $(CYGPATH_W) '$(srcdir)/e-convert-local-mail.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/evolution-e-convert-local-mail.Tpo $(DEPDIR)/evolution-e-convert-local-mail.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='e-convert-local-mail.c' object='evolution-e-convert-local-mail.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(evolution_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o evolution-e-convert-local-mail.obj `if test -f 'e-convert-local-mail.c'; then $(CYGPATH_W) 'e-convert-local-mail.c'; else $(CYGPATH_W) '$(srcdir)/e-convert-local-mail.c'; fi`
+
 killev-killev.o: killev.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(killev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT killev-killev.o -MD -MP -MF $(DEPDIR)/killev-killev.Tpo -c -o killev-killev.o `test -f 'killev.c' || echo '$(srcdir)/'`killev.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/killev-killev.Tpo $(DEPDIR)/killev-killev.Po
diff -Nru evolution-3.4.3/widgets/misc/e-attachment.c evolution-3.4.4/widgets/misc/e-attachment.c
--- evolution-3.4.3/widgets/misc/e-attachment.c	2012-06-18 07:59:42.000000000 +0900
+++ evolution-3.4.4/widgets/misc/e-attachment.c	2012-08-13 06:30:29.000000000 +0900
@@ -1454,6 +1454,7 @@
 
 struct _LoadContext {
 	EAttachment *attachment;
+	CamelMimePart *mime_part;
 	GSimpleAsyncResult *simple;
 
 	GInputStream *input_stream;
@@ -1495,7 +1496,12 @@
 attachment_load_context_free (LoadContext *load_context)
 {
 	g_object_unref (load_context->attachment);
-	g_object_unref (load_context->simple);
+
+	if (load_context->mime_part != NULL)
+		g_object_unref (load_context->mime_part);
+
+	if (load_context->simple)
+		g_object_unref (load_context->simple);
 
 	if (load_context->input_stream != NULL)
 		g_object_unref (load_context->input_stream);
@@ -1590,17 +1596,19 @@
 		camel_mime_part_set_disposition (mime_part, disposition);
 
 	/* Correctly report the size of zero length special files. */
-	if (g_file_info_get_size (file_info) == 0) {
+	if (g_file_info_get_size (file_info) == 0)
 		g_file_info_set_size (file_info, size);
-		e_attachment_set_file_info (attachment, file_info);
-	}
+
+	load_context->mime_part = mime_part;
 
 	g_simple_async_result_set_op_res_gpointer (
-		simple, mime_part, (GDestroyNotify) g_object_unref);
+		simple, load_context, (GDestroyNotify) attachment_load_context_free);
 
 	g_simple_async_result_complete (simple);
 
-	attachment_load_context_free (load_context);
+	/* make sure it's freed on operation end */
+	load_context->simple = NULL;
+	g_object_unref (simple);
 }
 
 static void
@@ -1836,18 +1844,15 @@
 	g_file_info_set_size (file_info, CAMEL_STREAM_NULL (null)->written);
 	g_object_unref (null);
 
-	string = camel_mime_part_get_disposition (mime_part);
-	e_attachment_set_disposition (attachment, string);
-
-	e_attachment_set_file_info (attachment, file_info);
+	load_context->mime_part = g_object_ref (mime_part);
 
-	g_object_ref (mime_part);
+	/* make sure it's freed on operation end */
+	g_object_unref (load_context->simple);
+	load_context->simple = NULL;
 
 	g_simple_async_result_set_op_res_gpointer (
-		simple, mime_part,
-		(GDestroyNotify) g_object_unref);
-
-	attachment_load_context_free (load_context);
+		simple, load_context,
+		(GDestroyNotify) attachment_load_context_free);
 }
 
 void
@@ -1911,20 +1916,28 @@
                           GError **error)
 {
 	GSimpleAsyncResult *simple;
-	CamelMimePart *mime_part;
+	const LoadContext *load_context;
 
 	g_return_val_if_fail (E_IS_ATTACHMENT (attachment), FALSE);
 	g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
 
 	simple = G_SIMPLE_ASYNC_RESULT (result);
-	mime_part = g_simple_async_result_get_op_res_gpointer (simple);
-	if (mime_part != NULL)
-		e_attachment_set_mime_part (attachment, mime_part);
+	load_context = g_simple_async_result_get_op_res_gpointer (simple);
+	if (load_context && load_context->mime_part) {
+		const gchar *string;
+
+		string = camel_mime_part_get_disposition (load_context->mime_part);
+		e_attachment_set_disposition (attachment, string);
+
+		e_attachment_set_file_info (attachment, load_context->file_info);
+		e_attachment_set_mime_part (attachment, load_context->mime_part);
+	}
+
 	g_simple_async_result_propagate_error (simple, error);
 
 	attachment_set_loading (attachment, FALSE);
 
-	return (mime_part != NULL);
+	return (load_context != NULL);
 }
 
 void
