Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision cd218e84e530b705dfa15ed1e562d8c51b48e59b)
+++ src/Parser/parser.yy	(revision ea0c5e33eaaef56501abb6dccd5b863d6c14f0dc)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Sep 11 08:22:25 2017
-// Update Count     : 2783
+// Last Modified On : Mon Sep 11 18:12:00 2017
+// Update Count     : 2787
 //
 
@@ -65,5 +65,5 @@
 bool appendStr( string & to, string & from ) {
 	// 1. Multiple strings are concatenated into a single string but not combined internally. The reason is that
-	//    "\x12" "3" is treated as 2 characters versus 3 because "escape sequences are converted into single members of
+	//    "\x12" "3" is treated as 2 characters versus 1 because "escape sequences are converted into single members of
 	//    the execution character set just prior to adjacent string literal concatenation" (C11, Section 6.4.5-8). It is
 	//    easier to let the C compiler handle this case.
@@ -75,10 +75,17 @@
 	if ( from[0] != '"' ) {								// encoding ?
 		if ( to[0] != '"' ) {							// encoding ?
-			if ( to[0] != from[0] ) {					// different encodings ?
+			if ( to[0] != from[0] || to[1] != from[1] ) { // different encodings ?
 				yyerror( "non-matching string encodings for string-literal concatenation" );
 				return false;							// parse error, must call YYERROR in action
+			} else if ( from[1] == '8' ) {
+				from.erase( 0, 1 );						// remove 2nd encoding
 			} // if
 		} else {
-			to = from[0] + to;							// move encoding to start
+			if ( from[1] == '8' ) {						// move encoding to start
+				to = "u8" + to;
+				from.erase( 0, 1 );						// remove 2nd encoding
+			} else {
+				to = from[0] + to;
+			} // if
 		} // if
 		from.erase( 0, 1 );								// remove 2nd encoding
Index: src/tests/.expect/literals.txt
===================================================================
--- src/tests/.expect/literals.txt	(revision cd218e84e530b705dfa15ed1e562d8c51b48e59b)
+++ src/tests/.expect/literals.txt	(revision ea0c5e33eaaef56501abb6dccd5b863d6c14f0dc)
@@ -1803,14 +1803,24 @@
     ((void)L"\xFFFFFFFF");
     ((void)"\x12" "3");
-    ((void)L"abc");
+    ((void)u8"a" "b" "c");
+    ((void)u8"a" "b" "c");
+    ((void)u8"a" "b" "c");
+    ((void)u8"a" "b" "c");
+    ((void)u8"a" "b" "c");
+    ((void)u"a" "b" "c");
+    ((void)u"a" "b" "c");
+    ((void)u"a" "b" "c");
+    ((void)u"a" "b" "c");
+    ((void)u"a" "b" "c");
+    ((void)U"a" "b" "c");
+    ((void)U"a" "b" "c");
+    ((void)U"a" "b" "c");
+    ((void)U"a" "b" "c");
+    ((void)U"a" "b" "c");
     ((void)L"a" "b" "c");
     ((void)L"a" "b" "c");
     ((void)L"a" "b" "c");
     ((void)L"a" "b" "c");
-    ((void)u"abc");
-    ((void)u"a" "b" "c");
-    ((void)u"a" "b" "c");
-    ((void)u"a" "b" "c");
-    ((void)u"a" "b" "c");
+    ((void)L"a" "b" "c");
     ((void)(___retval_main__i_1=0) /* ?{} */);
     return ((signed int )___retval_main__i_1);
Index: src/tests/literals.c
===================================================================
--- src/tests/literals.c	(revision cd218e84e530b705dfa15ed1e562d8c51b48e59b)
+++ src/tests/literals.c	(revision ea0c5e33eaaef56501abb6dccd5b863d6c14f0dc)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  9 16:34:38 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Sep 11 12:52:11 2017
-// Update Count     : 83
+// Last Modified On : Mon Sep 11 18:08:46 2017
+// Update Count     : 85
 // 
 
@@ -206,17 +206,29 @@
 	// concatenation
 
-	"\x12" "3";											// 2 characters not 3!
-
-	L"abc";
+	"\x12" "3";											// 2 characters not 1!
+
+	"a" "b" u8"c";
+	"a" u8"b" "c";
+	"a" u8"b" u8"c";
+	u8"a" "b" u8"c";
+	u8"a" u8"b" u8"c";
+
+	"a" "b" u"c";
+	"a" u"b" "c";
+	"a" u"b" u"c";
+	u"a" "b" u"c";
+	u"a" u"b" u"c";
+
+	"a" "b" U"c";
+	"a" U"b" "c";
+	"a" U"b" U"c";
+	U"a" "b" U"c";
+	U"a" U"b" U"c";
+
 	"a" "b" L"c";
 	"a" L"b" "c";
+	"a" L"b" L"c";
 	L"a" "b" L"c";
 	L"a" L"b" L"c";
-
-	u"abc";
-	"a" "b" u"c";
-	"a" u"b" "c";
-	u"a" "b" u"c";
-	u"a" u"b" u"c";
 
 // warnings/errors
