Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-core.h
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk-pixbuf-core.h	2009-06-04 15:18:03.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-core.h	2010-05-23 07:59:47.510208059 -0400
@@ -96,6 +96,7 @@
 GdkColorspace gdk_pixbuf_get_colorspace      (const GdkPixbuf *pixbuf);
 int           gdk_pixbuf_get_n_channels      (const GdkPixbuf *pixbuf);
 gboolean      gdk_pixbuf_get_has_alpha       (const GdkPixbuf *pixbuf);
+gchar        *gdk_pixbuf_get_description     (const GdkPixbuf *pixbuf);
 int           gdk_pixbuf_get_bits_per_sample (const GdkPixbuf *pixbuf);
 guchar       *gdk_pixbuf_get_pixels          (const GdkPixbuf *pixbuf);
 int           gdk_pixbuf_get_width           (const GdkPixbuf *pixbuf);
Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-data.c
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk-pixbuf-data.c	2009-06-04 15:18:03.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-data.c	2010-05-23 07:59:47.510208059 -0400
@@ -71,6 +71,7 @@
 			       "height", height,
 			       "rowstride", rowstride,
 			       "pixels", data,
+			       "description", NULL,
 			       NULL);
         
 	pixbuf->destroy_fn = destroy_fn;
Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-private.h
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk-pixbuf-private.h	2009-06-04 15:18:03.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-private.h	2010-05-23 07:59:47.510208059 -0400
@@ -69,6 +69,9 @@
 
 	/* Do we have an alpha channel? */
 	guint has_alpha : 1;
+
+        /* A text description of the pixbuf */
+        gchar *description;
 };
 
 struct _GdkPixbufClass {
Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf.c
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk-pixbuf.c	2010-03-22 08:44:09.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf.c	2010-05-23 07:59:47.520208265 -0400
@@ -52,6 +52,7 @@
   PROP_COLORSPACE,
   PROP_N_CHANNELS,
   PROP_HAS_ALPHA,
+  PROP_DESCRIPTION,
   PROP_BITS_PER_SAMPLE,
   PROP_WIDTH,
   PROP_HEIGHT,
@@ -110,6 +111,14 @@
                                                                FALSE,
                                                                PIXBUF_PARAM_FLAGS));
 
+        g_object_class_install_property (object_class,
+                                         PROP_DESCRIPTION,
+                                         g_param_spec_string ("description",
+                                                               P_("Description"),
+                                                               P_("Description of the pixbuf"),
+                                                               NULL,
+                                                               G_PARAM_READWRITE));
+
         /**
          * GdkPixbuf:bits-per-sample:
          *
@@ -226,6 +235,7 @@
  * gdk_pixbuf_new:
  * @colorspace: Color space for image
  * @has_alpha: Whether the image should have transparency information
+ * @description: Description of the pixbuf
  * @bits_per_sample: Number of bits per color sample
  * @width: Width of image in pixels, must be > 0
  * @height: Height of image in pixels, must be > 0
@@ -423,6 +433,24 @@
 }
 
 /**
+ * gdk_pixbuf_get_description:
+ * @pixbuf: A pixbuf.
+ *
+ * Returns the textual description of the pixbuf.
+ *
+ * Return value: The text description of the pixmap, or %NULL if it
+ * has not been set. This is a nul-terminated string that should
+ * not be freed.
+ **/
+gchar *
+gdk_pixbuf_get_description (const GdkPixbuf *pixbuf)
+{
+	g_return_val_if_fail (GDK_IS_PIXBUF (pixbuf), NULL);
+
+	return pixbuf->description;
+}
+
+/**
  * gdk_pixbuf_get_bits_per_sample:
  * @pixbuf: A pixbuf.
  *
@@ -700,6 +728,9 @@
           case PROP_HAS_ALPHA:
                   pixbuf->has_alpha = g_value_get_boolean (value);
                   break;
+          case PROP_DESCRIPTION:
+                  pixbuf->description = g_strdup (g_value_get_string(value));
+                  break;
           case PROP_BITS_PER_SAMPLE:
                   pixbuf->bits_per_sample = g_value_get_int (value);
                   break;
@@ -740,6 +771,9 @@
           case PROP_HAS_ALPHA:
                   g_value_set_boolean (value, gdk_pixbuf_get_has_alpha (pixbuf));
                   break;
+          case PROP_DESCRIPTION:
+                  g_value_set_string (value, gdk_pixbuf_get_description (pixbuf));
+                  break;
           case PROP_BITS_PER_SAMPLE:
                   g_value_set_int (value, gdk_pixbuf_get_bits_per_sample (pixbuf));
                   break;
Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf.symbols
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk-pixbuf.symbols	2009-10-09 00:11:26.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf.symbols	2010-05-23 07:59:47.520208265 -0400
@@ -23,6 +23,7 @@
 gdk_pixbuf_get_bits_per_sample
 gdk_pixbuf_get_colorspace
 gdk_pixbuf_get_has_alpha
+gdk_pixbuf_get_description
 gdk_pixbuf_get_height
 gdk_pixbuf_get_n_channels
 gdk_pixbuf_get_pixels
Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk_pixbuf.def
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk_pixbuf.def	2010-03-22 23:35:38.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk_pixbuf.def	2010-05-23 07:59:47.520208265 -0400
@@ -7,6 +7,7 @@
 	gdk_pixbuf_get_bits_per_sample
 	gdk_pixbuf_get_colorspace
 	gdk_pixbuf_get_has_alpha
+	gdk_pixbuf_get_description
 	gdk_pixbuf_get_height
 	gdk_pixbuf_get_n_channels
 	gdk_pixbuf_get_pixels
Index: gtk+2.0-2.20.0/modules/other/gail/gailimagecell.c
===================================================================
--- gtk+2.0-2.20.0.orig/modules/other/gail/gailimagecell.c	2009-06-04 15:18:04.000000000 -0400
+++ gtk+2.0-2.20.0/modules/other/gail/gailimagecell.c	2010-05-23 08:01:51.357864004 -0400
@@ -19,6 +19,7 @@
 
 #include "config.h"
 
+#include <string.h>
 #include <gtk/gtk.h>
 #include "gailimagecell.h"
 
@@ -108,7 +109,46 @@
 gail_image_cell_update_cache (GailRendererCell *cell, 
                               gboolean         emit_change_signal)
 {
-  return FALSE;
+  GailImageCell *image_cell = GAIL_IMAGE_CELL (cell);
+  gboolean rv = FALSE;
+  GdkPixbuf *pixbuf;
+  gchar *new_description = NULL;
+
+  g_object_get (G_OBJECT(cell->renderer), "pixbuf", &pixbuf, NULL);
+  if(!GDK_IS_PIXBUF (pixbuf))
+    return FALSE;
+  new_description = gdk_pixbuf_get_description(pixbuf);
+  if (image_cell->image_description)
+    {
+     /*
+      * If the new value is NULL and the old value isn't NULL, then the
+      * value has changed.
+      */
+      if (new_description == NULL ||
+          strcmp (image_cell->image_description, new_description))
+        {
+          g_free (image_cell->image_description);
+          image_cell->image_description = NULL;
+          if (new_description)
+            rv = TRUE;
+        }
+    }
+  else if(new_description)
+    rv = TRUE;
+
+  if (rv)
+    {
+      if (new_description == NULL)
+        {
+          image_cell->image_description = NULL;
+        }
+      else
+        {
+          image_cell->image_description = g_strdup (new_description);
+        }
+    }
+
+  return rv;
 }
 
 static void
Index: gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-alias.h
===================================================================
--- gtk+2.0-2.20.0.orig/gdk-pixbuf/gdk-pixbuf-alias.h	2010-03-22 21:31:25.000000000 -0400
+++ gtk+2.0-2.20.0/gdk-pixbuf/gdk-pixbuf-alias.h	2010-05-23 07:59:47.530206774 -0400
@@ -37,6 +37,9 @@
 extern __typeof (gdk_pixbuf_get_has_alpha) IA__gdk_pixbuf_get_has_alpha __attribute((visibility("hidden")));
 #define gdk_pixbuf_get_has_alpha IA__gdk_pixbuf_get_has_alpha
 
+extern __typeof (gdk_pixbuf_get_description) IA__gdk_pixbuf_get_description __attribute((visibility("hidden")));
+#define gdk_pixbuf_get_description IA__gdk_pixbuf_get_description
+
 extern __typeof (gdk_pixbuf_get_height) IA__gdk_pixbuf_get_height __attribute((visibility("hidden")));
 #define gdk_pixbuf_get_height IA__gdk_pixbuf_get_height
 
