diff --git a/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyReader.java b/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyReader.java
index 0fee43b..cca0961 100644
--- a/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyReader.java
+++ b/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyReader.java
@@ -54,9 +54,11 @@
      * message body is to be converted into a method parameter, this will be
      * the annotations on that parameter returned by 
      * <code>Class.getParameterAnnotations</code>.
+     * @param mediaType the media type of the HTTP entity.
      * @return true if the type is supported, otherwise false.
      */
-    boolean isReadable(Class<?> type, Type genericType, Annotation annotations[]);
+    boolean isReadable(Class<?> type, Type genericType, 
+            Annotation annotations[], MediaType mediaType);
 
     /**
      * Read a type from the {@link InputStream}.
diff --git a/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyWriter.java b/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyWriter.java
index 18483b8..758f49a 100644
--- a/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyWriter.java
+++ b/src/jsr311-api/src/javax/ws/rs/ext/MessageBodyWriter.java
@@ -52,19 +52,30 @@
      * provides a way to specify this information at runtime.
      * @param annotations an array of the annotations on the resource
      * method that returns the object.
+     * @param mediaType the media type of the HTTP entity.
      * @return true if the type is supported, otherwise false.
      */
-    boolean isWriteable(Class<?> type, Type genericType, Annotation annotations[]);
+    boolean isWriteable(Class<?> type, Type genericType,
+            Annotation annotations[], MediaType mediaType);
     
     /**
      * Called before <code>writeTo</code> to ascertain the length in bytes of 
      * the serialized form of <code>t</code>. A non-negative return value is 
      * used in a HTTP <code>Content-Length</code> header.
      * @param t the instance to write
+     * @param type the class of object that is to be written.
+     * @param genericType the type of object to be written, obtained either
+     * by reflection of a resource method return type or by inspection
+     * of the returned instance. {@link javax.ws.rs.core.GenericEntity}
+     * provides a way to specify this information at runtime.
+     * @param annotations an array of the annotations on the resource
+     * method that returns the object.
+     * @param mediaType the media type of the HTTP entity.
      * @return length in bytes or -1 if the length cannot be determined in
      * advance
      */
-    long getSize(T t);
+    long getSize(T t, Class<?> type, Type genericType, Annotation annotations[], 
+            MediaType mediaType);
 
     /**
      * Write a type to an HTTP response. The response header map is mutable
