Bitmap desde Stream: ¿Bug?

Tengo un error bastante extraño. Necesito reducir las imágenes, reducir la calidad y convertir a JPEG. Todo esto funciona cuando guardo el archivo en el disco, pero no funciona cuando lo guardo en una secuencia.

System.Drawing.Bitmap bitmap = // valid Bitmap from Disk
System.IO.Stream stream = new MemoryStream();

// JPEG Encoding

System.Drawing.Imaging.ImageCodecInfo jpgEncoder = GetEncoder( System.Drawing.Imaging.ImageFormat.Jpeg );
System.Drawing.Imaging.Encoder encoder2 = System.Drawing.Imaging.Encoder.Quality;
System.Drawing.Imaging.EncoderParameters parameters = new System.Drawing.Imaging.EncoderParameters( 1 );
System.Drawing.Imaging.EncoderParameter parameter = new System.Drawing.Imaging.EncoderParameter( encoder2, qualityLevel );
parameters.Param[0] = parameter;

// Save downscaled on Disk and stream

bitmap.Save( stream, jpgEncoder, parameters );
bitmap.Save( @"C:\TestJPEG.jpg", jpgEncoder, parameters );

// some stream stuff

var bytes = ((MemoryStream)stream).ToArray();
System.IO.Stream inputStream = new MemoryStream( bytes );

// Load from disk and stream

Bitmap fromDisk = new Bitmap( @"C:\TestJPEG.jpg" ); // works
Bitmap fromStream = new Bitmap( inputStream ); // crash invalid parameter no inner message or description
Bitmap fromStream2 = (Bitmap)Bitmap.FromStream( inputStream ); // same error here
// also crashes if I load the "stream" named Stream

También puedo abrir el archivo convertido con Paint. ¿Alguna sugerencia?

Editar: Estoy usando .Net Framework 4.0 en Windows 7 Professional

Edit2: Intenté esa cosa de búsqueda (se eliminó la respuesta)

stream.Seek( 0, SeekOrigin.Begin );

Funciona con la corriente "antigua". Pero necesito cargarlo desde una matriz de bytes. Sigue siendo el mismo choque

Respuestas a la pregunta(1)

Su respuesta a la pregunta