diff --git a/configure.ac b/configure.ac
index 76ef9b2..792e985 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,11 +74,13 @@ GTK_REQUIRED=2.17.2
 GIO_UNIX_REQUIRED=2.18.0
 LIBPANEL_APPLET_REQUIRED=2.13.4
 LIBGTOP_REQUIRED=2.12.0
+LIBCANBERRA_GTK_REQUIRED=0.4
 
 # common checks
 PKG_CHECK_MODULES(GNOME_UTILS, glib-2.0 >= $GLIB_REQUIRED dnl
                                gio-2.0 >= $GIO_REQUIRED   dnl
                                gconf-2.0                  dnl
+                               libcanberra-gtk >= $LIBCANBERRA_GTK_REQUIRED dnl
                                gtk+-2.0 >= $GTK_REQUIRED)
 AC_SUBST(GNOME_UTILS_CFLAGS)
 AC_SUBST(GNOME_UTILS_LIBS)
diff --git a/gnome-screenshot/gnome-screenshot.c b/gnome-screenshot/gnome-screenshot.c
index 64ffc04..e426d8b 100644
--- a/gnome-screenshot/gnome-screenshot.c
+++ b/gnome-screenshot/gnome-screenshot.c
@@ -40,6 +40,7 @@
 #include <gio/gio.h>
 #include <pwd.h>
 #include <X11/Xutil.h>
+#include <canberra-gtk.h>
 
 #include "screenshot-shadow.h"
 #include "screenshot-utils.h"
@@ -773,6 +774,53 @@ run_dialog (ScreenshotDialog *dialog)
 }
 
 static void
+sound_effect_finished (ca_context *c,
+                       uint32_t    id,
+                       int         error_code,
+                       void       *userdata)
+{
+}
+
+static void
+play_sound_effect (GdkWindow *window)
+{
+  ca_context *c;
+  ca_proplist *p = NULL;
+  int res;
+
+  c = ca_gtk_context_get ();
+
+  res = ca_proplist_create (&p);
+  if (res < 0)
+    goto done;
+
+  res = ca_proplist_sets (p, CA_PROP_EVENT_ID, "screen-capture");
+  if (res < 0)
+    goto done;
+
+  res = ca_proplist_sets (p, CA_PROP_EVENT_DESCRIPTION, _("Screenshot taken"));
+  if (res < 0)
+    goto done;
+
+  if (window != NULL)
+    {
+      res = ca_proplist_setf (p,
+                              CA_PROP_WINDOW_X11_XID,
+                              "%lu",
+                              (unsigned long) GDK_WINDOW_XID (window));
+      if (res < 0)
+        goto done;
+    }
+
+  ca_context_play_full (c, 0, p, sound_effect_finished, NULL);
+
+ done:
+  if (p != NULL)
+    ca_proplist_destroy (p);
+
+}
+
+static void
 finish_prepare_screenshot (char *initial_uri, GdkWindow *window, GdkRectangle *rectangle)
 {  
   ScreenshotDialog *dialog;
@@ -809,6 +857,8 @@ finish_prepare_screenshot (char *initial_uri, GdkWindow *window, GdkRectangle *r
       exit (1);
     }
 
+  play_sound_effect (window);
+
   dialog = screenshot_dialog_new (screenshot, initial_uri, take_window_shot);
   g_free (initial_uri);
 
