diff --git a/src/client/components/icon-factory.vala b/src/client/components/icon-factory.vala
index 3602254..2b17fb8 100644
--- a/src/client/components/icon-factory.vala
+++ b/src/client/components/icon-factory.vala
@@ -172,5 +172,22 @@ public class IconFactory {
         // Default: missing image icon.
         return get_missing_icon(size, flags);
     }
+    
+    public Gdk.Pixbuf? load_symbolic(string icon_name, int size, Gtk.StyleContext style,
+        Gtk.IconLookupFlags flags = 0) {
+        Gtk.IconInfo? icon_info = icon_theme.lookup_icon(icon_name, size, flags);
+        
+        // Attempt to load as a symbolic icon.
+        if (icon_info != null) {
+            try {
+                return icon_info.load_symbolic_for_context(style);
+            } catch (Error e) {
+                warning("Couldn't load icon: %s", e.message);
+            }
+        }
+        
+        // Default: missing image icon.
+        return get_missing_icon(size, flags);
+    }
 }
 
diff --git a/src/client/conversation-viewer/conversation-web-view.vala b/src/client/conversation-viewer/conversation-web-view.vala
index 10d95c8..7c85a90 100644
--- a/src/client/conversation-viewer/conversation-web-view.vala
+++ b/src/client/conversation-viewer/conversation-web-view.vala
@@ -203,7 +203,7 @@ public class ConversationWebView : WebKit.WebView {
         try {
             // Load icon.
             uint8[]? icon_content = null;
-            Gdk.Pixbuf? pixbuf = IconFactory.instance.load_symbolic_colored(icon_name, 16);
+            Gdk.Pixbuf? pixbuf = IconFactory.instance.load_symbolic(icon_name, 16, get_style_context());
             if (pixbuf != null)
                 pixbuf.save_to_buffer(out icon_content, "png"); // Load as PNG.
             
diff --git a/src/client/sidebar/sidebar-tree.vala b/src/client/sidebar/sidebar-tree.vala
index 7e6331b..9dbb085 100644
--- a/src/client/sidebar/sidebar-tree.vala
+++ b/src/client/sidebar/sidebar-tree.vala
@@ -799,11 +799,8 @@ public class Sidebar.Tree : Gtk.TreeView {
             if (info == null)
                 return null;
             
-            // If the icon's symbolic, make it black.
-            Gdk.RGBA black = Gdk.RGBA();
-            black.red = black.green = black.blue = 0.0;
-            black.alpha = 1.0;
-            icon = info.load_symbolic(black);
+            Gtk.StyleContext style = get_style_context();
+            icon = info.load_symbolic_for_context(style);
             
             if (icon == null)
                 return null;
