diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index ce893db..797c0ce 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -1060,16 +1060,25 @@
     Result = ConvertUTF8toUTF16(&FromPtr, FromPtr+Literal->getByteLength(),
                                 &ToPtr, ToPtr+Literal->getByteLength(),
                                 strictConversion);
-    assert(Result == conversionOK && "UTF-8 to UTF-16 conversion failed");
+    if (Result == conversionOK) {
+      // FIXME: Storing UTF-16 in a C string is a hack to test Unicode strings
+      // without doing more surgery to this routine. Since we aren't explicitly
+      // checking for endianness here, it's also a bug (when generating code for
+      // a target that doesn't match the host endianness). Modeling this as an
+      // i16 array is likely the cleanest solution.
+      StringLength = ToPtr-&ToBuf[0];
+      str.assign((char *)&ToBuf[0], StringLength*2);// Twice as many UTF8 chars.
+      isUTF16 = true;
+    } else if (Result == sourceIllegal) {
+      // FIXME: GCC currently emits the following warning (in the backend):
+      // "warning: input conversion stopped due to an input byte that does not 
+      //           belong to the input codeset UTF-8"
+      // The clang backend doesn't currently emit any warnings.
+      str.assign(Literal->getStrData(), Literal->getByteLength());
+      StringLength = str.length();
+    } else
+      assert(Result == conversionOK && "UTF-8 to UTF-16 conversion failed");
     
-    // FIXME: Storing UTF-16 in a C string is a hack to test Unicode strings
-    // without doing more surgery to this routine. Since we aren't explicitly
-    // checking for endianness here, it's also a bug (when generating code for
-    // a target that doesn't match the host endianness). Modeling this as an i16
-    // array is likely the cleanest solution.
-    StringLength = ToPtr-&ToBuf[0];
-    str.assign((char *)&ToBuf[0], StringLength*2); // Twice as many UTF8 chars.
-    isUTF16 = true;
   } else {
     str.assign(Literal->getStrData(), Literal->getByteLength());
     StringLength = str.length();
