diff --git a/cpufreq/pixmaps/Makefile.am b/cpufreq/pixmaps/Makefile.am
index fc8f7aa..30b2d4f 100644
--- a/cpufreq/pixmaps/Makefile.am
+++ b/cpufreq/pixmaps/Makefile.am
@@ -1,5 +1,5 @@
 
-cpufreq_pixmapdir = $(pixmapsdir)/cpufreq-applet
+cpufreq_pixmapdir = $(datadir)/icons/hicolor/24x24/status
 cpufreq_pixmap_DATA =		\
 	cpufreq-100.png         \
 	cpufreq-75.png          \
diff --git a/cpufreq/src/cpufreq-applet.c b/cpufreq/src/cpufreq-applet.c
index 7d9495a..5337a8f 100644
--- a/cpufreq/src/cpufreq-applet.c
+++ b/cpufreq/src/cpufreq-applet.c
@@ -77,6 +77,8 @@ struct _CPUFreqAppletClass {
 };
 
 static void     cpufreq_applet_init              (CPUFreqApplet      *applet);
+static void     cpufreq_applet_init_icons        (void);
+
 static void     cpufreq_applet_class_init        (CPUFreqAppletClass *klass);
 
 static void     cpufreq_applet_preferences_cb    (BonoboUIComponent  *uic,
@@ -112,13 +114,12 @@ static gboolean cpufreq_applet_factory           (CPUFreqApplet      *applet,
                                                   const gchar        *iid,
                                                   gpointer            gdata);
 
-static const gchar *const cpufreq_icons[] = {
-        GNOME_PIXMAPSDIR"/cpufreq-applet/cpufreq-25.png",
-        GNOME_PIXMAPSDIR"/cpufreq-applet/cpufreq-50.png",
-        GNOME_PIXMAPSDIR"/cpufreq-applet/cpufreq-75.png",
-        GNOME_PIXMAPSDIR"/cpufreq-applet/cpufreq-100.png",
-        GNOME_PIXMAPSDIR"/cpufreq-applet/cpufreq-na.png",
-        NULL
+static const gchar* cpufreq_icons[] = {
+        CPUFREQ_STOCK_25 ,
+        CPUFREQ_STOCK_50 ,
+        CPUFREQ_STOCK_75 ,
+        CPUFREQ_STOCK_100,
+        CPUFREQ_STOCK_NA ,
 };
 
 static const BonoboUIVerb cpufreq_applet_menu_verbs[] = {
@@ -206,10 +207,55 @@ cpufreq_applet_init (CPUFreqApplet *applet)
 		break;
 	}
 
+    cpufreq_applet_init_icons();
+
 	gtk_container_add (GTK_CONTAINER (applet), applet->container);
 	gtk_widget_show (applet->container);
 }
 
+
+
+static void
+cpufreq_applet_init_icons (void)
+{
+        GtkIconFactory *icon_factory = gtk_icon_factory_new ();
+
+        gint i;
+        for(i=0; i < G_N_ELEMENTS (cpufreq_icons); ++i) {
+                gchar *stock_id = cpufreq_icons[i];
+                GtkIconSource *icon_source = gtk_icon_source_new ();
+                GtkIconSet *icon_set = gtk_icon_set_new ();
+
+                gtk_icon_source_set_size (icon_source, GTK_ICON_SIZE_LARGE_TOOLBAR);
+                gtk_icon_source_set_icon_name (icon_source, stock_id);
+                gtk_icon_set_add_source (icon_set, icon_source);
+
+                gtk_icon_factory_add (icon_factory, stock_id, icon_set);
+
+                gtk_icon_source_free (icon_source);
+                gtk_icon_set_unref (icon_set);
+        }
+        gtk_icon_factory_add_default (icon_factory);
+        g_object_unref(G_OBJECT (icon_factory));
+}
+
+static void
+cpufreq_applet_icon_theme_changed (GtkIconTheme *icon_theme,
+                                   gpointer user_data)
+{
+        CPUFreqApplet* applet = CPUFREQ_APPLET (user_data);
+
+        gint i;
+        for (i=0; i < 5; ++i) {
+                if (applet->pixbufs[i] != NULL) {
+                        g_object_unref (G_OBJECT (applet->pixbufs[i]));
+                        applet->pixbufs[i] = NULL;
+                }
+        }
+        /* Force update to refresh icons */
+        cpufreq_applet_update(applet, applet->monitor);
+}
+
 static void
 cpufreq_applet_class_init (CPUFreqAppletClass *klass)
 {
@@ -634,9 +680,13 @@ cpufreq_applet_pixmap_set_image (CPUFreqApplet *applet, gint perc)
         else
                 image = 4;
 
+        gchar *stock_id = cpufreq_icons[image];
         if (applet->pixbufs[image] == NULL) {
-                applet->pixbufs[image] = gdk_pixbuf_new_from_file_at_size (cpufreq_icons[image],
-                                                                           24, 24, NULL);
+
+                applet->pixbufs[image] = gtk_widget_render_icon (applet->icon,
+                                                                 stock_id,
+                                                                 GTK_ICON_SIZE_LARGE_TOOLBAR,
+                                                                 NULL);
         }
 
         gtk_image_set_from_pixbuf (GTK_IMAGE (applet->icon), applet->pixbufs[image]);
@@ -984,6 +1034,15 @@ cpufreq_applet_setup (CPUFreqApplet *applet)
                                            cpufreq_applet_menu_verbs,
                                            applet);
 
+        /* Setup the icons */
+        GtkIconTheme *icon_theme = gtk_icon_theme_get_for_screen (
+                                        gtk_widget_get_screen (applet->icon));
+        g_signal_connect (G_OBJECT (icon_theme),
+                          "changed",
+                          G_CALLBACK (cpufreq_applet_icon_theme_changed),
+                          (gpointer) applet);
+
+
         if (panel_applet_get_locked_down (PANEL_APPLET (applet))) {
                 popup_component = panel_applet_get_popup_component (PANEL_APPLET (applet));
                          
diff --git a/cpufreq/src/cpufreq-applet.h b/cpufreq/src/cpufreq-applet.h
index 929b9cd..164b0c4 100644
--- a/cpufreq/src/cpufreq-applet.h
+++ b/cpufreq/src/cpufreq-applet.h
@@ -36,6 +36,14 @@ G_BEGIN_DECLS
 #define CPUFREQ_TYPE_SHOW_MODE      (cpufreq_applet_show_mode_get_type ())
 #define CPUFREQ_TYPE_SHOW_TEXT_MODE (cpufreq_applet_show_text_mode_get_type ())
 
+/* Stock icons */
+#define CPUFREQ_STOCK_25  "cpufreq-25"
+#define CPUFREQ_STOCK_50  "cpufreq-50"
+#define CPUFREQ_STOCK_75  "cpufreq-75"
+#define CPUFREQ_STOCK_100 "cpufreq-100"
+#define CPUFREQ_STOCK_NA  "cpufreq-na"
+
+
 typedef struct _CPUFreqApplet      CPUFreqApplet;
 typedef struct _CPUFreqAppletClass CPUFreqAppletClass;
 
