Index: gst-libs/gst/riff/riff-media.c
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-base/gst-libs/gst/riff/riff-media.c,v
retrieving revision 1.88
diff -u -B -b -p -r1.88 riff-media.c
--- gst-libs/gst/riff/riff-media.c	24 May 2007 15:16:59 -0000	1.88
+++ gst-libs/gst/riff/riff-media.c	28 May 2007 15:32:47 -0000
@@ -766,7 +766,10 @@ gst_riff_create_audio_caps (guint16 code
               strf->size);
           strf->size = 8 * (guint) ceil (wd / 8.0);
         }
-        ws = strf->size;
+	/* in riff, the depth is stored in the size field but it just means that
+	 * the _least_ significant bits are cleared. We can therefore just play
+	 * the sample as if it had a depth == width */
+        ws = wd;
 
         caps = gst_caps_new_simple ("audio/x-raw-int",
             "endianness", G_TYPE_INT, G_LITTLE_ENDIAN,
