diff --git a/src/client/sidebar/sidebar-common.vala b/src/client/sidebar/sidebar-common.vala
index eff02ad..e1f7981 100644
--- a/src/client/sidebar/sidebar-common.vala
+++ b/src/client/sidebar/sidebar-common.vala
@@ -69,6 +69,9 @@ public class Sidebar.RootOnlyBranch : Sidebar.Branch {
     }
 }
 
+public interface Sidebar.HiddenIcons : Object {
+}
+
 /**
  * A header is an entry that is visually distinguished from its children. Bug 6397 recommends
  * headers to appear bolded and without any icons. To prevent the icons from rendering, we set the
@@ -76,7 +79,7 @@ public class Sidebar.RootOnlyBranch : Sidebar.Branch {
  * using a custom cell_data_function (@see Sidebar.Tree::icon_renderer_function) which ensures that
  * header icons won't be rendered. This approach avoids the blank icon spacing issues.
  */
-public class Sidebar.Header : Sidebar.Grouping, Sidebar.EmphasizableEntry {
+public class Sidebar.Header : Sidebar.Grouping, Sidebar.EmphasizableEntry, Sidebar.HiddenIcons {
     private bool emphasized;
     
     public Header(string name, bool emphasized = true) {
@@ -89,6 +92,27 @@ public class Sidebar.Header : Sidebar.Grouping, Sidebar.EmphasizableEntry {
     }
 }
 
+public class Sidebar.Padding : Object, Sidebar.Entry, Sidebar.HiddenIcons {
+    public Padding() {
+    }
+    
+    public string get_sidebar_name() {
+        return "";
+    }
+    
+    public string? get_sidebar_tooltip() {
+        return "";
+    }
+    
+    public Icon? get_sidebar_icon() {
+        return null;
+    }
+    
+    public string to_string() {
+        return "padding";
+    }
+}
+
 public interface Sidebar.Contextable : Object {
     // Return null if the context menu should not be invoked for this event
     public abstract Gtk.Menu? get_sidebar_context_menu(Gdk.EventButton event);
diff --git a/src/client/sidebar/sidebar-tree.vala b/src/client/sidebar/sidebar-tree.vala
index 38a3dc7..55b5d7e 100644
--- a/src/client/sidebar/sidebar-tree.vala
+++ b/src/client/sidebar/sidebar-tree.vala
@@ -162,12 +162,12 @@ public class Sidebar.Tree : Gtk.TreeView {
         icon_theme.changed.disconnect(on_theme_change);
     }
     
-    public void icon_renderer_function(Gtk.CellLayout layout, Gtk.CellRenderer renderer, Gtk.TreeModel model, Gtk.TreeIter iter) {
+    private void icon_renderer_function(Gtk.CellLayout layout, Gtk.CellRenderer renderer, Gtk.TreeModel model, Gtk.TreeIter iter) {
         EntryWrapper? wrapper = get_wrapper_at_iter(iter);
         if (wrapper == null) {
             return;
         }
-        renderer.visible = !(wrapper.entry is Sidebar.Header);
+        renderer.visible = !(wrapper.entry is Sidebar.HiddenIcons);
     }
     
     private void on_drag_begin(Gdk.DragContext ctx) {
@@ -281,6 +281,10 @@ public class Sidebar.Tree : Gtk.TreeView {
     }
 
     private string get_name_for_entry(Sidebar.Entry entry) {
+        if (entry is Sidebar.Padding) {
+            return "<span size=\"xx-small\"> </span>";
+        }
+        
         string name = Geary.HTML.escape_markup(entry.get_sidebar_name());
         
         Sidebar.EmphasizableEntry? emphasizable_entry = entry as Sidebar.EmphasizableEntry;
@@ -440,6 +444,12 @@ public class Sidebar.Tree : Gtk.TreeView {
         // mirror the branch's initial contents from below the root down, let the signals handle
         // future work
         associate_children(branch, branch.get_root(), insertion_iter);
+
+        // Insert another entry as "padding" right after the branch
+        Gtk.TreeIter? padding_iter = null;        
+        store.insert_after(out padding_iter, null, insertion_iter);
+        associate_wrapper(padding_iter,
+            new RootWrapper(store, new Sidebar.Padding(), store.get_path(padding_iter), position + 1));
     }
     
     private void associate_children(Sidebar.Branch branch, Sidebar.Entry parent,
