First pass at interface breakup
diff --git a/src/ProtocolBuffers/UninitializedMessageException.cs b/src/ProtocolBuffers/UninitializedMessageException.cs
index 2fa5ef1..d98987a 100644
--- a/src/ProtocolBuffers/UninitializedMessageException.cs
+++ b/src/ProtocolBuffers/UninitializedMessageException.cs
@@ -36,8 +36,10 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Text;
+#if !LITE
 using Google.ProtocolBuffers.Collections;
 using Google.ProtocolBuffers.Descriptors;
+#endif
 
 namespace Google.ProtocolBuffers {
   /// <summary>
@@ -47,13 +49,9 @@
 
     private readonly IList<string> missingFields;
 
-    public UninitializedMessageException(IMessage message)
-        : this(FindMissingFields(message)) {
-    }
-
     private UninitializedMessageException(IList<string> missingFields)
         : base(BuildDescription(missingFields)) {
-      this.missingFields = Lists.AsReadOnly(missingFields);
+      this.missingFields = new List<string>(missingFields);
     }
 
     
@@ -92,6 +90,11 @@
       return description.ToString();
     }
 
+#if !LITE
+    public UninitializedMessageException(IMessage message)
+        : this(FindMissingFields(message)) {
+    }
+
     /// <summary>
     /// Returns a list of the full "paths" of missing required
     /// fields in the specified message.
@@ -148,5 +151,6 @@
       result.Append('.');
       return result.ToString();
     }
+#endif
   }
 }