Index: trunk/Include/Classes/System/String.ab
===================================================================
--- trunk/Include/Classes/System/String.ab	(revision 381)
+++ trunk/Include/Classes/System/String.ab	(revision 383)
@@ -6,11 +6,18 @@
 
 #ifdef __STRING_IS_NOT_ALWAYS_UNICODE
+
+#ifndef UNICODE
 TypeDef StrChar = Char
-#ifndef UNICODE
 #define __STRING_IS_NOT_UNICODE
 #endif
+
+#endif
+
+#ifndef __STRING_IS_NOT_UNICODE
+TypeDef StrChar = WCHAR
+
+#ifdef UNICODE
+#define __STRING_IS_UNICODE
 #else
-TypeDef StrChar = WCHAR
-#ifndef UNICODE
 #define __STRING_UNICODE_WINDOWS_ANSI
 #endif
@@ -77,5 +84,5 @@
 			Assign(initStr + start, length)
 		End Sub
-		
+
 		Sub String(initStr As String)
 			If Not String.IsNullOrEmpty(initStr) Then
@@ -592,5 +599,5 @@
 			End If
 		End Sub
-		
+
 		Const Sub rangeCheck(start As Long, length As Long)
 			If start < 0 Or start > This.m_Length Or length < 0 Then
Index: trunk/Include/Classes/System/Text/StringBuilder.ab
===================================================================
--- trunk/Include/Classes/System/Text/StringBuilder.ab	(revision 381)
+++ trunk/Include/Classes/System/Text/StringBuilder.ab	(revision 383)
@@ -520,5 +520,5 @@
 		If Not String.IsNullOrEmpty(s) Then
 			s.CopyTo(startIndex, chars, 0, length)
-			size = s.Length
+			size = length
 		End If
 	End Sub
