diff --git a/src/totem-object.c b/src/totem-object.c
index 165a437..e59673c 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -83,6 +83,9 @@
 #define SEEK_FORWARD_LONG_OFFSET 10*60
 #define SEEK_BACKWARD_LONG_OFFSET -3*60
 
+#define VOLUME_DOWN_SHORT_OFFSET (-0.02)
+#define VOLUME_UP_SHORT_OFFSET (0.02)
+
 #define ZOOM_UPPER 2.0
 #define ZOOM_RESET 1.0
 #define ZOOM_LOWER 0.1
@@ -3578,12 +3581,16 @@ totem_action_handle_key_press (Totem *totem, GdkEventKey *event)
 	case GDK_Up:
 		if (bacon_video_widget_has_menus (totem->bvw) != FALSE)
 			bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_ROOT_MENU_UP);
+		else if (event->state & GDK_SHIFT_MASK)
+			totem_action_volume_relative (totem, VOLUME_UP_SHORT_OFFSET);		
 		else
 			totem_action_volume_relative (totem, VOLUME_UP_OFFSET);
 		break;
 	case GDK_Down:
 		if (bacon_video_widget_has_menus (totem->bvw) != FALSE)
 			bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_ROOT_MENU_DOWN);
+		else if (event->state & GDK_SHIFT_MASK)
+			totem_action_volume_relative (totem, VOLUME_DOWN_SHORT_OFFSET);		
 		else
 			totem_action_volume_relative (totem, VOLUME_DOWN_OFFSET);
 		break;
