diff -uNr -x '*~' BUILD/eog-2.32.0.orig/data/eog-ui.xml BUILD/eog-2.32.0.aeh/data/eog-ui.xml
--- BUILD/eog-2.32.0.orig/data/eog-ui.xml	2010-12-20 10:37:29.570445638 -0500
+++ BUILD/eog-2.32.0.aeh/data/eog-ui.xml	2010-12-20 13:25:50.798193309 -0500
@@ -22,6 +22,9 @@
     <menu action="Edit">
       <menuitem action="EditUndo"/>
       <separator/>
+      <menuitem action="EditCopyImage"/>
+      <menuitem action="EditCopyPath"/>
+      <separator/>
       <menuitem action="EditFlipHorizontal"/>
       <menuitem action="EditFlipVertical"/>
       <separator/>
@@ -113,6 +116,9 @@
     <separator/>
     <menuitem action="ImagePrint"/>
     <separator/>
+    <menuitem action="EditCopyImage"/>
+    <menuitem action="EditCopyPath"/>
+    <separator/>
     <menuitem action="EditMoveToTrash"/>
     <separator/>
     <menuitem action="ImageProperties"/>
@@ -129,6 +135,9 @@
     <separator/>
     <menuitem action="ImagePrint"/>
     <separator/>
+    <menuitem action="EditCopyImage"/>
+    <menuitem action="EditCopyPath"/>
+    <separator/>
     <menuitem action="EditMoveToTrash"/>
     <separator/>
     <menuitem action="ImageProperties"/>
diff -uNr -x '*~' BUILD/eog-2.32.0.orig/src/eog-window.c BUILD/eog-2.32.0.aeh/src/eog-window.c
--- BUILD/eog-2.32.0.orig/src/eog-window.c	2010-12-20 10:37:29.600445876 -0500
+++ BUILD/eog-2.32.0.aeh/src/eog-window.c	2010-12-25 01:05:24.797346471 -0500
@@ -3593,6 +3593,63 @@
 }
 
 static void
+eog_window_cmd_copy_path (GtkAction *action, gpointer user_data)
+{
+	EogWindow *window;
+	EogWindowPrivate *priv;
+	EogImage *image;
+	GFile *file;
+	char *filename = NULL;
+	GtkClipboard *clipboard;
+
+	g_return_if_fail (EOG_IS_WINDOW (user_data));
+
+	window = EOG_WINDOW (user_data);
+	priv = window->priv;
+
+	image = eog_thumb_view_get_first_selected_image (EOG_THUMB_VIEW (priv->thumbview));
+
+	g_return_if_fail (EOG_IS_IMAGE (image));
+
+	file = eog_image_get_file (image);
+
+	filename = g_file_get_path (file);
+
+	clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
+	gtk_clipboard_set_text(clipboard, filename, -1);
+
+	g_object_unref (file);
+	g_free (filename);
+
+}
+
+static void
+eog_window_cmd_copy_image (GtkAction *action, gpointer user_data)
+{
+	GtkClipboard *clipboard;
+	GdkPixbuf *pix;
+	EogWindow *window;
+	EogWindowPrivate *priv;
+	EogImage *image;
+
+	g_return_if_fail (EOG_IS_WINDOW (user_data));
+
+	window = EOG_WINDOW (user_data);
+	priv = window->priv;
+
+	image = eog_thumb_view_get_first_selected_image (EOG_THUMB_VIEW (priv->thumbview));
+
+	g_return_if_fail (EOG_IS_IMAGE (image));
+
+	pix = eog_image_get_pixbuf(image);
+
+	clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
+	gtk_clipboard_set_image(clipboard, pix);
+
+	g_object_unref (pix);
+}
+
+static void
 eog_window_cmd_move_to_trash (GtkAction *action, gpointer user_data)
 {
 	GList *images;
@@ -3975,6 +4032,12 @@
 	{ "EditMoveToTrash", "user-trash", N_("Move to _Trash"), NULL,
 	  N_("Move the selected image to the trash folder"),
 	  G_CALLBACK (eog_window_cmd_move_to_trash) },
+	{ "EditCopyPath", NULL, N_("Copy _Path"), NULL,
+	  N_("Copy the image file path to the clipboard"),
+	  G_CALLBACK (eog_window_cmd_copy_path) },
+	{ "EditCopyImage", NULL, N_("Copy _Image"), NULL,
+	  N_("Copy the image to the clipboard"),
+	  G_CALLBACK (eog_window_cmd_copy_image) },
 	{ "ViewZoomIn", GTK_STOCK_ZOOM_IN, N_("_Zoom In"), "<control>plus",
 	  N_("Enlarge the image"),
 	  G_CALLBACK (eog_window_cmd_zoom_in) },
@@ -3999,6 +4062,12 @@
 	{ "Delete", NULL, N_("Move to _Trash"), "Delete",
 	  NULL,
 	  G_CALLBACK (eog_window_cmd_move_to_trash) },
+	{ "CopyPath", NULL, N_("Copy _Pats"), NULL,
+	  N_("Copy the image file path to the clipboard"),
+	  G_CALLBACK (eog_window_cmd_copy_path) },
+	{ "CopyImage", NULL, N_("Copy _Pats"), NULL,
+	  N_("Copy the image to the clipboard"),
+	  G_CALLBACK (eog_window_cmd_copy_image) },
 };
 
 static const GtkToggleActionEntry toggle_entries_image[] = {
K (eog_window_cmd_zoom_in) },
@@ -3999,6 +4062,12 @@
 	{ "Delete", NULL, N_("Move to _Trash"), "Delete",
 	  NULL,
 	  G_CALLBACK (eog_window_cmd_mo