Index: trunk/ab5.0/abdev/compiler_x86/Compile_Var.cpp
===================================================================
--- trunk/ab5.0/abdev/compiler_x86/Compile_Var.cpp	(revision 589)
+++ trunk/ab5.0/abdev/compiler_x86/Compile_Var.cpp	(revision 591)
@@ -876,5 +876,12 @@
 			char *temp;
 			temp=(char *)i64data;
-			i2=compiler.GetObjectModule().dataTable.AddString(temp,lstrlen(temp));
+			if( compiler.IsUnicode() )
+			{
+				i2 = compiler.GetObjectModule().dataTable.AddWString( Jenga::Common::ToWString( temp ) );
+			}
+			else
+			{
+				i2 = compiler.GetObjectModule().dataTable.AddString( temp );
+			}
 			HeapDefaultFree(temp);
 
@@ -1065,5 +1072,12 @@
 			char *temp;
 			temp=(char *)i64data;
-			i2=compiler.GetObjectModule().dataTable.AddString(temp,lstrlen(temp));
+			if( compiler.IsUnicode() )
+			{
+				i2 = compiler.GetObjectModule().dataTable.AddWString( Jenga::Common::ToWString( temp ) );
+			}
+			else
+			{
+				i2 = compiler.GetObjectModule().dataTable.AddString( temp );
+			}
 			HeapDefaultFree(temp);
 
Index: trunk/ab5.0/abdev/compiler_x86/NumOpe.cpp
===================================================================
--- trunk/ab5.0/abdev/compiler_x86/NumOpe.cpp	(revision 589)
+++ trunk/ab5.0/abdev/compiler_x86/NumOpe.cpp	(revision 591)
@@ -957,5 +957,12 @@
 					bLiteralCalculation=0;
 
-					i2=compiler.GetObjectModule().dataTable.AddString(term,i3);
+					if( compiler.IsUnicode() )
+					{
+						i2 = compiler.GetObjectModule().dataTable.AddWString( Jenga::Common::ToWString( std::string( term, i3 ) ) );
+					}
+					else
+					{
+						i2 = compiler.GetObjectModule().dataTable.AddString( std::string( term, i3 ) );
+					}
 
 					//push DataSize
