diff --git a/README.google b/README.google
index 05b0bd7..b7346d5 100644
--- a/README.google
+++ b/README.google
@@ -27,3 +27,6 @@
 
 2014-07-30: added google3_additions/googleurl_init.cc, which properly
 initializes googleurl during InitGoogle().
+
+2014-09-29: Adjusted googleurl/src/url_canon_unittest.cc for C++11
+compatibility.
diff --git a/googleurl/src/url_canon_unittest.cc b/googleurl/src/url_canon_unittest.cc
index 76b596c..731d82f 100644
--- a/googleurl/src/url_canon_unittest.cc
+++ b/googleurl/src/url_canon_unittest.cc
@@ -353,7 +353,7 @@
     {NULL, L"GOO\x200b\x2060\xfeffgoo.com", "googoo.com", url_parse::Component(0, 10), CanonHostInfo::NEUTRAL, -1},
       // Ideographic full stop (full-width period for Chinese, etc.) should be
       // treated as a dot.
-    {NULL, L"www.foo\x3002"L"bar.com", "www.foo.bar.com", url_parse::Component(0, 15), CanonHostInfo::NEUTRAL, -1},
+    {NULL, L"www.foo\x3002" L"bar.com", "www.foo.bar.com", url_parse::Component(0, 15), CanonHostInfo::NEUTRAL, -1},
       // Invalid unicode characters should fail...
       // ...In wide input, ICU will barf and we'll end up with the input as
       //    escaped UTF-8 (the invalid character should be replaced with the
@@ -984,7 +984,7 @@
       url_parse::Component in_comp(0, len);
       url_parse::Component out_comp;
       std::string out_str;
-      url_canon::StdStringCanonOutput output(&out_str);    
+      url_canon::StdStringCanonOutput output(&out_str);
       bool success = url_canon::CanonicalizePath(path_cases[i].input8, in_comp,
                                                  &output, &out_comp);
       output.Complete();
@@ -1001,7 +1001,7 @@
       url_parse::Component in_comp(0, len);
       url_parse::Component out_comp;
       std::string out_str;
-      url_canon::StdStringCanonOutput output(&out_str);    
+      url_canon::StdStringCanonOutput output(&out_str);
 
       bool success = url_canon::CanonicalizePath(input16.c_str(), in_comp,
                                                  &output, &out_comp);
@@ -1724,7 +1724,7 @@
 }
 
 #endif  // !WIN32
-  
+
 // Returns true if the given two structures are the same.
 static bool ParsedIsEqual(const url_parse::Parsed& a,
                           const url_parse::Parsed& b) {
@@ -1807,7 +1807,7 @@
     {"http://foo/bar", true, false, ":foo", true, true, true, "http://foo/:foo"},
     {"http://foo/bar", true, false, " hello world", true, true, true, "http://foo/hello%20world"},
     {"data:asdf", false, false, ":foo", false, false, false, NULL},
-      // We should treat semicolons like any other character in URL resolving 
+      // We should treat semicolons like any other character in URL resolving
     {"http://host/a", true, false, ";foo", true, true, true, "http://host/;foo"},
     {"http://host/a;", true, false, ";foo", true, true, true, "http://host/;foo"},
     {"http://host/a", true, false, ";/../bar", true, true, true, "http://host/bar"},
