diff --git a/src/com/google/inject/CreationException.java b/src/com/google/inject/CreationException.java
index 0be323f..819c7cf 100644
--- a/src/com/google/inject/CreationException.java
+++ b/src/com/google/inject/CreationException.java
@@ -33,12 +33,12 @@
  */
 public class CreationException extends RuntimeException {
 
-  final List<Message> errorMessages;
+  final List<? extends Message> errorMessages;
 
   /**
    * Constructs a new exception for the given errors.
    */
-  public CreationException(Collection<Message> errorMessages) {
+  public CreationException(Collection<? extends Message> errorMessages) {
     super();
 
     // Sort the messages by source. 
@@ -54,7 +54,8 @@
     return createErrorMessage(errorMessages);
   }
 
-  private static String createErrorMessage(Collection<Message> errorMessages) {
+  private static String createErrorMessage(
+      Collection<? extends Message> errorMessages) {
     Formatter fmt = new Formatter().format("Guice configuration errors:%n%n");
     int index = 1;
     for (Message errorMessage : errorMessages) {
diff --git a/src/com/google/inject/Guice.java b/src/com/google/inject/Guice.java
index fda648a..09a5364 100644
--- a/src/com/google/inject/Guice.java
+++ b/src/com/google/inject/Guice.java
@@ -65,7 +65,7 @@
    * @throws CreationException if one or more errors occur during Injector
    *     construction
    */
-  public static Injector createInjector(Iterable<Module> modules) {
+  public static Injector createInjector(Iterable<? extends Module> modules) {
     return createInjector(Stage.DEVELOPMENT, modules);
   }
 
@@ -87,7 +87,8 @@
    * @throws CreationException if one or more errors occur during Injector
    *     construction
    */
-  public static Injector createInjector(Stage stage, Iterable<Module> modules) {
+  public static Injector createInjector(Stage stage,
+      Iterable<? extends Module> modules) {
     BinderImpl binder = new BinderImpl(stage);
     for (Module module : modules) {
       binder.install(module);
